Colab에서 YOLO와 함께 놀기 (수정중)
by J4BEZ주의사항
이 부분은 편집자 고양이 J4BEZ가 오늘 무엇을 습득하였는지 학습 일기를 작성한 게시글로,
게시글에 대한 기초 설명이 부족하며 편집자가 잘못 이해한 부분 혹은 오역이 있을 수 있습니다.
잘못된 내용을 발견하셨을 때 혹여 여유가 괜찮으시면 댓글로 가르쳐 주시길 조심스레 부탁드립니다🙇♂️🙇♂️
여러분의 작은 관심이 아깽이 개발자가 성장하는데에 큰 도움이 됩니다
오늘도 배워가는 학생임에 잘못되거나 부족한 부분이 많이 있을 가능성이 높으니
해당 게시물 외에 다른 분들께서 작성하신 게시글 혹은 공식 문서(깃헙 레포 등)를 참고해 주시길 부탁드리며
사뭇 추워진 날씨 속 모두들 건강 유의하시고 평안한 하루 되시길 기도합니다🙏
0. 개요 (오늘 우리는 무엇을 할까요?!)
오늘 우리는 Google Colab에서 RoboFlow에서 받은 데이터 셋을 통해 YOLO를 훈련시킴으로
이미지를 통해 객체 판별(Object Detection)하는 모델을 만들고 테스트하는 시간을 가질거예요
Google Colab이란 무엇인가?
Yolo란 무엇인가?
Github 저장소(YOLOv5): [ ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com) ]
논문 원문: [ Joseph Redmon, Santosh Divvala, Ross Girshick, & Ali Farhadi (2015) “You Only Look Once: Unified, Real-Time Object Detection, arXiv:1506.02640” ]
한글 번역:
이번 시간에는 YOLO를 위한 데이터셋으로 RoboFlow에서 제공받은 데이터 셋을 이용할 예정입니다.
RoboFlow란?
공식 사이트: [ Roboflow: Give your software the power to see objects in images and video ]
1. Colab 환경 준비하기
a. 런타임 유형 설정하기
[ Google Colab ]으로 들어가 주세요
다음으로, Object Detection 모델을 훈련시키기 위해 Colab 노트에게 그래픽카드(GPU)를 넣어줍시다
b. 드라이브 마운트
[잘못된 부분을 발견하여 현재 수정중에 있습니다]
Colab에서 기본 경로로 사용하고 있는 \content 폴더(경로)는 Colab이 재실행될 때(Colab 재접속, 런타임 유형 변경 등) 마다 초기화되어
따로 백업설정을 해주지 않으면 Colab 노트(.ipynb)에 작성한 코드와 텍스트는 남아있지만,
다운 받은 패키지와 훈련시킨 학습 데이터들은 깔끔하게 날아가버리는 참사가 발생해요
패키지야 다시 다운 받고 적용하는데 시간이 얼마 걸리지 않지만
수 시간을 통해 훈련시킨 학습데이터가 날아가버리면 탄식이 절로 나오게 되죠 [ 어떻게 아냐구요?! ㅎㅎ...😭 ]
그렇기에 우리가 Colab과 함께한 추억 잊어버리지 않도록 Google Drive에 백업 설정(드라이브 마운트)을 진행하여 줄게요
[ 이 부분은 dove99님의 velog 게시글 중 "[Colab] Google Colab (코랩) 재실행 초기화 해결방법" 에서 도움을 받았습니다]
자, 그럼 1). Google Drive 아래 원하는 위치에 새 폴더를 만들고 2). Colab에서 원하는 위치에 연동 폴더를 만든 뒤, 3).Google 드라이브 폴더의 경로와 우리가 Colab에서 사용할 폴더의 경로를 연결시켜 줍시다.
1) Google Drive 아래 원하는 위치에 Colab과 연동할 폴더를 만들어 주세요
(이름은 자유롭게 지어주시되, 나중에 알아보기 쉽도록 지어주세요)
2) 이번엔 Colab에서 \content 폴더 아래 Drive와 연동될 폴더를 만들어주세요
3) 준비해준 두 폴더의 경로를 서로 연결 시켜줍시다
Colab 노트를 처음 만들면 '커서'가 깜박 거리는 작은 단락이 생성되어 있는 것을 확인할 수 있습니다.
이 작은 단락은 '코드 셀(Cell)'이라 부르며 셀 안에 python 코드를 작성할 수 있고,
왼쪽에 달린 '시작 버튼(▶)'을 클릭(혹은 [Ctrl] + [Enter])하여 '코드 셀'에 작성된 python 코드를 실행할 수 있는 친구예요
'코드 셀' 안에 python 코드를 작성하여 준비한 두 폴더의 경로를 서로 연결(연동) 시켜줄 거예요
'코드 셀' 안에 아래 코드를 입력하여 주세요
# 코드 출처: [dove99님의 velog: [Colab] Google Colab (코랩) 재실행 초기화 해결방법]
# : [ https://velog.io/@dove99/colab1 ]
# Colab 폴더와 구글드라이브의 폴더 Link 시키기
import os, sys
from google.colab import drive
drive.mount('/content/drive' ,force_remount=True)
# force_remount=True : 마운트가 되어있는 상태에서도 다시 마운트를 진행하게 합니다.
drive_path = '/content/drive/MyDrive/Colab/Cat_Detection_Content_inDrive'
# Colab과 연동을 위해 "Google Drive"에서 준비한 폴더의 경로
colab_path = '/content/Cat_Detection_Content_inColab'
# Google Drive와 연동될 "Colab"에서 준비한 폴더의 경로
os.symlink(drive_path, colab_path) # 두 폴더를 연결 시켜주는 명령어
sys.path.insert(0, colab_path) # 시스템 환경변수에 colab_path를 추가
파일 탭 브라우저에서 준비한 폴더 위에 '마우스 우클릭'을 하면 폴더의 경로를 쉽게 얻을 수 있습니다.
1. Colab에 YOLO 모델 설치 하기
준비가 어느 정도 되었으니 이제 우리가 만든 Colab 노트에 YOLO를 설치하여 줍시다
이번에 테스트할 YOLO 모델은 v5 버전을 이용할 예정이며, < n, s, m, l, xl > 중에서 'm'을 이용할 예정임을 미리 알려드립니다
'코드 쉘' 안에 아래 코드를 입력하여 주세요
!git clone https://github.com/ultralytics/yolov5
# YOLO의 Github 저장소(Repositery)링크에서 YOLOv5를 Clone하여 줍니다.
# '쉘'에서 [Shift] + [Enter]를누르면 실행 됩니다.
# [Ctrl] + [B] + [M]을 누르면 새로운 '코드 쉘'을 생성할 수 있습니다.
YOLOv5가 정상적으로 설치되었다면,
아래 코드를 이용하여 Content 폴더 아래 있는 yolov5 폴더로 이동한 뒤,
pip install 명령어를 통해 requirements.txt 안에 작성된 필수 구성 요소들을 모두 설치하여 줍니다.
# cd 명령어를 통해 yolov5 폴더로 이동합니다.
%cd yolov5
# pip install 명령어를 통해 requirements.txt에 작성된
# 모든 필요 사항을 설치하여 줍시다.
!pip install -r requirements.txt
아까 cd 명령어를 통해 현재 폴더의 위치는 \content\yolov5 일거예요
'코드 쉘'에 아래 명령어를 입력하여 다시 \content 폴더로 되돌아갑시다
%cd ..
# cd ..는 상위 폴더로 이동하는 UNIX 명령어 입니다.
# 현재 폴더가 [ /content/yolov5 ] 였으니 상위 폴더 [ /content ] 로 이동될거예요
# 만약 아래 사진과 같이 /content가 출력되지 않는다면
# 위 명령어 대신 [ %cd /content ]를 입력하세요
(코드 쉘은 [Ctrl] + [B] + [M]으로 새로 생성할 수 있습니다)
3. RoboFlow에서 YOLOv5 모델을 위한 DataSet을 다운받아주기
[ RoboFlow Universe ]로 들어가서 원하는 Detection 모델을 찾아주세요
(너무 많이 접속하면 비정상적인 접근이라 인식하고 사이트에서 잠시 차단할 수 있으니 주의해 주세요)
*로그인까지 부탁해요
복사를 완료하였으면 Colab 노트의 '코드 쉘'로 돌아와서 방금 복사한 내용을 입력한 뒤 코드 맨 앞에!(느낌표)를 입력하여 주세요
#복사한 curl -L ~~ 앞에 !를 붙여주세요
!curl -L "https://universe.roboflow.com/ds/비밀입니다" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip
정상적으로 설치되었다면 아래와 같이 test / train /valid 폴더와 해당 데이터셋의 정보를 담고 있는 data.yaml 파일이 함께 설치되었을 거예요
4. 설치한 DataSet으로 훈련을 진행합시다.
--
긴 글 읽어주심에 감사드립니다
모두들 한 주간 고생 많으셨고 추운 날씨 가운데 건강 꼭 유의하시며 평안한 주말 되시길 기도합니다🙏
🌟 도움 받은 게시글 🌟
{ jiiina님의 Velog :: [YOLO] 코랩(Colab)으로 yolo v5 custom training 하기 }
{ easycoding님의 Youtube :: #3 너무 쉬운 인공지능 : YOLO v5 구글 코랩을 이용한 커스텀 트레이닝 (Colab) }
{ dove99님의 velog :: [Colab] Google Colab (코랩) 재실행 초기화 해결방법 }
블로그의 정보
작은 고양이의 캣 타워
J4BEZ