๐Ÿ“Œ ๋ชฉ์ฐจ

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์˜ ์ถœ๋ ฅํ…์„œ๋ฅผ ๊ฐ–๋Š”๋‹ค.
YOLO๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” Convolution์‹ ๊ฒฝ๋ง ๊ตฌ์กฐ
์œ„ ๊ทธ๋ฆผ์—์„œ ์‹ ๊ฒฝ๋ง์€ image๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ 7×7×90์˜ ์ถœ๋ ฅํ…์„œ๋ฅผ ์ฐธ๊ฐ’์œผ๋กœ ์ฃผ์–ด ํ†ต์งธ๋กœ ํ•™์Šตํ•œ๋‹ค.

์ฐธ๊ฐ’ํ…์„œ์— [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 Architecture
์œ„์˜ DETR๋ชจ๋ธ์˜ ๋ชจ๋“ˆ โ‘ข์€ ์ถœ๋ ฅํ–‰๋ ฌ์„ ํ•ด์„ํ•ด Box์ •๋ณด๋กœ ๋ณ€ํ™˜ํ•˜๋Š”, Detection์šฉ๋„์˜ Head์ด๋‹ค.
๋”ฐ๋ผ์„œ, Segmentation์šฉ๋„์˜ Head๋ฅผ ๋ถ™์ด๋ฉด, ๋ถ„ํ• ์šฉ๋„์˜ Transformer๋ชจ๋ธ์ธ, SETR์ด ๋œ๋‹ค.
์ฆ‰, ์š”์•ฝํ•˜๋ฉด SETR์€ Encoder(Transformer) - Decoder(CNN)์˜ ๊ตฌ์กฐ๋ฅผ ๋ˆ๋‹ค.


Segmentation Head๋Š” ์ถ•์†Œ๋œ ํ•ด์ƒ๋„๋ฅผ ์›๋ž˜ ํ•ด์ƒ๋„๋กœ ๋ณต๊ตฌํ•˜๊ธฐ์œ„ํ•ด UpSampling์„ ์œ„ํ•œ Convolution์ธต์ด ํฌํ•จ๋œ๋‹ค.
SETR Architecture
(a). ๋จผ์ € image(m×n×3)๋ฅผ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ patch๋กœ ๋‚˜๋ˆ„๊ณ 
๊ฐ 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๋กœ ์‰ฝ๊ฒŒ ๋Œ€์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

+ Recent posts