이번에는 YOLO v5를 사용하여 custom training을 해보았다.
딥러닝에서는 GPU 시스템을 사용해야 효율적으로 계산할 수 있지만, 필자는 현재 AMD GPU 뿐이라 우선 Google의 Colab을 사용하였다.
코랩은 구글이 Jupyter Notebook을 커스터마이징하여, 클라우드 기반으로 제공하는 것이다. 즉 코랩의 GPU를 사용할 수 있다는 것!
또한 코랩에는 서버 자체에 Tensorflow 등의 라이브러리도 설치되어 있어 유용하다.
(참고로 Jupyter Notebook은 웹 브라우저에서 파이썬 코드를 대화 형식으로 작성 및 실행할 수 있는 툴이다.)
다음의 모든 내용은 유튜브 easycoding 을 참고한 것임을 밝힙니다.
구글 드라이브에서 새로 만들기 > 더보기 > Google Colaboratory 를 선택한다. (없으면 '연결할 앱 더보기'를 클릭하여 Colab을 설치하면 된다.)
파일명을 설정하고,
런타임 > 런타임 유형 변경> 하드웨어 가속기에서 GPU
를 선택해야 빠른 속도로 딥러닝을 실행할 수 있다.
먼저 현재 directory가 /content
인지 항상 확인하고 진행해야 한다.
!pwd
를 입력하고 실행버튼 Ctrl+Enter
을 누르면 현재 위치를 알 수 있다.
roboflow 홈페이지에서 'object detection' 유형을 선택하고, synthetic-fruit 데이터를 선택했다.
Format은 YOLO v5 PyTorch
로 설정하고, Continue 클릭 후 Terminal에서 제공되는 코드를 복사해 놓는다.
복사한 코드를 코랩에 붙여넣는다. 이때 !(느낌표)
작성 후 붙여넣는 것을 유의하자.
!curl -L "https://public.roboflow.com/ds/9DwW8uZHhM?key=GJm7dx7FsT" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip
실행시 다음과 같이 content 파일 하위로 trian, valid, README, data.yaml 파일이 생성된다.
마찬가지로 현재 directory가 /content
인지 확인한 후, 다음과 같이 git clone을 하면 yolov5 디렉토리가 생성된다.
!git clone https://github.com/ultralytics/yolov5.git
디렉토리를 yolov5 파일로 변경하고, 관련 라이브러리를 설치하면 된다.
%cd yolov5
! pip install -r requirements.txt
다음의 코드를 실행하면 된다.
!python train.py --img 415 --batch 16 --epochs 50 --data /content/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name fruit_yolov5s_results
/content/data.yaml
으로 지정) yolov5s.yaml
으로 지정)yolov5s.pt
)위 캡쳐는 두개의 epoch가 실행된 화면이다. 하나의 epoch를 실행하는 데 걸리는 시간이 1분 42초 + 13초 이므로 50 epoch를 실행하는 데 100분
정도 소요될 것으로 예상됐다.
결과 화면은 다음과 같다.
content/runs/train/fruit_yolov5_results/weights/best.pt에 결과물이 저장되어 있음을 알 수 있다.
테스트용 과일 이미지 'fruit_test'를 루트 디렉토리에 업로드한 후,
!python detect.py --weights ./runs/train/fruit_yolov5_results/weights/best.pt --conf 0.5 --source /fruit_test.jpg
위 코드를 실행시키면 runs/detect/exp 경로에 저장된 결과를 확인할 수 있다.