๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
AI

[Object Detection] R-CNN ์‚ดํŽด๋ณด๊ธฐ (+SPPNet)

by kaizen_bh 2025. 11. 27.

 

 

๋‹ค์Œ ์ฃผ๋ถ€ํ„ฐ ๋””ํ…์…˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค

๊ทธ๋™์•ˆ ๋””ํ…์…˜์ชฝ ๋ชจ๋ธ๋“ค๋„ ํŒŒํŽธ์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๊ฑฐ๋‚˜ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜๋Š”๋ฐ ์ด๋ฒˆ ๊ธฐํšŒ์— ์ „์ฒด์ ์œผ๋กœ ๊ณต๋ถ€ ๋ฐ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ คํ•œ๋‹ค

 

์•„๋ž˜์˜ ๊ฐ•์˜ ๋ฐ ์ž๋ฃŒ๋“ค์„ ์ฐธ๊ณ ํ•˜์˜€๋‹ค

 

 

https://www.boostcourse.org/ai341

 

์žฌํ™œ์šฉ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ (1) - Detection

๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ฌด๋ฃŒ ๊ฐ•์˜

www.boostcourse.org

 

 

 

 

1. ๊ฐ์ฒด ํƒ์ง€ ํƒœ์Šคํฌ์˜ ๋ฌธ์ œ ์ •์˜ - Object Detection์˜ ์—ญ์‚ฌ

 

 

๊ฐ•์˜์—์„œ ์ œ์‹œํ•œ Object Detection์˜ ์—ญ์‚ฌ๋กœ ๊ณต๋ถ€ํ•˜๊ณ ์ž ๋ชฉํ‘œํ•œ ์ฃผ์š” ๋ชจ๋ธ๋“ค์ด๋‹ค

์•„๋ž˜๋Š” 2014๋…„๋ถ€ํ„ฐ Object Detection ๊ด€๋ จ ๋ชจ๋ธ ๋ฐ ๋…ผ๋ฌธ๋“ค(๊ณต์‹ ์ฝ”๋“œ) ์„ ์ •๋ฆฌํ•œ ๊นƒํ—™์ด๋‹ค

 

https://github.com/hoya012/deep_learning_object_detection

 

GitHub - hoya012/deep_learning_object_detection: A paper list of object detection using deep learning.

A paper list of object detection using deep learning. - hoya012/deep_learning_object_detection

github.com

 

The part highlighted with red characters means papers that i think "must-read".

 

 

MUST READ๋ผ๊ณ  ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ฒดํฌ๋œ ๋ถ€๋ถ„๊ณผ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค

๋…ผ๋ฌธ ๋ฆฌ๋ทฐ๋ผ๊ธฐ๋ณด๋‹จ ๊ฐ ๋ชจ๋ธ๋งˆ๋‹ค์˜ ํŠน์ง•๊ณผ ํ•œ๊ณ„์ ๋“ค, ์ด์ „์˜ ์–ด๋–ค ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด, ์ข‹์€ ์•„์ด๋””์–ด๊ฐ€ ๋‚˜์™”๋Š”์ง€ ๋“ฑ์ด ์ฃผ์ด๋ฉฐ ์ผ๋ถ€ ์ฝ”๋“œ๋“ค๋„ ๊ณต๋ถ€ํ•˜๊ณ  ๊ธธ์ง€ ์•Š์œผ๋ฉด ๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ คํ•œ๋‹ค

 

 

 

 

 

 

  • ๋‹ค๋ฃฐ ๋ชจ๋ธ: R-CNN, Fast R-CNN, Faster R-CNN
  • ํ•ต์‹ฌ ๋‚ด์šฉ:
    • ๋ชจ๋ธ์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ ๋ณ€ํ™”
    • Selective Search์˜ ๋А๋ฆฐ ์†๋„ ๋ฌธ์ œ.
    • ROI Pooling์œผ๋กœ CNN ์—ฐ์‚ฐ์„ ๊ณต์œ ํ•˜๊ฒŒ ๋œ ํ˜์‹ .
    • RPN(Region Proposal Network): GPU ์œ„์—์„œ ๋ฐ•์Šค๋ฅผ ์ถ”์ฒœํ•˜๊ฒŒ ๋œ ๊ฒฐ์ •์  ๊ณ„๊ธฐ.
    • (Code) RPN์˜ Anchor ์ƒ์„ฑ ๋กœ์ง ๋ฐ Loss ๊ณ„์‚ฐ ๋ถ€๋ถ„.

 

 

 

 


 

 

 

 

 

R-CNN

  • ๋…ผ๋ฌธ ๋งํฌ
  • ๋…ผ๋ฌธ ์ €์ž์˜ ์›๋ณธ ์ฝ”๋“œ๋Š” caffe ๊ธฐ๋ฐ˜์ด๋ผ pytorch๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๋‹ค๋ฅธ ๋ ˆํฌ๋ฅผ ์ฐธ๊ณ 

 

https://herbwood.tistory.com/5

 

R-CNN ๋…ผ๋ฌธ(Rich feature hierarchies for accurate object detection and semantic segmentation) ๋ฆฌ๋ทฐ

์ด๋ฒˆ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ Object Detection ๋ชจ๋ธ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋…ผ๋ฌธ์„, ์–ด๋–ค ์ˆœ์„œ์— ๋”ฐ๋ผ ์ฝ์–ด์•ผํ• ์ง€ ๊ณ ๋ฏผํ•˜๋˜ ์ค‘, hoya๋‹˜์ด ์ž‘์„ฑํ•˜์‹  2014~2019๋…„๋„๊นŒ์ง€์˜ Object Detection ๋…ผ

herbwood.tistory.com

 

 

https://herbwood.tistory.com/6

 

Pytorch๋กœ ๊ตฌํ˜„ํ•œ R-CNN ๋ชจ๋ธ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” R-CNN ๋ชจ๋ธ์„ pytorch๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ง ์ฝ”๋“œ ๊ตฌํ˜„์— ์ต์ˆ™์น˜ ์•Š์•„ object-detection-algorithm๋‹˜์˜ github ์ €์žฅ์†Œ์— ์˜ฌ๋ผ์˜จ R-CNN ๋ชจ๋ธ ๊ตฌํ˜„ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ–ˆ

herbwood.tistory.com

 

์ด ๋ถ„์˜ ๊ธ€๋งŒ ์ •๋…ํ•˜๊ณ  ์ž˜ ๊ณต๋ถ€ํ•ด๋„ ์ดํ•ดํ•˜๋Š”๋ฐ๋Š” ๋ฌธ์ œ์—†๊ณ  ์ถฉ๋ถ„ํ•  ์ •๋„๋กœ ์ •๋ฆฌ ๋ฐ ์„ค๋ช…์ด ์ž˜ ๋˜์–ด์žˆ๋‹ค

๋‹ค๋งŒ ๋ ˆํฌ์™€ ์ฝ”๋“œ๋“ค์ด ์ž‘์„ฑ๋œ์ง€ ์˜ค๋ž˜๋˜์„œ ๊ณต๋ถ€ํ•˜๊ธฐ ์ „ ํ•œ๋ฒˆ ๋” ์ฒดํฌํ•ด๋ณด๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค

์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ๋Š” ๊ธ€์„ ๋ณด๋ฉด ๋˜๋Š”๋ฐ ์™œ ๊ตณ์ด ์ •๋ฆฌํ•˜๋Š”๊ฐ€ ์‹ถ๊ธฐ๋„ ํ•˜์ง€๋งŒ ์ •๋ฆฌ๋œ ๊ธ€์„ ๋ณด๋Š” ๊ฒƒ๊ณผ ์ง์ ‘ ๋‚ด๊ฐ€ ์ดํ•ดํ•œ๋Œ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋Š” ๊ฒƒ์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค

 

 


 

 

 

 

 

๋จผ์ €, R-CNN์˜ ์ „๋ฐ˜์ ์ธ ํƒ์ง€ ํ”„๋กœ์„ธ์Šค๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

  1. ์ด๋ฏธ์ง€ ์ž…๋ ฅ
  2. Selective Search๋กœ ์•ฝ 2000๊ฐœ์˜ RoI(Region of Interest) ์ถ”์ถœ
  3. RoI(Region of Interest)์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด ๋ชจ๋‘ ๋™์ผํ•œ ์‚ฌ์ด์ฆˆ๋กœ ๋ณ€ํ˜•: ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์‚ฌ์ด์ฆˆ์˜ ํ›„๋ณด์˜์—ญ์„ ๋™์ผํ•œ ์‚ฌ์ด์ฆˆ๋กœ warping ํ•œ๋‹ค. (CNN์˜ ๋งˆ์ง€๋ง‰์ธ FC layer์˜ ์ž…๋ ฅ ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ณ ์ •์ด๋ฏ€๋กœ Wraping ํ•ด์•ผํ•จ)
  4. RoI๋ฅผ CNN์— ๋„ฃ์–ด, feature๋ฅผ ์ถ”์ถœ: 1๊ฐœ์˜ ์ด๋ฏธ์ง€์— ๋™์ผํ•œ ์‚ฌ์ด์ฆˆ์˜ 2000๊ฐœ์˜ ํ›„๋ณด ์˜์—ญ์ด ์กด์žฌ
  5. CNN์„ ํ†ตํ•ด ๋‚˜์˜จ feature๋ฅผ 1) SVM์— ๋„ฃ์–ด ๋ถ„๋ฅ˜,  2) regression์„ ํ†ตํ•ด bounding box๋ฅผ ์˜ˆ์ธก
  6. NMS ์ ์šฉํ•˜์—ฌ bounding box ์ตœ์ ํ™”

 

 

 

 

 

R-CNN ๊ตฌ์กฐ

 

 

๋…ผ๋ฌธ์—์„œ๋Š” 3๊ฐ€์ง€ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค

Region Proposal → CNN ํŠน์ง• ์ถ”์ถœ (Feature Extractor) →  Classification + Regression (SVM ๋ถ„๋ฅ˜ + Bbox ์ขŒํ‘œ ์œ„์น˜ ๋ณด์ •)

 

 

 

 

 

1. Region Proposal

  • ๋Œ€์ƒ์ด ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ํ›„๋ณด๊ตฐ๋“ค ์ œ์•ˆ
  • Selective Search๋ผ๋Š” ์™ธ๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ (ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€์—์„œ 2000๊ฐœ region proposal ์ƒ์„ฑ)
    โœ… R-CNN = region proposal์ด ๋„คํŠธ์›Œํฌ ๋ฐ–์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค
  • ์ œ์•ˆ๋œ proposal์„ ๊ณ ์ • ํฌ๊ธฐ ์ž…๋ ฅ์œผ๋กœ ๋ณ€ํ™˜. ์ œ์•ˆ๋œ ๋ฐ•์Šค๋ฅผ ์ด๋ฏธ์ง€์—์„œ ์ž˜๋ผ ๊ณ ์ • ํฌ๊ธฐ(227x227) ๋กœ ๋ฆฌ์‚ฌ์ด์ฆˆ (warping)

 

Selective Search๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™๋‹ค

https://www.ultralytics.com/ko/blog/what-is-r-cnn-a-quick-overview

 

region proposal์ด ์™ธ๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ๋„คํŠธ์›Œํฌ ๋ฐ–์—์„œ ์ด๋ค„์ง€๋Š” ๊ฒƒ์€ ์ฆ‰ ๊ฐ™์€ GPU๊ฐ€ ์•„๋‹Œ CPU ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ End-to-End ํ•™์Šต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค

๋˜ํ•œ, CNN์˜ Inference๊ฐ€ proposals ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต๋˜๊ธฐ์— ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋งค์šฐ ๋А๋ ค์ง„๋‹ค

 

 

 

Selective Search ๊ด€๋ จ๋œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๊ธ€์— ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ๋‹ค

ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” OpenCV์˜ ๊ธฐ๋Šฅ์œผ๋กœ๋„ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค

 

https://developer-lionhong.tistory.com/31

 

[Object Detection] Selective Search (์„ ํƒ์  ํƒ์ƒ‰)

๊ฐœ์š” ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ๋ฐฐ์šด Sliding Window ๋ฐฉ์‹์€ ์ผ์ • ํฌ๊ธฐ์˜ window๊ฐ€ ์ด๋ฏธ์ง€์˜ ๋ชจ๋“  ์˜์—ญ์„ slidingํ•˜๋ฉด์„œ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ๋งŽ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ

developer-lionhong.tistory.com

https://woochan-autobiography.tistory.com/910

 

CV - Selective Search๋กœ Region Proposal ํ•ด๋ณด๊ธฐ

๐Ÿ“Œ ์ด ๊ธ€์€ ๊ถŒ์ฒ ๋ฏผ๋‹˜์˜ ๋”ฅ๋Ÿฌ๋‹ ์ปดํ“จํ„ฐ ๋น„์ „ ์™„๋ฒฝ ๊ฐ€์ด๋“œ ๊ฐ•์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๋ชฉ์ฐจ selectivesearch ์„ค์น˜ ๋ฐ ์ด๋ฏธ์ง€ ๋กœ๋“œ ๋ฐ˜ํ™˜๋œ Region Proposal ์ •๋ณด ๋ณด๊ธฐ Bounding Box ์‹œ๊ฐํ™” selectivesearch

woochan-autobiography.tistory.com

 

 

 

python opencv ๊ฐ„๋‹จ ์˜ˆ์‹œ ์ฝ”๋“œ

๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ
import cv2
import matplotlib.pyplot as plt

# ์ด๋ฏธ์ง€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
img = cv2.imread("image.jpg")
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Selective Search ์ดˆ๊ธฐํ™”
ss = cv2.ximgproc.segmentation.createSelectiveSearchSegmentation()
ss.setBaseImage(img)
ss.switchToSelectiveSearchFast()   # ๋น ๋ฅธ ๋ชจ๋“œ (๋˜๋Š” switchToSelectiveSearchQuality())

# RoI ์‹คํ–‰
rects = ss.process()
print("RoI proposals:", len(rects))

# ์ƒ์œ„ ๋ช‡ ๊ฐœ๋งŒ ์‹œ๊ฐํ™”
for i, (x, y, w, h) in enumerate(rects[:100]):
    cv2.rectangle(img_rgb, (x, y), (x+w, y+h), (255, 0, 0), 1)

plt.figure(figsize=(10,10))
plt.imshow(img_rgb)
plt.axis("off")
plt.show()

 

 

 

 

2. Feature Extractor (CNN)

  • ์ œ์•ˆ๋œ Region์— ๋Œ€ํ•ด์„œ CNN์„ ํ†ตํ•ด ๊ณ ์ •๋œ ๊ธธ์ด์˜ ํ”ผ์ณ ๋ฒกํ„ฐ๋ฅผ ์ถ”์ถœ
  • ๋…ผ๋ฌธ์—์„œ๋Š” AlexNet ์‚ฌ์šฉ -> ์ตœ์ข… region๋‹น ํ”ผ์ณ์˜ ํฌ๊ธฐ : 2000x4096

 

https://www.ultralytics.com/ko/blog/what-is-r-cnn-a-quick-overview

 

์œ„์˜ ๊ตฌ์กฐ์™€ ๊ฐ™์ด Selective Search๋ฅผ ๊ฑฐ์ณ ๋‚˜์€ Region๋“ค์„ warp, ๋ฆฌ์‚ฌ์ด์ฆˆ๋กœ ์‹œํ‚จ ๋’ค์— CNN์„ ๊ฑฐ์ณ ํ”ผ์ณ ๋ฒกํ„ฐ๋ฅผ ์ถ”์ถœํ•˜์˜€๋‹ค

ํ”ผ์ณ๋ฅผ ์ถ”์ถœํ•˜๋Š” CNN, ๋ฐ”์šด๋”ฉ๋ฐ•์Šค๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” SVM, ๋ฐ”์šด๋”ฉ๋ฐ•์Šค์˜ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•˜๋Š” Bbox Regression ๋ถ€๋ถ„๊นŒ์ง€, ํ•™์Šต์„ ์‹œ์ผœ์•ผํ•  ํŒŒํŠธ๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ ์กด์žฌํ•˜์—ฌ ๊ฐ๊ฐ์„ ํ•™์Šต์‹œ์ผœ์ค˜์•ผํ•œ๋‹ค

 

์„ธ ๊ฐœ์˜ ๋ถ„๋ฆฌ๋œ ํ•™์Šต ๋‹จ๊ณ„ (SVM + BBox regression ๋ถ„๋ฆฌ)

R-CNN ํ•™์Šต์€ ์„ธ ๋‹จ๊ณ„ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

  1. CNN์„ ImageNet์œผ๋กœ pretrain ํ›„, ๊ฐ proposal์„ ๋„ฃ์–ด feature vector ์ถ”์ถœ
  2. ๊ทธ feature๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ž˜์Šค๋ณ„ SVM ํ•™์Šต
  3. bbox regression ๋ณ„๋„ ํ•™์Šต

์—ฌ๊ธฐ์„œ CNN์„ ๊ฑฐ์ณ์„œ ๋‚˜์˜จ feature vector๋Š” Classification, BBox Regression์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค

์ธํผ๋Ÿฐ์Šค์—๋„ ์‚ฌ์šฉ๋˜๊ณ  SVM, Linear Regression ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š”๋ฐ๋„ ์‚ฌ์šฉ๋œ๋‹ค

 

๋…ผ๋ฌธ์—์„œ ํ•™์Šต์„ ์‹œํ‚ค๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ๋‚ด์šฉ์ฒ˜๋Ÿผ CNN ํ•™์Šต ์‹œํ‚ค๊ณ .. ํ”ผ์ณ ๋ฒกํ„ฐ ๋ฝ‘์€๊ฑฐ๋กœ SVM ํ•™์Šต ์‹œํ‚ค๊ณ .. ๋น„์Šทํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋“ฑ ๊ฝค ๋ณต์žกํ•œ๋ฐ ๋ณด๋‹ค์‹œํ”ผ ๊ฐ ๋ชจ๋“ˆ์˜ ์ถœ๋ ฅ์„ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ์ž…๋ ฅ์œผ๋กœ ํ•™์Šต์‹œ์ผœ์•ผํ•˜๋Š”, end-to-end๊ฐ€ ์•„๋‹Œ ํ˜•ํƒœ์ด๋‹ค

R-CNN์—์„œ์˜ ํ•™์Šต๊ณผ์ • (์ถœ์ฒ˜ : https://blog.lunit.io/2017/06/01/r-cnns-tutorial/)

 

์ฆ‰, ์ „์ฒด๊ฐ€ ์„œ๋กœ ๋”ฐ๋กœ ๋†€๊ธฐ ๋•Œ๋ฌธ์— ์—”๋“œํˆฌ์—”๋“œ๊ฐ€ ์•„๋‹ˆ๋‹ค

 

์œ„์— ๋งํฌ ๋‚จ๊ธด herbwood๋‹˜์˜ ๊ธ€์—์„œ ๋…ผ๋ฌธ์˜ Hard Negative Mining๊นŒ์ง€ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜์–ด ํ•™์Šตํ–ˆ๋Š”์ง€ ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ 

 

 

 

 

 

 

 

3. Classification + BBox Regression (+NMS)

 

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ R-CNN์€ ๊ฐ ๊ฐ์ฒด ํ›„๋ณด์˜์—ญ(Region Proposal)์— ๋Œ€ํ•ด ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค:

  1. ํด๋ž˜์Šค ๋ถ„๋ฅ˜(Classification)
  2. ์œ„์น˜ ๋ณด์ •(Bounding Box Regression)

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์— NMS(Non-Max Suppression)๋กœ ์ค‘๋ณต ๋ฐ•์Šค๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค

 

 

 

3-1. Classification: CNN Feature → ํด๋ž˜์Šค๋ณ„ Linear SVM

Selective Search๋กœ ์–ป์€ ๊ฐ proposal์€ CNN์— ์ž…๋ ฅ๋˜์–ด ๊ณ ์ • ๊ธธ์ด์˜ feature vector๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

์ด feature vector๋Š” ํด๋ž˜์Šค๋ณ„ Linear SVM์— ์ž…๋ ฅ๋œ๋‹ค. (์˜ˆ: person์šฉ SVM, dog์šฉ SVM, car์šฉ SVM ๊ฐ๊ฐ ์กด์žฌ)

SVM์€ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค:

  • decision score (confidence score ): ์ด proposal์ด ํ•ด๋‹น ํด๋ž˜์Šค์— ์†ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ ์ˆ˜
    (โ€ป ํ™•๋ฅ  ์•„๋‹˜. Softmax์™€ ๋‹ฌ๋ฆฌ ํ™•๋ฅ ์  ์˜๋ฏธ ์—†์Œ)
  • ์˜ˆ์ธก ํด๋ž˜์Šค: ์—ฌ๋Ÿฌ SVM ์ค‘ ๊ฐ€์žฅ ๋†’์€ score๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค ์„ ํƒ

SVM score๋Š” NMS์™€ ์ตœ์ข… ranking์— ์‚ฌ์šฉ๋œ๋‹ค

 

 

 

3-2. Bounding Box Regression: ์œ„์น˜ ๋ณด์ •

 

R-CNN์€ ๊ฐ ํด๋ž˜์Šค๋ณ„๋กœ bounding box regressor๋ฅผ ๋ณ„๋„๋กœ ํ•™์Šตํ•œ๋‹ค.
์ด ํšŒ๊ท€ ๋ชจ๋ธ์˜ ๋ชฉํ‘œ๋Š” proposal์˜ ์œ„์น˜๋ฅผ ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋ณด์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ฒ˜์Œ ๋ดค์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•™์Šต์„ ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ถ”๋ก ์„ ์–ด๋–ป๊ฒŒ ํ•ด์„œ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ์ขŒํ‘œ๋ฅผ ์กฐ์ •ํ•˜๋Š”์ง€๊ฐ€ ๋งŽ์ด ํ—ท๊ฐˆ๋ ธ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์€ ํšŒ๊ท€ ๋ชจ๋ธ์˜ ํ•™์Šต๊ณผ ์ถ”๋ก ์„ ๋ถ„๋ฆฌํ•ด์„œ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋œ๋‹ค

 

 

 

ํ•™์Šต ๋‹จ๊ณ„ (Training)

 

๋ชฉํ‘œ: Proposal์„ GT ๋ฐ•์Šค์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊น๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” offset์„ ์˜ˆ์ธกํ•˜๋„๋ก ํ•™์Šต

๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ:

1. Proposal ์ขŒํ‘œ (์›๋ณธ ์ด๋ฏธ์ง€ ๊ธฐ์ค€)

  • Selective Search๋กœ ์ƒ์„ฑ๋œ ํ›„๋ณด ์˜์—ญ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ์ขŒํ‘œ

2. CNN feature vector

  • Proposal์„ CNN ์ž…๋ ฅ ํฌ๊ธฐ๋กœ warp/resize ํ›„ feature ์ถ”์ถœ
  • Linear regressor์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ

3. GT bounding box ์ขŒํ‘œ (์›๋ณธ ์ด๋ฏธ์ง€ ๊ธฐ์ค€)

  • Proposal์ด ๋งž์ถฐ์•ผ ํ•˜๋Š” ์ •๋‹ต

Target(offset) ๊ณ„์‚ฐ: Proposal๊ณผ GT ๋ฐ•์Šค ๊ฐ„ ๊ด€๊ณ„๋ฅผ scale-invariant, ๋กœ๊ทธ ์Šค์ผ€์ผ๋กœ ๋ณ€ํ™˜

๋ชจ๋ธ ํ•™์Šต: CNN feature → Linear layer → offset ์˜ˆ์ธก

 

 

 

 

  • Loss: SSE(MSE) + L2 ์ •๊ทœํ™”
  • ์กฐ๊ฑด: IoU ≥ 0.6์ธ proposal๋งŒ ํ•™์Šต์— ์‚ฌ์šฉ (GT์™€ ์ถฉ๋ถ„ํžˆ ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ)

 

 

 

 

์ถ”๋ก  ๋‹จ๊ณ„ (Inference)

  • ๋ชฉํ‘œ: ํ•™์Šต๋œ ๋ชจ๋ธ์„ ์ด์šฉํ•ด proposal ์ขŒํ‘œ๋ฅผ ์‹ค์ œ ์ด๋ฏธ์ง€์—์„œ ์กฐ์ •
  • ๊ณผ์ •:
    1. Proposal์„ CNN ์ž…๋ ฅ ํฌ๊ธฐ๋กœ warp → feature ์ถ”์ถœ
    2. Feature vector๋ฅผ Linear BBox Regressor์— ์ž…๋ ฅ
    3. ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ offset์„ proposal ์ขŒํ‘œ์— ์ ์šฉ → ์กฐ์ •๋œ bounding box ์ƒ์„ฑ
    4. ํด๋ž˜์Šค ์ ์ˆ˜์™€ ํ•จ๊ป˜ NMS๋ฅผ ํ†ตํ•ด ์ตœ์ข… ๊ฒ€์ถœ ๋ฐ•์Šค ์„ ์ •
  • ํ•ต์‹ฌ: ํ•™์Šต ์‹œ GT์™€์˜ offset์„ ์˜ˆ์ธกํ•˜๋„๋ก ๋ฐฐ์› ๋‹ค๋ฉด, ์ถ”๋ก  ์‹œ์—๋Š” proposal์˜ feature๋งŒ์œผ๋กœ ์›๋ณธ ์ด๋ฏธ์ง€ ๊ธฐ์ค€ bounding box๋ฅผ ๋ณด์ •ํ•  ์ˆ˜ ์žˆ์Œ

 

 

3. NMS (Non-Maximum Suppression)๋กœ ์ตœ์ข… ๋ฐ•์Šค ์„ ํƒ

 

๊ฐ ํด๋ž˜์Šค๋ณ„๋กœ:

  1. SVM score๋กœ proposal์„ ์ •๋ ฌ
  2. IoU๊ฐ€ ๋†’์€ ๋ฐ•์Šค ์ค‘ score๊ฐ€ ๋‚ฎ์€ ๋ฐ•์Šค๋ฅผ ์ œ๊ฑฐ

 

  • ํด๋ž˜์Šค๋ณ„ score ์ •๋ ฌ
    • ๊ฐ proposal์— ๋Œ€ํ•ด SVM ์ ์ˆ˜(score)๋ฅผ ๊ณ„์‚ฐ
    • ํŠน์ • ํด๋ž˜์Šค ๊ธฐ์ค€์œผ๋กœ score๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
  • ์ค‘๋ณต ์ œ๊ฑฐ
    • ๊ฐ€์žฅ ๋†’์€ score๋ฅผ ๊ฐ€์ง„ ๋ฐ•์Šค๋ฅผ ๊ธฐ์ค€(box A)์œผ๋กœ ์„ ํƒ
    • ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฐ•์Šค์™€ IoU(Intersection over Union) ๊ณ„์‚ฐ
    • IoU๊ฐ€ threshold ์ด์ƒ(์˜ˆ: 0.5)์ธ ๋ฐ•์Šค๋Š” ์ œ๊ฑฐ
  • ๋ฐ˜๋ณต
    • ์ œ๊ฑฐํ•œ ๋ฐ•์Šค๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‚จ์€ ๋ฐ•์Šค ์ค‘ ๊ฐ€์žฅ ๋†’์€ score ์„ ํƒ
    • ๋‹ค์‹œ IoU ๊ณ„์‚ฐ ํ›„ threshold ์ด์ƒ์ด๋ฉด ์ œ๊ฑฐ
    • ๋‚จ์€ ๋ฐ•์Šค๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

 

์ด ๊ณผ์ •์„ ๊ฑฐ์ณ ์ค‘๋ณต ์—†์ด ๊ฐ€์žฅ ์ž์‹  ์žˆ๋Š” ๋ฐ•์Šค๋งŒ ๋‚จ๊ธฐ๊ฒŒ ๋œ๋‹ค.

GT์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด, ์Šค์ฝ”์–ด๊ฐ€ ๋†’์€ ๋ฐ•์Šค์™€ ๋น„๊ตํ•˜๋ฉด์„œ ๋งŽ์ด ๊ฒน์น˜๋Š” ๋‹ค๋ฅธ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค๋“ค์€ ๊ฐ™์€ ์˜ค๋ธŒ์ ํŠธ๋กœ ํŒ๋‹จํ•˜๊ณ  ๋งŽ์ด ๊ฒน์น˜์ง€ ์•Š๋Š”, IoU๊ฐ’์ด ๊ธฐ์ค€์ดํ•˜๋ผ๋ฉด ์•„์˜ˆ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ๋ผ๊ณ  ํŒ๋‹จํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค

 

https://wikidocs.net/142645

 

3) NMS (Non-Maximum Suppression) & Anchor box

## ์„œ๋ก  ์•ž์„œ [1) General process of object detection](https://wikidocs.net/152376) ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ, ๋Œ€๋‹ค์ˆ˜์˜ objec…

wikidocs.net

 

NMS ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ R-CNN ๋ฟ ์•„๋‹ˆ๋ผ ๋’ค์˜ ๋ชจ๋ธ๋“ค ๊ทธ๋ฆฌ๊ณ  YOLO์—์„œ๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๊ธฐ์— ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ๋‹ค

 

 

 

์ง€๊ธˆ๊นŒ์ง€์˜ ์ „๋ฐ˜์ ์ธ ํ๋ฆ„๋„๋ฅผ ์ •๋ฆฌํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค

์›๋ณธ ์ด๋ฏธ์ง€
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Object(s)            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โฌ‡ Selective Search
2000๊ฐœ์˜ Proposal Boxes (์›๋ณธ ์ขŒํ‘œ)
        โฌ‡ Warp/Resize
CNN ์ž…๋ ฅ ํฌ๊ธฐ
        โฌ‡ CNN Feature Extractor
Feature Vector (๊ณ ์ • ๊ธธ์ด)
        โฌ‡                โฌ‡
    Linear SVM          Linear BBox Regressor
    ํด๋ž˜์Šค ์˜ˆ์ธก         Offset ์˜ˆ์ธก (t_x, t_y, t_w, t_h)
        โฌ‡                โฌ‡
     Class Score        Offset ์ ์šฉ
                          โฌ‡
                    ์กฐ์ •๋œ Bounding Box
                          โฌ‡
                         NMS
                          โฌ‡
                     ์ตœ์ข… ๊ฒ€์ถœ ๋ฐ•์Šค

 

 

 


 

 

 

ํ•œ๊ณ„์ 

 

1. ์ž…๋ ฅ ์ด๋ฏธ์ง€ ์™œ๊ณก ๋ฌธ์ œ

  • R-CNN์€ AlexNet๊ณผ ๊ฐ™์€ CNN์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  Region Proposal์„ ๊ณ ์ • ํฌ๊ธฐ(์˜ˆ: 224×224)๋กœ warp/resizeํ•ด์•ผ ํ•จ
  • ์ด ๊ณผ์ •์—์„œ:
    • ์ด๋ฏธ์ง€ ๋น„์œจ์ด ์™œ๊ณก๋  ์ˆ˜ ์žˆ์Œ
    • ์ค‘์š”ํ•œ ์‹œ๊ฐ ์ •๋ณด ์†์‹ค ๊ฐ€๋Šฅ
  • ๊ฒฐ๊ณผ: ์ž‘์€ ๊ฐ์ฒด๋‚˜ ์„ธ๋ฐ€ํ•œ ๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š” ์˜์—ญ์˜ ํŠน์ง• ์†์‹ค ๊ฐ€๋Šฅ

2. ๋А๋ฆฐ ํ•™์Šต/์ถ”๋ก  ์†๋„

  • Selective Search๋กœ ์ƒ์„ฑ๋œ ์•ฝ 2,000๊ฐœ์˜ proposal์„ ๊ฐ๊ฐ CNN์— ํ†ต๊ณผ์‹œ์ผœ feature๋ฅผ ์ถ”์ถœ
  • ํ•™์Šต๊ณผ ํ…Œ์ŠคํŠธ ๋ชจ๋‘ ๋งค์šฐ ๋А๋ฆผ
  • ๋‹จ์ˆœ ์ด๋ฏธ์ง€ ํฌ๊ธฐ/ํ”„๋กœposal ๊ฐœ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์†๋„ ๋ฌธ์ œ ์‹ฌํ™”

 

3. GPU ํ™œ์šฉ ๋น„ํšจ์œจ

  • Selective Search์™€ SVM์€ GPU์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Œ
  • CNN feature ์ถ”์ถœ๋งŒ GPU์—์„œ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋‚˜๋จธ์ง€ ๊ณผ์ •์€ CPU ์ค‘์‹ฌ
  • ๊ฒฐ๊ณผ: ํ•˜๋“œ์›จ์–ด ์„ฑ๋Šฅ์„ ์ถฉ๋ถ„ํžˆ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•จ

 

4. Computation Sharing ๋ถˆ๊ฐ€ / End-to-End ํ•™์Šต ๋ถˆ๊ฐ€

  • R-CNN์€ ๊ตฌ์กฐ์ ์œผ๋กœ CNN, SVM, Bounding Box Regression ์„ธ ๊ฐ€์ง€ ๋ชจ๋“ˆ์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Œ
  • ํŠน์ง•:
    • CNN ํ•™์Šต → feature ์ถ”์ถœ → SVM ํ•™์Šต → BBox Regression ํ•™์Šต ์ˆœ์œผ๋กœ ๋‹จ๊ณ„๋ณ„ ์ฒ˜๋ฆฌ
    • Backpropagation์ด SVM/BBox Regression๊นŒ์ง€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•„ CNN ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋™์‹œ์— ์—…๋ฐ์ดํŠธ ๋ถˆ๊ฐ€
  • ๊ฒฐ๊ณผ: End-to-End ํ•™์Šต ๋ถˆ๊ฐ€, ์ตœ์ ํ™” ํšจ์œจ์ด ๋–จ์–ด์ง

 

 

 

R-CNN ๋‹ค์Œ Fast R-CNN ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์—, SPPNet๋„ ํ•œ๋ฒˆ ๋ณด๋ฉด ์ข‹๋‹ค

 

SPPNet์—์„œ๋Š” R-CNN์˜ ์ผ๋ถ€ ํ•œ๊ณ„์ ๋“ค์„ ๊ทน๋ณตํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ์žˆ์—ˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์—์„œ ์“ฐ์ธ Spatial Pyramid Pooling (SPP)์€ ๋‹ค์Œ ๊ณ„๋ณด์˜ ๋ชจ๋ธ์ธ Fast R-CNN์˜ ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋ฒ• RoI(Region of Interest) Pooling ์˜ ์›ํ˜•์œผ๋กœ ์“ฐ์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ๋‚˜์˜ฌ 2 Stage ๋ชจ๋ธ๋“ค์„ ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ๋„์›€์ด ๋œ๋‹ค

 

 

 

 

SPPNet

 

 

SPPNet์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋˜์„œ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๊ธ€๋“ค์„ ์—ฌ๋Ÿฌ๋ฒˆ ์ •๋…ํ•˜๊ณ  ๋‚˜์„œ์•ผ ์ข€ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค

 

SPPNet (Spatial Pyramid Pooling)

๋…ผ๋ฌธ ๋ฆฌ๋ทฐ - SPPNet ํ†บ์•„๋ณด๊ธฐ

[Object Detection] SPP(Spatial Pyramid Pooling)Net 

[ML] SPP (Spatial Pyramid Pooling) Object Detection ๋ชจ๋ธ

[๋…ผ๋ฌธ ๋ฆฌ๋ทฐ] SPP: Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition(2015) +์ฝ”๋“œ๊ตฌํ˜„

๊ฐˆ์•„๋จน๋Š” Object Detection [2] Spatial Pyramid Pooling Network

 

 

 

SPPNet์€ ์ด์ „์˜ R-CNN ํ•œ๊ณ„์ ๋“ค ์ค‘ ๋‘ ๊ฐ€์ง€ ๋‹จ์ ๋“ค์„ ๊ฐœ์„ ํ•˜์˜€๋‹ค

  • ์ž…๋ ฅ ์ด๋ฏธ์ง€ ๊ฐ•์ œ ๋ณ€ํ˜•: ๊ฐ์ฒด ํ›„๋ณด ์˜์—ญ(RoI)์˜ ํฌ๊ธฐ๊ฐ€ ์–ด๋–ป๋“  FCN์— ๋„ฃ๊ธฐ ์œ„ํ•ด Crop, Warp์„ ํ†ตํ•ด ๊ฐ•์ œ๋กœ ๊ณ ์ •๋œ ํฌ๊ธฐ(224x224)๋กœ ๋ณ€ํ˜•ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ด๋ฏธ์ง€ ์™œ๊ณก๊ณผ ์ •๋ณด ์†์‹ค์ด ๋ฐœ์ƒ
    โžก๏ธ No Crop, No Warp!! ์–ด๋–ค ํฌ๊ธฐ๋“  ๊ฐ€๋Šฅ!!
  • CNN ์ค‘๋ณต ์—ฐ์‚ฐ์˜ ๋‚ญ๋น„: ์ˆ˜์ฒœ ๊ฐœ์˜ RoI๋งˆ๋‹ค CNN ์—ฐ์‚ฐ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋Š” ๊ฒƒ. ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด์„œ 2000๋ฒˆ CNN์„ ํ†ต๊ณผ ํ•ด์•ผํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ์ 
    โžก๏ธ 2000๋ฒˆ CNN ํ†ต๊ณผ?! Nope. โŒ ์ด์ œ ๋‹จ ํ•œ ๋ฒˆ์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค

 

 

 

 

๊ธฐ์กด์—๋Š” RoI๊ฐ€ crop/warp๋ฅผ ๊ฑฐ์น˜๊ณ  CNN์„ ์ „๋ถ€ ๊ฑฐ์ณค๋˜ ์ˆœ์„œ๊ฐ€ CNN์„ ๋จผ์ € ๊ฑฐ์น˜๊ณ  SPP ๋ ˆ์ด์–ด๋ฅผ ๊ฑฐ์น˜๋Š” ์ˆœ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค

 

 

SPPNet์˜ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

https://bkshin.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%B9%84%EC%A0%84-10-R-CNN-vs-SPP-net-vs-Fast-R-CNN-vs-Faster-R-CNN-%EA%B0%9C%EC%9A%94

 

 

 

 

 

 

 

 

 

Feature Map ๊ณต์œ 

 

 

SPPNet์€ 2000๋ฒˆ์˜ CNN ์—ฐ์‚ฐ์„ ๋‹จ 1ํšŒ๋กœ ์ค„์ธ 'Feature Map ๊ณต์œ (Feature Map Sharing)' ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ๋‹ค

์ขŒํ‘œ ํˆฌ์˜(Coordinate Projection) ์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค

SPPNet์€ R-CNN์ฒ˜๋Ÿผ RoI๋งˆ๋‹ค ์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ ์ž๋ฅด๋Š” ๋Œ€์‹ , ์•„๋ž˜์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•œ๋‹ค

 

 

 

1. ์ „์ฒด ์ด๋ฏธ์ง€ CNN ์—ฐ์‚ฐ (๋‹จ 1ํšŒ): ์ž…๋ ฅ ์ด๋ฏธ์ง€ ์ „์ฒด์— ๋Œ€ํ•ด CNN์˜ Convolution Layer๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ํ•˜์—ฌ Feature Map์„ ์ƒ์„ฑํ•œ๋‹ค

 

https://bkshin.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%B9%84%EC%A0%84-10-R-CNN-vs-SPP-net-vs-Fast-R-CNN-vs-Faster-R-CNN-%EA%B0%9C%EC%9A%94

 

 

2. ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜ ํ™œ์šฉ: ์›๋ณธ ์ด๋ฏธ์ง€์—์„œ ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋กœ ์–ป์€ 2,000๊ฐœ์˜ RoI ์ขŒํ‘œ๋ฅผ ์ค€๋น„ํ•œ๋‹ค

 

 

3. ์ขŒํ‘œ ํˆฌ์˜: CNN์˜ ์ถ•์†Œ ๋น„์œจ(์˜ˆ: 16)์„ ์ด์šฉํ•˜์—ฌ, 2,000๊ฐœ์˜ RoI ์ขŒํ‘œ๋ฅผ Feature Map์ƒ์˜ ์˜์—ญ ์ขŒํ‘œ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ํ™˜์‚ฐํ•œ๋‹ค (์˜ˆ: x=32 โžก๏ธ x'=2)

 

์›๋ณธ ์ด๋ฏธ์ง€์—์„œ ์ถ”์ถœํ•œ RoI๋ฅผ ํ”ผ์ณ๋งต์œผ๋กœ ์ขŒํ‘œ ํˆฌ์˜

 

์ด๋กœ์จ SPPNet์€ ๋น„์‹ผ CNN ์—ฐ์‚ฐ์„ ์ค‘๋ณตํ•˜์ง€ ์•Š๊ณ , ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ Feature Map์—์„œ ์ขŒํ‘œ์— ํ•ด๋‹นํ•˜๋Š” ์˜์—ญ๋งŒ ๋ฝ‘์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค

 

 

 

 

 

SPP (Spatial Pyramid Pooling) 

 

Feature Map์—์„œ RoI ์˜์—ญ์„ ์ž˜๋ผ๋‚ด๋„, ๊ทธ ์˜์—ญ๋“ค์˜ ํฌ๊ธฐ๋Š” ์—ฌ์ „ํžˆ ์ œ๊ฐ๊ฐ์ด๋‹ค

์ด ์˜์—ญ์„ FCN์— ๋„ฃ๊ธฐ ์œ„ํ•ด SPP(Spatial Pyramid Pooling) Layer ์„ ํ†ตํ•ด ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฒกํ„ฐ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

 

SPP Layer์˜ ์ž‘๋™ ๋ฐฉ์‹

 

 

 

[๋ถ€์ŠคํŠธ์ฝ”์Šค] ์žฌํ™œ์šฉ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ (1) - Detection

 

 

SPP Layer๋Š” ๊ธฐ์กด ํ’€๋ง์ฒ˜๋Ÿผ ํ•„ํ„ฐ ํฌ๊ธฐ๋ฅผ ๊ณ ์ •ํ•˜๋Š” ๋Œ€์‹ , ์ตœ์ข… ์ถœ๋ ฅ๋ฌผ์˜ ๊ฐœ์ˆ˜(Bin)๋ฅผ ๊ณ ์ •ํ•œ๋‹ค

  • ๋‹ค์ค‘ ํ•ด์ƒ๋„ ๋ถ„ํ• : ์ž…๋ ฅ Feature ์˜์—ญ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด, ํ•ด๋‹น ์˜์—ญ์„ 4x4 (16๊ฐœ), 2x2 (4๊ฐœ), 1x1 (1๊ฐœ) ์™€ ๊ฐ™์€ ๊ณ ์ •๋œ ๊ทธ๋ฆฌ๋“œ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋ˆˆ๋‹ค
  • Max Pooling: ๊ฐ ๊ทธ๋ฆฌ๋“œ(Bin) ๋‚ด์—์„œ Max Pooling์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฐ’ 1๊ฐœ๋ฅผ ์ถ”์ถœ
  • ๋ฒกํ„ฐ ๊ฒฐํ•ฉ: ๋ชจ๋“  ๋ ˆ๋ฒจ์—์„œ ์ถ”์ถœ๋œ ๊ฐ’๋“ค์„ ํ•ฉ์นฉ๋‹ˆ๋‹ค. (์˜ˆ: 16 + 4 + 1 = 21๊ฐœ์˜ ๊ฐ’)

๋”ฐ๋ผ์„œ ์–ด๋–ค ํฌ๊ธฐ์˜ Feature Map ์˜์—ญ์ด ๋“ค์–ด์˜ค๋”๋ผ๋„, ํ•ญ์ƒ 21๊ฐœ x ์ฑ„๋„ ์ˆ˜๋งŒํผ์˜ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฒกํ„ฐ๊ฐ€ FCN์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค

์ด๋กœ์จ SPPNet์€ ์ž…๋ ฅ ์ด๋ฏธ์ง€ ํฌ๊ธฐ์˜ ์ œ์•ฝ์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค

 

 

 

 

 

SPPNet์„ ๋ณด๋ฉด์„œ ์ดํ•ด๋ฅผ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

 

1. SPP ๋ ˆ์ด์–ด์—์„œ FCN์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ•ญ์ƒ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฒกํ„ฐ๋งŒ ๋งŒ๋“ค์–ด์ฃผ๋Š”๊ฐ€?

  • SPP ๋ ˆ์ด์–ด์—์„œ ๋น„๋‹ํ•˜์—ฌ ํ’€๋งํ•˜๋Š” ๋ถ€๋ถ„์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค
  • ์›๋ณธ ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ CNN ๊ฑฐ์ณ์„œ ๋‚˜์˜จ ํ”ผ์ณ๋งต์— ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋กœ ์ฐพ์€ RoI์˜ ์ขŒํ‘œ๋ฅผ ์ค„์–ด๋“ค์€ ํ”ผ์ณ๋งต ๋น„์œจ๋งŒํผ ์กฐ์ •ํ•˜์—ฌ ํˆฌ์˜ํ•œ๋‹ค
  • ๊ทธ๋Ÿฌ๋ฉด ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋กœ ์–ป์€ RoI ํฌ๊ธฐ๋“ค์ด ์ œ๊ฐ๊ฐ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ํˆฌ์˜๋œ RoI๋“ค๋„ ํฌ๊ธฐ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค
  • ์ด๋•Œ ํ’€๋ง์„ ์ ์šฉํ•˜๋Š”๋ฐ ์ด์ „์— ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋˜ ํ’€๋ง๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค
  • ์ด์ „์— ๋ฐฐ์šด Max, Average Pooling์€ 2x2, 3x3 ์ด๋ ‡๊ฒŒ ์ผ์ • ํฌ๊ธฐ์—์„œ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฝ‘๋Š” ํ˜•ํƒœ์˜€์œผ๋‚˜ ๋น„๋‹์„ ์‚ฌ์šฉํ•œ ํ’€๋ง์€ ํ”ผ์ณ๋งต์ด ์–ด๋–ค ํฌ๊ธฐ๋“  ๋ฌด์กฐ๊ฑด ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜์˜ค๊ฒŒ๋” ๋งŒ๋“œ๋Š” ํ’€๋ง์ด๋‹ค
  • ์œ„์˜ ๋ถ€์ŠคํŠธ์ฝ”์Šค ๊ฐ•์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ 2x2 ํ”ผ๋ผ๋ฏธ๋“œ๋ผ๋ฉด 32x32 ์ด๋ฏธ์ง€๋“  64x64 ๋“  ์ „๋ถ€ 4๋“ฑ๋ถ„๋‚ด์–ด 4์ฐจ์›์œผ๋กœ ํ˜•ํƒœ๋ฅผ ๊ณ ์ •์‹œ์ผœ์ค€๋‹ค
  • ๋น„๋‹ ํ’€๋ง์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ‚คํฌ์ธํŠธ!!

2. ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋กœ 2,000๋ฒˆ CNN ์—ฐ์‚ฐํ•˜๋˜ ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ 1๋ฒˆ์œผ๋กœ ์ค„์–ด๋“œ๋Š”๊ฐ€?

  • ์œ„์˜ ๋‚ด์šฉ๊ณผ ๊ฒน์น˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋กœ ์–ป์€ RoI ์ขŒํ‘œ๋ฅผ ์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ CNN ๊ฑฐ์ณ์„œ ์–ป์€ ํ”ผ์ณ๋งต์— ํˆฌ์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
  • ์›๋ณธ์˜ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ 224x224, ํ”ผ์ณ๋งต์€ 14x14 ๋ผ๋ฉด ์ถ•์†Œ ๋น„์œจ์€ 16์ด๋‹ค
  • RoI ์ค‘ ํ•˜๋‚˜์˜ ์ขŒํ‘œ๊ฐ€ (32, 48)์ด๊ณ  ๋„ˆ๋น„๋Š” 64, ๋†’์ด๊ฐ€ 96์ด๋ผ๋ฉด ๊ฐ๊ฐ 16์œผ๋กœ ๋‚˜๋ˆ ์ค€๋‹ค
  • ๊ทธ๋Ÿผ ํ”ผ์ณ๋งต์— ํˆฌ์˜๋œ RoI์˜ ์ขŒํ‘œ๋Š” (2, 3), ๋„ˆ๋น„์™€ ๋†’์ด๋Š” 4, 6์ด ๋œ๋‹ค
  • ๋”ฐ๋ผ์„œ ์›๋ณธ ์ด๋ฏธ์ง€์˜ (32, 48)์—์„œ ์‹œ์ž‘ํ•˜๋Š” 64, 96 ํฌ๊ธฐ์˜ RoI๋Š” 14x14 ํฌ๊ธฐ์˜ ํ”ผ์ณ๋งต์—์„œ (2,3) ์—์„œ ์‹œ์ž‘ํ•˜๋Š” 4x6 ํ”ฝ์…€ ์˜์—ญ์— ํ•ด๋‹นํ•œ๋‹ค

 

์•„! CNN ์„ ํ•œ๋ฒˆ๋งŒ ๊ฑฐ์นœ๋‹ค๊ณ  ํ•ด์„œ ๋ฝ‘์•„๋‚ธ ํ”ผ์ณ๋งต์—์„œ ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋ฅผ ํ•˜๋‚˜ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ทธ๋ ‡๊ฒŒ ์••์ถ•๋˜๊ณ  ์ž‘์•„์ง„ ํ”ผ์ณ๋งต์—์„œ๋Š” ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์—†๊ฒ ๊ตฌ๋‚˜. ์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค์Œ ํ”ผ์ณ๋งต์— ๋งž๊ฒŒ ์ขŒํ‘œ์˜ ๋น„์œจ์„ ์กฐ์ •ํ•˜์—ฌ RoI ํ”ผ์ณ๋งต๋“ค์„ ๋ฝ‘์•„๋‚ธ๋‹ค์Œ ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ ๊ทœ๊ฒฉ์˜ ํ’€๋ง์„ ์ ์šฉํ•˜์—ฌ FC ๋ ˆ์ด์–ด์— ๋„˜๊ฒจ์ค„ ํ”ผ์ณ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ ์ •์‹œํ‚จ๊ฑฐ๊ตฌ๋‚˜.

 

 

 

 

 

ํ•œ๊ณ„์ 

 

SPPNet์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ํฌ์ธํŠธ๋ฅผ ๋‚จ๊ฒผ๋‹ค

  1. Feature Map ๊ณต์œ : ์ดํ›„ ๋ชจ๋“  ํšจ์œจ์ ์ธ 2-Stage ๊ฐ์ฒด ์ธ์‹ ๋ชจ๋ธ(Fast R-CNN, Faster R-CNN)์˜ ๊ธฐ๋ฐ˜์ด ๋˜์—ˆ๋‹ค
  2. RoI ํ’€๋ง์˜ ์›ํ˜•: SPP Layer์˜ ์•„์ด๋””์–ด๋Š” Fast R-CNN์˜ RoI Pooling Layer์™€ Mask R-CNN์˜ RoI Align Layer๋กœ ์ด์–ด์กŒ๋‹ค

R-CNN์˜ ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ ๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ํ•œ๊ณ„์ ๋“ค์ด ์กด์žฌํ•œ๋‹ค

  • ๋А๋ฆฐ Region Proposal: ์—ฌ์ „ํžˆ ๋А๋ฆฐ ์…€๋ ‰ํ‹ฐ๋ธŒ ์„œ์น˜(CPU ์—ฐ์‚ฐ)์— ์˜์กดํ•˜์—ฌ ์ „์ฒด ์†๋„๋ฅผ ๋А๋ฆฌ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค
  • ๋ถ€๋ถ„ ํ•™์Šต: FCN์„ ์ œ์™ธํ•œ CNN์˜ Convolution Layer๋Š” ํ•™์Šต๋˜์ง€ ์•Š์•„ ๋ชจ๋“  ๋ชจ๋ธ์˜ ์ „์ฒด์ ์ธ ํ•™์Šต,  End-to-end ํ•™์Šต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค

์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ณ  SPPNet์˜ ์•„์ด๋””์–ด๋ฅผ ์™„์„ฑ์‹œํ‚จ ๋ชจ๋ธ์ด ๋ฐ”๋กœ ๋‹ค์Œ ๋‹จ๊ณ„์ธ Fast R-CNN์ด๋‹ค

Fast R-CNN์€ SPPNet์˜ SPP Layer๋ฅผ RoI Pooling์œผ๋กœ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ „์ฒด์˜ End-to-End ํ•™์Šต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค

 

 


 

 

 

 

 

 

์ด๋ฒˆ์—๋Š” R-CNN์˜ ๋Œ€๋žต์ ์ธ ๊ตฌ์กฐ์™€ ์–ด๋–ค ํŠน์ง•๋“ค์ด ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  R-CNN์˜ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ์‹œ๋„์™€ Fast R-CNN ๋ชจ๋ธ์—์„œ๋ถ€ํ„ฐ ๋‚˜์˜ค๋Š” RoI ํ’€๋ง์˜ ๋ผˆ๋Œ€๊ฐ€ ๋˜๋Š” SPP๊นŒ์ง€ ์‚ดํŽด๋ณด์•˜๋‹ค

๋…ผ๋ฌธ, ๋ธ”๋กœ๊ทธ, ๊ตฌ๊ธ€๋ง ๋ฐ GPT ๋“ฑ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋“ค์„ ๋งŽ์ด ์ฐธ๊ณ ํ•˜๊ณ  ์งœ์ง‘๊ธฐ ๊ฐ™์€ ๋А๋‚Œ๋„ ์žˆ์ง€๋งŒ ์ •๋ง ๊ทธ๋Œ€๋กœ ๋ณต๋ถ™๋งŒ ํ–ˆ๋‹ค๋ฉด ์งœ์ง‘๊ธฐ์— ๋ถˆ๊ณผํ–ˆ์„ ๊ฒƒ์ด๋‹ค

 

์งง์€ ๊ธฐ๊ฐ„ ๋‚ด์— ๋ด์•ผํ•  ๋ชจ๋ธ๋“ค์ด ์Œ“์—ฌ์žˆ๋‹ค๋ณด๋‹ˆ ๋…ผ๋ฌธ์—์„œ๋Š” ์–ด๋–ค ์‹์œผ๋กœ ํ–ˆ๋‹ค - ๊ฐ™์€ ๋‹จ์ˆœํ•œ ์‹คํ—˜์ ์ธ ๋ถ€๋ถ„์€ ๋ฐฐ์ œํ•˜๊ณ  ์–ด๋–ค ๊ตฌ์กฐ, ํ˜•ํƒœ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ์ด ์–ด๋–ป๊ฒŒ ํ•™์Šต๋˜๊ณ  ์ธํผ๋Ÿฐ์Šค๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€, ์ž…์ถœ๋ ฅ์˜ ํ˜•ํƒœ ๋“ฑ ๋ชจ๋ธ๊ณผ ์ฃผ์š” ์•„์ด๋””์–ด ๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋ธ์˜ ๋‹จ์ ๊ณผ ํ•œ๊ณ„์  ์œ„์ฃผ๋กœ ๋ณด์•˜๋‹ค

 

์ž…์ถœ๋ ฅ์ด ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๋Š”์ง€๋„ ์ •๋ง ์ค‘์š”ํ•œ๋ฐ ์ด๋ ‡๊ฒŒ ๊ธ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์•„๋งˆ ๋ฐ”์šด๋”ฉ๋ฐ•์Šค๋ฅผ ์˜ˆ์ธกํ•˜๊ณ  ์กฐ์ •ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์–ด๋–ค ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๊ณ  ์ถœ๋ ฅ๋˜๋Š” ์˜ˆ์ธก๊ฐ’์€ ์–ด๋–ค ๊ฒƒ์ธ์ง€, ์–ด๋–ป๊ฒŒ Region Proposal์˜ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ์ขŒํ‘œ๊ฐ’์„ GT์— ๊ฐ€๊น๊ฒŒ ์กฐ์ •ํ•˜๋Š”์ง€ ๋“ฑ์„ ๋ชจ๋ฅธ์ฑ„ ์ง€๋‚˜์ณค์„ ๊ฒƒ ๊ฐ™๋‹ค

 

๋ฌผ๋ก  ์•„์ง๋„ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„๋“ค์ด ๋งŽ๊ธด ํ•œ๋ฐ ์•„๋ž˜์˜ R-CNN ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ธ€๊ณผ ์ƒ์„ฑํ˜• AI ๋“ฑ์˜ ๋„์›€์„ ๋ฐ›์•„ ์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ณธ ๋‚ด์šฉ๋“ค์ด ์ฝ”๋“œ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€๋„ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๋ฉด์„œ ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•ด๋ณด๋ คํ•œ๋‹ค

 

https://herbwood.tistory.com/6

 

Pytorch๋กœ ๊ตฌํ˜„ํ•œ R-CNN ๋ชจ๋ธ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” R-CNN ๋ชจ๋ธ์„ pytorch๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ง ์ฝ”๋“œ ๊ตฌํ˜„์— ์ต์ˆ™์น˜ ์•Š์•„ object-detection-algorithm๋‹˜์˜ github ์ €์žฅ์†Œ์— ์˜ฌ๋ผ์˜จ R-CNN ๋ชจ๋ธ ๊ตฌํ˜„ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ–ˆ

herbwood.tistory.com

 

 

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ  ์ž๋ฃŒ

R-CNN ๋…ผ๋ฌธ(Rich feature hierarchies for accurate object detection and semantic segmentation) ๋ฆฌ๋ทฐ

Object Detection for Dummies Part 3: R-CNN Family

NMS (Non-Maximum Suppression) & Anchor box

๊ฐˆ์•„๋จน๋Š” Object Detection [1] R-CNN

Deep Learning Bible - SPPNet