컴퓨터 비전 분야 3가지
- 인간의 시각과 관련된 부분을 컴퓨터 알고리즘을 이용해 구현하는 방법 연구 -> 최근엔 딥러닝 이용
1. Object Detection의 원리
Object Detection = Localization + Classification
Object Detection : 물체들을 boundig box로 위치를 찾아냄 localization + class를 분류 (classification)g 하는 작업
단계
1. 하나의 이미지안에서 N개의 Object를 검출(찾으려는 object 수 지정)
2. Object가 있을 최대의 개수를 정하고 모델은 무조건 그 개수만큼 bounding box(위치+분류)를 추론(출력)
3. 추론한 결과에서 후처리를 통해 최종 추론결과를 낸다.
- box안에 물체가 있을 확률(confidence score)을 모델이 찾도록 하여 낮은 확률의 box는 후처리에서 제거한다.
방식
방식1. One stage detector
localization과 classification을 하나의 네트워크에서 처리 , 속도는 빠르지만 정확도가 낮음. 실시간 검출이 중요하므로 속도가 중요
방식2. Two stage detector
Localization과 classification을 나눠서 순차적으로 실행 처리, 속도는 느리지만 정확도가 높음
출력값
1. Bounding box(BBOX)의 위치
- 위치값 4개가 가리키는 것은 3가지 중 1개(모델별)
1) X좌표, Y좌표, width(너비), hight(높이)
X좌표 , Y과표가
1. Bounding Box 중심점의 좌표인 경우
2. Bounding Box 좌상단 좌표인 경
2) x_min, y_min(좌상단), x_max, y_max(우하단)
2. Object Detection 성능 평가
1) IOU(Intersection Over Union, Jaccard overlap)
2) mAP (mean Average Precision)
### confusion matrix 계산 -> scikit-learn이용
import numpy as np
from sklearn.metrics import confusion_matrix
## class : 0,1(이진분류)
y = np.array([0,1,1,1,0]) #정답
pred = np.array([0,0,1,1,1]) #예측
cm = confusion_matrix(y, pred) # 평가지표함수(정답, 모델예측값)
print(cm)
# 0,1 -> 모델 예측 class
# [[1 1] 0
# [1 2]] 1
# 정답 class
# 행렬의 값 : 개수
from sklearn.metrics import accuracy_score, recall_score, precision_score
#accuracy 계산
print(f"정확도:{accuracy_score(y,pred)}",(3/5))
print(f"재현율(recall):{recall_score(y,pred)}",(2/3))
print(f"정밀도(precision):{precision_score(y,pred)}",(2/3))
'Data Science > ML & DL' 카테고리의 다른 글
Object Detection | yolov8 예제1(저장된 datasets) (0) | 2023.11.07 |
---|---|
Object Detection | YOLO 모델의 구조 (0) | 2023.11.07 |
데이터 수집과 라벨링 | Open Dataset + 데이터 수집 방법 (0) | 2023.11.06 |
GAN 실습 | DGan (1) | 2023.11.04 |
GAN 개념 | 진짜와 구별이 안되는 Generator 모델 (0) | 2023.11.04 |