๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
๊ฐ์ฒด ํ์ง Object Detection ์ฃผ์ ๋ชจ๋ธ one stage & two stage ๋ณธ๋ฌธ
๊ฐ์ฒด ํ์ง Object Detection ์ฃผ์ ๋ชจ๋ธ one stage & two stage
์ง์ง์ํ์นด 2022. 11. 7. 11:13<๋ณธ ๋ธ๋ก๊ทธ๋ pseudo-lab ๋์ Tutorial-Book ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค>
https://pseudo-lab.github.io/Tutorial-Book/chapters/object-detection/Ch1-Object-Detection.html
1. ๊ฐ์ฒด ํ์ง ์๊ฐ — PseudoLab Tutorial Book
๊ฐ์ฒด ํ์ง(Object Detection)๋ ์ปดํจํฐ ๋น์ ๊ธฐ์ ์ ์ธ๋ถ ๋ถ์ผ์ค ํ๋๋ก์จ ์ฃผ์ด์ง ์ด๋ฏธ์ง๋ด ์ฌ์ฉ์๊ฐ ๊ด์ฌ ์๋ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ ๊ธฐ์ ์ ๋๋ค. ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ์ด ๊ทธ๋ฆผ 1-1 ์ข์ธก์ ์๋ ๊ฐ์์ง ์ฌ์ง์ ๊ฐ
pseudo-lab.github.io
๐ฆ ๊ฐ์ฒด ํ์ง(Object Detection)
์ปดํจํฐ ๋น์ ๊ธฐ์ ์ ์ธ๋ถ ๋ถ์ผ์ค ํ๋๋ก์จ ์ฃผ์ด์ง ์ด๋ฏธ์ง๋ด ์ฌ์ฉ์๊ฐ ๊ด์ฌ ์๋ ๊ฐ์ฒด๋ฅผ ํ์ง
โ ๋ฐ์ด๋ฉ ๋ฐ์ค
ํน์ ์ฌ๋ฌผ์ ํ์งํ์ฌ ๋ชจ๋ธ์ ํจ์จ์ ์ผ๋ก ํ์ต ํ ์ ์๋๋ก ๋์์ ์ฃผ๋ ๋ฐฉ๋ฒ
ํ๊ฒ ์์น๋ฅผ ํน์ ํ๊ธฐ ์ํด ์ฌ์ฉ
ํ๊ฒ ์์น๋ฅผ X์ Y์ถ์ ์ด์ฉํ์ฌ ์ฌ๊ฐํ์ผ๋ก ํํ
ex) ๋ฐ์ด๋ฉ ๋ฐ์ค ๊ฐ์ (X ์ต์๊ฐ, Y ์ต์๊ฐ, X ์ต๋๊ฐ, Y ์ต๋๊ฐ)์ผ๋ก ํํ
X, Y ๊ฐ์ ํฝ์ ๊ฐ์ผ๋ก ํจ์จ์ ์ธ ์ฐ์ฐ์ ์ํด์๋ ์ต๋๊ฐ 1๋ก ๋ณํ
โ Sliding Window
ํน์ ํ ๋ชจ์์ ์๋์ฐ๋ฅผ ์ด๋ฏธ์ง ์ผ์ชฝ ์๋จ์์ ์ค๋ฅธ์ชฝ ํ๋จ์ผ๋ก ์ ์ง์ ์ผ๋ก ์ด๋ํ๋ฉด์ ๊ฐ์ฒด๊ฐ ์์ ๋งํ Region๋ค์ Proposal(์ ์)
๊ฐ๊ธฐ ๋ค๋ฅธ ๋ชจ์์ ์๋์ฐ๋ฅผ ๊ฐ๊ฐ ์ฌ๋ผ์ด๋ฉํ๊ฑฐ๋ ์๋๋ฉด ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๊ณ ์ ํ๋ ํ์งํ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๋ค์ํ๊ฒ ์ค์ผ์ผ๋งํด์ Region Proposal์ ์ํ
๊ฐ์ฒด๊ฐ ์๋ ์ง์ญ๋ ์ฌ๋ผ์ด๋ฉ์ ๋ฌด์กฐ๊ฑด ํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ํ๋ ๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆด ๋ฟ๋๋ฌ ๊ฐ์ฒด๋ฅผ ์ ํ์งํ ํ๋ฅ ๋ ๋ฎ์์ง๊ฒ ๋จ
โ ๋ชจ๋ธ ํํ
Classification : ํน์ ๋ฌผ์ฒด์ ๋ํด ์ด๋ค ๋ฌผ์ฒด์ธ์ง ๋ถ๋ฅ๋ฅผ ํ๋ ๊ฒ
Region Proposal : ๋ฌผ์ฒด๊ฐ ์์๋งํ ์์ญ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๋ ์๊ณ ๋ฆฌ์ฆ
๐ซ One-Stage Detector
Classification, Regional Proposal์ ๋์์ ์ํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ
์ด๋ฏธ์ง๋ฅผ ๋ชจ๋ธ์ ์ ๋ ฅ ํ, Conv Layer๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ํน์ง์ ์ถ์ถ
๋น๊ต์ ๋น ๋ฅด์ง๋ง ์ ํ๋๊ฐ ๋ฎ์
ex) YOLO, SSD, RetinaNet
๐๐จ YOLO
Bouning-box์ Class probability๋ฅผ ํ๋์ ๋ฌธ์ ๋ก ๊ฐ์ฃผํ์ฌ ๊ฐ์ฒด์ ์ข ๋ฅ์ ์์น๋ฅผ ํ๋ฒ์ ์์ธก
์ด๋ฏธ์ง๋ฅผ ์ผ์ ํฌ๊ธฐ์ ๊ทธ๋ฆฌ๋๋ก ๋๋ ๊ฐ ๊ทธ๋ฆฌ๋์ ๋ํ Bounding-box๋ฅผ ์์ธก
Bounding-box์ confidence score์ ๊ทธ๋ฆฌ๋์ ์ class score์ ๊ฐ์ผ๋ก ํ์ต
๊ฐ๋จํ ์ฒ๋ฆฌ๊ณผ์ ์ผ๋ก ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด์ง๋ง ์์ ๊ฐ์ฒด์ ๋ํด์๋ ์๋์ ์ผ๋ก ์ ํ๋๊ฐ ๋ฎ์
๐๐จ SSD (Single Shot MultiBox Detector)
๊ฐ Covolutional Layer ์ดํ์ ๋์ค๋ Feature map๋ง๋ค Bounding-box์ Class ์ ์์ Offset(์์น์ขํ)๋ฅผ ๊ตฌํจ
NMS( Non-Maximum Suppression) ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ต์ข Bounding-box๋ฅผ ๊ฒฐ์
๊ฐ Feature map๋ง๋ค ์ค์ผ์ผ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์์ ๋ฌผ์ฒด์ ํฐ ๋ฌผ์ฒด๋ฅผ ๋ชจ๋ ํ์งํ ์ ์๋ค๋ ์ฅ์
๐๐จ RetinaNet
๋ชจ๋ธ ํ์ต์ ๊ณ์ฐํ๋ ์์ค ํจ์(loss function)์ ๋ณํ๋ฅผ ์ฃผ์ด ๊ธฐ์กด One-Stage Detector๋ค์ด ์ง๋ ๋ฎ์ ์ฑ๋ฅ์ ๊ฐ์
One-Stage Detector๋ ๋ง๊ฒ๋ ์ญ๋ง๊ฐ ๊น์ง์ ํ๋ณด๊ตฐ ์ ์๋ฅผ ํตํด ํ์ต์ ์งํ
๊ทธ ์ค ์ค์ ๊ฐ์ฒด์ธ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก 10๊ฐ ์ด๋ด ์ด๊ณ , ๋ค์์ ํ๋ณด๊ตฐ์ด background ํด๋์ค๋ก ์กํ
์๋์ ์ผ๋ก ๋ถ๋ฅํ๊ธฐ ์ฌ์ด background ํ๋ณด๊ตฐ๋ค์ ๋ํ loss๊ฐ์ ์ค์ฌ์ค์ผ๋ก์จ ๋ถ๋ฅํ๊ธฐ ์ด๋ ค์ด ์ค์ ๊ฐ์ฒด๋ค์ loss ๋น์ค์ ๋์ด๊ณ , ๊ทธ์ ๋ฐ๋ผ ์ค์ ๊ฐ์ฒด๋ค์ ๋ํ ํ์ต์ ์ง์ค
์๋ ๋น ๋ฅด๋ฉด์ Two-Stage Detector์ ์ ์ฌํ ์ฑ๋ฅ์ ๋ณด์
๐ซ Two-Stage Detector
Classification, Regional Proposal์ ์์ฐจ์ ์ผ๋ก ์ํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ
๋น๊ต์ ๋๋ฆฌ์ง๋ง ์ ํ๋๊ฐ ๋์
ex) R-CNN, Fast R-CNN, Faster R-CNN
๐๐จ R-CNN
Selective Search๋ฅผ ์ด์ฉํด ์ด๋ฏธ์ง์ ๋ํ ํ๋ณด์์ญ(Region Proposal)์ ์์ฑ
- Selective Search ์ด๋ฏธ์ง ํฝ์ ์ ์ปฌ๋ฌ, ๋ฌด๋ฌ, ํฌ๊ธฐ, ํํ์ ๋ฐ๋ผ ์ ์ฌํ Region์ ๊ณ์ธต์ ๊ทธ๋ฃนํ ๋ฐฉ๋ฒ์ผ๋ก ๊ณ์ฐ
- Region Proposal ๊ฐ์ฒด๊ฐ ์์ ๋งํ ์์ญ๋ค์ ํ๋ณด๊ตฐ๋ค์ ์ฌ๋ฌ ๊ฐ ์ถ์ถ
์์ฑ๋ ๊ฐ ํ๋ณด์์ญ์ ๊ณ ์ ๋ ํฌ๊ธฐ๋ก wrappingํ์ฌ CNN์ input์ผ๋ก ์ฌ์ฉ
CNN์์ ๋์จ Feature map์ผ๋ก SVM์ ํตํด ๋ถ๋ฅ, Regressor์ ํตํด Bounding-box๋ฅผ ์กฐ์
๊ฐ์ ๋ก ํฌ๊ธฐ๋ฅผ ๋ง์ถ๊ธฐ ์ํ wrapping์ผ๋ก ์ด๋ฏธ์ง์ ๋ณํ์ด๋ ์์ค์ด ์ผ์ด๋๊ณ ํ๋ณด์์ญ๋งํผ CNN์ ๋๋ ค์ผํํ๊ธฐ ๋๋ฌธ์ ํฐ ์ ์ฅ๊ณต๊ฐ์ ์๊ตฌํ๊ณ ๋๋ฆฌ๋ค๋ ๋จ์
๐๐จ Fast R-CNN
๊ฐ ํ๋ณด์์ญ์ CNN์ ์ ์ฉํ๋ R-CNN๊ณผ ๋ฌ๋ฆฌ ์ด๋ฏธ์ง ์ ์ฒด์ CNN์ ์ ์ฉํ์ฌ ์์ฑ๋ Feature map์์ ํ๋ณด์์ญ์ ์์ฑ
์์ฑ๋ ํ๋ณด์์ญ์ RoI Pooling์ ํตํด ๊ณ ์ ์ฌ์ด์ฆ์ Feature vector๋ก ์ถ์ถ
- RoI Pooling ์ํ๋ ์์น(regions)์ feature๋ฅผ max pooling ํ๊ธฐ ์ํ layer
- feature map์ proposal region์์ ๋ฏธ๋ฆฌ ์ ํด๋์ ํฌ๊ธฐ(FC layer์ ์ธํ ์ฌ์ด์ฆ)์ ๊ฒฉ์(grid)์ ๋ง์ถ์ด bin๋ง๋ค maxpooling ํ์ฌ ๊ณ ์ ๋ ํฌ๊ธฐ์ vector๋ฅผ ๋ง๋ค์ด ๋
Feature vector์ FC layer๋ฅผ ๊ฑฐ์ณ Softmax๋ฅผ ํตํด ๋ถ๋ฅ, Regressor๋ฅผ ํตํด Bounding-box๋ฅผ ์กฐ์
๐๐จ Faster R-CNN
Selective Search ๋ถ๋ถ์ ๋ฅ๋ฌ๋์ผ๋ก ๋ฐ๊พผ Region Proposal Network(RPN)์ ์ฌ์ฉ
- RPN Feature map์์ CNN ์ฐ์ฐ์ sliding-window๊ฐ ์ฐ์ ์ง์ ๋ง๋ค Anchor-box๋ก ํ๋ณด์์ญ์ ์์ธก
- Anchor-box ๋ฏธ๋ฆฌ ์ง์ ํด๋์ ์ฌ๋ฌ ๊ฐ์ ๋น์จ๊ณผ ํฌ๊ธฐ์ Bounding-box
RPN์์ ์ป์ ํ๋ณด์์ญ์ IoU์์ผ๋ก ์ ๋ ฌํ์ฌ Non-Maximum Suppression(NMS) ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ต์ข ํ๋ณด์์ญ์ ์ ํ
- Non-Maximum Suppression(NMS)
- Detected ๋ bounding box ๋ณ๋ก Confidence threshold ์ดํ์ bounding box๋ ์ ๊ฑฐ
- ๊ฐ์ฅ ๋์ confidence score๋ฅผ ๊ฐ์ง box ์์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ ์๋ ๋ก์ง์ ๋ชจ๋ box์ ์์ฐจ์ ์ผ๋ก ์ ์ฉ
- ๊ฐ์ฅ ๋์ confience score๋ฅผ ๊ฐ์ง box์ ๊ณ์น๋ ๋ค๋ฅธ box๋ฅผ ๋ชจ๋ ์กฐ์ฌํ์ฌ IOU๊ฐ ํน์ threshold ์ด์์ธ box๋ฅผ ๋ชจ๋ ์ ๊ฑฐ
- IOU(์๋ ์ค๋ช )๊ฐ ์ผ์ ์ด์์ธ boundingbox๋ ๋์ผํ ๋ฌผ์ฒด๋ฅผ detect ํ๋ค๊ณ ํ๋จํ๊ณ ๊ณ์น๋ box๋ฅผ ์ ๊ฑฐํด ์ฃผ๋ ๊ณผ์
- ๋จ์ ์๋ box๋ง ์ ํ (์ต๋ํ ํ๋์ Object์ ํ๋์ Detection box๋ง์ด ์กด์ฌ)
์ ํ๋ ํ๋ณด์์ญ์ ํฌ๊ธฐ๋ฅผ ๋ง์ถ๊ธฐ ์ํด RoI Pooling์ ๊ฑฐ์น๊ณ ์ดํ Fast R-CNN๊ณผ ๋์ผํ๊ฒ ์งํ