논문 리뷰

[YOLO : You Only Look Once: Unified, Real-Time Object Detection]

난 지민 2023. 4. 9. 00:06

" YOLO : You Only Look Once: Unified, Real-Time Object Detection " - Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi (2015)

 

본 논문에서는 …

          object detection을 위한 새로운 접근법 YOLO을 제안하였고, 이를 이미지 전체에 대해 하나의 신경망으로 예측하는 회              귀 문제로 재정의함.

 

연구 배경

현재의 객체 검출 시스템은 분류기를 검출기로 재정의하여 사용함.

객체를 검출하기 위해 시스템은 객체를 분류하는 것 뿐만 아니라 위치, 크기 정보를 평가해야 함.

기존의 객체 검출 시스템

  1. DPM(Deformable Parts Model)은 슬라이딩 윈도우 방식으로 객체를 검출하는 모델임.
  2. R-CNN은 region proposal 방식으로 이미지 안에서 bounding box를 만들어내고, 이에 분류기를 적용함.

분류 후 boudning box를 재정의하고 중복으로 검출된 객체를 제거하고 객체에 따라 box의 점수를 다시 매기는 후처리를 진행함.

→ 이런 복잡한 파이프라인이 최적화를 어렵게 하고 느림.

 

모델

하나의 convolutional network가 동시에 다수의 bounding box와 class probability를 계산해줌.

  • 모델의 장점
  1. 빠름.

→ 기존의 객체 검출 모델처럼 복잡한 파이프라인을 가지지 않음.

  1. 예측할 때 이미지의 전반을 추론함.

→ 훈련과 테스트 단계에서 이미지 전체를 봄. Fast R-CNN은 이미지의 주변 환경은 처리를 잘 하지 못함.

  1. 객체의 일반적인 표현을 학습함.

→ 자연 이미지로 학습해 예술 작품을 테스트할 때 YOLO는 성능이 좋음. 새로운 도메인이나 예기치 못한 input에 적용할 때 정확도가 높음.

하지만, SOTA 모델에 비해 정확도가 떨어짐.

속도와 정확성은 trade-off 관계임.

  • Unified Detection

객체 검출의 단일 요소를 단일 신경망으로 합침.

input을 S X S grid로 나눔.

각각의 grid는 bounding box B개, 그 box 안의 confidence score를 예측함.

IOU(intersection over union) = 교집합 / 합집합

grid에 존재하는 object가 없다면, confidence score는 0임.

각 bounding box는 5개의 prediction으로 구성됨. (x, y, w, h, confidence)

(x, y) : bounding box의 중심에 grid 내의 상대적인 위치, 0~1 사이의 값 가짐.

(w, h) : 전체 이미지 대비 예측되는 상대적인 값, 0~1 사이의 값 가짐.

각 grid는 조건부 클래스 확률인 C를 예측함.

grid에 객체가 포함되어 있을 때, 어떤 클래스인지에 대한 확률임.

B의 개수와는 무관하게 하나의 grid에서는 클래스 하나만 예측함.

테스트 단계에서는 C와 개별 box의 confidence score를 곱해줌.

bounding box에 class가 나타날 확률,객체에 bounding box가 얼마나 잘 맞을지의 확률을 score가 나타냄.

  • 모델의 구조

하나의 convolutional neural network(CNN) 구조로 이루어짐.

앞에는 convolutional layer로 이미지로부터 feature를 추출하고, fully connected layer가 확률과 좌표를 예측함.

GoogleNet의 구조를 따옴. 24개의 convolutional layer와 2개의 fully connected layer로 구성됨. GoogleNet의 inception 모듈 대신 1*1 reduction layer를 사용함.

좀 더 빠른 버전의 YOLO를 위해 24개 대신 9개의 층을 사용하고 더 적은 필터를 사용함. 나머지 파라미터는 동일함.

  • Training

ImageNet 데이터셋으로 YOLOO convolutional layer를 pretrain시킴.

ImageNet은 분류를 위한 데이터셋으로 객체 검출 모델로 바꿔야 하는데 20개의 pretrain된 convolutional layer 뒤에 4개의 convolutional layer와 2개의 fully-connected layer을 추가하여 성능을 향상시킴.

또한, 해상도를 448*448로 높임.

YOLO의 마지막 layer에는 선형 활성화 함수를 적용했고, 그 외에는 leaky ReLU를 적용함. (x if x > 0 else 0.1x, 작은 음수 값도 허용함.)

YOLO의 loss인 SSE의 문제점

  1. SSE는 loss의 가중치를 동일하게 취급함.
    YOLO의 loss
    1) localization loss : bounding box의 위치를 얼마나 잘 예측했는지
    2) classification loss : 클래스를 얼마나 잘 예측했는지
  2. 이미지의 많은 grid는 대부분 객체를 가지고 있지 않음.
    → confidence score가 0으로 나오며, 객체를 담고 있는 grid로부터 gradient가 overpower되어 모델 불균형을 야기함.
    → 이를 위해 객체가 있는 이미지의 locaization loss의 가중치를 증가시키고, 객체가 존재하지 않는 confidence loss의 가중치는 감소시킴.
  3. 큰 box, 작은 box에 상관없이 동일한 가중치로 loss를 계산함.
    → 작은 박스에서 더 작은 변화를 가짐. 루트를 씌워 계산함.

YOLO는 하나의 grid 당 여러 개의 bounding box를 예측함.

객체 하나 당 하나의 bounding box에 대한 책임이 있어야 함.

→ 실제 객체가 가지는 ground truth bounding box와의 IOU가 가장 높은 것 하나를 배정함.

λ_noobj : 객체가 있는 box와 없는 box 간의 균형을 위한 파라미터 사용 λ_coord : coordinate에 대한 loss와 다른 loss들과의 균형을 위한 파라미터1_i^obj : grid i 안에 객체가 존재하는지 여부 1_ij^obj : grid i에 jth bounding box가 사용되는지의 여부

객체가 grid에 존재할 때만 classfication error에 패널티를 줌.

예측자가 ground truth box에 책임을 질 때만 coordinate error에 패널티를 줌.

  • Inference

test 시에도 객체를 검출하는 데 한 개의 신경망을 계산하면 됨.

몇 큰 이미지와 다양한 grid에 걸쳐있는 이미지는 많은 grid에 동시에 검출되는 단점이 있음.

→ multiple detection은 non-maximal supression으로 개선 가능함.

  • 모델의 한계
  1. 하나의 grid마다 두 개의 bounding box를 예측하고, 하나의 객체만 검출 가능하여 공간적인 제약이 생김.
  2. 데이터로부터 학습하여 새로운 aspect ratio나 configuration을 만나면 곤란함.
  3. 큰 bounding box와 작은 bounding box에 동일하게 error를 대함. → incorrect localization
  • 다른 모델과 비교

Deformable parts models (DPM) : sliding window 방식을 사용함. 특징 추출, 위치 파악, bounding box 예측의 task에서 독립적인 파이프라인을 사용함.

R-CNN : region proposal 방식을 사용함. selective search 방식으로 잠재적인 bounding box들을 생성, 컨볼루션 신경망으로 특징 추출, SVM으로 box를 점수 매김. 이후 선형 모델로 bounding box를 조정하고, non-max suppression으로 중복된 탐지를 제거함.

각 파이프라인을 독립적으로 튜닝해야 해서 속도가 느림.

 

실험

  • 다양한 모델과 시간, 정확도 비교

  • Fast R-CNN vs YOLO

  • Fast R-CNN과 YOLO 결합

YOLO가 상대적으로 localization error가 큼.

Fast R-CNN은 상대적으로 background error가 큼. (배경에 아무 물체가 없는데 물체가 있다고 판단, false positive)

Fast R-CNN과 YOLO를 앙상블한 방식이 성능이 높음.

  • 새로운 데이터셋 적용

YOLO가 가장 높은 정확도를 보였고, 예술 작품에서도 정확도가 크게 떨어지지 않음.