사용 분야
•
자율 주행
•
스포츠
•
의료
•
군사
정의
Classification + Localization(하나의 obejct 위치를 잡아내는 것)
Multi-Labeled Classification + Bounding Box Regression
다중 분류와(클래스 구분) 위치를 잡아내는 회귀가 합해진 딥러닝 모델이라고 보면 된다.
Object Detection 주요 키워드 정의
•
Bounding Box
하나의 Object가 포함된 최소 크기의 박스
◦
박스를 만드는 기준은 min, max 나 center, width, height 등 다양하다.
◦
즉, Bounding Box를 통해 object의 위치 정보를 담았다고 보면 된다.
•
IoU (Intersection over Union)
박스간 중복 영역 크기를 통해 측정하는데,
겹치는 영역이 넓을수록 좋은 예측이라고 보면 된다.
0 ~ 1 사이의 값을 갖고 1에 가까울수록 박스간 중복 정도가 크다.
•
Confidence Score
Bounding Box 안에 Object가 있는지 모델이 확신하는 정도
따라서 확률의 의미는 아니다. 또, 값이 크다고 해서 정말도 object 가 있는 것도 아니다.
Ground-Truth Bounding Box (즉, 정답(실제) bounding box)의 Confidence Score 는 1이 될 것이다.
한편, Predicted Bounding Box의 Confidence Score 는 0 ~ 1사이의 값을 갖는다.
1에 가까울수록 모델은 해당 Bounding Box안에 object가 있다고 판단할 것이다.
이 score 값은 모델에 따라 계산하는 방식이 조금씩 다르다.
ex) object가 있을 확률, object가 있을 확률 X IoU, object가 특정 클래스일 확률 X IoU ,…
•
Precision(정밀도) / Recall(재현율)
◦
Precision : object가 있다고 예측했는데, 실제로 있을 확률 (예측 관점)
◦
Recall : 실제 object가 있는데, 있을 것이라고 예측한 확률(실제 관점)
◦
Confidence Score 의 임곗값에 따라 이 Precision, Recall 값이 변화한다.
▪
Confidence Score의 임곗값 설정에 따라 살아남는 박스들의 수에 영향을 미치기 때문에 당연히 Recall,precision 값이 영향을 받을 수밖에 없다.
◦
IoU의 임곗값에 따라서도 Precision, Recall 값에 영향을 미친다.
•
Precision - Recall Curve
모델의 학습 과정에서 그려진다.
모델 스스로가 Confidence Score threshold를 다양하게 바꾸면서 나온 결과인 recall와 precision을 모두 감안할 수 있는 그래프라고 보면 된다.
•
AP ( average precision )
Precision - Recall Curve 그래프 아래 면적
•
MAP (mean average precision)
각 클래스별 AP를 합산하여 평균을 낸 것
Confidence Score와 Recall/Precision 의 관계
•
Confidence Score의 임곗값을 높이면 Target의 예측 정밀도가 높아진다. 한편, 재현율은 변화 없다.
•
Confidence Score의 임곗값을 내리면 Target의 예측 정밀도가 낮아진다. 한편 재현율은 높아진다.
NMS(Non - Maximum - Suppression)
“추론 과정”의 알고리즘 → 예측할 때를 의미
동일 Object에 대한 중복 박스 제거
•
NMS 과정
1.
Confidence Score 임곗값 이하의 Bounding Box 제거
2.
남은 Bouding Box들을 Confidence score 내림차순으로 정렬
3.
첫 Bouding Box와의 IoU값이 임곗값 이상인 다른 박스들을 제거
→ 중복 제거의 의미
4.
Bounding Box가 하나 될 때까지 반복
Confidence Score의 임곗값이 높을수록, IoU 임곗값이 낮을수록 중복 박스에 대한 판단히 엄격해진다!
•
하이퍼 파라미터 → predict 에서 설정!
◦
Confidence Score 임곗값
◦
IoU 임곗값
Annotation
이미지 안의 정보에 대해서 별도의 파일로 제공되는 것을 Annotation 파일이라고 한다.
Annotation 파일에는 Object의 위치 정보, 클래스 정보, 클래스명 등의 정보가 담겨 있다.
UltraLytics : YOLO
!pip install ultralytics # 라이브러리 설치
from ultralytics import YOLO # 라이브러리 불러오기
model = YOLO() # 모델 선언 (구조 및 가중치 설정)
model.train() # 학습
model.val() # 검증
model.predict() # 예측
Python
복사
Roboflow : Universe
컴퓨터 비전의 End - to - End 개발 가능
- Annotation
- Dataset Split
- Preprocessing
- Augmentation
- Training
…
!pip install roboflow
from roboflow import Roboflow
Python
복사
Roboflow 데이터 탐색하기
Object Detection에 사용할 데이터셋을 다운로드 받은 뒤,
1.
데이터셋 폴더의 내부 구조 확인하기
•
test(옵션)
images / labels 폴더 내부에는 동일한 이름의 이미지 파일과 텍스트 파일이 저장되어 있음
labels 폴더의 txt 파일에는 클래스 정보와 Normalize된 x, y, w, h가 담겨있다.
◦
images
◦
labels
•
train
◦
images
◦
labels
•
valid
◦
images
◦
labels
•
README.dataset.txt
•
README.roboflow.txt
•
data.yaml
데이터셋에 대한 정보
◦
training , validation, test set에 대한 경로
◦
nc 클래스의 수
◦
names 클래스별 이름