Detectify는 YOLO를 쉽고 빠르게 사용하기 위한, 라이브러리입니다.
문제가 발생하거나, 질문이 있으시면, Issue를 남겨주세요. 최대한 도움을 드리겠습니다!
해당 레포지토리 및 프로젝트에 기여를 하고싶다면, Fork해서 Pull-Request를 올려주세요!
또한, 해당 프로젝트가 더 나아질 수 있도록, 토론을 시작할 수도 있습니다!
-
YOLOv11 모델을 커스텀 데이터셋으로 파인튜닝하는 과정입니다.
-
이 과정에선 GPU (CUDA)가 권장됩니다!
GPU가 없는 경우 CPU를 통해, 매우 느린 속도로 학습이 진행됩니다. (권장하지 않음!)
빠른 학습과 안정성을 위해, 해당 Colab Notebook를 사용하여, 학습을 진행하세요. -
GPU 가속이 정상적으로 되지 않는 경우 PyTorch를 자신의 cuda 버전에 맞게 재설치해주세요.
from Detectify import Train train = Train() train.start(dataset="dataset/data.yaml")
-
-
학습된 모델을 사용하여, 추론하는 과정입니다.
- 이 과정에선 GPU (CUDA)가 권장됩니다!
GPU가 없는 경우 CPU를 통해, 느린 속도로 추론이 진행됩니다.
from Detectify import Predict predict = Predict(model="model.pt") predict.start(source=0) # 추론 시작 predict.stop() # 추론 중지
추론에 관련한 값 (결괏값, 상태 등)을 가져올 수 있습니다.
predict.status # 추론 스레드가 시작되었는지 확인합니다. # 자료형은 bool 입니다. predict.is_working # 추론 중인지 확인합니다. # 자료형은 bool 입니다. predict.result # 추론 결괏값입니다. # 자료형은 List[Results]이거나, None 입니다. predict.most # 현재 최상위 클래스의 이름입니다. # 자료형은 str 입니다.
클래스의 파라미터를 조정하여, 추론 파라미터를 할 수 있습니다.
추론 설정 과정은 되도록 추론 이전에 실행하는 것이 좋습니다.predict.preprocessing = None # 가져온 소스의 프레임이 추론되기 전 거칠 # 전처리 함수입니다. (하단 예제 참고) predict.handler = None # 추론한 최상위 클래스가 변경되었을 때 # 핸들러가 실행할 함수입니다. (하단 예제 참고) predict.conf = 0.25 # 추론 시 감지 임계값입니다. # 추론한 대상이 해당 임계값보다 미만이라면, 무시됩니다. predict.iou = 0.7 # 대상 중복 감지 임계값입니다. # 값이 낮을수록 겹치는 영역이 적어집니다. predict.max_objs = 300 # 최대로 감지할 대상의 수 입니다. # 하나의 물체만 감지해야한다면, 1로 설정하는 것이 좋습니다.
- 이 과정에선 GPU (CUDA)가 권장됩니다!
-
추론 전 이미지 전처리를 추가하는 예제입니다.
- main 함수를 사용하는 것이 권장됩니다!
하단 예제는 main 함수 없이 작성되었지만, 이는 권장하지 않는 방법입니다.
from Detectify import Predict predict = Predict("model.pt") def preprocessing(frame): # 이 곳에 이미지 전처리 코드를 삽입합니다... predict.preprocessing = preprocessing predict.start(source=0)
- main 함수를 사용하는 것이 권장됩니다!
-
추론 과정에서 이벤트 핸들러를 추가하는 예제입니다.
이벤트 핸들러는 최상위 클래스가 변경될 때 호출됩니다.- main 함수를 사용하는 것이 권장됩니다!
하단 예제는 main 함수 없이 작성되었지만, 이는 권장하지 않는 방법입니다.
from Detectify import Predict predict = Predict("model.pt") def callback(): # 이 곳에 최상위 클래스가 변경되었을 때, # 작동할 코드를 삽입합니다... predict.handler = callback predict.start(source=0)
- main 함수를 사용하는 것이 권장됩니다!
-
- Windows
python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install detectify-python
- macOS / Linux
python -m venv .venv source ./.venv/bin/activate pip install detectify-python
-
conda create -n Detectify python=3.11 conda activate Detectify pip install detectify-python
- Keeworks 미래 광학기술 연구소 - 현장실습생 강찬영