Title: You Only Look Once: Unified, Real-Time Object Detection(CVPR)
Paper: https://arxiv.org/abs/1506.02640
0. Abstract
YOLO: 객체 탐지 분야의 새로운 접근.
기존의 객체 탐지 시스템은 분류기 모델을 변형한 method. 이 논문에서는 bounding box와 관련 클래스의 확률을 구하기 위해 regression problem으로 정의하고 객체 탐지를 수행한다.
하나의 신경망으로 전체 이미지에서 한 번의 evaluation(또는 inference)로 bounding box와 클래스 확률을 예측할 수 있다. 전체 탐지 파이프라인이 싱글 신경망이기 때문에, 탐지 퍼포먼스에서 end-to-end로 직접적으로 최적화시킬 수 있다.
통합된 아키텍처는 매우 빠르다. base YOLO model은 초당 45 프레임의 속도로 실시간으로 이미지를 processing할 수 있다. 더 작은 버전인 Fast YOLO는 155프레임으로 프로세싱할 수 있으며 다른 실시간 탐지 기술보다 mAP점수가 두배를 찍기도 한다. SOTA를 찍은 탐지 기술들과 비교해 YOLO는 localization error가 더 많이 나왔지만, 배경에 대해서 false positive가 덜 찍히는 걸 확인할 수 있었다. 마지막으로, YOLO는 객체에 대해서 아주 일반적인 표현을 학습한다. 자연 이미지에서 아트웍과 같은 다른 도메인으로 일반화할 때,YOLO는 다른 탐지 기술(DPM, R-CNN)보다 더 좋은 성능을 보인다.
1. Information
사람은 이미지를 한 번 슥 훑어본 후 그 이미지를 기억한다. 이 작업은 빠르고, 정확하다. 복잡한 태스크도 수행할 수 있다. 이러한 빠르고, 정확한 알고리즘은 컴퓨터에게 차를 운전시킬 수 있고, 실시간 장면 정보를 보조 장치로 사용자에게 전달할 수 있으며, 로봇 시스템의 잠재력을 부여할 수 있다.
기존의 detection system은 object를 탐지하기 위해서 classifier를 응용한 method들이 많다. 이러한 시스템은 오브젝트에 분류기를 가져다 놓고, 다양한 장소와 스케일의 테스트 이미지에서 모델을 평가한다. deformable parts model(DPM)과 같은 시스템은 분류기가 전체 이미지에 걸쳐 균일한 간격으로 실행되는 sliding window approach를 사용한다.
출처: You Only Look Once - Paper Review
R-CNN과 같은 최근 접근법은 region proposal method / classification / box regression이라는 세 단계를 거치는 과정을 가지며, 세 단계를 개별적으로 학습한다. 이런 복잡한 파이프라인은 느리면서 최적화하기 어렵고, inference time이 굉장히 크다는 단점을 갖고 있따.
이 논문에서는 한 번의 회귀 문제로 디텍션을 정의했으며, 직접 이미지 픽셀에서 바운딩 박스로 연결시키고 각 클래스의 확률을 구한다. 이러한 시스템을 사용하면, 욜로는 오브젝트가 뭔지(classification), 그리고 어디 있는지(localization) 한 눈에 알 수 있다.(You only look once)
YOLO는 하나의 convolutional network가 동시에 여러 바운딩 박스를 그리고 클래스 가능성을 예측한다. YOLO는 이미지 전체를 학습한다. 그리고 detection 성능을 직접 최적화한다. 이 unified model은 이전의 메소드보다 더 나은 장점을 갖고 있다.
1) YOLO는 정말 빠르다
기본 네트워크는 Titan X GPU에서 1초당 45 프레임을 달성하고, 정말 빠른 버전에서는 150 fps 이상 올라갔다. 이건 실시간으로 비디오를 25 밀리초의 레이턴시 이하로 프로세싱할 수 있다는 뜻. 게다가 YOLO는 다른 실시간 시스템의 평균 정밀도(mAP)보다 두 배 더 높게 점수를 받을 수 있다.
2) YOLO는 예측을 할 때, 이미지에 대해서 global하게 추론한다.
sliding window와 region proposal-based 테크닉과는 다르게, 욜로는 training 또는 evaluation하는 동안 전체 이미지를 보게끔 유도되어 각 class에 대한 표현을 더 잘 학습할 수 있다. 그래서 암시적으로 생김새 뿐만 아니라 클래스의 contextual information(문맥 정보)도 인코드할 수 있다. Fase R-CNN(현존하는 detection method 중에 탑)은 더 큰 context를 보지 못하기 때문에 오브젝트의 이미지 배경 패치를 놓치는 경우가 있다. 욜로는 Fast R-CNN보다 절반의 백그라운드 에러율을 보였다.
3) YOLO는 object의 일반화된 표현을 배운다.
자연 이미지를 학습하고 예술 작품에 테스트를 했을 때, YOLO는 DPM과 R-CNN by a wide margin과 같은 메소드들보다 훨씬 퍼포먼스가 좋았다. 욜로가 꽤 일반화가 되었을 때, 새로운 도메인과 예상치 못한 input이 적용되었을 때 덜 break down하는 경향이 있었다.
하지만, YOLO는 아직 정확도 부문에서는 SOTA보다 살짝 못미친다. 이미지에서 오브젝트를 구별하는건 빨리 하지만, 적절하게 몇몇 오브젝트들은 localize하는 부분에서는 약하다.(특히 작은 물체에 대해서). 나중에 실험에서 tradeoff를 설명할 것이다.
정리하면
- 일반화 성능이 좋다.
- 구조가 single convolutional network를 가져 end-to-end 형태로서, inference와 train을 빠르게 진행할 수 있다.
하지만,
- SOTA에는 조금 못미치는 성능
- 작은 물체에 대해서 detection 성능이 떨어진다.
2. Unified detection
YOLO의 핵심. YOLO가 Unified Detection이 될 수 있었던 것에는 convolutional neural network가 중요한 역할을 함. YOLO는 single convolutional neural network 모델 하나로 특징 추출, 바운딩 박스 예측, 클래스 분류를 모두 수행함. 원본 이미지를 입력으로 받은 모델이 object detection에 필요한 모든 연산을 수행할 수 있으므로, 이것이 바로 YOLO 논문에서 주장하는 Unified Deteciton.
이 논문의 네트워크는 이미지의 특징들을 전체적으로 보면서 bounding box를 예측하는데 사용함. YOLO 디자인은 실시간 속도로 학습이 가능하면서, 높은 평균 정밀도(mAP)를 나타냄.
이 논문의 시스템은 S x S grid로 입력 이미지를 나눈다. 오브젝트의 가운데가 grid cell에 떨어지면 해당 그리드 셀은 object를 탐지하는데 쓰인다.
각 그리드 셀은 B개의 bounding box와 confidence score를 예측한다. 이 condidence score는 박스가 object를 포함하는 것에 대한 확률과 그 박스가 물체를 예측한 것에 대한 정확도를 반영한다.
수식적으로 $Pr(Object) * IOU^{truth_pred}$
로 나타낸다. object가 cell에 없으면 confidence score가 zero가 된다. 반면 이 논문은 predicted box(모델이 예측한 bounding box)와 ground truth간의 IOU(intersection over union)과 동일할 수록 좋다.
각 바운딩 박스는 5개의 값을 예측한다(x, y, w, h, confidence).
- (x, y): grid cell의 경계에 대한 박스의 상대적인 중심 위치를 나타낸다.
- (w, h): width와 height는 전체 이미지에 대한 상대적인 너비와 높이.
- confidence prediction: predicted box와 ground truth box에 대한 IOU를 나타낸다.
각 grid cell마다 확률값 C를 예측한다. C는 conditional class probability인 Pr(Class_i | Object)를 의미한다. 이러한 예측은 물체를 포함하는 grid cell에 맞춰져 있다. YOLO는 box의 갯수와 상관없이 grid cell 당 하나의 클래스 확률만 예측한다.
테스트에서 연구진은 조건부 클래스 확률과 각 바운딩 박스는 confidence score를 곱해주며, 이는 다음과 같이 나타낼 수 있다.
Pr(Classi|Object) ∗ Pr(Object) ∗ IOUtruth pred = Pr(Classi) ∗ IOUtruth pred
논문에서는 Pascal VOC에서 YOLO를 평가했고, 이 때 S = 7, B = 2를 사용함. Pascal VOC는 20개의 라벨링 된 클래스가 있어서 C = 20으로 함. 최종 prediction은 7 x 7 x 30 tensor임.
2.1. Network Design
CNN을 썼으며 PASCAL VOC에서 평가했다. 첫 convolutional layer는 feature를 이미지에서 뽑아내는데, fully connected layer가 output propability와 coordinate를 예측한다.
네트워크 architecture는 iumage 분류에서 GoogLeNet에서 영감을 받음. 우리 네트워크는 24개의 convolutional layer와 2개의 fc layer가 있음. googLeNet에서 사용한 inception module 대신에 1 x 1 reduction layer와 3 x 3 convolutional layer를 사용함. 전체 네트워크는 figure 3
fast object detection의 boundary를 푸시하기 위해 디자인된 YOLO의 빠른 버전을 학습시켰다. Fast YOLO는 9개의 convolutional layer를 사용하고 더 적은 필터를 사용함. network의 사이즈외의 모든 학습과 테스트 파라미터는 같다.
최종 output은 7x7x30 tensor of prediction이다.
2.2. Training
2.2.1) pretraining Network
이미지넷의 1000개 클래스 competition dataset으로 convolutional layer를 사전훈련했다. 사전훈련을 위해 20개의 convolutional layer와 average-pooling layer, fc layer을 사용함. 우리는 이 네트워크를 약 일주일동안 학습시켰고, 이미지넷 2012 validation set에서 88%의 정확도를 보이며 탑 5안에 들었다. (이 때 train과 inference에서 Darknet framework를 사용했다.
그리고 detection하도록 model을 수정했으며, 앞단 20개의 convolutional layer에서 4개의 convolutional layer와 2개의 fc layer를 추가하면서 pretrained network의 퍼포먼스를 향상시켰다. 이 때, randomly initialized weight로 초기화한 후 추가한다. detection은 때때로 fine-grained visual information을 필요로 한다. 그래서 우리는 input resolution of the network를 224 x 224에서 448 x 448로 늘렸다.
2.2.2) Normalized Bounding Boxes
- 마지막 레이어는 클래스 확률과 bounding box coordinate(바운딩 박스 좌표)를 예측했다.
- 그리고 이 논문에서 bounding box width and height를 이미지의 width and height로 정규화시켰다.
- bounding box x and y를 매개변수화 시켰고 이는 bounding box가 속한 그리드 셀에서의 offset으로 나타낸다. 따라서 이 값들도 0에서 1사이로 줄어든다.
- 마지막 레이어에 linear activation function을 사용했고, 다른 레이어는 leaky ReLU를 사용했다.
2.2.3) Non-Linearity
YOLO의 activation function은 leaky ReLU를 사용하며, 마지막 레이어만 linear activation function을 사용함.
ɸ(x) = x if x > 0 else 0.1 * x
2.2.4) 고려해야 할 사항들
YOLO의 loss는 sum-squared error를 기반으로 한다. 하지만, average precision을 최대화하는 목표를 완벽히 맞출 수는 없다.? 이건 localization error와 classification error에 같은 가중치를 두는 것은 좋지 않다.
YOLO는 S x S개의 grid cell을 예측하는데, 거의 모든 이미지의 많은 그리드 셀은 어떤 오브젝트도 포함하지 않는다. 그런 cell의 confidence score를 0으로 만들면서 때때로 object를 포함하는 cell의 gradient를 압도하며, 전체 학습 성능에 영향을 미칠 수 있다. 이로 인해 모델이 불안정해져 학습이 조기에 발산할 수 있다.
이를 위해, object가 존재하는 bounding box의 가중치를 늘리고, object를 포함하지 않는 박스에 대한 confidence prediction을 줄인다. 두개의 파라미터 (λ_coord, λ_noobj)를 이를 충족시키기 위해 사용한다. 이 논문에서 λ_coord = 5, λ_noobj = .5.로 설정한다.
sum-squared error는 또한 바운딩 박스가 큰 객체와 작은 객체에 동일하게 에러를 가중시킨다. 이번 에러 지표는 큰 객체의 bounding box에는 문제 없지만, 작은 객체의 bounding box는 조금만 어긋나도 결과에 큰 영향을 준다. 이를 조정하기 위해 이 논문에서는 bounding box width와 height에 square root를 취한 것을 예측한다.(바로 폭과 높이를 예측하지 않는다)
2.2.5) Multiple bounding boxes per gridcell
YOLO는 grid cell당 여러 bounding box를 예측한다. 학습 시간에 저자는 오직 각 오브젝트별로 하나의 bounding box predictor를 매칭시켜야 한다. 저자는 동일한 그리드 내 여러 바운딩 박스 중 ground-truth와의 IOU가 가장 높은 하나의 바운딩 박스만 선택한다. 이를 통해 동일한 그리드 내에서 여러 bounding box가 서로 다른 객체의 사이즈, 종횡비(aspect ratios), 객체 클래스를 예측하게 하여 overall racall을 향상시켜 준다.
2.2.6) Loss function
여기서 [1_i^obj]가 object가 i번째 grid cell에 있는지 여부를 나타내고
[1_ij^obj]는 i번째 grid cell안에 있는 j번째 bounding box predictor가 사용되는지(responsible)를 나타낸다.
Loss function의 5개의 항에 대한 의미는 다음과 같다.
- Object가 존재하는 grid cell i의 bounding box predictor j에 대해, x와 y의 loss
- Object가 존재하는 grid cell i의 bounding box predictor j에 대해 w와 h의 loss.
- 큰 box에 대해서는 작은 분산(small deviation)을 반영하기 위해 제곱근을 취한 후, sum-squared error를 구한다.(같은 error라도 큰 box의 경우 상대적으로 IOU에 영향을 적게 줌.)
- Object가 존재하는 grid cell i의 bounding box predictor j에 대해, confidence score의 loss를 계산. (C_i = 1)
- Object가 존재하지 않는 grid cell i의 bounding box predictor j에 대해, confidence score의 loss를 계산. (C_i = 0)
- Object가 존재하는 grid cell i에 대해, conditional class probability의 loss를 계산 (p_i(c)=1 if class c is correct, else p_i(c)=0)
2.2.7) hyperparameter
저자는 PASCAL VOC 2007과 2012의 training set과 validation data set에 135 epoch정도 학습시켰다. VOC 2012에 테스트했을 때는 VOC 2007의 테스트 셋을 학습에 활용했다. 전반적인 학습에서 저자는 배치사이즈를 64로 활용. 모멘텀은 0.9, decay는 0.0005로 했다.
2.2.8) scheduling
학습률 스케쥴링은 다음과 같다. 첫 에포크는 10^-3 ~ 10^-2로 천천히 올린다. 만약 우리가 큰 학습률을 쓰면 불한정한 gradient로 발산할 것이다. 우리는 10^-2로 75 epoch로 했고, 30에포크는 10-3, 마지막 30에포크는 10-4로 했다.
2.2.9) overfitting
overfiiting을 막기 위해 dropout와 extensive data augmentation을 사용했다. 첫번째 fc layer 이후 dropout rate를 0.5로 설정. data augmentation에는 scaling, translation, exposure, saturation을 조절하는 방식으로 다양하게 진행하며, scaling과 translation은 원본 이미지 사이즈의 20%까지 임의로 조절하며, 또한 HSV 색상 공간에서 최대 1.5배까지 이미지의 노출과 채도를 무작위로 조정한다.
2.3. Inference
training과 마찬가지로, test image에서 detection을 예측할 때 single convolutional network가 사용됨. PASCAL VOC에서 네트워크는 이미지당 98개의 bounding box를 예측했고, 각 박스당 class probability를 예측했다. YOLO는 하나의 네트워크 평가를 필요로 하기 때문에 매우 빠르다(다른 classifier-based method 보다 빠르다.)
grid cell을 이용한 디자인은 bounding box 예측에서 몇몇 큰 물체나 여러 cell의 경계면에 있는 물체는 여러 셀에 의해 쉽게 localize된다.(여러 셀에 의해 동시에 검출될 수 있다.) 비 최대억제(Non-maximal suppression)를 사용해 이러한 다중 감지를 수정할 수 있다. NMS를 통해는 mAP에서 2-3% 가량 올릴 수 있었다.
2.4. Limitations of YOLO
YOLO는 bounding box prediction에 강한 공간적 제약을 부여한다. 왜냐하면 각 grid cell은 오직 하나의 객체만을 검출하기 때문이다. 이러한 공간 제약은 모델이 예상할 수 있는 근처의 물체들의 수를 제한한다. 모델은 새무리와 같이 작은 물체가 여러 개 있는 것은 객체 검출이 제한적일 수 있다.
모델이 data로부터 bounding box를 학습하기 때문에, 새롭거나 익숙하지 않은 양상의 비율이나 설정에 대해서 일반화하는 것이 어렵다. 따라서 train time에 보지 못했던 aspect ratio(종횡비)의 객체를 잘 검출하지 못한다.
마지막으로 저자가 detection performance에 근사화하는 loss function을 학습하는 동안 loss function은 작은 bounding box에 있는 것과 large bounding box에 있는 것의 에러를 동일하게 처리한다. large box에 있는 작은 에러는 일반적으로 무해하지만, small box의 작은 에러는 IOU에 더 큰 영향을 끼친다. 에러의 주된 원인은 잘못된 localization이다.
3. comparaison to Other Detection Systems
해당 세션은 다른 탐지 시스템과의 비교이다. 객체 탐지는 컴퓨터 비전의 핵심 문제이다. detection 파이프라인은 일반적으로 input image로부터 강력한 feature를 뽑아내는 것부터 시작한다.(Haar, SIFT, HOG, convolutional features) 그 다음, 분류기 또는 localizer는 feature space에 있는 객체를 판별하는데 사용된다. 이 분류기 또는 로컬라이저는 전체 이미지를 넘어 sliding window fashion 또는 이미지의 한 부위의 서브셋에서 돌아간다. 저자는 YOLO 탐지 시스템과 다른 우수한 탐지 프레임워크와 주로 비슷한 점과 다른점을 구별하면서 비교할 것이다.
3.1. Deformable parts models.
Deformable parts models(DPM)은 sliding window approach를 쓴다. DPM은 분리된 파이프라인을 사용해 정적 기능을 추출하고, 영역을 분류하고, 높은 점수 영역에 대한 경계 상자를 예측하는 등의 작업을 수행. 우리 시스템은 이러한 모든 이질적인 부분을 단일 컨볼루션 신경망으로 대체한다. 네트워크느느 기능 추출, 경계 상자 예측, 최대가 아닌 억제 및 콘텍스트 추론을 모두 동시에 수행한다. 정적 기능 대신 네트워크는 기능을 인라인으로 훈련하고 가밎 작업을 위해 최적화한다. 우리의 통합 아키텍처는 DPM보다 더 빠르고 정확한 모델로 이어진다.
3.2. R-CNN.
R-CNN과 R-CNN을 응용한 system은 이미지에서 객체를 찾기 위해 sliding window 대신에 region proposal을 사용한다. selective search는 잠재 바운딩 박스를 생성하고, covolutional network는 feature를 추출하고, SVM the boxes를 점수를 매기고, a linear model은 bounding box를 조정하고, 최대가 아닌 억제는 중복 감지를 제거한다. 이 복잡한 파이프라인의 각 단계는 독립적으로 정확하게 조정되어야 하며 그 결과, 시스템은 매우 느려 테스트 시간에 이미지당 40초 이상 걸린다.
YOLO는 R-CNN과 어느 정도 유사점을 공유한다. 각 그리드 셀은 잠재적 bounding boxes를 제안하고 convolution feature를 사용해 해당 box에 점수를 매긴다. 그러나 우리 시스템은 그리드 셀 제안에 공간적 제약을 두어 동일한 객체의 다중 감지를 완화하는데 도움이 된다. 우리 시스템은 또한 선택적 검색의 약 2000개에 비해 훨씬 적은 수의 경계 상자를 이미지당 98개만 제안한다. 마지막으로 우리 시스템은 이러한 개별 구성 요소를 공동으로 최적화된 단일 모델로 결합한다.
3.3. 기타 빠른 탐지기
Fast and Faster R-CNN은 선택적 검색 대신 계산을 공유하고 신경망으로 사용해 영역을 제안함으로써 r-CNN 프레임워크의 속도를 높이는 데 중점을 둔다. R-CNN보다 속도와 정확도가 향상되었지만 둘 다 여전히 실시간 성능에는 미치지 못한다.
많은 연구 노력이 DPM 파이프라인의 속도를 높이는 데 초점을 맞추고 있다. HOG 계산 속도를 높이고 cascade를 사용해 계산을 GPU로 푸시한다. 그러나 실제로는 30Hz DPM만이 실시간으로 실행된다. 대규모 탐지 파이프라인의 개별 구성 요소를 최적화하는 대신 YOLO는 파이프라인을 완전히 버리고 설계상 빠르다.
얼굴이나 사람과 같은 단일 클래스에 대한 검출기는 훨씬 적은 변형을 처리해야 하기 때문에 고도로 최적화될 수 있다. YOLO는 다양한 물체를 동시에 감지하는 방법을 학습하는 범용 감지기 이다.
3.4. Deep Multibox
R-CNN과 달리 선택적 검색을 사용하는 대신 관심 영역을 예측하도록 convolution 신경망을 훈련한다. MultiBox는 신뢰도 예측을 단일 클래스 예측으로 대체하여 단일 객체 감지를 수행할 수도 있다. 그러나 Multi-Box는 일반적인 물체 감지를 수행할 수 없으며 여전히 더 큰 감지 파이프라인의 일부일 뿐이므로 추가 이미지 패치 분류가 필요하다. YOLO와 MUltiBox는 둘 다 컨볼루션 네트워크를 사용해 이미지의 경계 상자를 예측하지만 YOLO는 완전한 감지 시스템이다.
3.5. OverFeat
convolution network를 훈련하여 localization을 수행하고 해당 로컬라이저를 적응시켜 탐지를 수행. OverFeat은 슬라이딩 윈도우 감지를 효율적으로 수행하지만, 여전히 분리된 시스템. OverFeat은 탐지 성능이 아닌 localization을 위해 최적화한다. DPM과 마찬가지로 localizer는 예측할 때 local 정보만 본다. OverFeat는 전역 context에 대해 추론할 수 없으므로 일관된 감지를 생성하기 위해 상당한 후처리가 필요하다.
3.6. MultiGrasp
저자의 작업은 'Redmon et al'의 grasp detection 작업과 디자인이 유사하다. 바운딩 박스 예측에 대한 그리드 접근법은 파악을 위한 회귀를 위한 MultiGrasp 시스템을 기반으로 한다. 그러나 파악 감지는 물체 감지보다 훨씬 간단한 작업이다. MultiGrasp은 하나의 객체를 포함하는 이미지에 대해 파악 가능한 단일 영역만 예측하면 된다. 물체의 크기, 위치 또는 경계를 추정하거나 클래스를 예측할 필요가 없으며 grasping하기 적합한 영역만 찾는다. YOLO는 이미지에서 여러 클래스의 여러 개체에 대한 경계 상자와 클래스 확률을 모두 예측한다.
4. Experiments
먼저 PASCAL VOC 2007에서 다른 실시간 탐지 시스템과 비교를 할 것임. YOLO와 R-CNN variant의 차이를 보기 위해 VOC 2007에 대한 YOLO와 Fast R-CNN(R-CNN의 가장 성능 좋은 버전)의 에러를 볼 것임. 다른 error profile에 근거해 저자는 욜로가 Fast R-CNN 탐지를 rescore하는데 쓰일 수 있다는 것과 상당한 퍼포먼스 boost를 주면서 background false positive로부터 에러를 줄이는 것을 보여준다. 저자는 또한 VOC 2012 결과를 보여주고 mAP와 현재 SOTA 찍은 메소드를 비교할 것. 마지막으로 저자는 욜로가 새로운 도메인에 다른 것보다 더 일반화를 잘 시킨다는 것도 보여줄 것이다.
4.1. Comparison to Other Real-Time Systems
YOLO를 30Hz/100Hz에서 실행되는 DPM의 GPU 구현과 비교한다.
Fast YOLO
- PASCAL VOC기준 가장 빠른 Object Detection 알고리즘
- 52.7% mAP (100Hz/30Hz DPM 기준 2배 이상 향상)
YOLO
- 실시간 성능을 만족하면서 mAP는 63.4%
- VGG-16을 feature extractor로 사용한 경우에는 성능이 증가하나, 속도 감소
Fastest DPM
- 약간의 mAP 성능하락으로 Detection 속도를 높인 모델
- 하지만 실시간 detection system이라고 부르기엔 속도가 느림
- 30.7% mAP로 성능 및 속도측면에서 YOLO 대비 전반적으로 안좋음
R-CNN 계열
최근 R-CNN계열에서 속도가 개선된 Fast R-CNN이 나왔으나, 속도 측면에서 실시간 성능에는 한참 못미치는 성능을 가짐
- Fast R-CNN: 70% mAP, 0.5 fps
- Fast R-CNN with VGG-16 : 73.2% mAP, 7 fps
4.2. VOC 2007 Error Analysis
VOC 2007 Dataset에서 YOLO, Fast R-CNN 모델의 에러분석을 하기 위하여 다음과 같은 레퍼런스 [Diagnosing Error in Object Detectors]를 참고하여 기준을 잡음
- Correct : class가 정확하며 IOU가 0.5보다 큰 경우
- Localization : class가 정확하고, IOU가 0.1보다 크고 0.5보다 작은 경우
- Similar : class가 유사하고 IOU가 0.1보다 큰 경우
- Other : class는 틀렸으나, IOU가 0.1보다 큰 경우
- Background : 어떤 Object이던간에 IOU가 0.1보다 작은 경우
분석 결과는 다음과 같음
- YOLO는 localize 에러가 심함
- Fast R-CNN은 상대적으로 localization 에러는 적으나 background 에러가 큼.
4.3. combining YOLO and R-CNN
YOLO는 Fast R-CNN보다 background mistake를 적게 한다. YOLO를 사용해 Fast R-CNN의 background 감지를 제거함으로써 R-CNN의 성능이 향상되었다. R-CNN이 예측하는 모든 boundaty box에 대해 YOLO가 유사한 box를 예측하는지 확인한다. 그렇다면, 저자는 YOLO가 예측한 확률과 두 box 사이의 겹침을 기반으로 해당 예측에 boost를 넣는다(가중치를 넣는다?)
가장 좋은 Fast R-CNN 모델은 VOC 2007 testset에서 71.8%의 mAP를 달성함. YOLO와 결합하면 mAP가 3.2%증가하여 75.0%가 된다. 또한 best Fast R-CNN 모델을 Fast R-CNN의 여러 다른 버전과 결합해보려고 시도했는데, 이러한 시도들은 0.3%에서 0.6% 사이의 mAP 개선을 보였다. 단순히 앙상블의 결과로만 보기에는 다른 model들과의 앙상블 결과가 높은 성과를 보이지 못했기에, YOLO와의 R-CNN의 combination은 무의미한 결과는 아니다.
하지만, 이러한 combination은 각 모델을 각각 실행한 다음 결과를 합치는 것이기 때문에, YOLO의 장점 중 하나인 속도로서의 이점을 얻지 못한다.
4.4. VOC 2012 Result
VOC 2012 결과에서 YOLO는 57.9% mAP를 달성
4.5. Generalizability: Person Detection in Artwork
Picasso Dataset과 People-Art Dataset를 이용하여 YOLO와 다른 Detection System들의 성능을 비교함
5. Qualitative Result
아래 사진은 YOLO의 Object Detection 결과이다.
6. conclusion
YOLO는 single convolutional network로 구성되어 있어 모델을 간단하게 구현할 수 있으며, 전체 이미지를 직접 학습할 수 있다.
classifer-based approach와 달리 YOLO는 직접적으로 탐지 퍼포먼스와 연관이 있는 손실 함수에 학습되며 전체 모델은 함께 학습된다.
Fast YOLO도 또한 객체 탐지에 가장 빠른 범용적으로 쓰이며 용로는 실시간 객체 탐지에서 SOTA를 push한다. 욜로는 또한 빠르고 강력한 객체 탐지에 기반한 어플리케이션에서 많이 쓰이는 새로운 도메인에 대해서 일반화가 잘 된다.
참고 자료)
https://arxiv.org/abs/1506.02640
https://deepbaksuvision.github.io/Modu_ObjectDetection/posts/04_01_Review_of_YOLO_Paper.html
https://bkshin.tistory.com/entry/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-YOLOYou-Only-Look-Once