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