YOLO는 object detection을 regression problem으로 본다. 단일 neural network가 여러개의 bounding boxes를 예측하고 한번의 evaluation을 통해 class probabilities를 예측한다.YOLO 모델의 장점은 크게 3가지가 있습니다. 첫번째로 매우 빠릅니다. 또한 background error가 다른 state of the art 모델에 비해서 적습니다. 마지막으로 물체의 일반화된 representation을 학습하여 다양한 도메인에서 좋은 성능을 보입니다.
YOLO Detection system의 구조는 다음과 같습니다.
이미지의 크기를 448 x 448 로 변경
Single convolutional network를 적용
모델의 신뢰도에 의해 detection의 thresholds를 설정
Unified Detection
YOLO는 동시에 모든 bounding box를 예측합니다.
입력 이미지를 S x S grid로 분할
각 grid cell마다 B개의 bounding box와 confidence score를 갖는다
각 grid cell은 C개의 conditional probability Pr(Class|Object)를 갖는다
Network Design
Convolutional layer는 이미지의 특징을 추출하고 FC layer로 바운딩박스와 class 확률을 예측합니다.
YOLO는 GoogLeNet에 영감을 받았습니다. 모델 아키텍쳐는 24개의 convolutional layer와 2개의 fully connected layer로 이루어져 있습니다. 1x1 reduction layer 와 3x3 convolutional layer를 사용합니다.
최종 아웃풋은 7 X 7 X 30 tensor of predictions입니다.
Loss Function
YOLO는 multi part loss function을 사용합니다.
가장 첫번째 줄은 bounding box의 위치의 에러를 구하는 공식입니다. 정답 좌표와 예측 좌표 사이의 차이를 제곱하여 에러를 구합니다.
두번째 줄은 bounding box의 크기의 에러를 구하는 공식입니다. 정답 bounding box와 예측 bounding box의 width와 height 사이의 차이를 제곱하여 에러를 구합니다.
세번째 줄은 객체를 포함한 bounding box의 confidence 에러입니다.
네번째 줄은 객체를 포함하지 않은 bounding box의 confidence 에러입니다.
다섯번째 줄은 객체를 포함한 bounding box의 conditional class probability 에러입니다. c
Limitations
각 grid cell이 하나의 클래스만 예측하기 때문에 작은 object들이 함께 있으면 예측이 정확하지 않습니다.
bounding box가 training data를 통해서만 학습되므로, 새로운/독특한 형태의 bouding box의 경우 정확히 예측하지 못합니다.
작은 박스의 loss가 IoU에 더 강한 영향을 주어 localization에 안좋습니다.
댓글 영역