Public Dataset으로 학습시키기
다운로드 한 공개된 Dataset인 Vehicles-OpenImages로 YOLO를 학습 시켜 보겠습니다.
1. yolov5 가상환경을 activate 합니다. 그다음 YOLO v5를 다운로드 받은 디렉토리로 이동합니다.
conda activate yolov5
cd yolov5-master
2. 다운로드 받은 Dataset을 yolov5-master/dataset으로 복사합니다.
3. Dataset 폴더에 압축을 풀어 줍니다. test/train/valid 각 폴더안에는 images/labels 디렉토리가 있습니다.
images 디렉토리 안에는 Dataset의 이미지들이 있습니다.
labels 디렉토리에 있는 레이블 파일의 확장자는 txt 파일입니다. label 파일의 이름과 같은 이미지에 해당하는 정보가 들어 있습니다. 예를들어 레이블 파일명이 1.txt 이며 이미지 파일 1.jpg와 매칭 됩니다. 레이블 파일안에는 해당 이미지의 Object들의 클래스 종류, Object의 bounding box정보가 있습니다.
빈칸(space) 단위로 데이터를 구분합니다. 해당 레이블은 3개의 Object로 구성 되어있습니다. Object가 1개 일수도 여러개 일수도 있습니다. 첫번째 줄을 분석해 보면 다음과 같습니다.
- 0은 클래스의 종류입니다. 참고로 0은 앰블런스를 의미합니다. (Ambulance:0 / Bus:1 / Car:2 / Motorcycle:4 / Truck:5)
- 다음 0.4495~은 Object의 Center X좌표(이미지와의 비율)입니다.
- 다음 0.5937~은 Object의 Center Y좌표(이미지와의 비율)입니다.
- 다음 0.8052~은 Object의 Width(이미지와의 비율)입니다.
- 다음 0.6466~은 Object의 Height(이미지와의 비율)입니다.
0 | Ambulance |
0.4495192307692308 | Center X: 187 Pixel |
0.59375 | Center Y: 247 Pixel |
0.8052884615384616 | Width: 335 Pixel |
0.6466346153846154 | Height: 268 Pixel |
4. dataset 디렉토리 data.yaml을 수정해야 합니다. 이미지 / 레이블이 들어 있는 절대 경로로 지정해 주거나 아래와 같이 상대 경로로 지정해 줍니다.
5. 이제 YOLO를 학습시킬 차례 입니다.
yolov5-master 디렉토리로 이동한 다음 아래를 입력합니다.
python train.py --img 416 --batch 16 --epochs 100 --data ./dataset/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name vehicles_yolov5s_results
이미지의 사이즈는 416이며 Epoch은 100번을 반복합니다. YOLO의 가중치 파일은 small 사이즈를 선택했습니다.
학습이 잘 되고 있는 모습입니다.
학습이 완료 되면 Detection 할 차례 입니다. 다음 글로 계속됩니다.
'딥러닝 > Object Detection' 카테고리의 다른 글
YOLO v5 - 자동차 번호판(License Plate) 인식 - 4. Custom Dataset 만들기 (0) | 2021.11.16 |
---|---|
YOLO v5 - 자동차 번호판(License Plate) 인식 - 3. Vehicles Detection 하기 (0) | 2021.11.15 |
YOLO v5 - 자동차 번호판(License Plate) 인식 - 1. 환경 준비 (0) | 2021.11.15 |
YOLO v5를 이용한 자동차 번호판(License Plate) 인식 - Introduction (0) | 2021.11.14 |
SPP (Spatial Pyramid Pooling) Net (0) | 2021.11.08 |