객체 탐지 진짜 어렵다... 이 또한 극복해야 할 벽이겠지! 넘어보자 화이팅!!
학습시간 09:00~02:00(당일17H/누적650H)
| 용어 | 설명 |
|---|---|
| Anchor Box | 정해진 크기/비율을 갖는 기준 박스. 예측은 이 anchor를 기준으로 오프셋 회귀함. |
| Confidence Score | 박스 안에 객체가 있을 확률 × 예측 박스와 정답 박스 간 IoU. |
| NMS (Non-Max Suppression) | 겹치는 박스 중 score가 가장 높은 것만 남기고 나머지를 제거하는 후처리 기법. |
| FPN (Feature Pyramid Network) | 서로 다른 크기의 feature map을 융합하여 다양한 객체 크기에 대응할 수 있게 하는 구조. |
| Passthrough Layer | 낮은 층의 feature를 상위로 연결해 작은 객체 정보를 보존. (YOLOv2에서 사용됨) |
| IoU (Intersection over Union) | 예측 박스와 실제 박스의 겹친 영역 ÷ 전체 영역. 객체 탐지 정확도 계산에 필수 지표. |
| mAP (mean Average Precision) | 클래스별 Precision-Recall 곡선의 평균. 탐지 모델 전체 성능을 평가하는 대표 지표. |
| Hard Negative Mining | 배경(음성 샘플)이 너무 많을 때, 손실이 큰 것만 골라 학습에 반영하는 기법. |
| Focal Loss | 어려운 샘플(예측 실패)에 더 집중하도록 만든 손실 함수. 클래스 불균형 문제에 효과적. |
| YOLO Head | YOLO 모델의 최종 예측 모듈. feature map을 예측값(좌표, 클래스 등)으로 변환. |
| Multiscale Training | 학습 중 이미지 크기를 계속 바꿔서 다양한 해상도에 강건하게 만드는 기법. |
| 항목 | YOLO v1 | YOLO v2 | YOLO 9000 | YOLO v3 | SSD |
|---|---|---|---|---|---|
| 발표년도 | 2016 (CVPR) | 2016/2017 | 2016/2017 | 2018 (arXiv) | 2016 |
| Backbone | 커스텀 CNN | Darknet-19 | Darknet-19 | Darknet-53 | VGG, ResNet |
| Anchor 사용 | ✗ | ✓ | ✓ | ✓ | ✓ |
| 스케일 | 1 | 1 + Multi | 계층적 | 3 | 다중 |
| 구조 특징 | 단순 회귀 구조 | Anchor 도입 | WordTree + 공동 학습 | FPN + Residual | Multi-Scale Box |
| 예측 방식 | 그리드 단위 회귀 | Anchor 기반 회귀 | Anchor 기반 회귀 | 각 스케일에서 3개씩 예측 | 다양한 feature map에서 anchor 예측 |
| 주요 개선점 | 실시간 처리빠른 속도 | Anchor + BatchNormHigh-res ClassifierYOLO9000 확장 | 분류 + 탐지 데이터 동시 학습클래스 수 대폭 증가 | 다중 스케일 예측Darknet-53구조 모듈화 | 다중 해상도Hard Negative Mining |
| 속도 | ★★★★★ | ★★★★ | ★★★★ | ★★★★ | ★★★★ |
| 작은 객체 탐지 | ★ | ★★ | ★★ | ★★★★ | ★★★ |
| 정확도 | ★★★ | ★★★★ | ★★★★ | ★★★★★ | ★★★★ |
1-Stage Detection은 복잡한 후보 영역(Region Proposal) 생성 과정을 생략하고, 단 한 번의 네트워크 전파로 객체의 위치와 클래스를 동시에 예측하는 방식이다.

속도와 구조적 단순함 덕분에 실시간 응용 분야에서 널리 사용된다.
| 항목 | One-Stage Detector | Two-Stage Detector |
|---|---|---|
| 구조 | 단일 네트워크로 분류 + 회귀 동시에 처리 | 후보 영역 생성 후 분류 단계 추가 |
| 예시 모델 | YOLO, SSD, RetinaNet | R-CNN, Fast R-CNN, Faster R-CNN |
| 속도 | 빠름 (실시간 가능) | 느림 (정확도 우선) |
| 정확도 | 중상 | 높음 |
| 작은 객체 탐지 | 상대적으로 약함 | 상대적으로 강함 |
| Anchor Box 사용 | 필수 | 일부 모델만 사용 |
| 구현 복잡도 | 낮음 | 높음 |
| 활용 분야 | 실시간 영상, 드론, 로봇비전 | 의료영상, 정밀 탐지, 대형 모델링 |

A. 손실 함수
B. 장점
C. 단점

A. 손실 함수
B. 장점
C. 단점
[ YOLO와 SSD 차이점? ]

[ 코드 예시 ]
class SSD(nn.Module):
def __init__(self, backbone):
super(SSD, self).__init__()
self.backbone = backbone
self.extra_layers = nn.ModuleList([...])
self.loc_layers = nn.ModuleList([...])
self.cls_layers = nn.ModuleList([...])
def forward(self, x):
features = []
x = self.backbone(x)
features.append(x)
for layer in self.extra_layers:
x = layer(x)
features.append(x)
locs, confs = [], []
for f, l, c in zip(features, self.loc_layers, self.cls_layers):
locs.append(l(f))
confs.append(c(f))
return torch.cat(locs, dim=1), torch.cat(confs, dim=1)



A. 장점
B. 단점


A. 장점
B. 단점



A. 장점
B. 단점
어렵다 어려워... 다음 미션 어쩌면 좋니 ㅠㅠ?