가상환경에서 설치한 pip install utralytics
를 사용하지 않고, git clone으로 공식 페이지에서 직접 다운로드하는 방법을 공유하려고 합니다.
데이터 증강 등의 커스텀이 필요할 때 직접 코드를 수정하는데 편의를 위해서 이런 방식을 사용합니다.
1. utralytics 깃 허브 접속하기
깃 클론을 하기 위해 아래 링크에 접속해 줍니다.
https://github.com/ultralytics/ultralytics
GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀
Ultralytics YOLO11 🚀. Contribute to ultralytics/ultralytics development by creating an account on GitHub.
github.com
git clone https://github.com/ultralytics/ultralytics.git
2. 깃 클론을 위한 디렉토리 위치 확인하기
저 같은 경우는 디렉토리 위치를 다음과 같이 설정했습니다.
v8-dir/
├── ultralytics/ ← Git 레포 루트 (pip install -e . 한 위치)
└── yolo-script-dir/
└── bbox-detection-script-dir/
├── v8_few-shot_train(3).py ← ★ 여기
└── configs/
└── few-shot_train_config(3).yaml
루트 디렉토리인 v8-dir에서 다음 명령어들을 실행해줍니다.
3. venv 가상환경 실행 중인지 확인&코드 실행
꼭 venv 가상환경이 실행되고 있는 상태에서 실행해줍니다.
가상환경 세팅 관련은 아래 포스팅을 참고해주세요: https://hgk5722.tistory.com/600
[가상환경] venv 가상환경 생성 및 실행
1. 특정 버전의 가상환경 생성먼저 파이썬의 버전부터 확인합니다.python --version Python 3.11.8이런식으로 출력된다면 자신의 버전에 맞는 venv를 설치합니다.py -3.11 -m venv env311(py명령어는 윈도우에서
hgk5722.tistory.com
git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
git checkout v8.3.128
pip install -e .
25년 5월 11일 기준 v8.3.128이 가장 최신은 아니지만 조금은 이전 버전을 기준으로 진행하겠습니다.
마지막에 입력한 pip install -e .
는 수정 가능한 모드(editable mode)로 설치한다는 의미입니다.
이렇게 하면 심볼릭 링크를 생성하여 소스 코드 변경이 즉시 반영되고, 패키지 수정시 마다 pip install
을 반복할 필요가 없이, 로컬 파일만 수정하면 됩니다. 또한 venv 가상 환경의 site-packages
에 경로만 등록되므로, 개발 중에 바로 테스트 할 수 있습니다.
4. 학습 스크립트에서 import YOLO
site-packages를 보면 이런 폴더에 이런 파일이 생성됩니다.
\v8-dir\env311\Lib\site-packages\ultralytics-8.3.128.dist-info
{
"dir_info": {
"editable": true
},
"url": "file:///C:/Users/hgk04/OneDrive/Desktop/%EA%B0%95%ED%98%95%EA%B7%BC/%EA%B3%B5%EB%B6%80/Vision/v8-dir/ultralytics"
}
이 경로를 찾아서 ultralytics 패키지를 찾습니다. (__init__.py 파일 있는 폴더) url에는 패키지가 없으므로 inner ultralytics 폴더를 패키지로 인식하고 그곳에 있는 __init__.py 파일에 정의된 내용을 따라"\v8-dir\ultralytics\ultralytics\models\yolo\model.py"
에 정의된 YOLO CLASS
를 찾게 됩니다.
그래서 가상환경을 실행한 상태에서 스크립트에 from utralytics import YOLO
코드가 있으면 패키지와 서브 패키지들을 타고 타고 들어가YOLO CLASS
를 찾게 됩니다.
from ultralytics import YOLO
import inspect # ← 추가
print(f"🔍 YOLO 클래스 소스 위치: {inspect.getfile(YOLO)}")
그러면 이제 train() 함수가 있는 스크립트에 위 코드처럼 from ultralytics import YOLO
만 추가해주시면 됩니다.
YOLO 클래스가 정의되어 있는 Utralytics 내부 폴더가 궁금하다면 import inspect와 print() 문도 추가해서 로그를 확인하시면 됩니다.
v8.3.128 기준 ultralytics\ultralytics\models\yolo\model.py
이곳에 YOLO 클래스가 정의되어 있습니다.
궁금하시다면 venv/lib/
디렉토리 속 utralytics 링크 폴더
와 그 안에 파일들이 생성된 것을 확인할 수 있습니다.
'[컴퓨터비전]' 카테고리의 다른 글
[컴퓨터비전] YOLOv8 기본 증강 ON/OFF (1) | 2025.06.06 |
---|---|
[OpenCV] 한글 깨짐 -> 대체 함수 사용 (1) | 2025.05.23 |
[컴퓨터비전] YOLOv8 객체 탐지 모델 학습 따라하기 (0) | 2025.04.18 |