자유게시판
roboflow에서 사람들이 올려놓은 Dataset을 다운로드 받고,
google Colab을 이용하여 트레이닝 시킨 후 YOLOv8을 실행 해보겠습니다.
roboflow 홈페이지
1. ”roboflow“ 에서 Dataset 다운로드 받기 (예제)
1. [roboflow.com](http://roboflow.com) 접속
1. 구글 계정으로 가입 및 로그인
2. [app.roboflow.com](http://app.roboflow.com) 접속 (자동 접속 됨)
1. 왼쪽 상단에 Public Datasets & Models 버튼 클릭
3. [universe.roboflow.com](http://universe.roboflow.com) 접속
1. 해당 페이지에서 원하는 내용 검색 후 Dataset 다운로드
1. Format = YOLOv8
2. Raw URL의 링크 복사하기
Google Colab 홈페이지
2. Google Colab에서 데이터 트레이닝 시키기
1. [colab.google](http://colab.google) 접속
1. 구글 계정으로 가입 및 로그인
2. Open Colab 버튼 클릭
2. Colab 새로운 프로젝트 생성 및 트레이닝 시작
1. roboflow 에서 다운로드 받은 Raw URL Colab에 다운로드 받기
// Cup.zip => 다운받아서 원하는 이름으로 압축하겠다는 의미 (Cup 이라는 이름으로 사용)
// roboflow Raw URL 링크
!wget -O Cup.zip https://universe.roboflow.com/ds/sGOtuUaRO7?key=NH1V9lIb2y
2. 압축하여 다운받은 파일을 압축해제하기
// Cup.zip , Cup => 위에서 설정한 이름으로 설정필요
import zipfile
with zipfile.ZipFile('/content/Cup.zip') as target_file:
target_file.extractall('/content/Cup/')
3. PyYAML 설치
// YAML 파일
!pip install PyYAML
4. 기존 YAML 파일 열어서 확인해보기
// Cup => 위에서 설정한 이름으로 설정필요
// 다운받아서 압축해제한 파일안의 기본 YAML 파일 열어보기 (data.yaml)
!cat /content/Cup/data.yaml
5. 기존 YAML에 새로운 Data 덮어씌우기
// Cup => 위에서 설정한 이름으로 설정필요
// names 의 ㅁㅁㅁ => 트레이닝 시킬 클래스의 이름작성 필요 [bottle, phone]
// nc = 클래스의 개수 입력 [2]
import yaml
data = {'train' : '/content/Cup/train/images',
'val' : '/content/Cup/valid/images',
'test' : '/content/Cup/test/images',
'names' : ['bottle', 'phone'],
'nc' : 2}
with open('/content/Cup/Cup_data.yaml','w') as f:
yaml.dump(data, f)
with open('/content/Cup/Cup_data.yaml','r') as f:
Cup_yaml = yaml.safe_load(f)
display(Cup_yaml)
6. Colab에 ultralytics 설치하기
!pip install ultralytics
7. YOLO에서 yolov8n.pt를 Colab에 받아오기
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
8. 다운받은 yolov8n.pt의 Class 확인하기
print(type(model.names), len(model.names))
print(model.names)
9. 새로운 Class 로 훈련시키기
// eopchs => 훈련 시킬 횟수
// patience => 관촬될만한 Training 진전이 없으면 30번 보다가 Training 중단
// batch => 일괄입력 data 개수
// imgsz => input image 크기
model.train(data='/content/Cup/Cup_data.yaml', epochs=100, patience=30, batch=32, imgsz=416)
10. 훈련시킨 yolov8n.pt의 Class 확인하기
print(type(model.names), len(model.names))
print(model.names)
3. 훈련시킨 [best.pt](http://best.pt) 파일 다운로드 받기
⇒ (Colab) content / runs / detect / train2 / weights /
-> 영상 속에서 훈련을 2번 시켜서 "train2" 입니다.
⇒ (개인PC) 원하는 위치 [anaconda3 / envs / test01 / ~~~
4. [best.pt](http://best.pt) 파일을 기반으로 YOLOv8 실행하기
// 가상공간 활성화 하기
conda activate test01
// best.pt 파일 위치로 들어가기 (본인이 저장시킨 위치로)
cd ~~~~
// best.pt 파일로 예측 실행하기 (소스 : Webcam / 출력 : 활성화)
yolo predict model=best.pt source=0 show=True
로그인 후
참가 상태를 확인할 수 있습니다.