플로라도의 data workout

앵커박스(Anchor-box)와 바운딩 박스(Bounding-box)의 차이 본문

기초 노트/VisionAI

앵커박스(Anchor-box)와 바운딩 박스(Bounding-box)의 차이

플로라도 2024. 6. 3. 23:51

Object detection 논문에서  'Box regression' 이라는 표현이 등장하곤 하는데, 매번 등장할때마다 대충 넘어갔던 개념! 앵커박스와 바운딩박스의 이해를 바로 잡고자한다.

왜인지는 모르겠으나 필자 같은 경우 여기서의 Box를 당연히 (Bounding)Box Regression으로 생각했고, 이 때문에 이해가 뒤죽박죽이 되었다.
 
Bounding-box Regression라고 이해한다면,
바운딩 박스의 Regression일까? 바운딩 박스로의 Regression일까?
주체인걸까 대상인걸까?
이것만 명확히해도 사실 헷갈릴 게 없었다.
 
필자는 'Box Regression'이라는 표현을 마주했을때 Box가 주체적인 단어라고 생각을 했기에
이러한 관점에서의 Box Regression은 사실 (Anchor)Box Regression과 같다고 할 수 있다.
필자의 이해방식으로는 정확히, 앵커박스를 실제적인 바운딩박스로 regression하는 과정인 것이다.
물론 Anchor box가 도입되지 않는 모델이라면 예측 박스의 바운딩 박스로의 Regression일 것이다. 
 
이렇게만 말하면 앵커박스와 바운딩 박스가 살살 헷갈리기 시작하니 제대로 정리하고 넘어가고자 한다.
 

앵커박스(Anchor Box)

- 앵커 박스는 Object Detection 모델이 다양한 크기와 비율의 객체를 효과적으로 탐지할 수 있도록 돕기 위해 미리 정의된 여러 크기와 비율의 박스이다.
- 모델의 예측 단계에서 사용할 기준이되는 박스를 제공하는 것이며, 다양한 스케일의 객체를 탐지할 수 있게 한다.
- 즉, 바운딩박스를 예측하고 조정하며 objectness score를 계산하기 위하여 만들어지는 object가 있을 candidate region이다.
- default box, predefined box with sepecific sizes, aspect ratios, and positions
- templates for prediction
 
 

바운딩 박스(Bounding Box)

- 바운딩 박스는 실제 이미지 내 객체의 위치와 크기를 나타내는 사각형의 박스이다.
- 학습 데이터에서 제공되는 객체의 실제 위치정보로, 모델 학습시 정답 레이블로 사용된다.
- 모델이 예측한 결과로 정확한 위치와 크기를 나타내기 위해 사용된다.
- 주로 객체의 좌표로 (x,y,width,height)를 포함한다.
- 모델이 예측한 바운딩 박스와 실제 바운딩 박스의 IOU를 계산하여 모델의 성능을 평가하기도 한다.
- represent the actual regions and provide ground truth
 

YOLO

yolo모델에서 YOLOv1과 YOLOv2의 가장 큰 차이점은 바운딩 박스를 직접 예측하는지, 앵커박스를 사용하여 예측하는지의 여부이다. v1버전은 네트워크가 직접 바운딩 박스를 예측하였지만 v2버전 부터는 K-means 클러스터링을 사용하여, 데이터셋의 객체 크기에 따라 앵커박스를 도입하였다고 한다. 사실 이 때문에 처음 공부할때 Box regression이라는 단어를 두고, 앵커박스, 바운딩 박스의 용어 혼선이 온게 아닌가 싶다.
 
 


Reference)
 
https://medium.com/@nikitamalviya/object-detection-anchor-box-vs-bounding-box-bf1261f98f12

Object Detection — Anchor Box VS Bounding Box

In object detection algorithms like Faster R-CNN and YOLO, anchor boxes are used to generate candidate regions and to predict bounding box…

medium.com