[YOLO] 코랩(Colab)으로 yolo v5 custom training하기

Jina·2023년 5월 5일
1

Art Hunter 프로젝트

목록 보기
2/5
post-thumbnail

이번에는 YOLO v5를 사용하여 custom training을 해보았다.

딥러닝에서는 GPU 시스템을 사용해야 효율적으로 계산할 수 있지만, 필자는 현재 AMD GPU 뿐이라 우선 Google의 Colab을 사용하였다.

Colab

코랩은 구글이 Jupyter Notebook을 커스터마이징하여, 클라우드 기반으로 제공하는 것이다. 즉 코랩의 GPU를 사용할 수 있다는 것!

또한 코랩에는 서버 자체에 Tensorflow 등의 라이브러리도 설치되어 있어 유용하다.

(참고로 Jupyter Notebook은 웹 브라우저에서 파이썬 코드를 대화 형식으로 작성 및 실행할 수 있는 툴이다.)

다음의 모든 내용은 유튜브 easycoding 을 참고한 것임을 밝힙니다.

1. 코랩 환경설정

구글 드라이브에서 새로 만들기 > 더보기 > Google Colaboratory 를 선택한다. (없으면 '연결할 앱 더보기'를 클릭하여 Colab을 설치하면 된다.)

파일명을 설정하고,
런타임 > 런타임 유형 변경> 하드웨어 가속기에서 GPU를 선택해야 빠른 속도로 딥러닝을 실행할 수 있다.

2. 샘플 데이터

먼저 현재 directory가 /content인지 항상 확인하고 진행해야 한다.

!pwd

를 입력하고 실행버튼 Ctrl+Enter 을 누르면 현재 위치를 알 수 있다.

roboflow

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 파일이 생성된다.

3. YOLO v5 설치

마찬가지로 현재 directory가 /content인지 확인한 후, 다음과 같이 git clone을 하면 yolov5 디렉토리가 생성된다.

!git clone https://github.com/ultralytics/yolov5.git

디렉토리를 yolov5 파일로 변경하고, 관련 라이브러리를 설치하면 된다.

%cd yolov5
! pip install -r requirements.txt

4. Training 시작

다음의 코드를 실행하면 된다.

!python train.py --img 415 --batch 16 --epochs 50 --data /content/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name fruit_yolov5s_results
  • img: 학습할 사진의 크기
  • batch: 전체 data를 얼만큼 쪼개어 학습할 것인지
  • epochs: 전체 data 반복학습 횟수
  • data: data set의 경로 정보를 갖고있는 yaml 파일
    ( => 앞서 다운로드한 /content/data.yaml으로 지정)
  • cfg: 학습에 사용할 모델의 yaml 파일
    ( => yolov5s.yaml으로 지정)
  • weights: 학습에 사용할 모델의 파일
    ( => yolov5에서 제공하는 pre-trained 된 모델인, yolov5s.pt)
  • name: 결과 저장할 폴더명

위 캡쳐는 두개의 epoch가 실행된 화면이다. 하나의 epoch를 실행하는 데 걸리는 시간이 1분 42초 + 13초 이므로 50 epoch를 실행하는 데 100분 정도 소요될 것으로 예상됐다.

5. Training 결과 확인

결과 화면은 다음과 같다.

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 경로에 저장된 결과를 확인할 수 있다.


참고자료

https://www.youtube.com/watch?v=U-wkRQ8U3GE

0개의 댓글