Post

Object Detection의 앙상블 기법: WBF

Object Detection의 앙상블 기법: WBF

🟣 Object Detection의 앙상블 기법: WBF (Weighted Boxes Fusion)


Object Detection 모델들은 동일한 이미지에 대해 서로 다른 위치에 bounding box를 예측하는 경우가 많음.
이러한 불일치를 줄이고 성능을 향상시키기 위해 앙상블 기법을 적용할 수 있음.
그 중 하나가 Weighted Boxes Fusion (WBF)임.


⚪ 1. 기존 기법: NMS와 Soft-NMS

대부분의 Object Detection 모델은 post-processing 단계에서 NMS(Non-Maximum Suppression)를 사용함.

WBF

  • NMS는 겹치는 box들 중에서 가장 confidence score가 높은 box 하나만 남기고, 나머지를 제거함.
  • Soft-NMS는 제거 대신, 겹치는 box들의 confidence를 감소시키는 방식임.

이 두 방법의 공통점은, 겹치는 box 중 정보를 제거하는 방식이라는 점임.
따라서 복수의 모델을 앙상블할 때는 불리할 수 있음.


⚪ 2. WBF (Weighted Boxes Fusion)의 아이디어

WBF는 다음과 같은 아이디어를 가짐:

“비슷한 위치의 box는 하나로 결합(fusion)하고, confidence score를 가중치로 활용하여 평균을 냄.”

즉, 각 모델이 예측한 box들 중 유사한 위치에 있는 것들끼리 클러스터링하고,
그들의 좌표를 가중평균(weighted average)으로 계산함.
confidence가 높을수록 해당 box의 위치를 더 반영함.


⚪ 3. 수식적 정의

같은 객체를 예측한 box들이 다음과 같다고 하자:

  • box 좌표: ( B_i = (x_i, y_i, w_i, h_i) )
  • confidence score: ( s_i )
  • 총 예측 box 수: ( N )

이때 WBF는 최종 box ( B_{\text{fused}} )를 다음과 같이 계산함:

[ B_{\text{fused}} = \frac{\sum_{i=1}^{N} s_i \cdot B_i}{\sum_{i=1}^{N} s_i} ]

즉, confidence가 높은 box일수록 box 좌표 평균에 더 크게 기여하게 됨.


⚪ 4. 구현 예시 (Python)

ensemble-boxes 라이브러리를 이용하면 쉽게 구현할 수 있음:

1
pip install ensemble-boxes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from ensemble_boxes import weighted_boxes_fusion

# 예시: 2개의 모델 예측 결과
boxes_list = [
    [[0.1, 0.1, 0.4, 0.4], [0.15, 0.15, 0.45, 0.45]],  # model1
    [[0.12, 0.1, 0.42, 0.4], [0.5, 0.5, 0.7, 0.7]]      # model2
]
scores_list = [
    [0.9, 0.75],  # model1
    [0.88, 0.6]   # model2
]
labels_list = [
    [0, 0],  # class 0
    [0, 1]   # class 0, class 1
]

boxes, scores, labels = weighted_boxes_fusion(
    boxes_list, scores_list, labels_list,
    weights=[1, 1],
    iou_thr=0.55,
    skip_box_thr=0.0
)

print("Fused Boxes:", boxes)
print("Fused Scores:", scores)
print("Fused Labels:", labels)
  • box 좌표는 반드시 normalized (0~1) 이어야 함
  • weights는 모델별 가중치로, 필요 시 튜닝 가능함

⚪ 5. WBF의 장점과 한계

장점
  • confidence를 반영해 더 정확한 box 위치를 예측할 수 있음
  • box 제거가 없기 때문에 정보 손실이 적음
  • 다양한 구조의 모델을 조합 가능 (예: YOLO + Faster R-CNN)
단점
  • 입력 box 수가 많아지면 속도가 느려질 수 있음
  • 앙상블 전 사전 정규화 필요
  • 모델 간 예측 편차가 클 경우 효과가 낮아질 수도 있음

⚪ 6. 결론

WBF는 object detection에서 단순한 post-processing 이상으로, 모델 간 불확실성을 조화롭게 조합할 수 있는 실용적인 앙상블 기법임.

특히 두 모델의 특성이 다를수록 (e.g. YOLO의 빠른 탐지 + Faster R-CNN의 정확한 localization) WBF를 통해 서로의 약점을 보완하는 데 큰 도움이 될 수 있음.


🟣 Reference

This post is licensed under CC BY 4.0 by the author.