• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

YOLO V1 bounding box 2개 문의드립니다.

22.05.31 11:44 작성 조회수 852

0

안녕하세요. 강의 늘 감사히 듣고 있습니다. 

이해가 안되는 점이 Yolo v1에서 grid마다 2개의 bounding box 를 기반으로 예측한다는 것이 잘 이해되지 않아서 문의드립니다. 

 

CNN을 통해서 7x7x1024 feature map을 얻고, 여기서 FC Layer를 통과한 값을 reshape을 통해서 7x7x30을 얻게 되는데요. 

이 때, 2x (bbox의 conference, 좌표)+class 확률(20)해서 30길이의 vector를 구하게 되는데요. 

제가 궁금한 점은 2개의 bounding box 후보가 training시 model에 직접 input 영향을 미치진 않고 LOss function 구현할 때, IOU 계산할때와 Confindence 구할때 영향을 미치는 것 같습니다. 그래서 학습시 bbox 2개의 좌표는 둘다 target (x,y, w,h)를 맞추는 방향으로 학습되어 지는 걸로 이해했는데요. 

그럼 inference시에도 (x,y,w,h)가 2개 쌍이 나오게 되는데, 제대로 학습되어졌다는 가정하에, 2개 쌍이 같게 나오게 되는게 아닌가 해서요. ..

그렇다면 왜 2개의 bbox를 예측하는지도 궁금해져서요. 

결국 1개의 bbox 예측 하는 것과 다르지 않나 해서 문의드립니다.

 

답변 1

답변을 작성해보세요.

2

안녕하십니까, 

2개의 bounding box가 있는 이유를 요약해서 말씀드리면 모델이 예측에 자신이(?) 없기 때문입니다. 

너무 극단적으로 요약드린 감이 있지만, object detection은 image classification과 좀 다릅니다. 

머신러닝/딥러닝이 근본적으로는 다량의 문제와 답만 주어지면 계속 학습해서 문제 풀이 과정을 찾는 알고리즘으로 요약할 수 있는데, image classification과는 달리 object detection은 문제인 이미지와  답(Ground truth인 annotation정보)만 주어질때 정답을 찾기가 상대적으로 어렵습니다. 

그래서 오브젝트가 있을 만한 곳에 대한 정보를 다수의 anchor box등으로 학습하면서 찾아내고, 이 anchor box와 object간의 상대 위치를 기반으로 object를 찾아내는 것이 일반적인 object detection의 방법입니다.

근데 Yolo v1은 속도를 향상 시키기 위해서 Cell에서 다수의 anchor box를 사용하지 않고 cell에서 2개의 bounding box만 학습하고 예측하는 방식을 채택했습니다. 일반적으로 object detection은 다수의 anchor box를 학습시켜서 다수의 anchor box가 조금씩 다른 예측을 수행하고 이 중 가장 좋은 예측을 NMS 등으로 Filtering 하는 방식입니다.

anchor 기반은 object detection은 개별 Cell에서 anchor box 별로 다수의 예측을 하게 됩니다.  반면에 Yolo v1은 Cell별로 2개의 bounding box만 수용할 수 있는 모델 구조이고 이 2개의 bbox만 이용하여 학습하고 예측할 수 있도록 만들어 졌습니다.  학습 데이터는 서로 다른 이미지와 서로 다른 annotation으로 되어 있고 또한 예측에 사용되는 데이터는 학습 데이터와 서로 다르기 때문에 학습시에 2개 쌍으로 다른 가중치로 학습이 됩니다. 때문에 제대로 학습이 되어도 2개 쌍의 예측은 서로 다르게 나옵니다. 

감사합니다.