본문 바로가기
AI, 논문, 데이터 분석

[YOLO] 시작 및 실행

by doraemin_dev 2025. 1. 18.

[실습] 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

 

football-players-detection Object Detection Dataset (v12, 2024-08-19 5:17pm) by Roboflow

372 open source football-players-detection images and annotations in multiple formats for training computer vision models. football-players-detection (v12, 2024-08-19 5:17pm), created by Roboflow

universe.roboflow.com



# 커스텀 모델 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))