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

원성혁·2023년 4월 4일
0

paper_review

목록 보기
17/22
post-thumbnail

abstract

이 논문은 new approach to object detection인 YOLO를 제시한다. 이전 object detection은 detection에서 classifiers을 수행한다. 하지만 YOLO는 spatially separated bounding boxes와 associated class probabilities에 대한 regression problem으로 object detection으로 구성한다. 또한 전체 탐지 pipeline이 단일 네트워크이기 때문에 탐지 성능에 대해 end-to-end directly optimized가 가능하다.

YOLO는 빠른 속도를 자랑한다. 초당 45 frames를 실시간으로 처리한다. Fast YOLO는 초당 155 frames를 처리하는 동시에 다른 실시간 탐지기 보다 두배의 mAP를 달성했다. YOLO는 더 많은 localization errors를 범하지만 false positives on background를 예측할 가능성은 적다.
YOLO는 객채의 매우 일반적인 표현을 학습하며 다른 탐지기보다 좋은 성능을 가진다.

Introduction

인간은 흘끗 보더라도 빠르게 객체를 탐지한다. 인간의 시각 시스템처럼 빠른 시스템을 가져오면 많은 영역에서 놀라운 일들을 만들어 낼 수 있다.
현재 감지기는 classifiers를 detection으로 용도를 변경한 것이다. 이런 모델들은 개체를 감지하기 위해서 테스트 이미지의 다양한 위치와 크기에서 분류기를 가지고 평가한다. DPM같은 경우 전체 이미지에 걸쳐 같은 간격씩 sliding window 방식을 사용한다. R-CNN 같은 경우는 region proposal을 사용한다. 먼저 이미지에서 potential bounding boxes을 생성하고 classifier을 사용하는 방식이다. 분류 후 후처리로 경계상자를 다듬고 중복 감지를 제거하며 다른 개체를 기반으로 재채점 한다. 이런 복잡한 방법은 느리고 최적화하기 어렵다.

그래서 우리는 Object detection을 single regression problem(straight from image pixels to bounding box coordinates and class probabilities.) 으로 재정의한다.
전체 과정 중 이미지를 한번만 본다.

YOLO는 매우 간단하다.
단일 CNN은 여러 Bounding box와 해당 box에 대한 class probabilities를 동시에 예측한다. YOLO는 전체 이미지를 학습하고 감지 성능을 직접 최적화 하며 다음과 같은 이점이 있다.

  1. 매우 빠르다.
    복잡한 파이프라인 필요 없고 초당 45fram으로 실행된다.
  2. 이미지에 대해 전반적으로 추론한다.
    sliding window나 reginal proposal과 달리 전체 이미지를 보기 때문에 class와 모양에 대한 context 정보를 implicitly encodes한다.
    Fast R-CNN에 비해 배경 오류 수를 절반 미만으로 만든다.
  3. 객체의 일반화 가능한 표현을 학습한다. YOLO는 자연 이미지에 대한 교육을 받고 예술 작품에서 테스트 할때 타 모델들을 크게 능가한다. 일반화 가능성이 높기 때문에 새로운 domains나 unexpected inputs을 적용해도 고장날 가능성이 적다.

YOLO는 정확도는 비록 뒤쳐지지만 장점을 많이 갖는다.

Unified Detection

YOLO는 전체 이미지의 기능을 사용해서 각 bounding box를 예측한다. 또한 이미지의 대한 모든 클래스의 bounding box를 동시에 예측한다.

입력 이미지를 우선 SxS grid cell로 나눈다. 개체의 중심이 grid cell에 떨어지면 해당 grid cell이 해당 개체를 감지한다.
각 grid cell은 B bounding box와 해당 box에 대한 confidence
scores를 예측한다. 이 점수는 모델이 box에 개체가 포함되어 있다고 확신하는 정도와 box가 예측하는 것이 얼마나 정확하다고 생각하는지를 반영한다.

공식적으로 다음과 같이 정의한다.
해당 셀에 개체가 없으면 confidence scores는 0이다. -> confidence score가 예측된 상자와 ground truth 사이에 IOU(Intersection Over Union)와 같기를 원한다.

각 bounding box는 x,y,w,h및 confidence 총 5가지 예측으로 구성된다.
x,y : grid cell의 경계에 상대적인 box의 중심
w,h: 전체 이미지를 기준으로 예측되는 값
confidence: 예측 box와 실측 간의 IOU

각 grid cell은 C conditional class probabilities인 Pr(Classi |Object) 이 확률은 개체를 포함하는 grid cell에 조건이 지정된다. 상자의 수에 관계 없이 grid cell마다의 set of class pabilities를 구한다. 테스트 시간때 the conditional class probabilities 와 the individual box confidence predictions을 곱한다.

각 상자에 대한 클래스별 confidence score을 제공하며 이 점수는 해당 클래스가 상자에 나타날 확률과 예측된 상자가 개체에 얼마나 잘 맞는지 모두 encoding 한다.

Network Design

네트워크 초기는 특징을 추출하고 fully connected layer는 출력 확률과 좌표를 예측한다. GoogLeNet에서 영강음 받았다. 24개의 conv net과 2개의 fully connected layer가 있다. GoogLe Net의 초기 듈 대신 1x1 reduction layer과 3x3 conv layer가 있다. 최종 출력은 7x7x30
(Fast YOLO는 9개의 conv)

Training

Imagenet data로 Conv Net을 pretrained 한다.(Image classification task수행, average pooling과 FCN 사용)

그뒤 object detection을 위해 4개의 CNN과 2개의 FCN을 추가. 입력 해상도를 224x224 에서 448x448로 늘림

최종 레이어에는 class probabilities 와 bounding box coordinates를 모두 예측. bounding box의 너비와 높이를 이미지 너비와 높이로 정규화하여 0과 1 사이가 되도록 한다.
bounding box x와 y좌표를 특정 grid cell 위치에 offset으로 parameterize하여 bounding box도 0과 1 사이에 있도록 한다.

sum-squared error을 사용하며 maximizing average precision하려는 목표와 완벽하게 일치하지 않기 때문에 localization error와 classification error에 동일하게 weight를 부과한다.

또한 λcoord = 5 and λnoobj = .5를 사용
많은 grid cells에 개체가 포함되어 있지 않은 경우 confidence score을 0으로 밀어내며 종종 개체를 포함하는 grid cell의 gradient를 압도하고 vanishing gradient를 일으킬 수 있기 때문에 사용.

Sum-squared error는 large boxes 와 small boxes에 같은 가중치를 부여해 error metric은 large boxes의 작은 편차가 small boxes에 비해 덜 중요하다는 것을 반영해야한다.
이문제를 직접적으로 해결하기 위해 bounding boxes의 너비와 높이의 제곱근을 직접 예측한다.

YOLO는 grid cell당 여러 bounding boxes를 예측하지만 training time때 각 개체에 대해 하나의 bounding box를 예측하길 원하고 ground truth와 함께 가장 높은 현재 IOU를 가지고 있는지를 기반으로 예측하는데 “responsible” 이 있는 하나의 예측자를 할당한다. 이는 precision을 향상시킨다.

Limitations of YOLO

YOLO는 각 grid cell이 두개의 상자만 예측하고 하나의 클래스만 가질 수 있기 때문에 bounding boxes 예측에 강력한 공간적 제약을 부과하고 이는 모델이 예측할 수 있는 주변 물체의 수를 제한한다. 실제로 새 무리와 같이 그룹으로 나타나는 작은 개체를 어려워 한다.
데이터와 다른 개체가 나올 시 일반화하는데 어려움을 겪는다.
탐지 성능을 근사화하는 loss function에 대해 훈련하는 동한 loss function은 small bounding boxes와 large bounding boxes에서 오류를 동일하게 처리한다. small bounding boxes는 IOU에 더 큰 영향을 미친다.
오류의 주요 원인은 잘못된 현지화 이다.

Experiments


Combining Fast R-CNN and YOLO

Conclusion

YOLO는 모델의 구성이 간단하고 훈련이 가능하다.
감지 성능이 직접적으로 해당하는 loss function에 대해 학습되며 전체 모델이 공동으로 학습된다. 새로운 도메인으로 잘 일반화 되기 때문에 강력하며 빠르기 때문에 실시간 처리에 강하다.

profile
AI개발자를 향해 전진중

0개의 댓글