일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 서류전형
- yolov5
- 인공지능
- 멋쟁이사자처럼
- 절차지향
- 백준
- AWS
- 카카오
- MongoDB
- spring-boot
- 파이썬 #백준 #BFS
- 합격후기
- objectdetection
- 솝트
- EC2
- jQuery
- 사물인식
- 피로그래밍
- Java
- 파이썬
- 페이지네이션
- 면접전형
- jwt
- nodejs
- 멋사
- 솝트 후기
- CRUD
- 프로그래머스
- Python
- S3
- Today
- Total
찔끔찔끔씩😎
[Yolov5] Yolo를 이용한 Object Detection 본문
🔎 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) 를 반복
- 이미지를 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를 예측한다.
- 탐지된 객체가 어느 특정 클래스에 속하는 지에 대한 확률
- B개의 boundary boxes를 예측하고, 각 box는 하나의 box confidence score을 가지고 있다.
- 이미지 전체를 신경망에 넣고 특징 추출을 통해 예측 텐서(Prediction Tensor) 생성
- S * S * (B*5 +C)
- 7x7 grids, 2 boundary boxes, 20 classes = 7* 7 * 30
- 이제 YOLO는 7730 텐서를 예측하는 CNN 네트워크를 구축해야한다.
'Study > 인공지능' 카테고리의 다른 글
[인공지능] Supervised Learning, Unsupervised Learning (0) | 2022.06.05 |
---|---|
[인공지능] 인공지능 개론 (0) | 2022.06.01 |
[Yolov5] 자율주행 데이터 사물인식 실습 (0) | 2022.05.16 |
[CNN] 합성곱 신경망 (Convolutional Neural Network) (0) | 2022.05.16 |