YOLO
물체의 위치를 찾는 문제(localization)와 분류 문제(classification)을 순차적으로 해결
물체의 위치를 찾는 문제와 분류 문제를 한 번에 해결
YOLO가 대표적
이미지를 input 으로 받고 SxS grid cells로 나누고 각 cell마다 하나의 개체를 예측한다.
미리 설정된 개수(N개)의 boundary boxes를 통해 객체의 위치와 크기를 파악한다.
이때, 각 cell마다 하나의 객체만을 예측할 수 있기 때문에 여러 개체가 겹쳐있으면 몇몇의 개체는 탐지를 못할 수 있다.
각 cell 마다 위와 같은 값들을 가진다.
각 Bbox는 다음과 같은 값을 가진다.
x, y : Bbox 중심 좌표의 위치
w, h: 바운딩 박스의 w, h를 input image W, H로 나누어 normalization한 값을 활용
confidence: Pr(object) x IOU 물체가 bbox안에 있는지 확률
클래스 개수 C개 마다 Pr(class.i | Object)
cell 당 변수 개수 = B * 5 + C
24개의 conv layer 와 2개의 FC layer을 포함한다.
가장 신뢰도가 높은 하나의 bounding box 만 남기고 그 객체와 관련된 나머지 bbox를 없애는 후처리 과정에서 사용하는 알고리즘.
IOU (Intersection over Union)
두 Bbox가 겹치는 비율 : 교집합 / 합집합 으로 계산한다.
IOU는 객체를 잘 탐지했는지 성능을 평가할 때 사용되거나,
NMS 알고리즘에서 같은 class끼리 IoU가 임계치 이상일 때 낮은 confidence의 box를 제거한다.
IoU의 임계치의 따라 겹쳐 있는 객체를 얼마나 잘 분류할 수 있는지가 달라진다.
위와 같은 문제를 개선하기 위해 Soft-NMS알고리즘이 제안되었다.
- 1개의 grid cell 당 1개의 class만 취급하기 때문에 2개 이상의 물체가 하나의 grid cell 에 모여 있더라도 한 가지의 class만 예측이 가능하다. 새 떼와 같은 작은 물체들이 모여 있을때 감지를 하지 못한다.
- 일정한 비율의 bbox로만 예측을 하다 보니 색다른 비율의 물체에 대한 예측이 좋지 못하다. -> 일반화가 어렵다.
- 작은 bbox의 loss와 큰 bbox의 loss를 동일하게 처리한다.
Faster R-CNN에 비해서 FPS가 높다. -> 속도가 빠르다.
Fast R-CNN 모델과 YOLO 모델의 Error Analysis
YOLO 모델은 Fast R-CNN 모델보다 background error가 덜 나타났지만, Localization error가 더 많이 나타났다.
limitation 3번 항목에서 작은 bbox와 큰 bbox의 loss 를 동일하게 처리하여 Localiztion error의 원인이 되지 않을까 싶다.
댓글 영역