Machine Learning

[YOLO] YOLO(You Only Look Once)란?

Yeni.Yeni 2023. 5. 2. 15:57

YOLO 개념

  • You Only Look Once의 약자로 Object detection 분야에서 많이 알려짐 
  • 하나의 이미지 데이터를 여러개의 이미지 데이터로 나누어 분석하는 것이 아닌 전체의 이미지를 이용해 학습하고 예측함

 

YOLO 원리 및 작동방식

Neural Network Classification

  • 예시로, 이미지가 개인지 사람인지 결정하려는 문제를 YOLO를 통해 해결하는 과정을 보여주며 YOLO의 원리를 이해해보고자 함.  

  • Image Classification은 단순히 Dog가 1, Person이 0이라고 함
  • Object Localizaion은 어떤 클래스인지 알려주는 것 뿐만 아니라 Boundoing Box를 통해 이미지 내 객체의 위치도 말해줌

 

  • 정확성을 높이기 위해, 신경망 출력 측면에서 Pc가 클래스의 확률인 벡터를 가짐
  • 그래서 만약 이미지에 Dog나 Person이 있다면 Pc가 1이 됨. 없는 경우는 0이 됨.   
  • Bx, By: 노란색 원으로 표시된 중심의 좌표
  • Bw, Bh: Bounding Box의 너비와 높이
  • C1: Dog class
  • C2: Perosn class 

  • 그래서 사람만 있는 경우에 C1=0, C2=1

  • 그래서 객체가 아무것도 없는 경우에 Pc=0

 

Neural Network Classification

  • Boundary Box뿐만 아닐 객체를 분류하도록 신경망을 훈련시킬 수 있음
  • 신경망은 숫자만 이해하므로 벡터로 변환해야 함

 

Training Data Set

    1) 단일 객체만 있는 경우 

  • 새 이미지를 입력하면 특정 벡터를 알려줌. C1이 1로 설정되어 있기 때문에 이것이 Dog라는 것을 알려주고 Boundary Box도 알려줌

    2) 여러 객체가 있는 경우 

  • YOLO는 이미지를 grid cell로 나눔. grid cell 타입(4*4 19*19..) 은 자유롭게 사용 가능함
  • 중심의 좌표와의 거리가 벡터값에 추가됨 (ex. 위 이미지에서 0.05, 0.3)
  • 결론적으로, 4*4*7 Volume을 갖게 됨 (4*4 cells, each cell is vector of 7) 

 

  • Training Set에는 하나의 셀 마다 하나의 벡터가 있음 

 

Prediction

발생할 수 있는 문제와 YOLO가 해결한 방법

  • Multiple bounding boxes: 주어진 객체에 대해 여러 bounding box 인식하는 경우

         → IOU(Intersection Over Union)를 통해 해결: 합집합에 대한 교차 영역을 찾음 

  • grid cell에 두 개의 객체에 대한 중앙점이 있을 경우

        → 벡터의 크기를 늘려서 연결함 

 

YOLO 특징 및 장점

  1. 이미지 전체를 한번만 봄: YOLO 이전의 R-CNN은 이미지를 여러장으로 분할하고, CNN 모델을 이용해 이미지를 분석했음. 그렇기 때문에 이미지 한장에서 Object Detection을 해도 실제로는 여러장의 이미지를 분석하는 것과 같았음. 하지만 YOLO는 이러한 과정 없이 이미지를 한 번만 보는 강력한 특징을 가지고 있음 
  2. 통합된 모델 사용: 기존 Object Detection 모델은 다양한 전처리 모델과 인공 신경망을 결합해서 사용했음. 하지만 YOLO는 통합된 모델을 사용해 간단함 
  3. 실시간으로 객체를 탐지: YOLO가 유명해진 이유는 높은 성능은 아니더라도 준수한 성능으로 실시간으로 Object Detection이 가능함

< 출처 : 패스트캠퍼스 [가장 빨리 도달하는 객체 감지 알고리즘 YOLO!] 강의 페이지 >

 

YOLO 구현환경

Darknet

  • Linux/macOS 사용 권장하며 C언어로 작성되어 있음
  • YOLO를 위해 특별히 제작되었음
  • 장점: 대규모 이미지나 비디오에서의 객체 감지 및 추적에 유리
  • 단점: 구현이 복잡하고, 사용하기 어려움
 

darknet YOLO로 물체 인식하기 (deep learning, object detection)

이번에는 darknet Yolo v3를 환경 구축(설치)과 물체 인식을 해보도록 할게요. ▷ 테스트 환경1. Ubuntu (버추얼 머신 - 우분투 가상 환경)2. 노트북 (Intel i3-2330M 2.20Hz, RAM 8GB, SSD, GT 540M) ▷ 기타 환경 (옵

ghostweb.tistory.com

 

TensorFlow

  • 장점: 다른 라이브러리나 프레임워크와 호환성이 높아 다양한 환경에서 사용하기 용이
  • 단점: YOLO를 구현할 때는 코드 양이 더 많아짐

TensorFlow Lite

  • 경량화된 모바일 및 임베디드 기기용 머신 러닝 프레임워크
  • 장점: 모바일에 경량화된 모델 생성할 수 있어 유리함 
  • 단점: 경량화된 모델은 원래 모델보다 정확도가 낮을 수 있음
 

물체 감지, 물체 감지  |  TensorFlow Lite

TensorFlow가 Google I/O에서 돌아왔습니다! 5월 10일 프로그램 탐색 에서 생성 AI, 응용 ML 등에 대한 최신 정보 알아보기 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 물체 감지,

www.tensorflow.org

 


참고

1) 영상

2) 공식문서

3) 기술블로그

4) 깃허브