찔끔찔끔씩😎

[Yolov5] Yolo를 이용한 Object Detection 본문

Study/인공지능

[Yolov5] Yolo를 이용한 Object Detection

댕경 2022. 5. 16. 20:17
728x90

🔎 Yolov5란?

You Only Look Once 의 약자로 Object detection 분야에서 많이 알려진 모델이다.

처음으로 one-stage-detection 방법을 고안하여 실시간으로 Object Detection이 가능하게 만들었다.

 

🔎 Yolov5 특징

1. 이미지 전체를 한번만 보는 것

R-CNN: 이미지를 여러장으로 분할하고 CNN 모델을 이용하여 이미지를 분석했다. 따라서 이미지 한장을 보더라도 여러장의 이미지를 분석하는 것과 같았다. 하지만 YOLO는 이러한 과정없이 이미지를 한 번만 보는 특징을 가지고 있다.

 

2. 통합된 모델을 사용하는 것

기존 Object Detectin 모델은 전처리모델 + 인공신경망 을 결합하여 사용했다. 하지만 YOLO에서는 위를 통합한 모델을 사용한다.

 

3. 실시간으로 객체를 탐지할 수 있는 것

기존의 R-CNN보다 6배 빠른 성능을 보여준다.

 

🔎 Object Detection의 구조와 종류

최신 detector 는 주로 백본과 헤드라는 두 부분으로 구성된다.

 

백본(Backbone)은 입력이미지를 feature map으로 변형시켜주는 부분이다.

헤드(Head)는 Backbone에서 추출한 feature map의 location 작업을 해주는 부분으로, predict classes 와 bounding boxes 작업이 수행된다. 헤드는 크게 Dense Prediction과 Sparse Prediction으로 나누어진다.

Sparse Prediction을 사용하는 Two-Stage Detector: Predict Classes 와 Bounding Box Regression 분리 ex) R-CNN, R-FCN Dense Prediction을 사용하는 One-Stage Detector: Predict Classes 와 Bounding Box Regression 통합 ex) YOLO, SSD

넥(Neck) 은 Backbone 과 Head를 연결하는 부분으로, feature map을 정제하고 재구성한다.

 

🔎 절차

input(이미지) → CNN → FC(Fully Connected) → PT(Prediction Tensor) 를 반복

  1. 이미지를 S*S의 그리드로 분할 (논문에서는 7*7)

    그리드마다 하나의 객체를 예측한다. 미리 설정해 둔 경계를 통해서 객체의 위치와 크기를 파악한다. 여러 객체가 한 셀에 있으면 탐지를 못할 수도 있다. 각 Grid cell 은 조건이 있다.
    • B개의 boundary boxes를 예측하고, 각 box는 하나의 box confidence score을 가지고 있다.
      • 예측된 box 수에 관계 없이 단 하나의 객체만 탐지한다.
      • boundary box는 객체의 위치 (x,y), 객체의 크기 (w,h), box confidence score로 구성된다.
      • box confidence score는 box가 객체를 포함하고 있을 가능성을 반영한다.
    • C개의 conditional class probabilities를 예측한다.
      • 탐지된 객체가 어느 특정 클래스에 속하는 지에 대한 확률
  2. 이미지 전체를 신경망에 넣고 특징 추출을 통해 예측 텐서(Prediction Tensor) 생성
    • S * S * (B*5 +C)
    • 7x7 grids, 2 boundary boxes, 20 classes = 7* 7 * 30
    • 이제 YOLO는 7730 텐서를 예측하는 CNN 네트워크를 구축해야한다.

Comments