• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

anchor box와 bbox의 정확한 차이에 대해 질문드립니다.

22.04.20 12:09 작성 조회수 1.47k

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요. yolo v2를 복습하다 의문점이 몇가지 생겨 말씀드립니다.
 
먼저 bbox는 object를 detect하는 예측 box를 말하고,
anchor box는 미리 정해진 크기와 ratio를 바탕으로 한 box이고, 이 box를 바탕으로 bbox가 만들어진다. 라고 이해했습니다.
 
여기서 질문드립니다.
yolo2에서는 각 셀별로 5개의 anchor box가 만들어진다 했는데 그럼,
 
1. 하나의 anchor box에서 하나의 bbox가 만들어지나요? (아니면 하나의 anchor box에서 여러개의 bbox가 만들어지기도 하는지, 또한 여러개의 anchor box가 조합되어 하나의 bbox가 만들어지는 것인가요? )
 
2. bbox의 크기에대해 질문드립니다. 만약, anchor box에서 bbox가 만들어진다면, 만들어진 bbox의 크기는 가장 큰 크기를 가지는 anchor box의 높이 너비보다 무조건 작게 나오는 것인가요 ?
(예를들어 밑의 그림에서 빨간색 box가 가장 큰 anchor box라면 그 안에 포함되는 파란색 bbox는 나올 수 있지만 그보다 높이가 긴 분홍생 bbox는 해당 cell의 anchor box에서 나올 수 없는 bbox인가요 ?)
3. SSD와 같이 1개의 cell에서 여러개의 anchor box를 통해 여러개의 object를 detect할 수 있다 했는데, 1개의 cell이 아닌 인접한 cell의 anchor box정보를 이용해 object를 detect하는 일도 있나요 ?
(그렇게 되면 위의 분홍색 bbox도 다른 인접한 cell의 anchor box에 포함될 수 있으므로 만들어 질 수 있는건가요?)
 
 

답변 1

답변을 작성해보세요.

1

안녕하십니까, 

먼저 bbox는 object를 detect하는 예측 box를 말하고,
anchor box는 미리 정해진 크기와 ratio를 바탕으로 한 box이고, 이 box를 바탕으로 bbox가 만들어진다. 라고 이해했습니다.
 
=> 네 맞습니다. 보다 자세히 말씀드리면 anchor box를 기반으로 해당 anchor에서 bbox의 중심좌표가 얼마나 떨어져 있고, 너비와 높이는 anchor box대비 얼마나 되는지 예측하는 것입니다.
 
여기서 질문드립니다.
yolo2에서는 각 셀별로 5개의 anchor box가 만들어진다 했는데 그럼,
 
1. 하나의 anchor box에서 하나의 bbox가 만들어지나요? (아니면 하나의 anchor box에서 여러개의 bbox가 만들어지기도 하는지, 또한 여러개의 anchor box가 조합되어 하나의 bbox가 만들어지는 것인가요? )
 
=> 하나의 anchor box가 하나의 bbox를 만듭니다. 근데 이것 보다는 학습시 개별 anchor box에 Ground Truth에 해당 하는 bbox가 IOU가 가장 큰걸로 할당됩니다. 그러니까 BBOX는 하나의 Anchor box에 할당되어 학습됩니다. 이렇게 이미지별로 여러 오브젝트들이 개별적인 anchor box에 할당 되어 학습하면서 개별 anchor box는 어떤 오브젝트가 입력되었을 때 해당 오브젝트의 bbox가 anchor box의 중심 좌표에서 얼마나 떨어져 있고, anchor box 대비 어느정도의 너비와 높이를 가지는지 학습하게 됩니다.
 
학습이 완료된 모델은 여러개의 오브젝트가 있는 이미지가 입력되면 개별 anchor들이 자신이 생각하는 오브젝트의 위치와 크기를 계산해 내는 것이고, 이 중에 예측확률이 높고 IOU가 큰 BBOX를 NMS방식으로 선택해서 최종 예측합니다.
 
2. bbox의 크기에대해 질문드립니다. 만약, anchor box에서 bbox가 만들어진다면, 만들어진 bbox의 크기는 가장 큰 크기를 가지는 anchor box의 높이 너비보다 무조건 작게 나오는 것인가요 ?
(예를들어 밑의 그림에서 빨간색 box가 가장 큰 anchor box라면 그 안에 포함되는 파란색 bbox는 나올 수 있지만 그보다 높이가 긴 분홍생 bbox는 해당 cell의 anchor box에서 나올 수 없는 bbox인가요 ?)
 
=> anchor box보다 더 큰 오브젝트도 예측 할 수 있습니다. 다만 개별 anchor 들이 학습한 오브젝트 대비 너무 큰 오브젝트라면 anchor 들의 예측 결과가 저하될 수 있습니다.
 
3. SSD와 같이 1개의 cell에서 여러개의 anchor box를 통해 여러개의 object를 detect할 수 있다 했는데, 1개의 cell이 아닌 인접한 cell의 anchor box정보를 이용해 object를 detect하는 일도 있나요 ?
(그렇게 되면 위의 분홍색 bbox도 다른 인접한 cell의 anchor box에 포함될 수 있으므로 만들어 질 수 있는건가요?)
=> 인접한 cell에서도 object를 예측할 수 있습니다. 그러니까 학습 시에는 단일 object의 bbox가 단일 anchor에 할당되면서 학습이 됩니다. 이렇게 학습된 anchor들은 이후 예측 시 cell 여부와 상관없이 자신의 근처에 있는 object를 detect 할 수 있습니다.
이준승님의 프로필

이준승

질문자

2022.04.20

세세한 답변 감사합니다.!