๋ฐ์ํ
YOLO (You Only Look Once)
YOLO(You Only Look Once)์ ์ค์๊ฐ ๊ฐ์ฒด ํ์ง ์์คํ ์ผ๋ก, ์ด๋ฏธ์ง๋ ๋น๋์ค์์ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๋์์ ํ์งํ๊ณ ๋ถ๋ฅํ๋ ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
- YOLO์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋น ๋ฅธ ์๋์ ๋์ ์ ํ๋์ ๋๋ค.
YOLO์ ์๋ฆฌ
- ๋จ์ผ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํ ์ ์ฒด ์ด๋ฏธ์ง ์ฒ๋ฆฌ: YOLO๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋์ง ์๊ณ , ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌํฉ๋๋ค.
- Grid Cell ๋ก ์ด๋ฏธ์ง ๋ถํ : ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฆฌ๋ ์ ๋ก ๋๋๋๋ค. ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ ํน์ ๊ฐ์ฒด๋ฅผ ํฌํจํ ํ๋ฅ ๊ณผ ๊ทธ ๊ฐ์ฒด์ ๊ฒฝ๊ณ ์์(Bounding Box) ์ขํ๋ฅผ ์์ธกํฉ๋๋ค.
- ๊ฒฝ๊ณ ์์ ์์ธก: ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ BB๊ฐ์ ๊ฒฝ๊ณ ์์๋ฅผ ์์ธกํฉ๋๋ค. ๊ฒฝ๊ณ ์์๋ ์ค์ฌ ์ขํ (x,y, ๋๋น w, ๋์ด , ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด ํด๋์ค์ ๋ํ ํ๋ฅ ๊ฐ์ ํฌํจํฉ๋๋ค.
- ํด๋์ค ํ๋ฅ ์ง๋: ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ ํน์ ํด๋์ค์ ์ํ ํ๋ฅ ์ ์์ธกํฉ๋๋ค. ์ต์ข ๊ฐ์ฒด ํ์ง๋ ๊ฒฝ๊ณ ์์์ ํ๋ฅ ๊ณผ ํด๋์ค ํ๋ฅ ์ ๊ณฑํ ๊ฐ์ด ๊ฐ์ฅ ๋์ ๊ฒ์ ์ ํํฉ๋๋ค.
YOLO์ ํน์ง
- ์๋: YOLO๋ ์ด๋ฏธ์ง ๋น ํ ๋ฒ์ ์ ๊ฒฝ๋ง ํ๊ฐ๋ก ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค. ์ด๋ ๋งค์ฐ ๋น ๋ฅธ ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ ์ฒด ์ด๋ฏธ์ง ๋งฅ๋ฝ ์ด์ฉ: YOLO๋ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ๊ณ ๋ คํ์ฌ ์์ธก์ ์ํํ๋ฏ๋ก, ๋ค๋ฅธ ๊ฐ์ฒด ํ์ง ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ ์ ์์ false positives(์๋ชป๋ ํ์ง)๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ข ๋จ๊ฐ ํ๋ จ: ์ด๋ฏธ์ง ๋ถํ , ๊ฐ์ฒด ํ์ง, ๊ทธ๋ฆฌ๊ณ ํด๋์ค ์์ธก์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ๋จ์ผ ์ ๊ฒฝ๋ง์ด ๋์์ ์ฒ๋ฆฌํฉ๋๋ค.
YOLO v3 ์ฑ๋ฅ
Speed + Accuracy
- YOLO v3 ๋ชจ๋ธ์ ๊ธฐ์กด ๋ชจ๋ธ๋ณด๋ค ๋ค์ํ ๋ค์ง์ ๊ฐ์ ์ ํตํด ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
- 320x320 ํด์๋์์๋ 22ms์ ์ถ๋ก ์๊ฐ๊ณผ 28.2 mAP๋ฅผ ๊ธฐ๋กํ๋ฉฐ, SSD์ ๋์ผํ ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์ ์ธ ๋ฐฐ ๋ ๋น ๋ฆ ๋๋ค.
- ๋ํ, 416x416 ํด์๋์์๋ 29ms์ ์ถ๋ก ์๊ฐ๊ณผ 31.0 mAP, 608x608 ํด์๋์์๋ 51ms์ ์ถ๋ก ์๊ฐ๊ณผ 33.0 mAP๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ธ๊ณผ ๋น๊ตํ ๋, YOLOv3๋ ๋งค์ฐ ๋น ๋ฅธ ์๋์ ๋์ ์ ํ๋๋ฅผ ์๋ํ๋ฉฐ, RetinaNet๋ณด๋ค 3.8๋ฐฐ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
- ์ด๋ฌํ ํน์ฑ ๋๋ถ์ ์์จ์ฃผํ, ๊ฐ์ ์์คํ ๋ฑ ๋ค์ํ ์ค์๊ฐ ์์ฉ ๋ถ์ผ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
YOLO Version
- YOLOv1: ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ผ๋ก, ์ด๋ฏธ์ง ๋น ํ ๋ฒ์ ์์ธก์ ์ํํ๋ ๋จ์ผ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํฉ๋๋ค. ๋น ๋ฅธ Detection ์๋๋ฅผ ๋ณด์์ง๋ง, ์ ํ๋๊ฐ ๋ฎ๋ค๋ ๋จ์ ์ด ์์์ต๋๋ค.
- YOLOv2 (๋๋ YOLO9000): ๊ธฐ์กด ๋ฒ์ ๋ณด๋ค๋ ๋ ๋์ ์ ํ๋์ ๋น ๋ฅธ ์๋๋ฅผ ์ํด ๋ช ๊ฐ์ง ๊ฐ์ ์ฌํญ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, anchor boxes๋ฅผ ๋์ ํ์ฌ ๊ฒฝ๊ณ ์์ ์์ธก์ ๋ ์ํ๊ฒ ๋ง๋ค์์ต๋๋ค. ๋ํ, ๋ค์ค ์ค์ผ์ผ ํ์ต์ ํตํด ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ๋ ์ ํ์งํ ์ ์์ต๋๋ค.
- YOLOv3: ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ๋ ์ ํ์งํ ์ ์๋๋ก multi-scale detection ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ ๊ฐ์ฒด์ ํฐ ๊ฐ์ฒด ๋ชจ๋์ ๋ํด ๋์ ํ์ง ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ์๊ฐ์ ์กฐ๊ธ ๊ธฐ์กด ๋ฒ์ ๋ณด๋ค๋ ๋๋ ค์ก์ผ๋, ์ฑ๋ฅ์ด ๋ํญ ๊ฐ์ ๋์๋ค๋ ์ ์ด ์์ต๋๋ค.
- YOLOv4, YOLOv5: ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํตํด ๋ ๋น ๋ฅด๊ณ ์ ํํ ๊ฐ์ฒด ํ์ง๊ฐ ๊ฐ๋ฅํด์ก์ต๋๋ค. YOLOv4๋ CSPDarknet-53 ๋ฐฑ๋ณธ ๋คํธ์ํฌ์ ์ต์ ๊ธฐ๋ฒ๋ค์ ์ ์ฉํ์ฌ ์ฑ๋ฅ์ ๊ทน๋ํํ์ผ๋ฉฐ, YOLOv5๋ PyTorch๋ก ๊ตฌํ๋์ด ์ฌ์ฉ์ด ๊ฐํธํ๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค. ์ด๋ค ๋ฒ์ ์ ๋์ ํจ์จ์ฑ๊ณผ ์ ํ๋๋ก ์ค์๊ฐ ์์ฉ ๋ถ์ผ์์ ํ์ํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
YOLO - V1
- Yolo v1 ์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ S X S Grid๋ก ๋๋๊ณ ๊ฐ Grid์ Cell์ด ํ๋์ Object์ ๋ํ Detection์ ์ํํฉ๋๋ค.
- ๊ฐ Grid Cell ์ด 2๊ฐ์ Bounding Box ํ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Object์ Bounding Box ๋ฅผ ์์ธกํ๋ ๋ฐฉ์์ ๋๋ค.
YOLO-V1 Detection Model
YOLO V1 ๋ชจ๋ธ์ Inference๋ฅผ ํ๋ฒ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
Inference ๊ณผ์
์ ๋ ฅ ์ด๋ฏธ์ง (Input image)
- ํฌ๊ธฐ (Size): 448×448×3
- ์ค๋ช (Description): ์์ ์ฑ๋(RGB)์ ํฌํจํ 448x448 ํฌ๊ธฐ์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Convolutional Layers ๋ฐ GoogLeNet ์์ (20 layers)
- ์ค๋ช (Description): ์ ๋ ฅ ์ด๋ฏธ์ง๋ ๋ค์์ Convolutional Layers๋ฅผ ๊ฑฐ์นฉ๋๋ค. ์ด ๊ณผ์ ์์ ์ด๋ฏธ์ง์ ํน์ง์ด ์ถ์ถ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ GoogLeNet์ ์์ ํ์ฌ 20๊ฐ์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Fully Connected Layers (FC)์ ReLU ํ์ฑํ ํจ์ (R)
- ์ค๋ช (Description): Convolutional Layers ์ดํ์๋ Fully Connected Layers๊ฐ ๋ค๋ฐ๋ฆ ๋๋ค. ์ด ๋ ์ด์ด๋ค์ ์ด๋ฏธ์ง์ ์ ์ญ ์ ๋ณด๋ฅผ ํตํฉํ์ฌ ์ต์ข ์์ธก์ ๊ธฐ์ฌํฉ๋๋ค.
์ต์ข ์ถ๋ ฅ (7x7x30 Tensor)
- ์ค๋ช (Description): ์ต์ข ์ ์ผ๋ก 7x7x30 ํฌ๊ธฐ์ ํ ์๋ก ์ถ๋ ฅ์ด ๋ณํ๋ฉ๋๋ค. ์ด ํ ์๋ ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ด ์์ธกํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
ํ ์ ๊ฐ ํด์ (Tensor values interpretation)
- ์ค๋ช (Description): ์ถ๋ ฅ ํ ์๋ S×S×(B×5+C) ํํ๋ก ํด์๋ฉ๋๋ค. ์ฌ๊ธฐ์ S๋ ๊ทธ๋ฆฌ๋ ์ ์ ํฌ๊ธฐ (์ฌ๊ธฐ์๋ 7x7), B๋ ๊ฐ ์ ์์ ์์ธกํ ๊ฒฝ๊ณ ์์ ์ (์ฌ๊ธฐ์๋ 2), C๋ ํด๋์ค ์ (์ฌ๊ธฐ์๋ 20)์ ๋๋ค. ๋ฐ๋ผ์ ํ ์ ํฌ๊ธฐ๋ 7×7×30์ด ๋ฉ๋๋ค.
์ธ๋ถ ๊ตฌ์กฐ (Detailed Structure):
- ๊ฐ ๊ทธ๋ฆฌ๋ ์
์ 30๊ฐ์ ๊ฐ์ ์์ธกํฉ๋๋ค:
- 5๊ฐ์ ๊ฐ: ๊ฐ ๊ฒฝ๊ณ ์์๋ง๋ค (x, y, w, h, confidence)
- 20๊ฐ์ ํด๋์ค ํ๋ฅ ๊ฐ.
์์ธก ํด์ (Prediction Interpretation)
๊ทธ๋ฆฌ๋ ์ ์์ธก (Grid Cell Prediction)
- ์ค๋ช (Description): ์ ๋ ฅ ์ด๋ฏธ์ง๊ฐ 7x7 ๊ทธ๋ฆฌ๋๋ก ๋๋์ด์ง๊ณ , ๊ฐ ์ ์ ๊ฐ์ฒด๊ฐ ํด๋น ์ ์์ ์๋์ง๋ฅผ ์์ธกํฉ๋๋ค. ๋นจ๊ฐ์ ๋ฐ์ค๋ ๊ทธ๋ฆฌ๋ ์ ์ด ํ์งํ ๊ฐ์ฒด์ ์์น๋ฅผ ๋ํ๋ ๋๋ค.
๊ฒฝ๊ณ ์์ (Bounding Box)์ ํด๋์ค ํ๋ฅ (Class Probabilities)
- ์ค๋ช (Description): ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ B๊ฐ์ ๊ฒฝ๊ณ ์์๋ฅผ ์์ธกํฉ๋๋ค. ๊ฐ ๊ฒฝ๊ณ ์์๋ ์ค์ฌ ์ขํ(x, y), ๋๋น(w), ๋์ด(h), ๊ทธ๋ฆฌ๊ณ confidence score(๊ฐ์ฒด๊ฐ ํฌํจ๋ ํ๋ฅ )๋ฅผ ํฌํจํฉ๋๋ค. ๊ฐ ๊ฒฝ๊ณ ์์๋ ํด๋์ค ํ๋ฅ ๊ณผ ๊ณฑํด์ ธ ์ต์ข ํ์ง ๊ฒฐ๊ณผ๋ฅผ ๋์ถํฉ๋๋ค.
Detection Procedure
- ์ค๋ช (Description): ์ต์ข ์ ์ผ๋ก ๋ชจ๋ ๊ทธ๋ฆฌ๋ ์ ์ ์์ธก์ ํตํฉํ์ฌ ๊ฐ์ฒด์ ์์น์ ํด๋์ค๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์์ธก๋ ๊ฒฝ๊ณ ์์์ ํด๋์ค ํ๋ฅ ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง์ ๊ฐ์ฒด๋ฅผ ํ์งํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์๊ฐํํฉ๋๋ค.
๊ฐ Grid Cell ๋ณ๋ก ์๋๋ฅผ ๊ณ์ฐํฉ๋๋ค.
A. 2๊ฐ์ Bounding Box ํ๋ณด์ ์ขํ์ ํด๋น Box๋ณ
Confidence Score
Confidence Score = ์ค๋ธ์ ํธ์ผ ํ๋ฅ * IOU ๊ฐ
x, y, w, h : Ground Truth box์ ํ๋ณด Box๊ฐ offset ์ขํ
B. ํด๋์ค ํ๋ฅ . Pascal VOC ๊ธฐ์ค 20๊ฐ ํด๋์ค์ ํ๋ฅ
NMS(Non Max Suppression)์ผ๋ก ์ต์ข Bbox ์์ธก
๊ฐ๋ณ ํด๋์ค๋ณ NMS๋ฅผ ์ํํ์ฌ ์ต์ข Bounding Box๋ฅผ ์์ธกํ๋ ๊ณผ์ ์ ํ๋ฒ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
๊ฐ๋ณ Class ๋ณ NMS ์ํ
- ํน์ Confidence ๊ฐ ์ดํ๋ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค.
- ๊ฐ์ฅ ๋์ Confidence๊ฐ์ ๊ฐ์ง ์์ผ๋ก Bounding Box๋ฅผ ์ ๋ ฌํฉ๋๋ค.
- ๊ฐ์ฅ ๋์ Confidence๋ฅผ ๊ฐ์ง Bounding Box์ IOU์ ๊ฒน์น๋ ๋ถ๋ถ์ด IOU Threshold ๋ณด๋ค ํฐ Bounding Box๋ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค.
- ๋จ์ ์๋ Bounding Box์ ๋ํด 3๋ฒ Step์ ๋ฐ๋ณตํฉ๋๋ค.
Object Confidence์ IOU Threshold๋ก Filtering์ ์กฐ์ ํฉ๋๋ค.
YOLO-V1 Issue
Detection ์๊ฐ์ ๋น ๋ฅด๋ Detection ์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ค. ํนํ ์์ Object์ ๋ํ ์ฑ๋ฅ์ด ๋์ฉ๋๋ค.
YOLO v1, v2, v3 ๋น๊ต
- YOLOv1์ 446x446 ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ Inception ๋ณํ ๋คํธ์ํฌ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ด 2๊ฐ์ ์ต์ปค ๋ฐ์ค๋ฅผ ์์ธกํฉ๋๋ค.
- YOLOv2๋ 416x416 ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉฐ, Darknet 19 ๋คํธ์ํฌ๋ฅผ ์ฑํํ๊ณ , ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ด 5๊ฐ์ ์ต์ปค ๋ฐ์ค๋ฅผ ์์ธกํฉ๋๋ค.์ต์ปค ๋ฐ์ค๋ K-Means ํด๋ฌ์คํฐ๋ง์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
- YOLOv3๋ 416x416 ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ Darknet 53 ๋คํธ์ํฌ๋ก ์ฒ๋ฆฌํ๊ณ , ๋ค์ํ ํฌ๊ธฐ์ Feature Map์ ์ฌ์ฉํ์ฌ ์ด 9๊ฐ์ ์ต์ปค ๋ฐ์ค๋ฅผ ์์ธกํฉ๋๋ค.
- ์ด ๋ฒ์ ์์๋ 13x13, 26x26, 52x52 ํฌ๊ธฐ์ ์ธ ๊ฐ์ง Feature Map์ ์ฌ์ฉํ๋ฉฐ, Feature Pyramid Network(FPN) ๊ธฐ๋ฒ์ ํตํด ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ๋ ์ ํ์งํ ์ ์์ต๋๋ค.
YOLO-v2
YOLO-v2 Detection ์๊ฐ ๋ฐ ์ฑ๋ฅ
- YOLOv2๋ PASCAL VOC 2007 ๋ฐ์ดํฐ์ ์์ ๋์ ์ ํ๋(mAP)์ ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋(FPS)๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ค๋ฅธ ๋ชจ๋ธ๋ค์ ๋นํด ์ ๋ฐ์ ์ผ๋ก ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค.
- MS-COCO ๋ฐ์ดํฐ์ ์์๋ YOLOv2๋ ๋์ ์ฑ๋ฅ์ ์ ์งํ๋ฉฐ, ํนํ ํฐ ๊ฐ์ฒด์ ๋ํด ์ฐ์ํ ํ์ง ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ์์ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ ์๋์ ์ผ๋ก ๋ฎ์ง๋ง, ์ฌ์ ํ ์ ๋ฐ์ ์ผ๋ก ๊ท ํ ์กํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- YOLOv2๋ ์ ํ๋์ ์๋๋ฅผ ๋ชจ๋ ์ค์์ํ๋ ์์ฉ ๋ถ์ผ์์ ๋งค์ฐ ํจ๊ณผ์ ์ธ ๋ชจ๋ธ์์ ์ ์ฆํฉ๋๋ค.
YOLO v2์ ํน์ง
- Batch Normalization
- ๊ฐ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด ๋ค์ ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ต์ ์์ ํํ๊ณ , ๊ณผ์ ํฉ(overfitting)์ ์ค์ ๋๋ค.
- High Resolution Classifier
- ๋คํธ์ํฌ์ ๋ถ๋ฅ(Classifier) ๋จ์ ๋ ๋์ ํด์๋(448x448)๋ก ๋ฏธ์ธ ์กฐ์ (fine-tuning)ํฉ๋๋ค.
- 13 x 13 Feature Map ๊ธฐ๋ฐ์ Anchor Box
- 13 x 13 ํฌ๊ธฐ์ Feature Map์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ๊ฐ Grid cell์ 5๊ฐ์ Anchor Box๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ธกํฉ๋๋ค.
- Anchor Box๋ฅผ ํตํด ๋ค์ํ ํฌ๊ธฐ์ ํํ์ ๊ฐ์ฒด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์งํ ์ ์์ต๋๋ค.
- Darknet-19 Classification ๋ชจ๋ธ ์ฑํ
- YOLOv2๋ Darknet-19 ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
- Darknet-19๋ 19๊ฐ์ Convolutional ๋ ์ด์ด์ 5๊ฐ์ Max-Pooling ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋ ๊ฒฝ๋์ ํจ์จ์ ์ธ ๋ถ๋ฅ ๋คํธ์ํฌ์ ๋๋ค.
- ๋ค์ํ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ก ๋คํธ์ํฌ ํ์ต
- ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ค์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ํ์ต์ํต๋๋ค.
- ์ด๋ฅผ ํตํด ๋ชจ๋ธ์ ๋ค์ํ ํด์๋์ ์ด๋ฏธ์ง์์ ์ผ๊ด๋๊ฒ ๋์ ์ฑ๋ฅ์ ๋ฐํํ ์ ์์ต๋๋ค.
YOLO-v2 Network ๊ตฌ์กฐ
- Conv 3x3: 3x3 ํฌ๊ธฐ์ Convolution Layer(์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด)๋ก Feature(ํน์ง)์ ์ถ์ถํฉ๋๋ค.
- Maxpool: Maxpooling Layer(์ต๋ ํ๋ง ๋ ์ด์ด)๋ก ๊ณต๊ฐ ํด์๋๋ฅผ ์ค์ด๊ณ ์ค์ํ Feature(ํน์ง)์ ์ถ์ถํฉ๋๋ค.
- Conv 1x1: 1x1 ํฌ๊ธฐ์ Convolution Layer(์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด)๋ก ์ฑ๋ ์๋ฅผ ์ค์ด๊ฑฐ๋ ๋๋ฆฝ๋๋ค.
- Passthrough Module: ๋ฎ์ ํด์๋์์ ๋์ ํด์๋๋ก ํน์ง์ ์ ๋ฌํ์ฌ ์์ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
- Merge Module: ๋ค์ํ ํฌ๊ธฐ์ Featuer Map(ํน์ฑ ๋งต)์ ๋ณํฉํ์ฌ ๋ ํ๋ถํ ํน์ง์ ์ถ์ถํฉ๋๋ค.
Yolo v2 Anchor Box๋ก 1 Cell์์ ์ฌ๋ฌ ๊ฐ Object Detection
- SSD์ ๋ง์ฐฌ๊ฐ์ง๋ก 1๊ฐ์ Cell์์ ์ฌ๋ฌ ๊ฐ์ Anchor๋ฅผ ํตํด ๊ฐ๋ณ Cell์์ ์ฌ๋ฌ ๊ฐ Object Detection์ด ๊ฐ๋ฅํฉ๋๋ค.
- K-Means Clustering ์ ํตํด ๋ฐ์ดํฐ ์ธํธ์ ์ด๋ฏธ์ง ํฌ๊ธฐ์ Shape Ratio ๋ฐ๋ฅธ 5๊ฐ์ ๊ตฐ์งํ ๋ถ๋ฅ๋ฅผ ํ์ฌ Anchor Box๋ฅผ ๊ณ์ฐํฉ๋๋ค.
YOLO v2 Output Feature Map
๊ฐ๋จํ๊ฒ ์ฌ์ง์ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
- Grid Cell: 13x13 ํฌ๊ธฐ์ ๊ทธ๋ฆฌ๋๋ก ๋๋์ด, ๊ฐ ์ ์ด ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- Bounding Box: ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์ 5๊ฐ์ Bounding Box๋ฅผ ์์ธกํ๋ฉฐ, ๊ฐ Bounding Box๋ 25๊ฐ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- Bounding Box ์์ฑ: ์ค์ฌ ์ขํ, ๋๋น, ๋์ด, ๊ฐ์ฒด ํฌํจ ํ๋ฅ , ํด๋์ค ํ๋ฅ ๋ฑ์ด ํฌํจ๋์ด ์์ต๋๋ค.
One Stage Detector
One-stage object detectors๋ ๊ฐ์ฒด ํ์ง์์ ๋จ์ผ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฐ์ฒด์ ์์น์ ํด๋์ค๋ฅผ ๋์์ ์์ธกํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์๋๊ฐ ๋น ๋ฅด๊ณ ์ค์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ํฉํฉ๋๋ค.
YOLOv1 (You Only Look Once)
- ์ถ์: 2016๋
- ์ฃผ์ ํน์ง:
- ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ๋จ์ผ ์ปจ๋ณผ๋ฃจ์ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํ์ฌ ์ ์ฒด ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๋ฅผ ์์ธกํฉ๋๋ค.
- ๋น ๋ฅธ ์๋์ ๋น๊ต์ ๋์ ์ ํ๋๋ฅผ ์๋ํฉ๋๋ค.
- ๋จ์ : ์์ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ด ๋ฎ๊ณ , ๊ฐ์ฒด๊ฐ ๋ฐ์ง๋ ์ํฉ์์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ค.
SSD (Single Shot MultiBox Detector)
- ์ถ์: 2016๋
- ์ฃผ์ ํน์ง:
- ๋ค์ํ ํฌ๊ธฐ์ ๋ํดํธ ๋ฐ์ค(default boxes)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ์ฌ๋ฌ ํด์๋์ ํผ์ฒ ๋งต(feature map)์์ ์์ธก์ ์ํํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ๊ท ํ ์กํ ์ ํ๋์ ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋จ์ : ๊ณ ํด์๋ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ด ์๋์ ์ผ๋ก ๋ฎ์ต๋๋ค.
YOLOv2 (YOLO9000)
- ์ถ์: 2017๋
- ์ฃผ์ ํน์ง:
- ์ต์ปค ๋ฐ์ค(anchor boxes)๋ฅผ ๋์ ํ์ฌ ๊ฒฝ๊ณ ์์ ์์ธก ์ฑ๋ฅ์ ๊ฐ์ ํ์์ต๋๋ค.
- ๋ค์ค ์ค์ผ์ผ ํ์ต์ ํตํด ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
- ๋ฐฐ์น ์ ๊ทํ(batch normalization)์ ๊ณ ํด์๋ ๋ถ๋ฅ๊ธฐ(high resolution classifier)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ฅ์ : ๋์ ์ ํ๋์ ๋น ๋ฅธ ์๋, ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํ ์ ์์ต๋๋ค.
RetinaNet
- ์ถ์: 2017๋
- ์ฃผ์ ํน์ง:
- ํฌ์ปฌ ๋ก์ค(Focal Loss)๋ฅผ ๋์ ํ์ฌ ํด๋์ค ๋ถ๊ท ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ResNet๊ณผ FPN(Feature Pyramid Network)์ ๋ฐฑ๋ณธ ๋คํธ์ํฌ๋ก ์ฌ์ฉํฉ๋๋ค.
- ๋์ ์ ํ๋์ ์ฐ์ํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋จ์ : YOLO ์๋ฆฌ์ฆ์ ๋นํด ๋ค์ ๋๋ฆฝ๋๋ค.
YOLOv3
- ์ถ์: 2018๋
- ์ฃผ์ ํน์ง:
- Darknet-53 ๋ฐฑ๋ณธ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋ค์ค ์ค์ผ์ผ ์์ธก: ์ธ ๊ฐ์ง ๋ค๋ฅธ ํฌ๊ธฐ์์ ์์ธก์ ์ํํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ๊ฐ์ ๋ ์ต์ปค ๋ฐ์ค์ ๋ก์ง์คํฑ ํ๊ท๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ฅ์ : ๋์ mAP(mean Average Precision)๊ณผ ๋น ๋ฅธ ์ถ๋ก ์๋๋ฅผ ์๋ํฉ๋๋ค.
Feature Pyramid Network (FPN)
- ์ค๋ช : ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์งํ๊ธฐ ์ํด ๋ค์ค ์ค์ผ์ผ ํผ์ฒ๋ฅผ ํตํฉํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
- ํน์ง:
- ํผ๋ผ๋ฏธ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ๋ค๋ฅธ ํด์๋์ ํผ์ฒ ๋งต์์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ๊ณ ํด์๋์ ์ ํด์๋ ํผ์ฒ ๋งต์ ๊ฒฐํฉํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
- RetinaNet๊ณผ ๊ฐ์ ๋ชจ๋ธ์์ ์ฌ์ฉ๋์ด ๋์ ์ ํ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
YOLO-v3
YOLO v3์ ํน์ง
- Feature Pyramid Network (FPN) ์ ์ฌํ ๊ธฐ๋ฒ ์ ์ฉ
- ์ค๋ช : YOLOv3๋ Feature Pyramid Network(FPN)์ ์ ์ฌํ ๊ธฐ๋ฒ์ ์ ์ฉํ์ฌ ๋ค์ค ์ค์ผ์ผ ๊ฐ์ฒด ํ์ง๋ฅผ ์ํํฉ๋๋ค.
- ํน์ง: 3๊ฐ์ ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ์ค์ผ์ผ์ ๊ฐ์ง Feature Map์์ ๊ฐ๊ฐ 3๊ฐ์ Anchor Box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- 13x13 ํฌ๊ธฐ์ Feature Map: ํฐ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- 26x26 ํฌ๊ธฐ์ Feature Map: ์ค๊ฐ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- 52x52 ํฌ๊ธฐ์ Feature Map: ์์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ์ฅ์ : ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์งํ ์ ์์ผ๋ฉฐ, ์์ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
- ๋์ ๋ถ๋ฅ ์ฑ๋ฅ์ ๊ฐ์ง๋ Darknet-53
- ์ค๋ช : YOLOv3๋ Darknet-53์ ๋ฐฑ๋ณธ ๋คํธ์ํฌ๋ก ์ฌ์ฉํฉ๋๋ค.
- ํน์ง: Darknet-53์ 53๊ฐ์ Convolutional Layer๋ก ๊ตฌ์ฑ๋ ๊น์ ์ ๊ฒฝ๋ง์ ๋๋ค.
- ์ฅ์ : ๋ ๋์ ํน์ง ์ถ์ถ ๋ฅ๋ ฅ์ ์ ๊ณตํ์ฌ ๊ฐ์ฒด ํ์ง์ ์ ํ๋๋ฅผ ํฅ์์ํต๋๋ค. ์ด์ ๋ฒ์ ์ Darknet-19๋ณด๋ค ๋ ๊น๊ณ ๊ฐ๋ ฅํ ๋ชจ๋ธ์ ๋๋ค.
- Multi-Label ์์ธก
- ์ค๋ช : YOLOv3๋ ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ํด ๋ค์ค ๋ ์ด๋ธ์ ์์ธกํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
- ํน์ง: Softmax ๋์ Sigmoid ๊ธฐ๋ฐ์ Logistic Classifier๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๊ฐ์ฒด์ ๋ํด ๋ค์ค ๋ ์ด๋ธ์ ์์ธกํฉ๋๋ค.
- ์ฅ์ : ํ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ํด๋์ค์ ์ํ ์ ์๋ ๊ฒฝ์ฐ์๋ ์ ํํ๊ฒ ์์ธกํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ ๊ฐ์ฒด๊ฐ ๋์์ '๊ฐ'์ '์ ์๋๋ฌผ'์ผ ์ ์์ต๋๋ค.
YOLO v3 Network ๊ตฌ์กฐ
๋จผ์ , ์์ฝ๋ด์ฉ์ ์ค๋ช ๋๋ฆฌ๋ฉด, Multi-Scale Object Detection์ ์ํ FPN (Feature Pyramid Network) ๊ธฐ๋ฒ์ด ์ ์ฉ๋์ด ์์ต๋๋ค.
- Backbone Network: Darknet-53
- YOLOv3๋ 53๊ฐ์ Convolution Layer๋ก ๊ตฌ์ฑ๋ Darknet-53์ Backbone Network๋ก ์ฌ์ฉํฉ๋๋ค.
- ์ด Backbone Network๋ ์ด๋ฏธ์ง์์ ๊ณ ์์ค์ ํน์ง์ ์ถ์ถํฉ๋๋ค.
- Residual Blocks
- ๋คํธ์ํฌ๋ Residual Blocks๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต ์๋๋ฅผ ํฅ์์ํค๊ณ , ๊น์ ๋คํธ์ํฌ์์ ๋ฐ์ํ ์ ์๋ Gradient Loss ๋ฌธ์ ๋ฅผ ์ํํฉ๋๋ค.
- Residual Blocks๋ ์ ๋ ฅ์ ์ถ๋ ฅ์ ๋ํ๋ ์คํต ์ฐ๊ฒฐ(skip connection)์ ํฌํจํฉ๋๋ค.
- Feature Pyramid Network (FPN)
- YOLOv3๋ FPN ๊ธฐ๋ฒ์ ์ ์ฉํ์ฌ ๋ค์ค ์ค์ผ์ผ์์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- 3๊ฐ์ ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ Feature Map์ ์ฌ์ฉํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- Scale 1: 13x13 Feature Map (Stride: 32) - ํฐ ๊ฐ์ฒด ํ์ง
- Scale 2: 26x26 Feature Map (Stride: 16) - ์ค๊ฐ ํฌ๊ธฐ ๊ฐ์ฒด ํ์ง
- Scale 3: 52x52 Feature Map (Stride: 8) - ์์ ๊ฐ์ฒด ํ์ง
- Detection Heads
- ๊ฐ Feature Map์ ๊ฐ๊ฐ์ Detection Head๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ธกํฉ๋๋ค.
- ๊ฐ Detection Head๋ 3๊ฐ์ Anchor Box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ๊ฒฝ๊ณ ์์์ ํด๋์ค ํ๋ฅ ์ ์์ธกํฉ๋๋ค.
- ์ด๋ก์จ ๊ฐ Feature Map์์ ์ด 9๊ฐ์Anchor Box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- Upsampling and Merging
- ๋์ ํด์๋์ Feature Map์์ ์์ธก์ ๋ ์ํ๊ธฐ ์ํด ๋ฎ์ ํด์๋์ Feature Map์ Upsamplingํ์ฌ ๋์ ํด์๋์ Feature Map๊ณผ ๋ณํฉํฉ๋๋ค.
YOLO์ SSD์ ๋น๊ต
3๊ฐ์ง์ ์ฃผ์ ๋ก ๋น๊ต๋ฅผ ํ๋ฒ ํด๋ณด๊ฒ ์ต๋๋ค
- Feature Map์ ํด์๋:
- YOLOv2๋ ๋จ์ผ ํด์๋(13x13)๋ง ์ฌ์ฉํฉ๋๋ค.
- YOLOv3๋ 3๊ฐ์ ํด์๋(52x52, 26x26, 13x13)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- SSD๋ 6๊ฐ์ ํด์๋(1x1, 2x2, 3x3, 5x5, 10x10, 19x19)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋ค์ค ์ค์ผ์ผ ๊ฐ์ฒด ํ์ง:
- YOLOv3์ SSD๋ ๋ค์ค ์ค์ผ์ผ ๊ฐ์ฒด ํ์ง๋ฅผ ์ง์ํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ํ์งํ ์ ์์ต๋๋ค.
- YOLOv2๋ ๋จ์ผ ํด์๋๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์๋์ ์ผ๋ก ๋ค์ค ์ค์ผ์ผ ๊ฐ์ฒด ํ์ง์ ์ ํ์ ์ ๋๋ค.
- ์์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ:
- YOLOv3์ SSD๋ ์์ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ด ๋ฐ์ด๋จ. ์ด๋ ์์ ํฌ๊ธฐ์ Feature Map์ ์ฌ์ฉํ์ฌ ๋ ์ธ๋ฐํ ํ์ง๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- YOLOv2๋ ๋จ์ผ ํด์๋(13x13)๋ก ์ธํด ์์ ๊ฐ์ฒด์ ๋ํ ํ์ง ์ฑ๋ฅ์ด ์๋์ ์ผ๋ก ๋ฎ์ต๋๋ค.
YOLO v3 Output Feature Map
- YOLOv3๋ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํ๊ธฐ ์ํด 13x13, 26x26, 52x52 ํฌ๊ธฐ์ ์ธ ๊ฐ์ง Feature Map์ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐ Feature Map์ ํด๋น ํด์๋์์ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ Anchor Box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๊ณ ์์์ ํด๋์ค ํ๋ฅ ์ ์์ธกํฉ๋๋ค.
- ์ด๋, Bounding Box๋ค์ Attribute๋ค์ ํ๋ฒ ์์๋ณด๋ฉด?
- Box Coordinates (tx, ty, tw, th): Bounding Box์ ์ค์ฌ ์ขํ (tx, ty)์ ๋๋น (tw), ๋์ด (th)๋ฅผ ๋ํ๋ ๋๋ค. aka. ์ขํ๊ฐ
- Objectness Score (p0): ํด๋น ์ต์ปค ๋ฐ์ค๊ฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ ํ๋ฅ ์ ๋ํ๋ ๋๋ค. aka. Object ํฌํจ ํ๋ฅ x IOU
- Class Scores (p1, p2, ..., pc): ๊ฐ ํด๋์ค์ ๋ํ ํ๋ฅ ์ ๋ํ๋ ๋๋ค. ์ด๋ class์ score๋ค์ ๋ํ๋ด๊ธฐ ์ํ์ฌ ์ฌ์ฉํ๋ Dataset๋ค์ Pretrained๋ Coco Dataset์ ๋๋ค.
- ๋ํ ๊ฐ Anchor Box๋ ์ด B๊ฐ์ ์ ๋ณด๋ฅผ ์์ธกํฉ๋๋ค. ์ฌ๊ธฐ์ B๋ Anchor Box์ ์์ ๋๋ค.
Darknet-53 ํน์ฑ
- Top-1 ์ ํ๋: 77.2%
- Top-5 ์ ํ๋: 93.8%
- Bn Ops (Billion Operations): 18.7
- BFLOP/s (Billion Floating Point Operations per Second): 1457
- FPS (Frames Per Second): 78
- ์ด๊ธฐ Convolutional Layer: 32๊ฐ์ 3x3 ํํฐ (์ถ๋ ฅ: 256x256).
- ์ดํ Residual Block: ๊ฐ ๋ธ๋ก์ 1x1๊ณผ 3x3 Convolutional Layer๋ก ๊ตฌ์ฑ, ๋ธ๋ก๋ง๋ค ์ถ๋ ฅ ํฌ๊ธฐ๋ ์ ๋ฐ์ผ๋ก ์ค์ด๋ญ๋๋ค.
- ์ต์ข ๋ ์ด์ด: Global Average Pooling, Fully Connected Layer, Softmax Layer.
Darknet-53์ YOLOv3์ ๋ฐฑ๋ณธ ๋คํธ์ํฌ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋์ ํน์ง ์ถ์ถ ๋ฅ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
Residual Block์ ์ฌ์ฉํ์ฌ ๊น์ ๋คํธ์ํฌ์์๋ ํจ์จ์ ์ธ ํ์ต์ด ๊ฐ๋ฅํ๋ฉฐ, ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ์ํํฉ๋๋ค.
Training
YOLO v3 ๋ชจ๋ธ์ด Training๋๋ Flow๋ฅผ ํ๋ฒ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
- ๋ฐ์ดํฐ ์ค๋น (Data Preparation)
- Annotation ํ์ผ: XML ํ์์ ์ฃผ์ ํ์ผ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ด๋ฏธ์ง์ ๋ํ ๊ฐ์ฒด์ ์์น์ ํด๋์ค ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ์์์์๋ PASCAL VOC ํ์์ ๋ฐ๋ฆ
๋๋ค.
- <object> ํ๊ทธ ๋ด์ ๊ฐ์ฒด์ ํด๋์ค ์ด๋ฆ๊ณผ Bounding Box ์ขํ(xmin, ymin, xmax, ymax)๊ฐ ํฌํจ๋ฉ๋๋ค.
- Annotation ํ์ผ: XML ํ์์ ์ฃผ์ ํ์ผ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ด๋ฏธ์ง์ ๋ํ ๊ฐ์ฒด์ ์์น์ ํด๋์ค ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ์์์์๋ PASCAL VOC ํ์์ ๋ฐ๋ฆ
๋๋ค.
- ๋ฐ์ดํฐ ์ฆ๊ฐ (Data Augmentation)
- ํ์ต ๋ฐ์ดํฐ์ ๋ค์์ฑ์ ๋์ด๊ธฐ ์ํด ๋ค์ํ ๋ณํ์ ์ ์ฉํฉ๋๋ค.
- ์ด๋ฏธ์ง ํ์ , ํฌ๊ธฐ ์กฐ์ , ์์ ๋ณํ ๋ฑ์ ํตํด ๋ชจ๋ธ์ด ๋ค์ํ ์ํฉ์ ๋์ํ ์ ์๋๋ก ํ์ตํฉ๋๋ค.
- ๋ค์ค ์ค์ผ์ผ ํ์ต (Multi-Scale Training)
- YOLOv3๋ ๋ค์ํ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ํ์ตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ชจ๋ธ์ด ์ฌ๋ฌ ํด์๋์ ๊ฐ์ฒด๋ฅผ ์ธ์ํ ์ ์๋๋ก ํฉ๋๋ค.
- ์ด๋ฏธ์ง์ ํด์๋๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๋ชจ๋ธ์ด ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์ตํ๋๋ก ํฉ๋๋ค.
- ํผ์ฒ ๋งต ์์ฑ (Feature Map Generation)
- Prediction Feature Map: ์ ๋ ฅ ์ด๋ฏธ์ง๊ฐ ๋คํธ์ํฌ๋ฅผ ํต๊ณผํ๋ฉด์ ๋ค์ํ ํฌ๊ธฐ์ Feature Map์ด ์์ฑ๋ฉ๋๋ค.
- 13x13, 26x26, 52x52 Feature Map: ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํ๊ธฐ ์ํด ์ฌ๋ฌ ํด์๋์ Feature Map์ ์ฌ์ฉํฉ๋๋ค.
- ์ต์ปค ๋ฐ์ค ์ค์ (Anchor Box Setting)
- ์ค๋ช : ๊ฐ ๊ทธ๋ฆฌ๋ ์ ์์ ์ฌ๋ฌ ๊ฐ์ ์ต์ปค ๋ฐ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ธกํฉ๋๋ค.
- ๊ตฌ์ฑ ์์:
- Box Coordinates (tx,ty,tw,th): Bounding Box์ ์ค์ฌ ์ขํ์ ํฌ๊ธฐ.
- Objectness Score (p0p_0): ํด๋น ๋ฐ์ค๊ฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ ํ๋ฅ .
- Class Scores (p1,p2,...,pc): ๊ฐ ํด๋์ค์ ๋ํ ํ๋ฅ .
- ์์ธก (Prediction)
- ์ค๋ช : ๊ฐ Feature Map์ Grid Cell์์ Anchor Box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ์์น์ ํด๋์ค๋ฅผ ์์ธกํฉ๋๋ค.
- ๊ณผ์ :
- ๊ฐ Grid Cell์ ์ฌ๋ฌ Anchor Box๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ธกํฉ๋๋ค.
- ์์ธก๋ Bounding Box์ ํด๋์ค ํ๋ฅ ์ ํตํด ์ต์ข ๊ฐ์ฒด ํ์ง ๊ฒฐ๊ณผ๋ฅผ ๋์ถํฉ๋๋ค.
Location Prediction
- ๊ทธ๋ฆฌ๋ ์
๋ด์ Bounding Box ์ค์ฌ ๊ณ์ฐ
- ๋ชจ๋ธ์ด ์์ธกํ tx, ty ๊ฐ์ Sigmoid Function(์๊ทธ๋ชจ์ด๋ ํจ์)๋ฅผ ํตํด 0์์ 1 ์ฌ์ด๋ก ์กฐ์ ๋ฉ๋๋ค.
- ์ด ๊ฐ์ ๊ทธ๋ฆฌ๋ ์ ์ ์คํ์ cx, cy์ ๋ํด์ ธ Bounding Box์ ์ค์ฌ ์ขํ bx, by๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ์ด๋ ๊ฒ ํ๋ฉด Bounding Box์ ์ค์ฌ์ด ํด๋น Grid Cell ๋ด์ ์์นํ๊ฒ ๋ฉ๋๋ค.
- Bounding Box ํฌ๊ธฐ ๊ณ์ฐ
- ๋ชจ๋ธ์ด ์์ธกํ tw, th ๊ฐ์ ๊ฐ๊ฐ Anchor Box์ ๋๋น pw์ ๋์ด ph์ ์ง์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ๊ณฑํด์ง๋๋ค.
- ์ด๋ฅผ ํตํด ์ต์ข Bounding Box์ ๋๋น bw์ ๋์ด bh๋ฅผ ์ป์ต๋๋ค.
- ๊ฐ์ฒด ํ๋ฅ ๊ณ์ฐ
- ๋ชจ๋ธ์ด ์์ธกํ ๊ฐ์ฒด ํ๋ฅ ๊ฐ to๋ Sigmoid Function(์๊ทธ๋ชจ์ด๋ ํจ์)๋ฅผ ํตํด 0์์ 1 ์ฌ์ด๋ก ์กฐ์ ๋ฉ๋๋ค.
- ์ด ๊ฐ์ ํด๋น Bounding Box๊ฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ ํ๋ฅ ์ ๋ํ๋ ๋๋ค.
๋ชจ๋ธ์ด ์์ธกํ ๊ฐ์ฒด ํ๋ฅ ๊ฐ σ(toโ)๋ฅผ ์ ์ฉ ํ๋ ์ด์ ๋ Center(์ค์) ์ขํ๊ฐ Cell ์ค์ฌ์ ๋๋ฌด ๋ฒ์ด๋์ง ์๋๋ก 0~1 ์ฌ์ด์ Sigmoid ๊ฐ์ผ๋ก ์กฐ์ ํฉ๋๋ค. ์ด์ ๋ ์ ์ฉํ์ง ์์ผ๋ฉด ์ด๋ฏธ์ง ๋์ผ๋ก๊ฐ๊ฑฐ๋ ๋ฒ์ด๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
Multi Label ์์ธก
YOLO v3 ๋ชจ๋ธ์ ์ต์ข Detection ๋จ๊ณ์์ Softmax Function(์ํํธ๋งฅ์ ํจ์)๋ฅผ ์์๋๋ค.
๋์ , ์ฌ๋ฌ๊ฐ์ ๋ ๋ฆฝ์ ์ธ Logistic Classifier๋ฅผ ์ฌ์ฉํฉ๋๋ค. (ํด๋์ค ๋ณ๋ก)
YOLO v3 ์ฑ๋ฅ ๋น๊ต
COCO AP ๊ธฐ์ค ์ฑ๋ฅ ๋น๊ต
YOLOv3
- mAP: YOLOv3-320: 28.2, YOLOv3-416: 31.0, YOLOv3-608: 33.0
- ์ถ๋ก ์๊ฐ: YOLOv3-320: 22ms, YOLOv3-416: 29ms, YOLOv3-608: 51ms
- ํน์ง: ๋น ๋ฅธ ์๋์ ๋์ ์ ํ๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ ๋ชจ๋ธ(YOLOv3-320)์ ํนํ ๋น ๋ฅธ ์ถ๋ก ์๊ฐ์ ๊ฐ์ง๋๋ค.
RetinaNet
- mAP: RetinaNet-50: 32.5, RetinaNet-101: 34.4
- ์ถ๋ก ์๊ฐ: RetinaNet-50: 73ms, RetinaNet-101: 90ms
- ํน์ง: ๋์ ์ ํ๋ ์ ๊ณตํ์ง๋ง YOLOv3๋ณด๋ค ์ถ๋ก ์๊ฐ์ด ๋ ๊น๋๋ค.
SSD
- mAP: SSD321: 28.0, SSD513: 31.2
- ์ถ๋ก ์๊ฐ: SSD321: 61ms, SSD513: 125ms
- ํน์ง: ์ค๊ฐ ์ ๋์ ์ ํ๋์ ์ถ๋ก ์๊ฐ. YOLOv3๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ค.
๋ค๋ฅธ ๋ชจ๋ธ
- R-FCN: mAP: 29.9, ์ถ๋ก ์๊ฐ: 85ms
- FPN FRCN: mAP: 36.2, ์ถ๋ก ์๊ฐ: 172ms
COCO mAP-50 ๊ธฐ์ค ์ฑ๋ฅ ๋น๊ต
YOLOv3
- mAP-50: YOLOv3-320: 51.5, YOLOv3-416: 55.3, YOLOv3-608: 57.9
- ์ถ๋ก ์๊ฐ: YOLOv3-320: 22ms, YOLOv3-416: 29ms, YOLOv3-608: 51ms
- ํน์ง: ๋์ mAP-50 ์ ๊ณต. ํนํ YOLOv3-608์ ๊ฐ์ฅ ๋์ mAP-50๊ณผ ๋น ๋ฅธ ์ถ๋ก ์๊ฐ์ ๊ฐ์ง๋๋ค.
RetinaNet
- mAP-50: RetinaNet-50: 53.1, RetinaNet-101: 57.5
- ์ถ๋ก ์๊ฐ: RetinaNet-50: 73ms, RetinaNet-101: 198ms
- ํน์ง: ๋์ mAP-50 ์ ๊ณตํ์ง๋ง, ์ถ๋ก ์๊ฐ์ด ์๋์ ์ผ๋ก ๊น๋๋ค.
SSD
- mAP-50: SSD321: 45.4, SSD513: 50.3
- ์ถ๋ก ์๊ฐ: SSD321: 61ms, SSD513: 125ms
- ํน์ง: ์ค๊ฐ ์ ๋์ ์ฑ๋ฅ ์ ๊ณต. YOLOv3๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ค.
๋ค๋ฅธ ๋ชจ๋ธ
- R-FCN: mAP-50: 51.9, ์ถ๋ก ์๊ฐ: 85ms
- FPN FRCN: mAP-50: 59.1, ์ถ๋ก ์๊ฐ: 172ms
๋ฐ์ํ
'๐ Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CV] OpenCV์์ YOLO๋ฅผ ์ด์ฉํ Object Detection Part.2 (0) | 2024.10.06 |
---|---|
[CV] OpenCV์์ YOLO๋ฅผ ์ด์ฉํ Object Detection Part.1 (0) | 2024.07.15 |
[CV] OpenCV DNN ํจํค์ง & SSD ๊ธฐ๋ฐ Object Detection ์ํ (0) | 2024.07.10 |
[CV] SSD - Single Shot (Multibox) Detector (0) | 2024.07.07 |
[CV] OpenCV๋ก Object Detection ๊ตฌํํ๊ธฐ (Part.2) (0) | 2024.06.04 |