๐ ๋ชฉ์ฐจ
1. Metric (IoU(Jaccard Similarity) , mAP , PR-curve , ROC-curve)
2. Traditional Detection Method
3. CNN : RCNN ๊ณ์ด (RCNN, fast RCNN, faster RCNN)
4. CNN : YOLO ๊ณ์ด
5. Transformer : DETR , SETR
6. Backbone Transformer : Swin Transformer
Object Detection๊ธฐ์ ๋ฐ์ ๊ณผ์ ์ด ์ ์ ๋ฆฌ๋ ์ถ์ฒ Survey๋ ผ๋ฌธ
โ [Liu 2018]
โ [Jiao 2019]
โ [Zaidi 2021]
1. Metric (IoU, mAP, PR-curve, ROC-curve)
preview
Detection๋ชจ๋ธ์ ์์์ ๋ฌผ์ฒด(object)๋ฅผ Bbox(Bounding_Box)๋ผ๋ ์ง์ฌ๊ฐํ์ผ๋ก ์ง์ ํ๋ค.
์ด๋, Box๋ง๋ค class์ confidence๋ฅผ ์ถ๋ ฅํ๋ค.
PASCAL VOC๋ํ, COCO ๋ํ ๋ฑ์์ ์ฑ๋ฅ์ ์ฃผ๋ก mAP๋ก ์ธก์ ํ๋ค.
IoU→AP→mAP ์์ผ๋ก ๊ณ์ฐ์ด ๋๊ธฐ์ IoU๋ถํฐ ์์๋ณด๊ณ ์ ํ๋ค.
์ถ์ฒ Survey ๋ ผ๋ฌธ: [Padilla 2020]
1.1 IoU (Intersection Over Union)
AP(Average Precision)๋ IoU๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ๋๋ฏ๋ก IoU์ ๋ํด ์์๋ณด์.
์๋ ์์ IoU์ ๋ํ ์์ ์ ์ํ๋ค.
IoU๋ Jaccard Similarity, Jaccard Index๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋๋ฐ, ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก prediction๊ณผ target๊ฐ์ percent overlap์ ์ ๋ํํ๋ ๋ฐฉ๋ฒ์ด๋ค.์ค์ ๋ก๋ Object์ Bbox๊ฐ ์ฌ๋ฟ ๋ํ๋ ๋ณต์กํ ์ํฉ์ด ๋๋ค.
โ ์ฐธ๊ฐ ํ๋๊ฐ ์ฌ๋ฌ ์์ธก๊ณผ ๊ฒน์น๊ฑฐ๋
โ ์์ธก์ด ์ฌ๋ฌ ์ฐธ๊ฐ๊ณผ ๊ฒน์น๊ณ ๊ฒน์นจ์ด ์๊ฑฐ๋.
1.2 AP. & mAP
AP (Average Precision)
AP๋ ์์ ๊ฐ์ ์ํฉ(Bbox๊ฐ ์ฌ๋ฟ ๋ํ๋๋ ์ํฉ)์์ ๊ณ์ฐํ๋ค.
AP๊ณ์ฐ์ ์ํด TP, FP, FN์ ์ธ์ผํ๋ค. cf) True = ๋ง์ถ๊ฒ์ ์๋ฏธ
AP ๊ณ์ฐ์๊ณ ๋ฆฌ์ฆ:
โ ์ ๋ขฐ๋ ์๊ณ๊ฐ์ ๋๋ Bbox๋ง ์ ํ, ์์ธก๋ชฉ๋ก์ ์์ฑ
โก ์์ธก๋ชฉ๋ก์ ์๋ Bbox๋ฅผ ์ ๋ขฐ๋๋ก ์ ๋ ฌ
โข Confidence๊ฐ์ด ํฐ ์์๋๋ก ์ฒ๋ฆฌ.
ํ์ฌ Bbox๊ฐ IoU ์๊ณ๊ฐ์ ๋์ผ๋ฉด TP๋ก ํ์ , ์๋๋ฉด FP๋ก ํ์
โ๏ธ์ด๋, 2๊ฐ ์ด์์ ๋ฌผ์ฒด์ ํ๋์ Bbox๊ฐ ๊ฒน์น๊ฒ ๋๋ค๋ฉด?
IoU๊ฐ ์ต๋์ธ ์์ ์ฌ์ฉํ๋ค.
TP๋ฐ์ ์, ์ฐธ๊ฐ๋ชฉ๋ก์์ TP_Bbox๋ฅผ ์ ๊ฑฐ, ์ด์ค์ ์์ ๋งบ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
์ด๋, ์์ธก๋ชฉ๋ก์ ์๋ Bbox๋ฅผ ๋ชจ๋์ฒ๋ฆฌํ, ์์ ๋งบ์ง๋ชปํ ์ฑ ๋จ์์๋ TP_Bbox๋ FN์ผ๋ก ํ์ ํ๋ค.
mAP (mean Average Precision)
AP๋ฅผ ๊ฐ ๋ฌผ์ฒด class์ ๋ํด ๊ณ์ฐ → ์ด AP๋ฅผ ๋ชจ๋ class์ ๋ํด ํ๊ท ํ ๊ฐ์ด๋ค.
์๋ ์์๋ฅผ ์ดํด๋ณด์.
๋จผ์ , Precision๊ณผ Recall์ ์๋์์์ฒ๋ผ ๊ตฌํ ์ ์๋ค.์ฆ, True = ๋ง์ถ๊ฒ์ ์๋ฏธํ๋ฏ๋ก Precision๊ณผ Recall์ ์๋์ฒ๋ผ ์ค๋ช ํ ์ ์๋ค.
โ Precision = (๋ง์ถ๊ฒ=TP) / (์์ธกํ ๊ฒ ์ค = ?P)
โ Recall = (๋ง์ถ๊ฒ=TP) / (์ค์ ์ค)
๋จผ์ mAP๋ฅผ ๊ตฌํ๋ ์์์ ๋ํด ์ค๋ช ํด๋ณด๊ฒ ๋ค.
โช Confidence=0.6 & IoU=0.5 ๋ก ์ค์ โ Confidence์๊ณ๊ฐ์ ๋๊ธด Bbox๋ก ์์ธก๋ชฉ๋ก {a,b,d}๋ฅผ ์์ฑ โก ์์ธก๋ชฉ๋ก์ Confidence์์ผ๋ก ์ ๋ ฌ → {b,d,a} โข ์ ๋ขฐ๋๊ฐ ๊ฐ์ฅ ๋์ b๋จผ์ ์ฒ๋ฆฌ. โ b๋ 2,3๊ณผ ๊ฒน์นจ → IoU๊ฐ ๋ ํฐ 2์ ์์ ๋งบ์ โ b-2์์ TP๋ก ํ์ ํ, 2๋ ์ฐธ๊ฐ(Ground_Truth)๋ชฉ๋ก์์ ์ ์ธ. โฃ 2๋ฒ์งธ ์ ๋ขฐ๋๋ฅผ ๊ฐ๋ d๋ฅผ ์ฒ๋ฆฌ โ d๋ 4์ IoU๊ฐ 0.12(<์๊ณIoU)์ด๋ฏ๋ก FP๋ก ํ์ โค ๋ง์ง๋ง Bbox์์ธก๋ชฉ๋ก์์ a๋ฅผ ์ฒ๋ฆฌ โ a๋ 1๊ณผ IoU๊ฐ 0.6(=์๊ณIoU)์ด๋ฏ๋ก TP๋ก ํ์ โฅ Bbox๋ก ์์ฑํ ์์ธก๋ชฉ๋ก์ ๋ชจ๋ ์ฒ๋ฆฌํ์๋ค. โฆ ์์ธก Bbox ์ฒ๋ฆฌ ํ, ์์ ๋ชป๋งบ์ 3๊ณผ 4๋ FN์ผ๋ก ํ์ . โง ์ต์ข ์ ์ธ Precision๊ณผ Recall์ ๋ค์๊ณผ ๊ฐ๋ค. โ TP=2 , FP=1 , FN=2 ∴ Precision = 2/3 ∴ Recall = 2/4 โจ Confidence์๊ณ๊ฐ์ 0.5๋ก ๋ฎ์ถ๋ฉด, Precision๊ณผ Recall์ ๋ค์๊ณผ ๊ฐ๋ค. โ TP=3 , FP=2 , FN=1 ∴ Precision = 3/5 ∴ Recall = 3/4
1.4 ROC / PR-Curve
PR-Curve
์์ PR-Curve์์ ์ ์ ์๋ ์ฌ์ค์ Precision๊ณผ Recall์ ์๋ก ๋ฐ๋น๋ก ๊ด๊ณ๋ฅผ ๋ณด์ธ๋ค๋ ์ ์ด๋ค.
์ด๋, PR๊ณก์ ์๋๋ถ๋ถ๋ฉด์ ์ด ์๋ฏธํ๋ ๋ฐ๊ฐ ๋ฐ๋ก AP(Average Precision)์ด๋ค.
AP๋ [0,1]์ ๋ฒ์๋ฅผ ๊ฐ์ง๋ฉฐ, 1์ ๊ฐ๊น์ธ์๋ก ์ข์ ์ฑ๋ฅ์ ๊ฐ์ง์ ์๋ฏธํ๋ค.
์ถ๊ฐ์ ์ผ๋ก, class๋ณ๋ก AP๋ฅผ ๊ตฌํ๊ณ , ๋ชจ๋ class์ ๋ํ ํ๊ท (mean)์ ๊ณ์ฐํ ๊ฒ์ด ๋ฐ๋ก mAP์ด๋ค.
ROC-curve
ROC Curve๋ ์์ฑ ํด๋์ค์ ์์ฑ ํด๋์ค์ ๋น์จ์ด ๊ท ํ์ ์ผ ๋ ์ฑ๋ฅ์ ํ๊ฐํ๋ ๋ฐ ์ ์ฉํ๋ค.
์ฆ, ํด๋์ค ๋ถ๊ท ํ์ด ๋ฎ์ ๋, ROC Curve๋ ๋ฏผ๊ฐ๋์ ํน์ด๋์ trade-off๋ฅผ ์ธก์ ํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๋ค.
์ข ๋ ์์ธํ ์ค๋ช ์ ์๋ ํ๊ธฐ๋ก ๋์ฒดํ๋ค.
2. Traditional Detection Method
Detection์ ์ด๊ธฐ์ฐ๊ตฌ๋ ์ฌ๋์ผ๊ตด์ ๊ตญํ๋์ด ์งํ๋์ด์๋ค.
PASCAL VOC๋ํ ์์ ์ดํ, ์ฌ๋ฌ class๋ก ํ์ฅ๋์ด ์ฐ๊ตฌ๊ฐ ์งํ๋์ด์๋ค. [Everingham2010]
Object Detection์ ๋ฌผ์ฒด์ ์์น์ class๋ฅผ ๋ชจ๋ ์์๋ด์ผ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ฐ,
์ด๋ค ๋ฌผ์ฒด๊ฐ ์ด๋์ ์๋์ง ํ๋ฒ์ ์์๋ด๊ธฐ ์ด๋ ต๋ค.
๋ฐ๋ผ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ํ๋ณด์์ญ์ ๋ง์ด ์์ฑํ๊ณ , ์์ญ์ classification algorithm์ผ๋ก ๊ฑธ๋ฌ๋ด๋ two-stage ์ ๊ทผ๋ฐฉ๋ฒ์ ์ฃผ๋ก ์ฌ์ฉํด์๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์, two-stage ์ ๊ทผ๋ฐฉ๋ฒ์ ์ ๋๋ก ๊ตฌํํ๋ ค๋ฉด
"ํ๋ณด์์ญ์ ๊ฐ๊ธ์ ์ ๊ฒ ์์ฑ"ํ๊ณ ,
"์ค์ ๋ฌผ์ฒด๋ฅผ ๋์น์ง ์์์ผํ๋ฉฐ",
"ํ๋ณด์์ญ์ ๋์ ์ ํ๋ฅ ๋ก ๋ถ๋ฅ"ํ ์ ์์ด์ผ ํ๋ค.
HOG
Viola Algorithm. with. HOG(Histogram Of Gradients)
2004๋ , ์ฑ๊ณต์ ์ธ ์ผ๊ตด๊ฒ์ถ๋ฐฉ๋ฒ์ผ๋ก Viola Algorithm์ด ์๋ค.
์ฌ๊ธฐ์, Dalal์ HOG Feature Extraction์ ์ ์ํ์๋ค.
์๋๋ Dalal์ HOG Feature Extraction์ ๊ฐ๋จํ ์ค๋ช ํ ๊ทธ๋ฆผ์ด๋ค.
์ข ๋ ์์ธํ ์ฌ๋ก๋ก ์์๋ฅผ ๋ค์ด๋ณด์.๋จผ์ ์์ฒ๋ผ ํ๋ณดํฌ๊ธฐ๋ฅผ 128×64๋ก ๋ณํํ๋ค.
์ดํ ์ด ์์ญ์ 8×8ํฌ๊ธฐ๋ก ๋๋๋ฉด, 16×8๊ฐ์ ํ์ผ์ด ์์ฑ๋๋ค.
์ดํ ๊ฐ ํ์ผ์์ ํน์ง์ ์ถ์ถํ๋ค.
ํ์ผ์ ์๋ 64๊ฐ์ ํ์์ ๊ฐ ์ํ๋ฐฉํฅ๊ณผ ์์ง๋ฐฉํฅ์ edge์ฐ์ฐ์๋ฅผ ์ ์ฉํด gradient๋ฐฉํฅ์ ๊ณ์ฐํ๊ณ
9๊ฐ์ ๊ตฌ๊ฐ์ ์์ํํ๋ค.
์ดํ, ์์ํ๋ gradient๋ฐฉํฅ์ผ๋ก histogram์ ๊ตฌํ๋ฉด 9์ฐจ์ feature vector๊ฐ ๋๋ค.
์ด๋, ๋ช ์๋ณํ์ ๋๊ฐํ ํ๊ธฐ ์ํด feature vector๋ฅผ ์ ๊ทํํ๋ค.
์ ๊ทํ๊ณผ์ ์์ 4๊ฐํ์ผ์ ํน์ง๋ฒกํฐ๋ฅผ ์ด์ด๋ถ์ฌ 36์ฐจ์์ ๋ฒกํฐ๋ฅผ ์์ฑํ๊ณ , 36๊ฐ์์์ ์ ๊ณฑ์ ํฉํ๋ฉด 1์ด ๋๋๋ก ํ๋ค.
์ด๋, 4๊ฐํ์ผ=window๋ผ ํ๋๋ฐ, ๊ฐ๋ก๋ฐฉํฅ์ผ๋ก 7๋ฒ, ์ธ๋ก๋ฐฉํฅ์ผ๋ก 15๋ฒ ์ด๋ํ๋ค. (sliding_window๋ฐฉ์)
๊ฒฐ๊ตญ 7×15×36 = 3780์ฐจ์์ ํน์ง๋ฒกํฐ๋ฅผ ์ป๋๋ฐ, ์ด๋ฅผ HOG Feature๋ผ ํ๋ค.
์ดํ HOG Feature๋ฅผ SVM์ ์ ๋ ฅํด ์ฌ๋์ผ ํ๋ฅ ์ ์ถ๋ ฅํ๋ค.
DPM
DPM (Deformable Part Model)
์ดํ ๋ฑ์ฅํ DPM์ ํํธ๋ฅผ ์ด์ฉํด ๋ฌผ์ฒด๋ฅผ ๋ชจ๋ธ๋งํ๋ค.
๊ทธ๋ ๊ธฐ์ part-based model๋ก ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
Object๋ ์์ธ์ ๋ชจ์์ด ์ฌํ๊ฒ ๋ณํ๊ธฐ์, DPM์ ์ด๋ฐ ํน์ฑ์ ๋ฐ์ํ๊ธฐ์ํด ๋ฌผ์ฒด๋ฅผ ๋ช๊ฐ์ ๋ถํ์ผ๋ก ๋ชจ๋ธ๋งํ๋ค.์์ ๊ทธ๋ฆผ์ 5๊ฐ part๋ก ๋ชจ๋ธ๋ง์ ํ๋ค.
โ ์ข์ธก์ ๋ฌผ์ฒด์ ์ฒด
โ ์ค์์ 5๊ฐ์ part
โ ์ฐ์ธก์ part๊ฐ ๋ฐ์ํ ์์น์ ๋ํ ํ๋ฅ ๋ถํฌ
์ด๋, Feature Extraction์ผ๋ก๋ HOG๋ฅผ ์ฌ์ฉํ๋ค.
๋ํ, DNN๋์ ์ด์ ์ด๊ธฐ์Detection Model์ ์์ ๊ทธ๋ฆผ์ฒ๋ผ ํ์ต์ผ๋ก ์์๋ธ๋ค.
3. R-CNN ๊ณ์ด (RCNN, Fast R-CNN, Faster R-CNN)
3.1 R-CNN
R-CNN์ ํ๋ณด์์ญ์ ์์ฑํ๋๋จ๊ณ์ ํ๋ณด์์ญ์ ๋ถ๋ฅํ๋ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋๋ค [Girshick 2014].
R-CNN์ ํ๋ณด์์ญ์ ์์ญ์ ์[Region Proposal]์ด๋ผํ๋ค.
2-stage๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์ RCNN๊ณ์ด๋ฐฉ๋ฒ๋ค์ 2-stage๋ฐฉ๋ฒ์ด๋ผ ๋ถ๋ฅธ๋ค.
์๋ ๊ทธ๋ฆผ์ ์์ญ์ ์๊ณผ ์์ญ๋ถ๋ฅ์ 2-stage๋ฅผ ๊ฑฐ์น๋ RCNN์ฒ๋ฆฌ๊ณผ์ ์ด๋ค.
โ ์์ญ์ ์๊ณผ์
๋ฌผ์ฒด๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ ์์ญ์ ์ฐพ๋๋จ๊ณ.
RCNN์ Selective Search Algorithm์ผ๋ก image์์ 2000์ฌ๊ฐ์ ํ๋ณด์์ญ์ ์์ฑํ๋ค.
Selective Search๋ image๋ฅผ super pixel๋ก ๋ถํ ํ, clustering๊ณผ์ ์ผ๋ก ์์ญ์ ์์ฑ.
์์ฑ๋ ์์ญ์ 227×227ํฌ๊ธฐ๋ก ์ ๊ทํํ๊ณ ,
CNN์ ์ ๋ ฅํด 4096์ฐจ์์ ํน์ง๋ฒกํฐ๋ฅผ ์ถ์ถํ๋ค.
โ ์์ญ๋ถ๋ฅ๊ณผ์
์ถ์ถ๋ ํน์ง๋ฒกํฐ๋ฅผ ๋ถ๋ฅํด ๋ฌผ์ฒด์ ํด๋์ค๋ฅผ ์์๋ด๋์ผ์ SVM์ด ๋ด๋นํ๋ฉฐ,
SVM์ Binary-classifier์ด๊ธฐ์ ๋ฌผ์ฒด๋ง๋ค SVM์ ํ์ตํด์ผํ๋ค.
Pascal VOC๋ 20๊ฐ class๊ฐ ์์ผ๋ฏ๋ก 21๊ฐ SVM์ด ๊ฐ ํด๋์คํ๋ฅ ์ ๊ณ์ฐํด
๊ทธ๋ฆผ์ฒ๋ผ ๋งจ ์ค๋ฅธ์ชฝ์ ์๋ ํด๋์คํ๋ฅ ๋ฒกํฐ๋ฅผ ์ถ๋ ฅํ๋ค.
cf) 21๋ฒ์งธ SVM์ ๋ฌผ์ฒด๊ฐ ์๋ ํด๋์ค๋ฅผ ์๋ฏธ.
์ต์ข ์ ์ผ๋ก 2000์ฌ๊ฐ ํ๋ณด์์ญ์ ๋ํด ์์น์ ํด๋์ค์ ๋ณด๋ฅผ ํ๋ณดํ ํ,
21๋ฒ ํด๋์ค๋ฅผ ๋ฒ๋ฆฌ๊ณ ๋๋จธ์ง์๋ํด ํ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ์ณ ์์น์ ํด๋์ค๋ฅผ ์ต์ข ์ ์ผ๋ก ์ถ๋ ฅํ๋ค.
์ฆ, "Selective Search์๊ณ ๋ฆฌ์ฆ → RoI ์์ฑ → CNN์ผ๋ก ํน์ง๋ฒกํฐ ์ถ์ถ → SVM" ์์ด๋ค.
๋ค๋ง, RCNN์ ๋ถ๋ฅ์ SVM์ ์ฌ์ฉํ๊ณ ์์ญ์ ์์ ์ํด ๊ณ ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๋ฑ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๊ฒฐ์ ์ ๋จ์ ์ด ์๋ค.
์ด๋ก์ธํด RCNN์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๋ fast RCNN๊ณผ faster RCNN์ด ๋ฑ์ฅํ๋ค.
3.2 Fast-RCNN
์๋๊ทธ๋ฆผ์ Fast-RCNN์ ์ฒ๋ฆฌ๊ณผ์ ์ด๋ค [Girshick 2015].
โ ์์ญ์ ์๋จ๊ณ: Selective Search Algorithm ์ฌ์ฉ.
โ ์์ญ๋ถ๋ฅ๋จ๊ณ: SVM์ Neural Net์ผ๋ก ๋์ฒด.
โ RoI ํฌ์
input image๋ฅผ Conv์ ํต๊ณผ์์ผ Convํน์ง๋งต์ ์ป๋๋ค.
Convํน์ง๋งต์์ ํ๋ณด์์ญ์ ํด๋นํ๋๊ณณ์ RoI(Region Of Interest)๋ก ์ง์ ํ๋, RoIํฌ์์ ์งํํ๋ค.
๊ทธ๋ฆผ์์ ์ข์ธก์ ์์ ํด๋นํ๋ RoI๊ฐ ๋ ธ๋์์ธ๋ฐ, RoI์ RoIํ๋ง์ธต์ ์ ์ฉํด ๊ณ ์ ํฌ๊ธฐ๋งต(๋ น์ 7×7๋งต)์ ์ถ๋ ฅํ๋ค.
โ RoI ํน์ง๋ฒกํฐ์ถ์ถ
์ด ํน์ง๋งต์ 2๊ฐ์ FC์ธต์ ํต๊ณผ์์ผ 4096์ฐจ์์ RoIํน์ง๋ฒกํฐ๋ก ๋ณํํ๋ค.
RoIํน์ง๋ฒกํฐ๋ 2๊ฐ๋๋ก ๋๋๋ค.
โ ๋ถ๋ฅ ๋ฐ ํ๊ท๊ณผ์ ์ ๋ชจ๋ RoI์ ์ ์ฉ
ํ๊ณณ์ ๋ถ๋ฅ๋ฅผ ๋ด๋นํ๋ FC์ธต์ ํต๊ณผ, ํด๋์คํ๋ฅ ๋ฒกํฐ๋ฅผ ์ถ๋ ฅํ๊ณ
ํ๊ณณ์ ํ๊ท๋ฅผ ๋ด๋นํ๋ FC์ธต์ ํต๊ณผ, ํด๋์ค๋ณ ๋ฐ์ค์ ๋ณด(x,y,h,w)๊ฐ ๋๋ค.
์ฆ, "RoIํฌ์ → RoI ํน์ง๋ฒกํฐ์ถ์ถ → ๋ถ๋ฅ ๋ฐ ํ๊ท๊ณผ์ ์ ๋ชจ๋ RoI์ ์ ์ฉ" ํ๋ค.
๋ฌผ์ฒด์์์ผ๋ก ํ์ ๋ RoI๋ ๋ฒ๋ฆฌ๊ณ , ๋๋จธ์ง๋ ํ์ฒ๋ฆฌ ํ ๋ฐ์ค์ ๋ณด์ ํด๋์ค์ ๋ณด๋ฅผ ์ต์ข Detection๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
Fast-RCNN์ ๋ฐ์ค์ ๋ณด๋ฅผ ์์๋ด๋ ํ๊ท์ ํด๋์ค๋ฅผ ์์๋ด๋ classification์ ๋์์ ์ํํ๊ธฐ ๋๋ฌธ์ ํ๋์ Loss function์ผ๋ก ๋ task๋ฅผ ๋ฌ์ฑํด์ผํ๋ค.
โ ์์คํจ์: J = Jclassification + λโJregression ํ์
์ด๋ฐ ์์คํจ์๋ฅผ ๋ค์ค๊ณผ์ ์์คํจ์(Multi-task Loss function)๋ผ ํ๋ค.
λ๋ ๋ task์ ๋น์ค์ ๊ฒฐ์ ํ๋ hyper-parameter๋ก ๋ ผ๋ฌธ์์๋ 1๋ก ์ค์ ํ๋ค.
๋ค๋ง, ์ฌ์ ํ ์์ญ์ ์๋จ๊ณ์์ ๊ณ ์ ์๊ณ ๋ฆฌ์ฆ(Selective Search)์ ์ฌ์ฉํ๊ธฐ์ ํ์ฅ์ ์ด๋ฏธ์ง์ฒ๋ฆฌ์ CPU๋ก 2์ด๊ฐ๋ ๊ฑธ๋ฆฐ๋ค ์๋ ค์ ธ์๋ค.
3.3 Faster-RCNN
์๋๊ทธ๋ฆผ์ Faster-RCNN์ ์ฒ๋ฆฌ๊ณผ์ ์ผ๋ก Fast-RCNN์ ๋นํด ์ ํ๋์ ์๋๋ฅผ ํ๊ธฐ์ ์ผ๋ก ๊ฐ์ ํ์๋ค [Ren 2015].
์ค์ง CNN์ ๊ฒฝ๋ง์ผ๋ก๋ง Object Detection์ ์ํํ๋ ์งํ์ ์ด์ด๋ฒ๋ ธ๊ธฐ์ ๋งค์ฐ ๊ธฐ๋ ๋น์ ์ด๋ผ ํ ์ ์๋ค.
โ ์์ญ์ ์๋จ๊ณ: ์์ญ์ ์๋ชจ๋, RPN(Region Proposal Network)์ ๊ฒฝ๋ง ์ฌ์ฉ.
โ ์์ญ๋ถ๋ฅ๋จ๊ณ: Fast R-CNN ์ฌ์ฉ.
โ RPN
Pre-Trained VGG16์ ์์ ๋ฐฐ์นํด ํน์ง๋งต์ ์ถ์ถ(๋ ธ๋์ H×W๋งต)ํ๋ค.
RPN์ ์ด ํน์ง๋งต์ ๊ฐ pixel์์ 3×3 filter๋ก 512์ฐจ์์ ํน์ง๋ฒกํฐ๋ฅผ ์ถ์ถํ๋ค.
์ด ํน์ง๋งต์ ์๋ก ๋ค๋ฅธ 2๊ฐ์ 1×1 convolution์ ์ ์ฉํด 6๊ฐ์ ๊ฐ๋ค์ ์ถ์ถํ๋ค.
โ ๋ฌผ์ฒด์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ 2๊ฐ์ ๊ฐ
โ ๋ฐ์ค์ ๋ณด๋ฅผ ๋ํ๋ด๋ 4๊ฐ์ ๊ฐ.
์์ ์ฐ์ฐ์ 9๋ฒ ์ ์ฉํด ํฌ๊ธฐ์ ๊ฐ๋ก์ธ๋ก๋น์จ์ด ๋ค๋ฅธ 9๊ฐ์ ๋ฐ์ค (= Anchor)๋ฅผ ์์ฑ.
Anchor: ์ฌ๋ฌํฌ๊ธฐ์ ๋ฌผ์ฒด๋ฅผ ํํํ๋ Anchor๋ฅผ ์์ฑํจ์ผ๋ก์จ ๋ค์คํฌ๊ธฐ์ ๋ฌผ์ฒดํ์ง๋ฅ๋ ฅ์ ๊ฐ์ถ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก H×W์ pixel๋ง๋ค 9๊ฐ์ Anchor๊ฐ ์์ฑ๋๋ฏ๋ก H×W×9๊ฐ์ Anchor๊ฐ ์์ฑ๋๋ค.
์ฌ๊ธฐ์ NMS๋ฅผ ์ ์ฉํด 2,000์ฌ๊ฐ์ Anchor๋ง ๋จ๊ธด๋ค.
์ฆ, CNN์ผ๋ก ํน์ง๋งต ์ถ์ถ → 1×1 conv๋ก 6๊ฐ๊ฐ ์ถ์ถ 9ํ ์งํ → Anchor Box์์ฑ ์์ด๋ค.
โ Fast R-CNN
์ด Anchor๋ค์ RoI์ผ๋ก ๊ฐ์ฃผํด ์ ๊ทธ๋ฆผ์ ์ ๊ฒฝ๋ง์ ๋ท๋ถ๋ถ์ ์๋ Fast-RCNN์ผ๋ก ์ ๋ ฅํ๋ค.
Fast-RCNN์ ํ๋ณด์์ญ ๊ฐ๊ฐ์ ๋ํด RoIํฌ์ → RoI ํน์ง๋ฒกํฐ์ถ์ถ → ๋ถ๋ฅ ๋ฐ ํ๊ท๊ณผ์ ์ ์ ์ฉํ๋ค.
๋ฌผ์ฒด์์์ผ๋ก ํ์ ๋ ํ๋ณด์์ญ์ ๋ฒ๋ฆฌ๊ณ , ๋๋จธ์ง ํ์ฒ๋ฆฌ ํ, ๋ฐ์ค์ ๋ณด์ ํด๋์ค์ ๋ณด๋ฅผ ์ต์ข Detection๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
4. YOLO ๊ณ์ด
YOLO๋ RCNN๊ณ์ด์ ๋นํด ์ ํ๋๋ ๋จ์ด์ง๋ ์๋๊ฐ ์๋ฑํ ๋น ๋ฅธ ์ฅ์ ์ด ์๋ค. (๋ฌผ๋ก , ์ด๋ ์๋ ์๊ธฐ๋ก ์ต๊ทผ์๋ YOLOv8, YOLOX๊ณ์ด ๋ฑ์ผ๋ก ์ถฉ๋ถํ RCNN์ ๋ฐ์ด๋๋ ์ฑ๋ฅ์ ๋ณด์ด๊ณ ์์ผ๋ฉฐ, ์ ํ๋๊ฐ ๋์ ๋ชจ๋ธ์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ, InternImage๋ DETR๊ณ์ด์ ์ฌ์ฉํ๋ค.)
2016๋ ์ต์ด ๋ฐํ๋ YOLO v1์ Titan X GPU์์ 45FPS๋ฅผ ์ฒ๋ฆฌํ๋ค.[Redmon2016]
YOLO๋ ๋ฌผ์ฒด์ ์์น์ ํด๋์ค์ ๋ณด๋ฅผ Regression์ผ๋ก ํ๋ฒ์ ์์๋ด๋, End-to-End๋ฐฉ์์ ๊ณ ์ํ๋ค.
YOLO v1์ ํน์ง
image๋ฅผ s×s๊ฒฉ์๋ก ๋๋๋ค.
(์ค์ ๊ตฌํ์ ์๋๊ทธ๋ฆผ์ ๋ ธ๋๊ฒฉ์์ฒ๋ผ s=7๋ก ์ค์ ํด ์ด 49๊ฐ์ ์นธ์ด ์กด์ฌํ๋ค; ๋นจ๊ฐ๋ฐ์ค๋ dataset์ ๋ผ๋ฒจ๋ง๋ ์ฐธ๊ฐ์ด๋ค.)
์๋๊ทธ๋ฆผ์์ ๊ฒ์์นธ์ ์๋ก๋ค์ด 90์ฐจ์์ ๋ฒกํฐ๋ก ํํํด๋ณด์.
๋นจ๊ฐ์์ ์ข์ธก์ ์๋ฅผ ํ์ํ ๋นจ๊ฐ๋ฐ์ค์ ์ค์ฌ์ ๊ฒ์์นธ์ ๋์ด๊ธฐ์ ๊ฒ์์นธ์ด ์ด ๋ฐ์ค๋ฅผ ์ฑ ์์ง๋ค.
๋ฒกํฐ๋ 90์ฐจ์์ธ๋ฐ ์์ 5๊ฐ์์(x1, y1, w1, h1, o1)๋ ์ด ๋ฐ์ค์ ์์น์ ํฌ๊ธฐ, ์ ๋ขฐ๋๋ฅผ ์๋ฏธํ๋ค.
๋ฐ์ค์ ์์น์ ํฌ๊ธฐ๋ ์์์ขํ๊ณ๋ฅผ [0,1]์ฌ์ด๋ก ์ ๊ทํํ๊ณ ์ ๊ทํ์ขํ๋ฅผ ์ค์ฌ์ผ๋ก ํํํ๋ค.
x2,y2,w2,h2,o2๋ ๋๋ค๋ฅธ ๋ฐ์ค๋ฅผ ํํํ ์ ์๊ธฐ์ ํ์นธ์ ๋ฐ์ค๋ฅผ 2๊ฐ๊น์ง ์ฑ ์์ง ์ ์๋ค.
p0~p80์ ํด๋น๋ฐ์ค๊ฐ ์ด๋ค๊ฐ์ฒดํด๋์ค์ ์ํ๋์ง ๋ํ๋ด๋ one-hot์ฝ๋์ด๋ค.YOLO๊ฐ ๋ฌผ์ฒด์ ์์น์ ํด๋์ค๋ฅผ ํํํ๋ ๋ฐฉ์
YOLO๋ RCNN๊ณ์ด์ ๋นํด ์๋นํ ๋จ์ํ๋ฐ, ์๋ ๊ทธ๋ฆผ์ YOLO๊ฐ ์ฌ์ฉํ๋ CNN์ ๊ตฌ์กฐ์ด๋ค.
โ Conv์ธต: 24๊ฐ / MaxPool์ธต: 4๊ฐ / FC์ธต: 2๊ฐ ๋ก ๊ตฌ์ฑ๋๋ฉฐ
- input์ 448×448ํฌ๊ธฐ๋ก ๋ณํ๋์ด ์ ๋ ฅ๋๊ณ
- output์ 7×7×90์ ์ถ๋ ฅํ ์๋ฅผ ๊ฐ๋๋ค.์ ๊ทธ๋ฆผ์์ ์ ๊ฒฝ๋ง์ image๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ 7×7×90์ ์ถ๋ ฅํ ์๋ฅผ ์ฐธ๊ฐ์ผ๋ก ์ฃผ์ด ํต์งธ๋ก ํ์ตํ๋ค. YOLO๊ฐ ์ฌ์ฉํ๋ Convolution์ ๊ฒฝ๋ง ๊ตฌ์กฐ
์ฐธ๊ฐํ ์์ [float์ผ๋ก ํ์๋๋ Bbox์ ๋ณด], [OneHot์ฝ๋๋ก ํํ๋๋ ํด๋์ค์ ๋ณด]๊ฐ ์์ฌ์๊ธฐ์
classification๊ณผ regression์ด ๋์์ ์ผ์ด๋๋ค.
YOLO์ Loss function
YOLO์ Loss function์ 5๊ฐ์ ํญ์ผ๋ก ๊ตฌ์ฑ๋ ์กฐ๊ธ ๋ณต์กํ ์์ ๊ฐ๋๋ค.
โ 1, 2ํญ์ ๊ฐ ๋ฐ์ค์ ์์น์ค๋ฅ์ ํฌ๊ธฐ์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Regression Loss์ด๋ค.
โ 3ํญ์ ๋ฌผ์ฒด๊ฐ ์์ง๋ง ์๋ค๊ณ ํ FN์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Confidence Loss์ด๊ณ ,
โ 4ํญ์ ๋ฌผ์ฒด๊ฐ ์์ง๋ง ์๋ค๊ณ ํ FP์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Confidence Loss์ด๋ค.
โ 5ํญ์ class๋ฅผ ๋ํ๋ด๋ OneHot์ฝ๋์ ์ค๋ฅ๋ฅผ ์ธก์ ํ๋ Classification Loss์ด๋ค.
YOLO v3
YOLO v3๋ ์ฌ๋ฌ scale์ ํํํด ๋ค์ํ ํฌ๊ธฐ์ ๋ฌผ์ฒด๋ฅผ ํ์งํ๋ ๋ฅ๋ ฅ์ด ํฅ์๋์๋ค [Redmon 2018].
YOLO v3์ (object, class)์ 85์ฐจ์ ๋ฒกํฐ๋ฅผ ์ถ์ถํ๋ ์ธต์ ์ ๊ฒฝ๋ง 3๊ณณ์ ๋ฐฐ์นํ๋ค.
โ yolo_82์ธต์์๋ 14×14๊ฒฉ์๋ก ๋๋ 14×14×85×3ํ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ฐ๋ผ์ 14×14์ ๊ฐ ์์๋ ๋ฐ์ค๋ฅผ 3๊ฐ๊น์ง ์ถ๋ ฅํ๋ค.
โ yolo_94์ธต์์๋ 28×28๊ฒฉ์๋ก ๋๋ 28×28×85×3ํ ์๋ฅผ ์ถ๋ ฅํ๋ค.
โ yolo_106์ธต์์๋ 56×56๊ฒฉ์๋ก ๋๋ 56×56×85×3ํ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ด ์ธต๋ค์ด ์ถ๋ ฅํ ํ ์๋ฅผ ๊ฐ์ฒด์ ๋ณด๋ก ๋ณํํ๋ฉด, ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํ ์ ์๋ค.
5. Transformer : DETR , SETR
๊ณ ์ ๋ฐฐ๊ฒฝ)
Image์์ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ ์ ๊ฒฝ๋ง์ ์ฌ๋ฌ Bbox๋ฅผ ์์ธกํด์ผํด์ ์งํฉ์์ธก๋ชจ๋ธ์ด๋ผ ํ ์ ์๋ค.
๋ชจ๋ธ์ ์์ธก๊ณผ ์ ๋ต์ ํด๋นํ๋ ๋ผ๋ฒจ์ด ๋ชจ๋ Box์งํฉ์ด๊ธฐ์ Hungarian Algorithm์ผ๋ก ์ต์ ์ ๋งค์นญ์์ ์์๋ด ์์คํจ์๋ฅผ ๊ณ์ฐํ๋ค.
๊ณ ์ ๋ฐฉ๋ฒ๊ณผ ๋ฅ๋ฌ๋ ๋ชจ๋ ํ๋ณด์์ญ์ ์ถฉ๋ถํ ๋ง์ด ์์ฑํ ํ, ํ๋ณด์์ญ ๊ฐ๊ฐ์ ๋ํด ์ด๋ค ๋ฌผ์ฒด์ธ์ง ๋ถ๋ฅํ๋ ์ ๊ทผ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์ดํ, ์ฌ๋ฌ Bbox๊ฐ ์ค๋ณต๊ฒ์ถ๋๋ ํ์์ด ๋ฐ์ํ๋ฉด, ์ค๋ณตํด์๋ฅผ ์ํด ๋น์ต๋์ต์ (NMS)๋ก ํ์ฒ๋ฆฌ๋ฅผ ์ ์ฉํ๋ค.
๊ณ ์ ๋ฐฐ๊ฒฝ)Transformer๋ฅผ ์ฌ์ฉํ๋ฉด,
โ ํ๋ณด์์ญ(RoI)์ ์์ฑํ๋ ์ค๊ฐ๋จ๊ณ์์ด Box์งํฉ์ ์ง์ ์์ธกํ ์ ์์๊น?
โ ์ค๋ณตํ์์ด ์์ ์ผ์ด๋์ง ์๊ฒ ํ ์ ์์๊น?
โ Convolution๊ธฐ๋ฐ์ Faster-RCNN์ด๋ YOLO๋ณด๋ค ์ข์ ์ฑ๋ฅ์ ์ป์ ์ ์์๊น?
CNN์ ์ ์ฐํ๊ธฐ์ Faster-RCNN๊ณผ YOLO v3์ ๊ตฌ์กฐ๋ฅผ ์์ ์์ฌ๋ก ์ค๊ณ๊ฐ๋ฅํ์๋ค.
ํ์ง๋ง Transformer๋ ๋ค์ ๊ณ ์ ์ ์ธ๋ฐ, ์ด์ ๋ ์๋์ ๊ฐ๋ค.
โ T × dmodel ํฌ๊ธฐ์ tensor๊ฐ ์ฌ๋ฌ encoder๋ธ๋ก๊ณผ decoder๋ธ๋ก์ ํ๋ฅด๋ฉฐ ์ฐ์ฐ์ด ์งํ
Encoder๋ง ์ฌ์ฉ๋๋ ViT์ ๋ฌ๋ฆฌ(https://chan4im.tistory.com/163)
DETR๋ ์์์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ค์งํฉ์ ์ถ๋ ฅํด์ผํ๊ธฐ์ Encoder์ Decoder ๋ชจ๋ ์ฌ์ฉํ๋ค.
Decoder์ ๋ถ์ ์ถ๋ ฅ์ธต์ T × dmodel tensor๋ฅผ Box์งํฉ์ผ๋ก ๋ณํํด์ผํ๋ค.
์์คํจ์๋ Transformer๊ฐ ์์ธกํ Box์งํฉ๊ณผ label๋ฐ์ค์งํฉ์ด ์ผ์นํ๋ ์ ๋๋ฅผ ์ธก์ ํ๋ ๋ฅ๋ ฅ์ ๊ฐ์ ธ์ผํ๋ค.
Box๋ ์ง์ฌ๊ฐํ์ ํํํ๋ 4๊ฐ์ ์ขํ(coordinate)์ ๋ฌผ์ฒด ํด๋์ค๋ฅผ ๋ํ๋ด๋ Classํ๋ฅ ๋ฒกํฐ(softmax)๋ก ํํ๋๋ค.
5.1 DETR (DEtection TRansformer)
Faster-RCNN๊ฐ์ CNN๊ธฐ๋ฐ ์ ๊ฒฝ๋ง์ Box์งํฉ์ ๋ฐ๋ก ์์ธกํ๊ธฐ ์ด๋ ต๊ธฐ์
RoI๋ฅผ ์์ฑ ํ, ์์ญ์ ๋ถ๋ฅํ๋ ์ผ์ข ์ ์ฐํํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ฆ, ๊ธฐ์กด๋ฌธ์ ๋ฅผ ๋๋ฆฌ๋ฌธ์ ๋ก ๋ฐ๊พธ๊ณ ๋๋ฆฌ๋ฌธ์ ๋ฅผ ํธ๋ ์ ์ด๋ผ ๋ณผ ์ ์๋ค.
[Carion 2020]์ transformer๋ฅผ ์ด์ฉํด ์งํฉ์์ธก์ ํ๋ DETR๋ชจ๋ธ์ ์ ์ํ๋ค.
DETR์ RoI์์ฑ๋จ๊ณ๊ฐ ์๊ณ , NMS๋ผ๋ ํ์ฒ๋ฆฌ๋จ๊ณ๊ฐ ์๋ค.
์ฆ, End-to-End ํ์ต์ด ๊ฐ๋ฅํ๋ค.์์ ๊ทธ๋ฆผ์ DETR๋ชจ๋ธ๊ตฌ์กฐ๋ก DETR์ โ ~โข๋ก ํ์ํ 3๊ฐ์ง ๋ชจ๋๋ก ๊ตฌ์ฑ๋๋ค.
โ ๋ชจ๋ โ
CNN์ ํตํด Feature Extraction์ ์งํ.
๋ํ, 1×1 convolution์ ์ ์ฉํด channel์ C์์ dmodel๋ก ์ค์ฌ h×w×dmodel์ tensor๋ก ๋ณํํ๋ค.
์ดํ Flatten์ผ๋ก pixel์ ์ด์ด๋ถ์ฌ ํ์ ๋ฐฐ์นํ hw×dmodel ํ๋ ฌ์ ์ป๋๋ค.
์ ๊ทธ๋ฆผ์์๋ hw๋ฅผ T๋ก ํ๊ธฐํ๋๋ฐ, ์ด๋ ์ต์ข ์ ์ผ๋ก transformer์ input์ผ๋ก ์ ๋ ฅํ T×dmodelํ๋ ฌ์ ์ป์์ ์๋ฏธํ๋ค.
์ด ํ๋ ฌ์ ๊ฐ ํ์ ์ถ์๋ image์ pixel์ ํด๋นํ๋ฉฐ, Self-Attention๊ณ์ฐ ์ ํ์ด Query๋ก ์ฐธ์ฌํ๊ธฐ์
์ถ์๋ pixel(= patch)๊ฐ์ attention์ ๋ณด๋ฅผ ์ถ์ถํ๋ ์ ์ด๋ค.
์ฆ, DETR์ Self-Attention์ ๋ฐ์ํ๋ค ๋ณผ ์ ์๋ค.
โ ๋ชจ๋ โก
Encoder-Decoder๋ก ๊ตฌ์ฑ๋ Transformer๋ก
๋ชจ๋ โ ์์ ์ ๋ ฅ๋ T×dmodel ํ๋ ฌ์ Position Encoding์ ์ ์ฉํด Encoder๋ธ๋ก1์ ์ ๋ ฅํ๋ค.
Encoder๋ธ๋ก1, ... , Encoder๋ธ๋กM์ ํตํด ๋ณํ๋ ํ๋ ฌ์
Decoder์ MHA์ ์ ๋ ฅ๋์ด Key์ Value์ ์ญํ ์ ํ๋ค.
Decoder๋ฅผ ์ข ๋ ์ดํด๋ณด์.๊ธฐ์กด Transformer์์๋ Decoder๊ฐ Auto-Regressive๋ฐฉ์์ผ๋ก ์๋ํ๋ค.
์ฆ, NLP์์ <SOS>ํ ํฐ์ ์ฃผ๋ฉด ์ฒซ๋ฒ์งธ ๋จ์ด๊ฐ ์์ฑ๋๊ณ
<SOS>ํ ํฐ๊ณผ ์ฒซ๋ฒ์งธ ๋จ์ด๋ฅผ ์ฃผ๋ฉด ๋๋ฒ์งธ ๋จ์ด๊ฐ ์์ฑ๋๋ค.
์ด๋ฐ AR๋ฐฉ์์ ๊ฐ์ฒดํ์ง์ ์ ์ฉํ ์ ์์๊น?? → โ
(Bbox๋ ์์์์ด ์งํฉ์ผ๋ก๋ง ํํํ๊ธฐ ๋๋ฌธ.)
Decoder ์ ๋ ฅ์ ๋ณด๋ฉด object queries๋ผ ํ์๋ K๊ฐ ๋ฒกํฐ๊ฐ ์๋ค.
K×dmodelํฌ๊ธฐ์ ํ๋ ฌ์ด ์ ๋ ฅ๋๋ค๋ ์๋ฏธ๋ก K๋ ํ์ง๊ฐ๋ฅํ ๋ฌผ์ฒด์ ์ต๋๊ฐ์์ด๋ค.
์ถ๋ ฅ์ธต์ ๋ฌผ์ฒด๊ฐ ์๋๊ฒฝ์ฐ, ∅๋ฅผ ์ถ๋ ฅํ ์ ์๊ธฐ์ ๊ฐ๋ณ๊ฐ์์ ๊ฐ์ฒดํ์ง๊ฐ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆผ์ ์์์์๋ 2๊ฐ์ ๋ฐ์ค์ 3๊ฐ์ ∅๋ฅผ ์ถ๋ ฅํ๋ค.
Decoder์ ์ต์ด ์ ๋ ฅ์ธ object queries๋ Box์ ๋ํ ์๋ฌด๋ฐ ์ ๋ณดโ
Position Encoding, P๋ฅผ ๊ฐ๊ณ ์ถ๋ฐํด์ผํ๋๋ฐ, DETR์ ํ์ต์ ํตํด ์์๋ธ P๋ฅผ ์ฌ์ฉํ๋ค.
โ ๋ชจ๋ โข
Decoder๋ธ๋ก์ด ์ถ๋ ฅํ K×dmodelํ๋ ฌ์ ๊ฐ ํ์ Feed-Foward์ ํต๊ณผ์์ผ ๋ฐ์ค์ ๋ณด๋ก ๋ณํํ๋ค.
์ด๋ ๊ฒ ๋ชจ๋ธ์ด ์์ธกํ ๋ฐ์ค์งํฉ์ ลท๋ผ ํ๊ณ
์ ๋ต์ ํด๋นํ๋ Ground_Truth Box์งํฉ์ y๋ผ ํ์.
y์ ∅๋ฐ์ค๋ฅผ ์ถ๊ฐํด ลท์ฒ๋ผ K๊ฐ ๋ฐ์ค๋ฅผ ๊ฐ๊ฒ ํ๋ค.
ลท๊ณผ y์ Hungarian Algorithm์ ์ฌ์ฉํด ์ต์ ๋งค์นญ์์ ๊ตฌํ๋ค.
๐ Loss Function
๋งค์นญ๋ ์ฐธ๊ฐ๋ฐ์ค i์ ์์ธก๋ฐ์ค j์์ ์ด์ฉํด ์๋ ์ฒ๋ผ ์์คํจ์๋ฅผ ์ ์ํ๋ค.์ฒซ๋ฒ์งธ ํญ์ class๋ฅผ ๋ง์ท๋์ง ์ธก์ ํ๋ค. (pฬj(ci)๋ classํ๋ฅ ๋ฒกํฐ์์ ์ฐธ๊ฐclass์ ํด๋นํ๋ ํ๋ฅ .)
๋๋ฒ์งธ, ์ธ๋ฒ์งธ ํญ์ ๋ฌผ์ฒด์์น๋ฅผ ์ผ๋ง๋ ์ ํํ ๋งํ๋์ง ์ธก์ ํ๋ค. (2๋ฒ์งธํญ: IoU ; 3๋ฒ์งธํญ: L1 Distance)
Self-Attention Matrix์ = softmax(QKT / √dkey).
์ด ํ๋ ฌ์ image๋ฅผ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ Q๋ฒกํฐ๊ฐ ์ํธ์ฃผ๋ชฉํ๋ ์ ๋๋ฅผ ํํ.์ ์ ํ๋ฏ, DETR์์ ๋ชจ๋ โ ์ด m×nํฌ๊ธฐ์ ๊ธฐ์กดimage๋ฅผ h×w๋ก ์ถ์ํ๊ณ
์ถ์๋ ํน์ง๋งต์์ ํ์๊ฐ๊ฐ์ Q๋ฒกํฐ๋ก ์ทจํ๊ธฐ์
Self-Attention Matrix๋ ์ถ์๋ pixel (= patch)๊ฐ ์ํธ์ฃผ๋ชฉํ๋ ์ ๋๋ฅผ ์ธก์ ํ๋ค.
์์ ๊ทธ๋ฆผ์์ ์ฃผํฉ์ ํ์๋ ์ฝ๋ผ๋ฆฌ์ ๊ฒฝ์ฐ, ์ฝ์ ๋ฐ, ๋ฑ, ๊ผฌ๋ฆฌ์ ์ฃผ๋ชฉํ๊ณ ์๋๋ฐ,
์ด๋ Bbox์ ๊ฒฝ๊ณ์ ์ฃผ๋ชฉํ๊ณ ์๋ค๋ ์ฌ์ค์ ํ์ธํ ์ ์๋ค.
์ด ์ฌ์ค์ ๋ฐํ์ผ๋ก Decoder์ ์ญํ ์ ์ถ๋ก ํด๋ณด๋ฉด,
Decoder๋ Bbox๋ฅผ ์ ๋๋ก ์์๋ด๊ธฐ์ํด Self-Attention Matrix๋ฅผ ํตํด ๋ฌผ์ฒด์ ์ํ์ข์ฐ ๊ฒฝ๊ณ์ ์ฃผ๋ชฉํ๋ค๊ณ ํ ์ ์๋ค.
5.2 SETR (SEgmentation TRansformer)
DETR๋ Object Detection์ ๋ชฉ์ ์ผ๋ก ๊ณ ์๋์๋ค.
์ด๋, Transformer์ ํน์ฑ์ผ๋ก์ธํด ๋ถํ ์ ํ ์ ์๋๋ก ์ฝ๊ฒ ํ์ฅํ ์ ์๋ค.์์ DETR๋ชจ๋ธ์ ๋ชจ๋ โข์ ์ถ๋ ฅํ๋ ฌ์ ํด์ํด Box์ ๋ณด๋ก ๋ณํํ๋, Detection์ฉ๋์ Head์ด๋ค. DETR Architecture
๋ฐ๋ผ์, Segmentation์ฉ๋์ Head๋ฅผ ๋ถ์ด๋ฉด, ๋ถํ ์ฉ๋์ Transformer๋ชจ๋ธ์ธ, SETR์ด ๋๋ค.
์ฆ, ์์ฝํ๋ฉด SETR์ Encoder(Transformer) - Decoder(CNN)์ ๊ตฌ์กฐ๋ฅผ ๋๋ค.
Segmentation Head๋ ์ถ์๋ ํด์๋๋ฅผ ์๋ ํด์๋๋ก ๋ณต๊ตฌํ๊ธฐ์ํด UpSampling์ ์ํ Convolution์ธต์ด ํฌํจ๋๋ค.(a). ๋จผ์ image(m×n×3)๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ patch๋ก ๋๋๊ณ SETR Architecture
๊ฐ patch๋ฅผ ์ ํ ์๋ฒ ๋ฉํ ๋ค์ Position Embedding์ ์ถ๊ฐํ ํ,
๊ฒฐ๊ณผ ๋ฒกํฐ ์ํ์ค๋ฅผ ํ์ค ํธ๋์คํฌ๋จธ ์ธ์ฝ๋์ ๊ณต๊ธํ๋ค.
(์ด๋, ํฝ์ ๋จ์ ๋ถํ ์ ์ํํ๊ธฐ ์ํด ๋ค์ํ ๋์ฝ๋๋ฅผ ๋์ ํ๋ค)
(b) Decoder๋ ์ ์ง์ UpSampling(resulting in a variant called SETRPUP)์ผ๋ก
์ฌ๋ฌ ๋จ๊ณ์ Convolution์ธต์ ์์ ํผ๋ผ๋ฏธ๋ ํํ๋ก ์์ Decoder๋ฅผ ์ ์ํ๋ค.
(c) multi-level feature aggregation (a variant called SETR-MLA).
6. Backbone Transformer : Swin Transformer
6.1 Backbone Transformer
CNN transfer learning์ DNN์ ํฐ ์ด์ ์ด๋ค.
๋ณดํต ์ ์ดํ์ต(transfer learning)์ ๋๋ฆฌ ์ฌ์ฉ๋๋ Backbone model๋ก๋ VGG, GoogLeNet, ResNet, DenseNet121 ๋ฑ์ด ์์์ผ๋ฉฐ, ์ต๊ทผ์๋ EfficientNet ๋ฑ์ด ์๋ค.
Backbone model์ ์ฃผ๋ก input data์์ feature map์ ์ถ์ถํ๋ ์ญํ ์ ํ๋ค.
์ฃผ๋ก pretrained model์ ์ฌ์ฉํ๋ฉฐ, ๋ค์ํ๊ตฌ์กฐ(CNNs, Transformers, ResNets)๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ธฐ์กด NLP์์ Transformer๊ฐ ์ฌ์ฉ์ด ๋์๊ธฐ์(GPT, BERT), ์ด๋ฐ์๋ transformer๋ transfer learning์ ์ํ Backbone model๋ก ์ธ ์ ์์๊น? ๋ผ๋ ์๋ฌธ์์ ์ถ๋ฐํ๋ค.
์ง์ญ์ ๋ณด๋ฅผ ์ถ์ถํ๋ Convolution์ฐ์ฐ์ ์์กดํ๋ CNN์ ๋นํด Self-Attention์ ์์กดํ๋ Transformer๊ฐ Transfer Learning์ ํจ์ฌ ์ ๋ฆฌํ๋ค๋ ์คํ์ ์ ์ฆ์ด ๋ง์ด ๋ฐํ๋์๋๋ฐ,
Backbone์ผ๋ก ์ธ ์ ์๋ Vision Transformer๋ฅผ ์ ์ํ ์ ์์๊น? ๋ผ๋ ์๋ฌธ์์ Swin Transformer๋ก ๋ต์ ํด์ค๋ค.
Backbone์ด ๋๋ ค๋ฉด image์ feature๋ฅผ ์ถฉ๋ถํ ๋ฐ์ํ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํด์ผํ๋ค.
๊ธฐ์กด transformer๋ ๋ฌธ์ฅ์ฒ๋ฆฌ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋์๊ธฐ์, ์กฐ๊ธ์ ๋ณํ์ด ํ์ํ๋ค.
Backbone๋ชจ๋ธ์ด ๋๋ ค๋ฉด ์๋์ ํน์ฑ๋ค์ ์ ๋ฐ์ํด ์ฒ๋ฆฌํ ์ ์์ด์ผ ํ๋ค.
(๋ฌธ์ฅ์ ๊ตฌ์ฑํ๋ ๋จ์ด๋ scale๋ณํ๊ฐ ์์ผ๋ image๋ฅผ ๊ตฌ์ฑํ๋ Object๋ ์์ฃผ ๋ค์ํ ํฌ๊ธฐ๋ก ๋ํ๋๊ธฐ์ scale๋ณํ๊ฐ ์ฌํํธ.)
(๋ํ, ํ ๋ฌธ์ฅ์ ๊ตฌ์ฑํ๋ ๋จ์ด๋ ์์ญโ์๋ฐฑ๊ฐ์ ๋ถ๊ณผํ์ง๋ง, image๋ฅผ ๊ตฌ์ฑํ๋ pixel์ ์๋ง~์๋ฐฑ๋ง ๊ฐ์ด๋ค.)
(๋ฌธ์ฅ์ ๋จ์ด๋ ๋์ด์ฐ๊ธฐ๋ก ์ ๋ถํ ๋์ด์์ง๋ง, image๋ Object๋ผ๋ฆฌ ํน์ ๋ฐฐ๊ฒฝ์ด ์ฌํ๊ฒ ์์ฌ์๋ค.)
6.2 Hierarchical Feature map. &. Shifted Window
Swin Transformer๋ imageํน์ฑ์ ๋ฐ์ํ๊ธฐ์ํ ํต์ฌ์์ด๋์ด๋ฅผ 2๊ฐ์ง๋ก ์ค๋ช ํ๋ค.
โ Hierarchical ViT
์๋ ๊ทธ๋ฆผ(a)์ Hierarchical ViT(= Hierarchical Featuremap)์ ์ฌ์ฉํด ๊ฐ์ฒด์ scale๋ณํ์ ๋์ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
๋ชจ๋ window๋ M×M๊ฐ์ patch๋ก ๊ตฌ์ฑ๋๋ค. (์ฌ๊ธฐ์ M=4)
๋งจ ์๋์ธต์ ์์ patch_size๋ก window๊ฐ 4×4๊ฐ๊ฐ ์๋ค.
๊ฐ์ด๋ฐ ์ธต์ patch_size๊ฐ 2๋ฐฐ๋ก ์ปค์ ธ 2×2๊ฐ์ window๊ฐ ์๊ณ , ๋งจ ์์ธต์ 1๊ฐ์ window๊ฐ ์๋ค.
์ด๋ ๊ฒ ์์ patch๋ถํฐ ํฐ patch๋ก ๊ตฌ๋ถํด ์ฒ๋ฆฌํ๋ฉด, ์ฌ๋ฌ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํ๊ฑฐ๋ ํ์งํ ์ ์๋ค.
๊ทธ๋ฆผ (b)์ ViT์ ๊ฒฝ์ฐ, ์์์ ๋ถ๋ฅํ๋๋ฐ ์ฌ์ฉํ ์๋ ์์ง๋ง ๊ฐ์ฒดํ์ง ๋ฐ ๋ถํ ์๋ ํ๊ณ๊ฐ ์๋ค.
๊ณ์ธต์ ํน์ง๋งต์ ๊ณ์ฐํจ์จ์์๋ ํฐ ์ด์ ์ด ์กด์ฌํ๋ค.
๋จ์ผํด์๋๋ฅผ ์ฌ์ฉํ๋ ViT์ ๊ฒฝ์ฐ)
224×224 image๋ฅผ 16×16 patch(= 14×14๊ฐ)๋ก ๋๋๋ค ๊ฐ์ ํ์.
์ด ๊ฒฝ์ฐ, T = 196์ธ ํ๋ ฌ์ด ์ ๋ ฅ๋๋๋ฐ, MHA๋ T๊ฐ patch๋ผ๋ฆฌ Self-Attention์ ๊ณ์ฐํ๊ธฐ์ T2๋ฒ ์ฐ์ฐ์ ์ํํ๋ค.
์ด๋, ์ฐ์ฐ์ QKT์ ํ๋ ฌ๊ณฑ์ผ๋ก ์ด๋ค์ง๋ค.
Q์ K๊ฐ T×dkeyํ๋ ฌ์ด๋ฏ๋ก T2×dkey๋งํผ ๊ณฑ์ ์ด ์ํ๋๋ค.
๋ค์คํด์๋๋ฅผ ์ฌ์ฉํ๋ Swin์ ๊ฒฝ์ฐ)
window๋ณ๋ก self-attention์ ์ ์ฉํ๋ค.
window๋ M×M๊ฐ์ patch๋ก ๊ตฌ์ฑ๋๊ธฐ์ ํ window๋ M2×dkey๋งํผ ๊ณฑ์ ์ ์ํํ๋ค.
์ฆ, ViT์๋นํด (T×T) / (M×M×window๊ฐ์)๋ฐฐ ๋น ๋ฅด๊ฒ ๊ณ์ฐ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๊ทธ๋ฆผ(a)์ ๋งจ ์๋์ธต์์๋ window๊ฐ 16๊ฐ์ด๋ฏ๋ก 49๋ฐฐ ๋น ๋ฅด๋ค.
โ Shifted Window
Swin Transformer์ ์ด๋ฆ์ด Shifted WINdow์์ ์ ๋๋์์ ์ ๋๋ก ํต์ฌ์์ด๋์ด์ด๋ค.
โ๋ฒ์งธ layer์์ ์ด์ ์ฒ๋ผ window๋ฅผ ๋๋๋๋ฐ,
๊ทธ ๋ค์ โ+1์ธต์์๋ window๋ฅผ ์ ๋ฐํฌ๊ธฐ๋งํผ ์ํ๊ณผ ์์ง๋ฐฉํฅ์ผ๋ก ์ด๋ํด ๋๋๋ค.
shifted window๋ฅผ ์ฌ์ฉํ๋ฉด window๊ฐ์ ์ฐ๊ฒฐ์ฑ๊ฐํ ๋ฐ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ ,
๊ฐ์ฒด์ ์๋์ ์ธ ์์น์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฑ ์ด๋ฅผ ํตํ ์ฑ๋ฅํฅ์์ด ๊ฐ๋ฅํ๋ค.
6.3 Swin Transformer Architecture
์๋๊ทธ๋ฆผ์ Swin Transformer์ ๊ตฌ์กฐ์ด๋ค.
์ข์ธก์์ ์ฐ์ธก์ผ๋ก ํ๋ฅด๋ ๋จ๊ณ 1~4๋
์ข์ธก๊ทธ๋ฆผ์ (a)์ ์๋์์ ์๋ก ์งํํ๋ฉฐ patch๋ ์ปค์ง๊ณ
window๊ฐ์๋ ์์์ง๋ ๋ฐฉํฅ์ ํด๋นํ๋ค.
์๋ฅผ๋ค์ด, C=96์ผ๋ก ํ๊ณ , m×n = 448×448 image๊ฐ ์ ๋ ฅ๋ ๋,
๋จ๊ณ1) input tensor: 112×112×48 // output tensor: 112×112×96
๋จ๊ณ2) input tensor: 112×112×96 // output tensor: 56×56×192
๋จ๊ณ3) input tensor: 56×56×192 // output tensor: 28×28×384
๋จ๊ณ4) input tensor: 28×28×384 // output tensor: 14×14×768
์ ๊ทธ๋ฆผ์ (a)๋ ์ด๋ฐ tensor๋ณํ์ ์ด๋ป๊ฒ ์ํํ๋์ง ์ค๋ช ํ๋ค.๋จ๊ณ 2์์ patchํฉ์น๊ธฐ ์ ์ฉ์, ๋งจ ์๋์ธต์์ ๋งจ ์์ธต์ผ๋ก ์งํํ๋ ๊ณผ์ ์ ํด๋นํ๋ ๊ฒ์ผ๋ก ๋จ์ํ ์ด์ํ 4๊ฐ patch๋ฅผ ํ๋์ patch๋ก ํฉ์น๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
๋ชจ๋ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ป์ ํน์ง๋งต์ classification์ ์ํ head๋ฅผ ๋ถ์ด๋ฉด classifier๊ฐ ๋๊ณ ,
Detection์ ์ํ head๋ฅผ ๋ถ์ด๋ฉด detector๊ฐ,
Segmentation์ ์ํ head๋ฅผ ๋ถ์ด๋ฉด segmentor๊ฐ ๋๋ค.
์ด๋ฐ ๋ฐฉ์์ผ๋ก Swin Transformer๋ Backbone ๋ชจ๋ธ๋ก ์์ฉํ๋ค.
์ด์ ๋จ๊ณ 1~4์ ๋ ธ๋์ ํ์๋ Swin Transformer Block์ ๋์์ ๊ทธ๋ฆผ (b)๋ฅผ ํตํด ์ดํด๋ณด์.
(b)๋ Encoder Block์ 2๊ฐ ์์ ์ํฉ์ผ๋ก ํ์ฌ Block โ์ โ-1๋ฒ์งธ Block์์ xโ-1 tensor๋ฅผ ๋ฐ์ Layer Normalization์ ๊ฑฐ์ณ W-MHSA์ธต์ผ๋ก Self-Attention์ ์ ์ฉํ๋ค.
์ดํ, Add์ Norm, FF, Add๋ฅผ ์ ์ฉํด xโ์ ์ถ๋ ฅํ๋ค.
โ+1๋ฒ์งธ Block์ xโ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ xโ+1 tensor๋ฅผ ์ถ๋ ฅํ๋ค.
โ Block๊ณผ โ+1 Block์ Self-Attention์ W-MHA, SW-MHA๋ก ํ๊ธฐํ๋ค.
W-MHA๋ window๋ฅผ ๋ถํ ํ๊ณ SW-MHA๋ Shifted Window๋ก ๋ถํ ํ๋ค.Backbone๋ชจ๋ธ๋ก์จ์ Swin Transformer Swin Transformer๋ Backbone์ผ๋ก ์ฐ์ด๋ CNN์ธ ResNet๋ฑ๊ณผ ํธํ๋๋๋ก tensor๋ชจ์์ ์ค์ ํ๊ธฐ์
๊ธฐ์กด ๋ฅ๋ฌ๋๋ชจ๋ธ์์ CNN-Backbone์ ๋ค์ด๋ด๊ณ Swin-Transformer๋ก ์ฝ๊ฒ ๋์นํ ์ ์๋ค.
'Gain Study > Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Gain Study_CV]03. Advanced Vision (2) | 2024.01.08 |
---|---|
[Gain Study_CV]02-2. YOLO v3๋ก ์ฌ์งโ๋น๋์ค Detectionํ๊ธฐ (0) | 2023.09.20 |
[Gain Study_CV]01. Object Recognition(Classification, Semantic Segmentation) (0) | 2023.09.15 |