๐Ÿ’ป Google Colab์„ ์ด์šฉํ•œ YOLOv3 ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ํ•™์Šตํ•˜๊ธฐ

ํ•ด๋‚˜ยท2021๋…„ 11์›” 25์ผ
2
post-thumbnail
โ— YOLO_MARK ๋‹ค์šด ๋ฐ ๋นŒ๋“œ๊ฐ€ ๋๋‚œ ๋‹จ๊ณ„์—์„œ ์ž‘์„ฑ๋œ ํฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค โ—

๐Ÿ“ Colab์„ ์ด์šฉํ•œ YOLO ํŠธ๋ ˆ์ด๋‹ ์— ๋Œ€ํ•ด ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์˜ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค

1. ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ

1.1 Class ๋ถ„๋ฅ˜

โœ yolo_mark/x64/Release/data/img ํด๋”์— ๋ผ๋ฒจ๋งํ•  ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๊ณ , obj.data, obj.names ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ๋‹ค

classes = 1
train  = data/train.txt
valid  = data/train.txt
names = data/obj.names
backup = backup/
dog

๋‚˜๋Š” image detection์„ ํ†ตํ•ด dog ๊ฐ์ฒด๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋ฏ€๋กœ,
classes = 1๋กœ ์„ค์ •ํ•˜์˜€๊ณ  obj.names ์—์„œ ๋ถ„๋ฅ˜ ๋ช…์นญ์„ dog ํ•˜๋‚˜๋กœ ์ž…๋ ฅํ•˜์˜€๋‹ค


1.2 YOLO_MARK๋ฅผ ํ†ตํ•œ ๋ผ๋ฒจ๋ง

โœ yolo_mark.cmd๋ฅผ ์—ด์–ด ๋ผ๋ฒจ๋ง ์ž‘์—…์„ ์ง„ํ–‰ํ•ด ์ฃผ์ž

img ํด๋”์— ๋„ฃ์—ˆ๋˜ ์ด๋ฏธ์ง€๋“ค์— ๋Œ€ํ•ด
์ง์ ‘ ํ•ด๋‹น ๊ฐ์ฒด์— ํ•ด๋‹นํ•˜๋Š” ์˜์—ญ์— ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค๋ฅผ ๋“œ๋ž˜๊ทธ๋กœ ์ง€์ •ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค!

๋…ธ๊ฐ€๋‹ค์„ฑ์ด ์ง™๋‹ค... ๊ฐ•์•„์ง€ ์‚ฌ์ง„ 300์žฅ์— ๋Œ€ํ•ด ์ง์ ‘ ๋ผ๋ฒจ๋ง ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค (๊ทธ์น˜๋งŒ ๊ฐ•์•„์ง€๋ผ ๊ท€์—ฌ์›Œ์„œ ํ• ๋งŒํ–ˆ์Œ)

๋ฐ์ดํ„ฐ ๋ผ๋ฒจ๋ง์ด ๋ชจ๋‘ ๋๋‚˜๋ฉด ์ด๋ ‡๊ฒŒ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค์˜ ์ขŒํ‘œ๊ฐ’์ด ๋‹ด๊ธด txt ํŒŒ์ผ๋“ค์ด ๊ฐ๊ฐ์˜ ์‚ฌ์ง„ ํŒŒ์ผ๋งˆ๋‹ค ์ƒ์„ฑ๋œ๋‹ค

2. YOLO๋ฅผ ํ†ตํ•œ ํ•™์Šต

2.1 ์ค€๋น„ ๊ณผ์ •

โœ pre-trained weights <- darknet53.conv.74๋ฅผ ๋‹ค์šด๋ฐ›์•„ darknet ํด๋”์— ๋„ฃ์–ด ์ค€๋‹ค

ํ˜„์žฌ ๊ฐ€์žฅ ์ตœ๊ทผ ๋ชจ๋ธ์€ darknet53 model์ด๋ฉฐ, ์ƒ๋‹จ์˜ ํ•˜์ดํผ๋งํฌ๋ฅผ ํ†ตํ•ด ๋‹ค์ด๋ ‰ํŠธ๋กœ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค!

๊ทธ๋ฆฌ๊ณ  ์•„๊นŒ YOLO_MARK ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ–ˆ๋˜ ๋ฐ์ดํ„ฐ์…‹์„ darknet ํด๋”๋กœ ์˜ฎ๊ฒจ ์ฃผ์–ด์•ผ ํ•œ๋‹ค

โœ yolo_mark/x64/Release/data ํด๋” ๋‚ด์˜ img ํด๋”, obj.data, obj.names, train.txt ํŒŒ์ผ์„ darknet/data ํด๋”๋กœ ๋ชจ๋‘ ์˜ฎ๊ฒจ ์ค€๋‹ค

์ด์ œ training์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด cfg ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด ์ค˜์•ผ ํ•œ๋‹ค!

โœ darknet/cfg ํด๋” ๋‚ด์˜ yolov3.cfg๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•œ๋‹ค

// LINE 8, 9 
// ์ž…๋ ฅ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ
width = 416
height = 416

// LINE 20 
// ๋ณดํ†ต class ์ˆ˜ * 2000์œผ๋กœ ์„ค์ •ํ•œ๋‹ค
max_batches = 2000 

// LINE 22
// max_batches ์‚ฌ์ด์ฆˆ์˜ 80%, 90%
steps = 1600, 1800

// LINE 603, 689, 776
// (filters = (classes + 5)*3)
filters = 18

// LINE 610, 696, 783
// ๋‚ด๊ฐ€ ์„ค์ •ํ–ˆ๋˜ class ์ข…๋ฅ˜ ๊ฐœ์ˆ˜
classes = 1

์œ„์˜ ๊ณผ์ •์„ ๋ชจ๋‘ ๋งˆ์นœ ํ›„ darknet ํด๋” ์ „์ฒด๋ฅผ ์••์ถ•ํ•˜์—ฌ darknet.zip ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค!


2.2 Colab ์‚ฌ์ „ ์„ค์ •

โœ ์œ„์—์„œ ๋งŒ๋“  darknet.zip ํŒŒ์ผ์„ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์˜ Colab Notebooks > yolo ํด๋” ์•ˆ์— ๋„ฃ์–ด ์ฃผ์—ˆ๋‹ค

YOLOv3_weight > backup ํด๋”๋Š” ๋‚˜์ค‘์— YOLO ํ•™์Šต์„ ํ†ตํ•ด ๊ฐ€์ค‘์น˜ ํŒŒ์ผ์ด ์Œ“์ด๋Š” ๊ณต๊ฐ„์ด๋‹ค

2.3 Colab ํŒŒ์ผ ์ƒ์„ฑ

โœ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ > ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ > Google Colaboratory๋ฅผ ํ†ตํ•ด Colab ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ž

์šฐ๋ฆฌ๋Š” GPU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ YOLO๋ฅผ ํ•™์Šต์‹œํ‚ฌ ๊ฒƒ์ด๋ฏ€๋กœ ๋Ÿฐํƒ€์ž„ > ๋Ÿฐํƒ€์ž„ ์œ ํ˜• ๋ณ€๊ฒฝ > ํ•˜๋“œ์›จ์–ด ๊ฐ€์†๊ธฐ๋ฅผ GPU๋กœ ์„ค์ •ํ•ด ์ค€๋‹ค


2.4 YOLO ํ•™์Šต

โœ ์ด์ œ Colab ํŒŒ์ผ์— YOLO ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ์ฒซ ๋ฒˆ์งธ ์…€๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋œ๋‹ค

์ฐธ๊ณ ๋กœ,
7๋ฒˆ์งธ ์…€์€

!dos2unix ./data/train.txt
!dos2unix ./data/val.txt
!dos2unix ./data/obj.data
!dos2unix ./data/obj.names
!dos2unix ./cfg/yolov3.cfg

8๋ฒˆ์งธ ์…€์€

%cd /content/darknet
!./darknet detector train data/obj.data cfg/yolov3.cfg darknet53.conv.74

์œ„์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•˜์˜€๋‹ค

8๋ฒˆ์งธ ์…€์„ ์‹คํ–‰ํ•˜๋ฉด ๋“œ๋””์–ด ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š”๋ฐ

max_batches๋ฅผ 2000์œผ๋กœ ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด 2000๋ฒˆ ํ•™์Šตํ•˜๊ฒŒ ๋œ๋‹ค

์ด์ œ๋ถ€ํ„ฐ๋Š” ๊ธฐ๋‹ค๋ฆผ์˜ ์‹œ์ž‘์ด๋‹ค

๊ผญ 2000๋ฒˆ์ด ์•„๋‹ˆ๋”๋ผ๋„ avg๊ฐ’์ด ๋” ์ด์ƒ ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•™์Šต์„ ๋ฉˆ์ถฐ๋„ ๋œ๋‹ค!

โœ ํ•™์Šต์ด ๋๋‚˜๊ณ  ๊ฐ€์ค‘์น˜ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉด ๋งˆ์ง€๋ง‰ ์…€์„ ํ†ตํ•ด ํ•™์Šต ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

!./darknet detector test data/obj.data cfg/yolov3.cfg backup/yolov3_1000.weights data/img/100.jpg -out out

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 12์›” 19์ผ

์ž˜ ์ฝ์—ˆ์–ด์š”~ ๊น€ํ˜„์ˆ˜๊ต์ˆ˜

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ