Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- appstore
- Git
- JPA
- mac
- MacOS
- 이미지
- darkmode
- window
- SwiftUI
- IOS
- Archive
- iOS16
- FLUTTER
- Session
- 웹뷰
- github
- 맥
- Xcode
- shorebird
- Swift
- error
- Code
- geofencing
- 개발자
- UIButton
- Realm
- Apple
- 한글
- rxswift
- Firebase
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
YOLO 논문(2016/5) 중요부분 정리 본문
2016/05/9에 작성된 YOLO 논문 중요부분 정리
1. YOLO 개요, 특징
- YOLO(You Only Look Once)는 실시간 객체 검출을 위한 새로운 방법 (지금은 평범한 방법)
- 기존 방법들은 분류기(classifier)를 재활용하여 검출하는 방식을 사용했으나, YOLO는 객체 검출을 회귀(regression) 문제로 바라봄
- 전체 이미지를 한 번에 평가하여 여러 객체의 위치와 종류를 동시에 예측
- 단일 신경망이 이미지를 입력받아 여러 개의 바운딩 박스와 클래스 확률을 동시에 예측
- 이 방식은 매우 빠르며, 실시간 영상 처리에 적합
- 훈련 및 테스트 시 전체 이미지를 보기 때문에 클래스의 외형뿐만 아니라 맥락 정보를 암묵적으로 인코딩
- 배경에 대한 오탐률이 낮고, 작은 객체 검출에 강점
- 그러나 위치 정밀도는 다소 떨어질 수 있음 (옛날 말..)
2. YOLO 작동 원리, 구조
- 입력 이미지 처리: 이미지를 특정 크기로 리사이징
- 그리드 셀 방식: 입력 이미지를 S×S개의 격자로 나누고, 셀이 B개의 객체 검출 시도
- 객체 책임 할당: 객체의 중심이 특정 그리드 셀에 속하면, 해당 그리드 셀이 그 객체를 탐지할 책임
- 바운딩 박스 및 신뢰도 예측:
- 각 그리드 셀은 고정적으로 B개의 [바운딩 박스와 신뢰도 점수]를 예측
- 바운딩 박스는 중심 좌표(x,y), 너비(w), 높이(h)를 예측. (이미지 넓이 높이에 따라 정규화된 값)
- 신뢰도 점수는 박스의 객체 존재 확률, 박스 좌표 정확도를 반영
- 신뢰도 공식은 Pr(Object) * IOU_truth_pred (객체가 박스에 있을 확률 * 예측 박스와 정답 박스간의 IOU)
- Pr(Object) : 이 박스가 객체를 포함하고 있는지 여부
- 학습 시:
- 정답 박스가 해당 그리드 셀 안에 있으면 Pr(Object) = 1
- 없으면 Pr(Object) = 0
- 테스트 시:
- 모델이 예측한 그 박스에 객체가 있을 확률을 의미
- softmax/로지스틱 출력을 통해 0~1 사이 값
- 학습 시:
- IOU_truth_pred : 예측 박스와 정답 박스간의 IOU
- IOU(Intersection Over Union): 두 박스의 교집합 넓이 / 합집합 넓이
- confidence 점수 하나로 “객체 존재 + 위치 정확도”를 동시에 나타냄
- 객체가 없으면 confidence = 0
- 객체가 있지만 위치가 틀리면 confidence 낮음
- 객체가 있고 위치 정확하면 confidence 높음
- 최종 목적: 객체가 있으면 신뢰도 점수는 예측된 박스와 실제박스 간의 IOU와 같도록.
- 클래스 확률:
- 각 셀은 조건부로 클래스 확률을 계산
- 자신이 예측한 박스에 객체가 포함되어있다고 판단할 경우에만, 특정 클래스에 속할 확률을 예측
- 박스가 아닌 각 셀이 계산
- 박스 갯수 B와 관계없이,그리드 셀당 하나의 클래스 확률 세트만 예측
- 각 셀은 조건부로 클래스 확률을 계산
- 최종 예측:
- 클래스 확률과, 개별 박스 신뢰도 예측을 곱하여 각 박스에 대한 클래스별 신뢰도 점수를 얻음
- 이 점수는 해당 클래스가 박스에 나타날 확률과 예측된 박스가 객체에 얼마나 잘 맞는지 모두 인코딩
- YOLO는 탐지를 회귀 문제로 모델링하였으며, 이미지를 S x S 그리드로 나누고, 각 그리드 셀에 대해 B개의 바운딩 박스, 해당 박스의 신뢰도 C, 클래스 확률을 예측
이러한 예측은 S x S x (B * 5 + C) 텐서로 인코딩 됨. - 예:
- S=7 (7×7 그리드)
- B=2 (박스 2개)
- C=20 (클래스 20개, PASCAL VOC 기준)
- 출력 텐서 크기: 7×7×(2⋅5+20)
- 클래스 확률과, 개별 박스 신뢰도 예측을 곱하여 각 박스에 대한 클래스별 신뢰도 점수를 얻음

3. 나머지는 딱히 중요하지 않음
장점과 성능, pt모델의 사전학습 방법 등..
최신 모델의 백본, 넥, 헤드 내용을 분석해서 다른 글에 정리
Comments