๐ ํด๋น ํฌ์คํ ์์ ์ฌ์ฉ๋ ์ปจํ ์ธ ๋ ์ธํ๋ฐ์ ๋ฅ๋ฌ๋ ์ปดํจํฐ ๋น์ ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ์์ ์๋ฆฝ๋๋ค. ์ค๋ช ์์ ์ฌ์ฉ๋ ์๋ฃ๋ ์ต๋ํ ์ ๊ฐ ์ง์ ์ฌ๊ตฌ์ฑํ ์๋ฃ์์ ์๋ฆฝ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ์ ์๊ฐํ๋ SPP Net์ ์ฝ๊ฐ ๋ณํํ ๋ชจ๋ธ์ธ Fast RCNN์ ๋ํด ์๊ฐํ๋ ค๊ณ ํ๋ค. ์๋ง SPP Net ๋ชจ๋ธ์ ๊ตฌ์กฐ๋ฅผ ์ ์ดํดํ๊ณ ์๋ค๋ฉด ์ด๋ฒ Fast RCNN ๋ชจ๋ธ์ ๋ํด ์ดํดํ๋ ๋ฐ ๋งค์ฐ ์์ํ ๊ฒ์ด๋ค.
1. SPP Net์ด ๋ญ์๋๋ผ?
SPP Net์ ๋ํด ํต์ฌ์ ์ธ ํฌ์ธํธ๋ง ๋ค์ ์๊ธฐํด๋ณด์. Selective Search๋ก ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํด ๋ง์ Region Proposal๋ค์ ์ถ์ถํด์ฃผ๋๋ฐ ์ด ๋ Region Proposal ๋ค์ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅผ ์ ๋ฐ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ํฌ๊ธฐ๋ฅผ ๊ณ ์ ๋ ์ฌ์ด์ฆ์ด ๋ฒกํฐ๋ก ๊ฒฐํฉํด์ฃผ๊ธฐ ์ํด SPP(Spatial Pyramid Pooling) ๊ณผ์ ์ ๊ฑฐ์น๋ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ SPP๋ Bag of Visual Words๋ผ๋ ๊ธฐ์ ๊ณผ ๋ถ๋ฉด ํ ํฌ๋์ ํฉ์ณ์ ์ํํ๋ ์ผ์ข ์ Max Pooling ๊ณผ์ ์ด๋ค. ์ ๊ธฐ์ต์ด ๋์ง ์๋๋ค๋ฉด ํ๋จ์ ๊ทธ๋ฆผ ๋๋ ์ ๋ฒ ํฌ์คํ ์ ์ฐธ๊ณ ํ์.
๊ทธ๋ฆฌ๊ณ ์ SPP ๊ณผ์ ์ ์ ์ฉ์ํจ SPP Net์ ์ ์ฒด Object Detection ๋ชจ๋ธ์ ํฐ ์ํคํ ์ฒ ๊ทธ๋ฆผ์ ๋ค์๊ณผ ๊ฐ๋ค.
2. Fast RCNN์ ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ?
Fast RCNN์ ์ ๊ทธ๋ฆผ์ SPP Net ์ํคํ ์ฒ์ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ๋ฌ๋ผ์ง๋ค. ์ฒซ ๋ฒ์งธ๋ ๋ชจ๋ ๋์ผํ ์ฌ์ด์ฆ์ Region Proposal์ ๋ง๋ค๊ธฐ ์ํด SPP ๊ณผ์ ์ ์ฌ์ฉํ์ง ์๊ณ ROI(Regions Of Interest) Pooling ๊ณผ์ ์ ์ฌ์ฉํ๋ค. ๋ ๋ฒ์งธ๋ Object๊ฐ ๋ฌด์์ธ์ง ํด๋์ค๋ฅผ ๋ถ๋ฅํ ๋ SVM Classifier์ ์ฌ์ฉํ์ง ์๊ณ Softmax Layer๋ง์ ์ฌ์ฉํ๋ค. ํ๋จ์ Fast RCNN ์ํคํ ์ฒ ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ์ฐจ์ด์ ์ ํ๋์ฉ ์ดํดํด๋ณด์.
2-1. ROI Pooling
์ฌ์ค SPP ๊ณผ์ ๋ ROI Pooling ๊ณผ์ ์ด๋ผ๊ณ ํ ์ ์๋ค. ROI Pooling ์ ๊ตฌ์ฒด์ ์ธ ์ ์๋ ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ Region Proposal์ ๊ณ ์ ๋ ๋ฒกํฐ ์ฌ์ด์ฆ๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฌ๊ธฐ์๋ SPP Net๊ณผ์ ์ฐจ์ด์ ์ ๊ฐ์กฐํ๊ธฐ ์ํด Fast RCNN์์๋ง ROI Pooling์ด๋ผ๊ณ ์ ์ํ๊ฒ ๋ค.
ROI Pooling์ SPP Pooling ๊ณผ์ ๊ณผ ๋์๊ณผ์ ์ ๋์ผํ๋ค. ๋จ, ๋ถ๋ฉด์ ์ฌ๋ฌ ๋ฒ ์ํํ์ง ์๊ณ ๋จ $7\times7$ ๋ถ๋ฉด์ผ๋ก ๋๋ ๊ฒ ํ๋๋ก๋ง SPP๋ฅผ ์ํํ๋ค๋ ๊ฒ์ด ์ฐจ์ด์ ์ด๋ค.
2-2. ํด๋์ค ๋ถ๋ฅ์๋ ์ด์ Softmax Layer๋ง ์ฌ์ฉํ์!
์ด์ ์ SPP Net ๋ชจ๋ธ๊น์ง๋ ๋จผ์ Softmax Layer๋ก Object๊ฐ ์ด๋ค ํด๋์ค์ธ์ง ํ๋ฅ ๊ฐ์ผ๋ก ๋์ถ์ํค๋ฉด์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ตํ๊ณ ๋ค์ ์ต์ข ํด๋์ค ๋ถ๋ฅ๋ฅผ ์ํด SVM Classifier๋ฅผ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ํ๊ฒ ๋๋ฉด ๋ณด๋ค์ํผ 2๋ฒ ์ํํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ฒ ๋๊ณ ๊ฒฐ๊ตญ End-to-End ๋ชจ๋ธ์ด ๋์ง ๋ชปํ๋ค.
๊ทธ๋์ SVM Classifier ๋ฅผ ์์ ๋ฒ๋ฆฌ๊ณ Softmax Layer ํ๋๋ง์ ๋๊ณ Object์ ์ต์ข ํด๋์ค๋ฅผ ๋ถ๋ฅ์ํจ๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ Object์ ํด๋์ค๋ฅผ ์ต์ข ๋ถ๋ฅํ๋ ๋ฌธ์ ์ Object๋ฅผ ํ์งํด ๊ฐ์ธ๋ Bounding Box์ ์ขํ๋ฅผ ํ๊ทํ๋ ๋ฌธ์ 2๊ฐ๋ฅผ ๋์์ ํ์ต์ํค๊ฒ ๋๋ค. ์ฆ, ์ด์ End-to-End ๋ชจ๋ธ์ด ๋๋ ๊ฒ์ด๋ค.
3. Fast RCNN์ Cost Function
๋ถ๋ฅ์ ํ๊ท ๋ฌธ์ 2๊ฐ๋ฅผ ๋์์ ํด๊ฒฐํ๋ Fast RCNN์ Cost Function์ ์ด๋ป๊ฒ ๋ ๊น? 2๊ฐ๋ฅผ ๋์์ ํด๊ฒฐํ๋ค๊ณ ํ์ฌ Multi-task Loss ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค. ๋ถ๋ฅ ๋ฌธ์ ์๋ $Cross-Entropy$๋ฅผ ์ฌ์ฉํ๊ณ ํ๊ท ๋ฌธ์ ์๋ $Smooth\ L1$ ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ๋จผ์ ์ ์ฒด Loss ํจ์ ์์์ ์ดํด๋ณด์.
Cross-entropy๋ ๋ง์ ๋จธ์ ๋ฌ๋ ํฌ์คํ ์์ ๋ถ๋ฅ ๋ฌธ์ ์ Cost function์ผ๋ก ์ฌ์ฉ๋๊ธฐ๋ ํ๊ณ ์ค๋ช ์ ๋์ด๊ฐ๊ฒ ๋ค. ์ ์์์์ ํน์ดํ ๋ถ๋ถ์ $Smooth\ L1$ ํจ์์ธ๋ฐ, ์ด ํจ์ ์์์ ๋ค์๊ณผ ๊ฐ๋ค. ํ๋จ์ $x$๋ ์ค์ฐจ(Error)๋ฅผ ์๋ฏธํ๋ค.
$x$๊ฐ์ ๋ฐ๋ผ ํจ์ ์์ด ๋ฌ๋ผ์ง๋ฉฐ $x$๊ฐ์ด $-1$ ๋ณด๋ค ํฌ๊ฑฐ๋ $1$ ๋ณด๋ค ์์ ๋๋ $L2\ Loss$ ์ ํ์ ์์, ๊ทธ ์ด์ธ์ ๊ฒฝ์ฐ์๋ $L1\ Loss$ ์ ํ์ ์์ ์ฌ์ฉํ๋ค.
์ด๋ค ์์ ๋ฐ๋ฅด๋์ ๋ฐ๋ผ ์ค์ฐจ ํจ์์ ์๋ฏธ๊ฐ ์ฝ๊ฐ์ฉ ๋ฌ๋ผ์ง๋๋ฐ ์ด์ ๋ํด ์์๋ณด์.
- $L2\ Loss$ : ์ ๊ณฑ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ง๋์น๊ฒ ์ค์ฐจ๊ฐ ํฐ ๋ฐ์ดํฐ์ ๋งค์ฐ ๋ฏผ๊ฐํ๊ฒ ์์ฉํ๋ค. ๋ฐ๋ผ์ ์ค์ฐจ๊ฐ ํฐ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ์กด์ฌํ ๊ฒฝ์ฐ $L2$๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ฐจ๊ฐ ํฐ ๋ฐ์ดํฐ์ ํฐ ํจ๋ํฐ๋ฅผ ๋ถ์ฌํจ์ผ๋ก์จ ํ์ต ์ ์ค์ฐจ๊ฐ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ ํ์ตํ๋๋ก ํด์ค๋ค.
- $L1\ Loss$ : ์ ๋๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ง๋์น๊ฒ ์ค์ฐจ๊ฐ ํฐ ๋ฐ์ดํฐ์ ๋ฏผ๊ฐํ์ง ์๋ค. ๋ฐ๋ผ์ ์ค์ฐจ๊ฐ ํฐ ๋ฐ์ดํฐ๊ฐ ๋ณ๋ก ์กด์ฌํ์ง ์์ ๋ ์ฌ์ฉํ๊ธฐ์ ์ ํฉํ๋ค.
- $Smooth\ L1\ Loss$ : $x$ ์ฆ, ์ค์ฐจ๊ฐ์ด $-1$๋ณด๋ค ํฌ๊ฑฐ๋ $1$๋ณด๋ค ์์ ๋๋ ๊ฑฐ์ ๋ง์ท๋ค๊ณ ์ธ์ ํ๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฐ ๊ทธ๋ํ ํจ์ ๋ชจ์์ ์ดํด๋ณด๊ณ ๋ง๋ฌด๋ฆฌํ์. $x$์ถ์ ์ค์ฐจ๊ฐ์ ์๋ฏธํ๋ค.
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] SSD(Single Shot Detector) Object Detection ๋ชจ๋ธ (0) | 2021.04.20 |
---|---|
[ML] '๋ ๋น ๋ฅธ' Faster RCNN Object Detection ๋ชจ๋ธ (0) | 2021.04.18 |
[ML] SPP(Spatial Pyramid Pooling) Object Detection ๋ชจ๋ธ (2) | 2021.04.11 |
[ML] RCNN(Regions with CNN) Object Detection ๋ชจ๋ธ (0) | 2021.04.10 |
[ML] Object Detection ๊ธฐ์ด ๊ฐ๋ ๊ณผ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ (3) | 2021.04.08 |