상세 컨텐츠

본문 제목

[4주차 / 윤지현 / 논문리뷰] You Only Look Once: Unified, Real-Time Object Detection

방학 세션/CV

by j.hyeon 2023. 2. 7. 15:45

본문

1. Introduction

  detection을 위해 개체에 대한 classifier를 가져와 test image의 다양한 위치와 크기에서 평가해야 하는 detection system과 R-CNN과 같이 region proposal 방법을 사용하여 image의 잠재성있는 bounding box를 형성하고 이러한 box들에 대해 classifier를 작동시키는 것과 달리, YOLO는 detection을 image pixel에서 bounding box의 좌표와 해당 class 확률에 이르기까지 단일회귀문제로 재구성한다. 

YOLO의 시스템은 간단하다.

  그림을 통해 알 수 있듯이, input image의 크기를 448x448로 바꾸어주고 하나의 convolutional network를 작동시켜 기준에 따라 개체 detection을 결론 내린다. 단일 convolutional network는 여러 bounding box와 해당 상자에 대한 class 확률을 동시에 예측한다. 이처럼 통일된 모델은 여러가지 장점을 가진다.

  첫번째로, YOLO는 매우 빠르다. 기본 network는 Titan X GPU에서 일괄처리 없이 초당 45 frame으로 실행되며 빠른 버전은 150 fps 이상으로 실행된다. 즉, 25 밀리초 미만의 시간으로 streaming video를 실시간으로 처리할 수 있다. 또한 YOLO는 다른 실시간 시스템의 평균 precision의 두 배 이상을 달성한다. 

  두번째로, YOLO는 예측 시 image에 대해 전체적으로 추론한다. test 동안 전체 image를 보기 때문에 class에 대한 문자 정보와 모양을 암시적으로 encoding한다. 또한 YOLO는 상위 감지 방법인 Fast R-CNN에 비해 배경 오류 횟수를 절반 미만으로 성공시킨다. 

  세번째로, YOLO는 개체의 일반화된 표현을 학습한다. YOLO가 고도로 일반회되어 있기 때문에, 새로운 도메인이나 예측하지 못한 input에 적용할 때에도 붕괴될 가능성이 적다. 

  하지만 YOLO는 여전히 정확도 면에서 최점단 detection 시스템에 뒤쳐져 있다. 개체를 빠르게 식별 가능하지만 일부 개체, 특히 작은 개체를 정확하게 구역화하는 것에 어려움을 가지고 있다. 

 

2. Unified Detection

  object detection의 개별 구성 요소를 단일 신경망으로 통합한다. 전체 image의 feature를 사용하여 각 bounding box를 예측하고, 동시에 image에 대한 모든 class의 모든 bounding box를 예측한다. 이러한 YOLO의 시스템은 높은 평균 정확도를 유지하면서 end-to-end 학습과 실시간의 속도 감지가 가능하게 한다. 

  이 시스템은 input image를 SxS grid로 나누고, 이때 개체의 중심이 떨어지는 grid는 그 개체를 탐지하는데 역할을 한다. 각 gird cell은 B개의 bounding box와 box에 대한 confidence score를 예측한다. 이때 confidence score는 예측된 box와 ground truth 사이의 IOU와 같다. 각 bounding box는 bounding box의 중심좌표와, 폭과 높이 그리고 신뢰도 점수로 구성된다. 각 grid cell은 또한 조건부 class 확률을 예측한다. 

  test 시에는 조건부 class 확률과 각각의 box의 confidence prediction을 곱해서 각 box에 대한 class 특정 신뢰도 점수를 획득한다. 이러한 점수들은 해당 class가 box에 나타날 확률과 예측된 box가 개체에 얼마나 잘 맞는지에 대해 모두 encoding한다. 여기에서는 S=7, B=2, C=20으로 두어 최종 예측값이 7x7x30 tensor가 된다. 

 

2-1. Network Design

  이 모델을 convolutional 신경망으로 구현하고 Pascal VOC 감지 데이터셋에서 평가한다. network의 초기 convolutional layer들은 image로부터 feature들을 추출하고 fully connected layer들은 출력 확률과 좌표를 예측한다. 총 24개의 convolutional layer와 2개의 fully connected layer로 구성되어 있다. 또한 1x1 감쇠 layer를 사용한다. 

또한 빠른 버전의 YOLO도 훈련시켰는데, 이것은 9개의 convolutional layer와 더 적은 개수의 filter로 구성되어 있지만 YOLO와 동일한 개수의 parameter로 구성되어 있다. 

 

2-2. Training

  pretrain을 위해 초반 20개의 convolutional layer를 사용하였다. 이후 detection을 수행하기 위해 모델을 전환하였다. 무작위로 초기화된 가중치로 이루어진 4개의 convolutional layer와 2개의 fully connected layer를 추가하여 성능을 향상시켜 주었다. 마지막 layer는 class 확률과 bounding box의 좌표를 둘 다 예측한다. image의 폭과 높이를 사용하여 bounding box의 폭과 넓이를 정상화하여 0과 1 사이로 만들어 주었다. 또한 좌표를 변수화해 주었다. 

  최종 layer에 대해 선형 활성화 함수를 사용하고 다른 모든 layer들은 다음과 같은 leaky rectified 선형 활성화 함수를 사용한다. 

최적화가 쉽기 때문에 모델의 출력에서 합계 제곱 error를 최적화하지만 평균 정밀도를 최대화하려는 것과는 완벽하게 일치하지 않는다. 또한 모든 image에서 많은 grid cell에는 개체가 포함되어 있지 않기 때문에 신회도 점수 0을 가진다. 이는 개체를 포함하는 cell의 gradient를 압고하여 모델을 불안정하게 만든다. 이것을 해결하기 위해, bounding box 좌표 예측의 loss를 늘리고 개체를 포함하지 않는 box에 대한 신회 예측의 loss를 줄인다.

  YOLO는 grid cell 당 여러개의 bounding box를 에측한다. training 시에 각 개체에 대해 하나의 bounding box 예측자만 결과를 도출하길 바란다. 어떤 예측이 ground truth와 함께 가장 높은 IOU를 가지고 있는지를 기반으로 개체를 예측하는데 결정이 되는 하나의 예측자를 할당한다. 각 예측자는 특정 크기, 비율, 혹은 개체의 class를 더 잘 예측하여 전반적인 recall을 향상시킨다. 

 

2-3. Inference

   test image에 대해 detection을 예측할 때에도 오직 하나의 network evaluation만 요구된다. grid의 설계는 bounding box 예측에서 공간적 다양성을 적용한다. 개체가 어느 grid cell에 속하는지가 명확하고 network가 각 개체에 대해 하나의 box만 예측하기도 하지만, 일부 큰 개체 혹은 여러 cell의 경계 근처에 있는 개체는 여러 cell에 의해 잘 localize 될 수 있다. 

 

2-4. Limitations of YOLO

  YOLO는 각 grid cell이 두개의 box만 예측가능하고 오직 하나의 class만 가지기 때문에 bounding box 예측에 강한 제한성을 둔다. 이것은 근처 개체의 수를 제한하기 때문에 작은 개체에 대해서는 한계를 가지게 한다. 또한 상대적으로 coarse feature를 사용해서 bounding box를 예측하는데, input image의 여러 downsampling layer가 존재하고 있기 때문이다. 마지막으로, detection 성능을 근사화하는 손실 함수에 대해 훈련하는 동안 loss function은 작은 bounding box와 큰 bounding box에서 오류를 동일하게 처리하는 한계를 가진다. 

 

3. Comparison to Other Detection Systems

  detection은 일반적으로 input image로부터 일련의 feature들을 추출함으로써 시작된다. 이후 classifier 혹은 localizer를 사용하여 feature space에서 개체를 구분한다. 

  Deformable parts models(DPM)과 비교해보았을 때, DPM은 객체 감지 시 sliding window 방식을 사용한다. 분리된 pipeline을 사용하여 static feature을 추출하고, 영역을 분류하고, 점수가 높은 영역에 대한 bounding box를 예측한다. 반면 YOLO는 이러한 분리된 부분들을 단일 convolutional 신경망으로 대체한다. 이 network가 동시에 앞선 일들을 수행하는 것이다. static feature 대신, network는 feature를 in-line으로 훈련하고 detection을 위해 최적화한다. 이를 통해 YOLO는 DPM 보다 더 빠르고 정확한 모델 성능을 보인다.

  R-CNN과 비교해 보았을 때, R-CNN은 복잡한 단계들로 구성되어 있으며 이 복잡한 구성의 각 단계는 독립적으로 정밀하게 조정되어야 한다. 이러한 구조로 이루어져 있어 R-CNN은 매우 느려 test image 당 40초 이상이 소요된다. YOLO는 각 grid cell이 잠재적 bounding box를 제안하고 convolution feature를 사용하여 해당 box에 점수를 매기는 점에 있어 R-CNN과 유사한 점을 가진다. 하지만 grid cell 제안에 공간적 제약을 두어 동일한 개체의 다중 감지를 완화하는데 도움이 된다. 또한 YOLO의 시스템은 개별 구성 요소를 공동으로 최적화된 단일 모델로 결합한다. 

  Fast R-CNN과 Faster R-CNN은 기존의 R-CNN의 속력을 높이고 정확도의 향상을 가져오지만, 여전히 실시간 수행과는 조금 거리가 있다. YOLO는 큰 detection pipeline의 개별 구성 요소를 최적화하는 대신 pipepline을 완전히 버려 구조상 매우 빠르게 된다. 또한 다양한 물체를 동시에 감지하는 방법을 학습할 수 있는 모델이다. 

  Deep MultiBox는 관심있는 영역을 예측하기 위해 convolutional 신경망을 훈련한다. 또한 confidence prediction을 단일 class 예측으로 대체함으로써 단일 개체 감지가 가능하다. 하지만 MultiBox는 일반적인 개체 탐지가 불가능하고 여전히 더 큰 감지 pipeline애서는 작은 부분일 뿐이다. 반면 YOLO는 완전한 detection 시스템이다. 

  OverFeat은 localization을 위해 convolutional 신경망을 훈련하고 detection을 수행하기 위해 localizer를 적용한다. DPM처럼, localizer는 예측 시 오직 국소적인 정보만 본다. 따라서 OverFeat은 전체적인 context를 추론할 수 없다.

  bounding box 예측에 대한 YOLO의 grid 접근 방식은 MultiGrasp 시스템을 기반으로 한다. 하지만 grasp 탐지는 개체 탐지보다 훨씬 간단한 작업이다. MultiGrasp는 하나의 개체가 포함된 image에 대해 파악 가능한 단일 영역만 예측하면 된다. 반면 YOLO는 image에서 여러 class의 여러 개체에 대한 bounding box와 class 확률을 모두 예측한다.

 

4. Experiments

  YOLO와 다른 여러 real-time system과 비교를 해보았다.

  Fast YOLO는 가장 빠른 개체 탐지 방법이다. 하지만 mAP를 확인해 본 결과, 실시간 탐지가 가능하며 63.4%의 mAP 값을 가지는 YOLO보다 더 작은 52.7%의 mAP 값을 가진다. VGG-16을 사용하여 훈련시킨 YOLO는 기존의 YOLO보다 더 정확하지만 상당히 느리다. fastest DPM은 mAP 값의 손실 없이 속도를 향상시키지만 여전히 실시간 수행으로써는 어려움을 가진다. 또한 detection에 있어서도 상대적으로 낮은 정확도를 가진다. Fast R-CNN의 경우 높은 mAP 값을 가지지만 여전히 실시간 수행으로는 부족한 면을 가진다. 

 

5. Real-Time Detection In The Wild

  YOLO는 빠르고 정확한 개체 탐지기로 computer vision application에 이상적이다. 그리고 실시간 성능을 유지함을 실험을 통헤 확인하였다. YOLO는 image를 개별적으로 처리하지만 Webcam에 연결하면 추적 시스템처럼 기능하여 물체가 움직이고 모양이 변할 때 물체 감지가 가능하다. 

 

6. Conclusion

  YOLO는 개체 감지를 위한 통합 모델로, 구성이 간단하고 전체 image에서 직접 훈련 가능하다. classifer 기반 접근 방식과 다르게, YOLO는 detection 성능에 직접적으로 해당하는 손실 함수에 대해 학습하며 전체 모델이 공통으로 학습된다. 

  Fast YOLO는 가장 빠른 general-purpose 개체 탐지기이고, YOLO는 실시간 개체 탐지에서 최첨단을 추진한다. 또한 YOLO는 새로운 도메인으로 잘 일반화되어 빠르고 강력한 객체 탐지에 의존하는 application에 이상적이다. 

 

관련글 더보기

댓글 영역