08-01) ObjectDetection-1

slow_starter·2025년 9월 1일
0

드디어 8주차 교육이 시작되었다. 병원 진료, 회식, 야근 등으로 몇 번 결석해버린 탓에 수료(80%)하려면 마지막 순간까지 최선을 다해야 할 것 같다.

01. Object Detection 개요

  • 2-stage(Regional proposal-based) : R-CNN → Fast CNN → Faster R-CNN. Feature map에서 RPN이 후보영역을 제안하고, 그 위에서 분류/박스 보정 수행. 정확도 우수, End-to-End 학습이 가능
  • 1-Stage (Proposal-free): SSD, YOLO. 이미지에 고정 grid와 default/anchor box를 두고 한 번에 분류+박스 회귀(regression). 속도 우수
  • Anchor(default) box vs Predicted box
    • Anchor는 사전에 정의된 기준 박스(비율/크기 고정). 모델은 각 anchor마다 오프셋(중심, 폭/높이)과 클래스 확률(또는 confidence)을 예측해 predicted box를 만든다.

02. NMS(Non-Maximum Supression)

  • 동일 박스에 대한 중복 박스를 제거하는 후처리
    1. 특정 클래스에 대해, confidence(혹은 class score)가 높은 순으로 정렬
    2. 가장 높은 박스를 선택하고, 그 박스와 IOU가 임계값(예: 0.5) 이상인 박스 제거
    3. 남은 박스에 대해 반복
      ※ NMS는 "우세한 최고 점수 박스 하나만 남기고 나머지 중복을 억제"한다

03. IoU (Intersection over Union)

  • 두 박스 A, B의 겹침 정도
    IoU(A,B)=ABAB=ABA+BAB\mathrm{IoU}(A,B) = \frac{|A\cap B|}{|A\cup B|}=\frac{|A\cap B|}{|A|+|B|-|A\cap B|}
  • Detection에서 정답 판정은 흔히 IoU>=0.5\mathrm{IoU} >= 0.5 같은 임계값 사용

04. Precision/Recall/F1

Precision=TPTP+FP\mathrm{Precision} = \frac{TP}{TP+FP}
Recall=TPTP+FN\mathrm{Recall}= \frac{TP}{TP+FN}
F1=2PrecisionRecallPrecision+Recall\mathrm{F1}=\frac{2\cdot \mathrm{Precision}\cdot \mathrm{Recall}}{\mathrm{Precision}+\mathrm{Recall}}
  • Precision은 정답으로 예측한 것중 실제 정답 비율
  • Recall은 실제 정답 중 맞춘 비율
    • Precision과 Recall은 trade-off 관계

05. Precision-Recall(PR) 곡선과 AP/mAP

  • PR Curve: detection 결과를 confidence score 내림차순으로 훑으면서 얻는 (Recall, Precision) 쌍의 궤적. 좋은 모델일수록 우상단에 위치

  • AP (Average Precision): PR 곡선 아래 면적(AUC-PR)

    AP=01Precision(r)dr\mathrm{AP}=\int_{0}^{1}\mathrm{Precision}(r)\,dr

    이산 근사(정렬된 예측에 대해):

    APk=1N(RecallkRecallk1)Precisionk\mathrm{AP}\approx \sum_{k=1}^{N}\big(\mathrm{Recall}_k-\mathrm{Recall}_{k-1}\big)\cdot \mathrm{Precision}_k
  • mAP: 클래스별 AP를 평균한 값

    mathrmmAP=1Cc=1CAPcmathrm{mAP}=\frac{1}{C}\sum_{c=1}^{C}\mathrm{AP}_c
  • Detection 평가는 보통 IoU 임계값(예: 0.5, 혹은 0.5:0.95 평균)과 PR 기반 AP/mAP을 함께 사용

06. ROC vs PR

  • ROC는 TPR(=Recall)-FPR 축, PR은 Precision-Recall 축.
  • 양성(positive)이 희소한 불균형 문제에서는 PR 곡선이 모델 차이를 더 잘 드러내는 경우가 많다. (Detection은 보통 고불균형.)
    TPR=TPTP+FN,FPR=FPFP+TN\mathrm{TPR}=\frac{TP}{TP+FN},\quad \mathrm{FPR}=\frac{FP}{FP+TN}

07. 1-Stage vs 2-Stage: 선택 기준 정리

  • 정확도 최우선(복잡한 배경/작은 객체/정밀 평가 필요) → 2-Stage(Faster R-CNN 등) 고려
  • 실시간/경량/낮은 지연시간 → 1-Stage(SSD/YOLO 계열) 우선
  • 데이터/서비스 요구사항에 따라 mAP@{IoU}, FPS/latency, 모델 크기를 함께 비교

08. (선택) 박스 회귀 파라미터화와 손실 예시

  • Detection 모델은 anchor 대비 오프셋을 예측한다(예 txt_{x}, tyt_{y}, twt_{w}, tht_{h})
    tx=xxawa,ty=yyaha,tw=logwwa,th=loghhat_x=\frac{x - x_a}{w_a},\quad t_y=\frac{y - y_a}{h_a},\quad t_w=\log\frac{w}{w_a},\quad t_h=\log\frac{h}{h_a}
  • 여기서 (xax_{a}, yay_{a}, waw_{a}, hah_{a})는 anchor, x,w,w,hx,w,w,h는 예측 박스. 회귀는 주로 Smooth L1(Huber) 또는 IoU 손실을 이용
profile
2025화이팅!

0개의 댓글