๐ ํด๋น ํฌ์คํ ์์ ์ฌ์ฉ๋ ์ปจํ ์ธ ๋ ์ธํ๋ฐ์ ๋ฅ๋ฌ๋ ์ปดํจํฐ ๋น์ ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ์์ ์๋ฆฝ๋๋ค. ์ค๋ช ์์ ์ฌ์ฉ๋ ์๋ฃ๋ ์ต๋ํ ์ ๊ฐ ์ง์ ์ฌ๊ตฌ์ฑํ ์๋ฃ์์ ์๋ฆฝ๋๋ค.
์ง๊ธ๊น์ง ์์๋ณด์๋ RCNN ๊ณ์ด, SPP Object Detection ๋ชจ๋ธ๋ค์ ๋ชจ๋ Two-Stage ๋ชจ๋ธ์ด์๋ค. ์ด๋ฒ ํฌ์คํ ์์ ์๊ฐํ ๋ชจ๋ธ์ One-Stage ๋ชจ๋ธ ์ค ํ๋์ธ SSD(Single Shot Detector) ๋ชจ๋ธ์ ๋ํด ์๊ฐํ๋ ค ํ๋ค.
1. One Stage? Two Stage?
SSD์ ๋ํด ๋ณธ๊ฒฉ์ ์ผ๋ก ์์๋ณด๊ธฐ ์ ์ Object Detection ๋ชจ๋ธ ์ข ๋ฅ ์ค One-Stage / Two-Stage๋ก ๋ถ๋ฅํ๋ ์ฐจ์ด์ ์ ๋ํด ์ง๊ณ ๋์ด๊ฐ์.
๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ ๋ RCNN, SPP, Fast RCNN, Faster RCNN ๋ชจ๋ธ์ Two-Stage ๋ชจ๋ธ์ด์๋ค. ์ฌ๊ธฐ์ Two๋, ์์ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ฒ๋ผ Region Proposal๊ณผ Object Detection ๋จ๊ณ๋ฅผ ๋ถ๋ฆฌํด ์ ๊ฐ๋๋ ๋ชจ๋ธ๋ค์ด๋ค.
๋ฐ๋ฉด์ ์ค๋ ๋ฐฐ์ธ SDD์ ๊ฐ์ One-Stage ์ข ๋ฅ์ ๋ชจ๋ธ๋ค์ Region Proposal ๊ณผ Object Detection์ ๋ฐ๋ก ๋ถ๋ฆฌํ์ง ์๊ณ ํ ๋ฒ์ ์ํํ๋ ๋ชจ๋ธ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ One-Stage ๋ชจ๋ธ๋ค์ด ๋ฑ์ฅํ ๋ฐฐ๊ฒฝ์ ๋ฌด์์ผ๊น? Two-Stage ๋ชจ๋ธ๋ค์ ํ์ต ์๋๊ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. Object Detection ๋ถ์ผ์์ ๊ฐ์ฒด๋ฅผ ์ผ๋ง๋ ํ์ง๋ฅผ ์ ํ๋๋๋ ์ค์ํ์ง๋ง ํ์ง๋ฅผ ์ผ๋ง๋ '๋นจ๋ฆฌ' ํ๋๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ค์ํ๋ค.
๋จ์ ์ผ๋ก ์๋ฅผ ๋ค์ด ๋ณธ๋ค๋ฉด, ์ต๊ทผ ์๋์ฐจ ์ฐ์ ์์ ์์จ์ฃผํ ์ฐ์ ์ด ์ ๋ง ํซํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์์จ์ฃผํํ ๋ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ ๋ชจ๋ธ์ ํ์ง ์๋๊ฐ ๋๋ฆฌ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋ง์ฝ ์ง๋๊ฐ๋ ๋ณดํ์๊ฐ ์์ผ์์ ๋ค์ด์ ํ์ง๋์ผ ํ๋๋ฐ ์ด ์๋๊ฐ ๋๋ฆฌ๋ค๋ฉด ๋์ฐํ ๊ตํต์ฌ๊ณ ๊ฐ ๋ฐ์ํ ์ ์๋ค.๋ฐ๋ผ์ Object Detection ๋ถ์ผ์์ ํ์ง ์๋๋ ๋งค์ฐ ์ค์ํ ์์๊ฐ ๋์๋ค.
๊ทธ๋ฐ๋ฐ Two-Stage ๋ชจ๋ธ๋ค์ ํ์ง ์ฑ๋ฅ์ ๋ฐ์ด๋์ง๋ง ์๋์ ์ผ๋ก ํ์ง ์๋๋ ๋งค์ฐ ๋๋ฆฐ ํธ์ด๋ค. ๋ฐ๋ผ์ ์ฐ๊ตฌ์๋ค์ ์ด๋ฌํ ๋๋ฆฐ ํ์ง ์๋๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ One-Stage ๋ชจ๋ธ์ ๊ฐ๋ฐํด์๋ค.
2. SSD(Single Shot Detector)
์ฌ์ค SSD ๋ชจ๋ธ์ด ๋์ค๊ธฐ ์ด์ ์ One-Stage ๋ชจ๋ธ๋ก์ YOLO(You Only Look Once) ๋ฒ์ 1์ด ๊ฐ๋ฐ๋์๋ค. ๋ฌผ๋ก YOLO ๋ฒ์ 1์ ํ์ง ์๋ ์ฆ, ์ด๋น ํ๋ ์์ ์ธ FPS(Frame Per Second) ๊ฐ์ด ๋งค์ฐ ๋์์ง๋ง ํ์ง ์ฑ๋ฅ์ธ mAP๊ฐ์ด ํ์ ํ ๋ฎ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด ๋ YOLO ๋ฒ์ 1์ ๊ฐ์ ์ํค๊ณ ์ SSD ๋ชจ๋ธ์ด ๋ฑ์ฅํ๋ค.
๊ทธ๋ ๋ค๋ฉด SSD ๋ชจ๋ธ์ ์ด๋ค ์๋ฆฌ๋ก ๋์ํ ๊น? SSD ๋ชจ๋ธ์ Multi-Scale Feature Layer๊ณผ Default Box๋ผ๋ 2๊ฐ์ ์์๋ก ๊ตฌ์ฑ๋์ด ์๋ค.(์ฐธ๊ณ ๋ก Default Box๋, Anchor Box๋ ๋์ผํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค๊ณ ํ๋ค. ๋ ผ๋ฌธ ์์์๋ Default Box๋ก ๋์์์ผ๋ ์ญํ ์ Anchor Box์ ๋์ผํ๋ค)
2-1. Multi-Scale Feature Layer
๋ฉํฐ ์ค์ผ์ผ Feature Layer์ ์ฌ๋ฌ ๋ฒ์ ์ปจ๋ณผ๋ฃจ์ ์ ์ ์ฉํด ๋์จ ์ฌ๋ฌ ๊ฐ์ Feature Map์ Object Detection์ ์ํ์ํค๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํด ์ต์ข Detectionํ๋ ๊ณผ์ ์ด๋ค.
์ ๊ทธ๋ฆผ์ 1๋ฒ์ ํด๋นํ๋ ๋ถ๋ถ์ด๋ค. Feature Map ์ฌ์ด์ฆ๊ฐ 32, 16, 8, 4 ์ผ ๋ ๊ฐ๊ฐ์ ๋ํด Object Detection์ ์ํํ๊ฒ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฐ Feature Map์ด Object Detection์ ์ด๋ป๊ฒ ์ํํ ๊น?
2-2. Default Box(=Anchor Box)
์ปจ๋ณผ๋ฃจ์ ์ ํตํด ๋์จ ๊ฐ๊ฐ์ Feature Map์ ํฌ์ธํธ(๊ทธ๋ฆผ ์์์๋ 32 x 32์์ ๋ ธ๋์ ํฌ์ธํธ๋ค)๋ง๋ค ์ฌ๋ฌ๊ฐ์ Anchor Box๋ฅผ ์์ฐ๊ณ Ground Truth์ ๋น๊ต๋ฅผ ํ๋ฉด์ ํ์ต์ ์งํํ๋ค.
์์ ๊ฐ์ ๊ตฌ์กฐ์ SSD ๋ชจ๋ธ์ ํน์ง์ ๋ฌด์์ผ๊น? ๋ฐ๋ก ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ Feature Map์ด ์ ๋ ฅ ์ด๋ฏธ์ง ๋ด์ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ๊ฐ๊ฐ ์ ๋ด๋งํฌ(?)ํด์ ํ์ง๋ฅผ ์ ํ๊ฒ ๋๋ค.
์ฐ์ Feature Map 1๋ฒ์์ 4๋ฒ์ผ๋ก ๊ฐ์๋ก ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ ์์ง์ ์ผ๋ก ์ ๋ํ๋ด๋ Feature Map์ด๊ฒ ๋๋ค. ์ฆ, ์ ๊ทธ๋ฆผ์ ์ค์ฌ Object๋ค์ ๊ฐ์์ง๋ค์ด๋ค. ๋ฐ๋ผ์ Feature Map 1๋ฒ์ผ ๋ ๋ณด๋ค Feature Map 2๋ฒ~4๋ฒ์์ ๊ฐ์์ง๋ค์ ์์งํ๋ Feature Map์ด ์กด์ฌํ ๊ฒ์ด๋ค.
์ด์ 'SSD์ ํฐ ์ํคํ ์ฒ' ์๋ฃ์ ํ๋จ์ ์ดํด๋ณด๋ฉด ํ์ ์ผ๋ก ๋ ๋ฐ์ค๋ค์ ์ดํด๋ณด์. ๋จผ์ 32 x 32 Feature Map์ ํด๋นํ๋ ํ์ ๋ฐ์ค๋ค์ ๋ณด๋ฉด ๊ฐ์์ง๋ค ๋ณด๋ค ์์ '์ฌ๋์ ์'์ ํ์งํ๊ณ ์๋ค. ๋ค์์ 16 x 16 Feature Map์์๋ ์ข ๋ ํฐ Object์ธ ๊ฐ์์ง๋ฅผ ํ์งํ๊ณ ์๋ค. ๋ฐ๋ผ์ ์ปจ๋ณผ๋ฃจ์ ๊ณผ์ ์ ๋ ๊ฑฐ์น Feature Map์ผ์๋ก ์ด๋ฏธ์ง์ ์ค์ฌ์ด ๋๋ Object๋ฅผ ์ ํ์งํ๊ณ ์ปจ๋ณผ๋ฃจ์ ๊ณผ์ ์ ์ด๋ฐ Feature Map์ผ์๋ก ์ด๋ฏธ์ง์ ์ฌ์ด๋(?) Object๋ฅผ ์ ํ์งํ๊ฒ ๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ผ๋ก ์ธํด SSD๋ ์ด๋ฏธ์ง ์์ ์กด์ฌํ๋ ์ฌ๋ฌ๊ฐ์ง Object๋ค์ ์ ํ์งํ ์ ์๊ฒ ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก SSD ๋ชจ๋ธ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ์๋ฉด, ๋ง์ฝ ์ ๋ ฅ ์ด๋ฏธ์ง ๋ด์ ์ฌ๋ฌ๊ฐ์ง์ ๊ฐ์ฒด๋ค์ด ์์ ๋, ์๋ก ์ฌ์ด์ฆ๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ๊ฐ์ Feature Map์ด ์ ๋ ฅ ์ด๋ฏธ์ง ๋ด์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์ ๋ดํด์ ํ์งํ๋๋ก ํ๋ ๋ชจ๋ธ์ด๋ค.
3. SSD์ ๋ง์ง๋ง์ NMS !
2๋ฒ ๋ชฉ์ฐจ๊น์ง์ ๊ณผ์ ์ ๊ฑฐ์ณ ๊ฐ์ฒด๋ฅผ ํ์งํ๊ธฐ ์ํ ๋ง์ ํ๋ณด Bounding Box๋ค์ด ์๊ฒจ๋ฌ์ ๊ฒ์ด๋ค. ์ด์ Ground Truth์ ๊ฐ์ฅ IoU๊ฐ ๋์ Bounding Box๋ค๋ง ๋จ๊ธฐ๊ธฐ ์ํด NMS(Non-Max Suppression) ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. NMS์ ๋ํด ๋ชจ๋ฅธ๋ค๋ฉด ์ฌ๊ธฐ์ 5-2 ๋ชฉ์ฐจ๋ฅผ ์ฐธ๊ณ ํด๋ณด์.
4. SSD์ Cost Function
๋ง์ง๋ง์ผ๋ก SSD์ Cost Function์ ๋ํด ์์๋ณด์. One-Stage ๋ํ ๋ถ๋ฅ์ ํ๊ท ๋ฌธ์ ๋ฅผ ๊ฐ์ด ํ์ตํ๊ธฐ ๋๋ฌธ์ Multi-task Loss ์์์ ์ฌ์ฉํ๋ค. ํ๊ท๋ฅผ ์ํ Loss ํจ์๋ ์ด์ Object Detection ๋ชจ๋ธ๊ณผ ๋์ผํ๊ฒ $L_1\ Smooth$ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Retina Net Object Detection ๋ชจ๋ธ (0) | 2021.04.26 |
---|---|
[ML] YOLO(You Only Look Once) Object Detection ๋ชจ๋ธ (5) | 2021.04.22 |
[ML] '๋ ๋น ๋ฅธ' Faster RCNN Object Detection ๋ชจ๋ธ (0) | 2021.04.18 |
[ML] Fast RCNN Object Detection ๋ชจ๋ธ (0) | 2021.04.13 |
[ML] SPP(Spatial Pyramid Pooling) Object Detection ๋ชจ๋ธ (2) | 2021.04.11 |