[실습] roboflow활용하여, YOLO 실행
# 환경 구축 (런타임 GPU 사용으로 변경)
# yolo9 git 가져오기 및 환경 설치
!git clone https://github.com/SkalskiP/yolov9.git
%cd yolov9
!pip install -r requirements.txt -q
import os
HOME = os.getcwd()
print(HOME)
# /content/yolov9
!pip install -q roboflow
# Example 데이터 다운로드 및 사전학습된 COCO model 로 객체탐지 테스트
# 모델 가중치 다운로드
!wget -P {HOME}/weights -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-c.pt
!wget -P {HOME}/weights -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-e.pt
!wget -P {HOME}/weights -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/gelan-c.pt
!wget -P {HOME}/weights -q https://github.com/WongKinYiu/yolov9/releases/download/v0.1/gelan-e.pt
!ls -la {HOME}/weights
!wget -P {HOME}/data -q https://media.roboflow.com/notebooks/examples/dog.jpeg
!python detect.py --weights {HOME}/weights/gelan-c.pt --conf 0.1 --source {HOME}/data/dog.jpeg
from IPython.display import Image
Image(filename=f"{HOME}/runs/detect/exp/dog.jpeg", width=600)
# 나의 사진 가지고와서 인식해보자.
!python detect.py --weights {HOME}/weights/gelan-c.pt --conf 0.1 --source /content/yolov9/data/skt.jpg
from IPython.display import Image
Image(filename=f"/content/yolov9/runs/detect/exp6/skt.jpg", width=600)
# 커스텀 데이터셋을 활용한 모델 학습 및 추론
# football-players-detection 객체를 탐지하고자 함
# 다운 받은 zip 파일, 'yolov9' 폴더 안에 업로드
# zip파일 풀기
!unzip -qq "football-players-detection.v12i.yolov9.zip"
# 따로 폴더가 만들어지지 않고, 그냥 'yolov9' 안에 train,valid,test 존재
# README.dataset.txt, README.roboflow.txt, data.yaml 체크
!python train.py \
--batch 16 --epochs 25 --img 640 --device 0 --min-items 0 --close-mosaic 15 \
--data data.yaml \
--weights weights/gelan-c.pt \
--cfg models/detect/gelan-c.yaml \
--hyp hyp.scratch-high.yaml
# 실험 결과 (loss)
from IPython.display import Image
Image(filename=f"./runs/train/exp/results.png", width=1000)
https://universe.roboflow.com/roboflow-jvuqo/football-players-detection-3zvbc/dataset/12
# 커스텀 모델 validate 수행
# 가장 성능이 좋은 best.pt 모델을 활용해 수행
!python val.py \
--img 640 --batch 32 --conf 0.001 --iou 0.7 --device 0 \
--data ./data.yaml \
--weights ./runs/train/exp/weights/best.pt
# 학습된 모델 best.pt로 탐지하기
# test 폴더 내 images 로 테스트
# detect.py 를 실행하여 탐지 수행
# 잘 탐지되었는지 확인
!python detect.py \
--img 1280 --conf 0.1 --device 0 \
--weights ./runs/train/exp/weights/best.pt \
--source ./test/images
# 추론 결과는 runs/detect/ 내부 디렉토리에 저장
# 결과 확인
import glob
from IPython.display import Image, display
for image_path in glob.glob(f'./runs/detect/exp2/*.jpg')[:2]:
display(Image(filename=image_path, width=600))
'AI, 논문, 데이터 분석' 카테고리의 다른 글
[Docker][GitHub] 개념 및 실습 [모음/정리] (2) | 2025.01.19 |
---|---|
[NLP] 임베딩 (0) | 2025.01.18 |
[CNN] [전이학습] 시작 및 실행 (0) | 2025.01.17 |
[PyTorch] Anaconda, PyTorch 설치 및 실행 (0) | 2025.01.17 |
[GitHub] Codespaces, Actions (1) | 2025.01.16 |