s t u d y . . ๐Ÿง/AI ์•ค ML ์•ค DL

[YOLOv5] Custom Dataset์œผ๋กœ Pothole detection

H J 2022. 10. 7. 00:56

YOLOv5 Training

 

1. YOLOv5 git clone

git clone <https://github.com/ultralytics/yolov5>  # clone
cd yolov5
pip install -r requirements.txt  # ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜

 

 

2. dataset

roboflow์—์„œ image์™€ label์ด ์ด๋ฏธ ์žˆ์–ด์„œ ๋‹ค์šด๋ฐ›์•„์คฌ๋‹ค

 

yolo v5 pothole detection median blur Object Detection Dataset by Parth Choksi

817 open source potholes images. yolo v5 pothole detection median blur dataset by Parth Choksi

universe.roboflow.com

  • images
  • labels

๋‹ค์šด๋ฐ›์€ dataset

 

3. coco128.yaml ํŒŒ์ผ ์ˆ˜์ •

train: ../pothole_blur_dataset/train/images # ๋ฐ์ดํ„ฐ์…‹ train ๊ฒฝ๋กœ
val: ../pothole_blur_dataset/valid/images # ๋ฐ์ดํ„ฐ์…‹ val ๊ฒฝ๋กœ

nc: 1 # ํด๋ž˜์Šค -> pothole 1๊ฐœ
names: ['Potholes']

4. yolov5s.yaml ํŒŒ์ผ ์ˆ˜์ •

# Parameters
nc: 1  # number of classes

+ ์˜ต์…˜๋“ค๋„ ์กฐ๊ธˆ์”ฉ ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค

 

5. YOLOv5 ํ™•์ธ

python detect.py --source # OPTION
													0  # ์—ฐ๊ฒฐ๋œ webcam์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ detect
                          ํŒŒ์ผ์ด๋ฆ„.jpg  # image
                          ํŒŒ์ผ์ด๋ฆ„.mp4  # video
                          screen  # screenshot
                          ๋””๋ ‰ํ„ฐ๋ฆฌ์ด๋ฆ„/  # directory
                          'path/*.jpg'  # glob
                          '<https://youtu.be/Zgi9g1ksQHc>'  # YouTube
                          'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP stream

 

6. YOLOv5 Training

python train.py --data data/coco128.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --img ์„ค์ • --batch ์„ค์ • --epochs ์„ค์ •

 

7. test

python detect.py --source pothole_blur_dataset/train/images/1.jpg --weights runs/train/exp4/weights/best.pt

—source : ์ด๋ฏธ์ง€

—weights : pre-trained ๋ชจ๋ธ

 

์ด๋•Œ best.pt๋Š” ํ•™์Šต์‹œ์ผœ์„œ exp4์— ์ƒ์„ฑ๋œ ๊ฐ€์žฅ ์„ฑ๋Šฅ์ด ์ข‹์€ ๋ชจ๋ธ !

 

test ํ•ด๋ณธ ๊ฒฐ๊ณผ


๋‚˜๋Š” ๋ฐ์ดํ„ฐ์…‹์ด images -> train / val, labels -> train / val ์ด ์•„๋‹ˆ๋ผ train -> images / labels, val -> images / labels ์ด๋Ÿฐ ์‹์œผ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ..

# ๋‚˜์˜ ๊ฒฝ์šฐ
train: ../pothole_blur_dataset/train/images
val: ../pothole_blur_dataset/valid/images

# ๋ณดํŽธ์ ์ธ ๊ฒฝ์šฐ
train: ../pothole_blur_dataset/images/train
val: ../pothole_blur_dataset/images/valid

ํ•™์Šต๋„ ์ œ๋Œ€๋กœ ๋˜๊ณ  ๋‘˜๋‹ค train, val ์ด๋ฏธ์ง€ ํด๋” ๊ฒฝ๋กœ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋‹ˆ๊นŒ ๋ฌธ์ œ๋Š” ์—†์–ด๋ณด์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ๋ณดํŽธ์ ์ด๊ฒŒ ๋‚˜๋ˆ ์•ผ์ง€!

(label์„ ์–ด๋–ป๊ฒŒ ์ œ๋Œ€๋กœ ์ฐพ์•„๊ฐ€๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค..)

์ผ๋‹จ epochs๋ž‘ batch size ํฌ๊ฒŒ ๋Œ๋ ค๋†“๊ณ  ์™”๋‹ค~