You Only Look Once

suhan cho·2022년 7월 18일
0

YOLO란

  • You only Look Once
    이미지 전체를 단 한번만 본다
  • Unified
    통합된 모델을 사용한다
    다른 객체 탐지 모델은 다양한 전처리 모델과 인공 신경망을 결합해서 사용, YOLO는 단 하나의 인공신경망에서 전부 처리
  • Real-time 객체탐지
    기존의 Fast R-CNN 0.5FPS비해 YOLO는 45FPS처리

Introduction

  • 단일 신경망 구조이기 때문에 구성이 단순하며 빠르다.
  • 주변 정보까지 학습하며 이미지 전체를 처리하기 때문에 background error작다.
  • 훈련 단계에서 보지 못한 새로운 이미지에 대해서도 검출 정확도가 높다
  • 단, YOLO는 SOTA객체 검출 모델에 비해 정확도(mAP)가 다소 떨어진다


1. 먼저 이미지가 주어졌을 때 선택적 탐색 알고리즘 이용해 2000개의 리전을 생성하여 서브-이미지를 추출
2. 추출한 서브-이미지들은 매우 큰 합성곱 신경망(CNN)을 통과하여 특징을 추출하고 추출된 특징은 서포트 백터 머신(SVM)을 통해 각 리전별로 클래스 분류한다.

  • R-CNN입력값으로 주어지는 건 이미지 하나지만 CNN을 통과하는 건 2000개의 서브-이미지이다. 즉 2000개 지난다

  • R-CNN과 달리 합성곱 신경망을 단 한 번 통과시킨다
  • 신경망의 결과로는 각 객체의 바운딩 박스와 해당 객체가 무엇인지 분류 확률을 출력한다.

논문에서는 이미지를 7x7 그리드 셀로 나눈다. 이렇게 나눈 그리드 셀 중 물체의 중앙과 가까운 셀이 객체를 탐지하는 역할을 한다.
각 셀은 바운딩 박스 B와 분류한 클래스의 확률인 C를 예측

  • 바운딩박스B는 x,y좌표, 가로, 세로 크기 정보와 Confidence Score(Score은 B가 물체를 영역으로 잡고 있는지와 클래스를 잘 예측했는지)수치를 가지고 있다.
  • Pr(Object)xIOU인데 Pr(Object)는 바운딩 박스 안에 물체가 존재할 확률이다.(만약 배경을 잡게된다면 Pr(Object)는 0이므로 Score은 0이다)
  • IOU는 학습데이터의 바운딩 박스와 예측한 바운딩 박스가 일치하는 정도를 나타낸다
  • 클래스 확률 C는 그리드 셀 안에 있는 그림의 분류 확률을 나타낸다 기호로는 Pr(Class_i|Object)로 표현하며 B가 배경이 아닌 객체를 포함하는 경우의 각 클래스의 조건부 확률

네트워크 구조

  • 24개의 Convolutional Layer와 2개의 Fully-Connected Layer)로 연결된 구조를 사용

Pre-trained Network

  • 주황색 테두리 20개의 Conv Layer로 구성

Reduction Layer

  • 네트워크는 깊을 수록 더 많은 특징을 학습하기 때문에 정확도가 높아지는 경향이 있다
  • 하지만 Conv Layer를 통과할 때 사용하는 Filter연산이 수행시간을 많이 잡아 먹기 때문에 쌓는데 부담이 된다.
  • ResNet,GoogleNet기법 제안 오렌지색 테두리가 GoogleNet기법 응용하여 연산량을 감소하면서 층을 깊게 쌓는 방식 이용

Training Network

  • 파란색 영역으로 Pre-trained Network에서 학습한 feature를 이용하여 Class probability와 Bounding box 학습하고 예측하는 네트워크이다
  • 예측 모델은 SxS(Bx5+c)개의 파라미터 결과를 출력
    PASCALVOC 데이터 셋은 20개의 클래스를 제공하기 때문에 C의 값 20

https://medium.com/curg/you-only-look-once-%EB%8B%A4-%EB%8B%A8%EC%A7%80-%ED%95%9C-%EB%B2%88%EB%A7%8C-%EB%B3%B4%EC%95%98%EC%9D%84-%EB%BF%90%EC%9D%B4%EB%9D%BC%EA%B5%AC-bddc8e6238e2

배경

  • 기존의 Object Detection은 single window, regional proposal methods 등을 통해 바운딩 박스 잡은 후
    탐지된 바운딩 박스에 대해 분류 수행하는 2stage방식
    • 파이프라인이 복잡 학습가 예측이 느려지고 최적화 느려짐
  • YOLOv1은 하나의 컨볼루션 네트워크를 통해 대상의 위치와 클래스를 한번에 예측
  1. 학습 파이프라인이 기존의 detection 모델들에 비해 간단하기 때문에 학습과 예측의 속도가 빠르다
  2. 모든 학습 과정이 이미지 전체를 통해 일어나기 때문에 단일 대상의 특징뿐 아니라 이미지 전체의 맥락을 학습
  3. 대상의 일반적인 특징을 학습하기 때문에 다른 영역으로 확장에서도 뛰어난 성능 보임

모델 구조

  • Bounding Box Coordinate과 Classification를 동일 신경망 구조를 통해 실행하는 통합인식(Unified Detection)을 구현한다
  1. 이미지를 SXS의 그리드로 분할(논문에서 7x7)
  2. 이미지 전체를 신경망에 넣고 특징 추출을 통해 예측 텐서 생성
    (예측 텐서는 그리드 별 테두리상자 정보, 신뢰 점수, 분류 클래스 확률포함)
  3. 그리드 별 예측 정보를 바탕으로 테두리 상자 조정 및 분류 작업 수행
  4. 각각의 그리드 셀은 B개의 Bounding Box와 각 Bounding Box에 대한 Confidence-Score가진다 Pr(Object)xIOU
  5. 각각의 Grid cell은 C개의 Conditional Class Probability가진다
  6. 각각의 Bounding box는 x,y좌표 w,h,confidence를 가진다.
    (x,y는 Bounding box중심점을 의미 grid cell범위에 대한 상대값)

Yolov1 Network

  • Inception 블럭 대신 단순한 224x224 크기의 ImageNet Classification으로 pretrain을 진행했습니다.
    이후 448x448 이미지를 input image로 받아 24개의 Conv Layer 중 앞의 20개의 컨볼루션 레이어는 고정한 채 뒷 단의 4개의 레이어와 2개의 Fully Connected Layer만 object detection task에 맞게 학습하게 됩니다.
    이후 예측 텐서(Prediction Tensor)를 뽑아내게 됩니다. 이것을 바탕으로 디텍션 및 분류작업을 수행하게 됩니다.

Prediction Tensor(7x7x30)

  • Conv Layer, FC Layer통과한 Prediciton Tensor 피쳐맵이다
  • R-CNN
profile
안녕하세요

0개의 댓글