-
Object DetectionDeep Learning/vision 2021. 8. 4. 03:14728x90
Object Detection
object detection은 사물의 위치를 찾아내는 기술이다. 사물의 위치를 찾을 뿐 아니라 무슨 사물인지 분류하기도 한다.
기존의 CNN을 활용한 classification이 쓰인다.
Localization : 하나의 이미지에 하나의 obeject를 찾아 내는 것
Detection : 하나의 이미지에 여러 개의 object 를 bounding box로 찾는다.
Segmentation : Dectection보다 더 발전된 행태, 하나의 이미지에 여러개의 object 를 픽셀단위로 찾는다.
Localization / Detection은 해당 Object의 위치를 Bounding box로 찾고, Bounding box 내의 오브젝트를 판별한다.
=>Bounding box regression + Classification
Object Detection History
https://arxiv.org/pdf/1905.05055.pdf Object Detection은 AlexNet이 등장한 이후로 deep learning 기반으로 기술이 크게 발전하였다.
One-stage detector
한 단계로 검출을한다.
속도가 빠르지만 정확도가 낮다.
Two-stage detector
두 단계로 나누어 검출한다.
Regional Proposal과 Classification이 순차적으로 이루어진다.
Regional Proposal은 뒤에서 자세히 살펴보자.
속도가 느리지만 정확도가 높다.
일반적인 Object Detection 모델
왼쪽부터 Backbone, Neck, Head 라고 부른다.
Backbone
Classification 을 하는 모델이다.
ResNet, VGGNet 등이 쓰인다.
Neck
Neck이라고 불리는 feature pyramid net은 작은 object들을 보다 잘 detect 하기 위해서 만들어진 net이다.
상위의 feature map과 하위의 feature map의 정보를 효과적으로 결합한다.
Head
Head 에서는 classification과 bounding box regression을 진행한다.
이미지의 어느 위치에서 object를 찾아야 하나?
두 개 이상의 object를 찾기 위해 쓰이는 방식 두 가지를 알아보자.
Sliding Window 방식
window를 왼쪽 상단에서부터 오른쪽 하단으로 이동시키면서 object를 detection 하는 방식이다.
다양한 형태로 window를 조정하여 sliding 시키는 방식, windwo 크기는 고정하고 이미지 크기를 변경한 여러 이미지를 사용하는 방식이 있다.
딱 보기에도 많은 문제점이 있다.
window의 크기가 너무 작거나 너무 크면 detection이 제대로 이루어지지 않는다.
Object Detecion의 초기 기법으로 활용하였다.
오브젝트가 없는 영역도 무조건 슬라이딩 하여야하고 수행 시간이 오래걸린다.
하지만 Object Detecion 발전을 위한 기술적 토대를 제공해 주었다.
Region Proposal (영역 추정) 방식
Selective Search
Seletivc Search는 Region Proposal 방식의 대표적인 방법이다.
원본이미지에서 컬러, 무늬, 크기, 형태에 따라 Segmentarion을 적용한다.
이후 유사한 영역끼리 그룹핑하는 작업을 반복한다.
이것이 Selective Search 이다.
이 작업은 사물이 있을만한 위치를 찾는 것이고 이후 deep learning 알고리즘을 통해 정확하게 예측할 수 있도록 학습 시킨다.
IoU
Intersection over Union
Object detection 성능 평가 지표이다.
Ground Truth(실측) bounding box와 Predicted bounding box 의 합집합 영역과 교집합 영역의 비를 나타낸다.
IoU가 클 수록(1에 가까울 수록) 성능이 좋다는 뜻이다.
NMS
Non Max Suppression
Detected된 Object의 bounding box중에 비슷한 위치에 있는 box를 제거하고 가장 적합한 box를 선택하는 기법이다.
수행 로직
detect된 bounding box중 Confidence threshold 이하 box는 제거한다.
confidence score를 내림차순 정렬한다.
높은 confidence score를 가진 box와 겹치는 다른 box 중 IoU가 특정 값 이상인 box를 모두 제거한다.
남아 있는 box만 선택한다.
mAP
mean Average Precision
실제 Object가 Detected된 재현율(Recall)의 변화에 따른 정밀도(Precision)의 값을 평균한 성능 수치
정밀도와 재현율은 주로 이진 분류에서 사용되는 성능 지표이다.
정밀도(Precision)
예측을 positive로 한 대상 중 예측과 실제 값이 positive로 일치한 데이터의 비율
Object Detection 에서는 예측 결과가 실제 object 들과 얼마나 일치하는지를 나타내는 지표
재현율(Recall)
실제 값이 positive인 대상 중 예측과 실제 값이 positive로 일치한 데이터의 비율
Object Detection 에서는 검출 알고리즘이 실제 object 들을 빠뜨리지 않고 얼마나 정확히 검출 예측하는지를 나타내는 지표
예측 성공 기준
IoU 값에 따라 Detection 예측 성공이 결정된다.
PASCAL VOC Challenge 에서는 IoU가 0.5 이상이면 예측 성공으로 인정한다.
COCO Challenge 에서는 여러개의 IoU 기준을 변경해 가면서 예측 성공을 적용한다.
오차 행렬(Confusion Matrix)
오차 행렬은 이진 분류의 예측 오류가 얼마인지와 어떠한 유형의 예측 오류가 발생하고 있는지를 함께 나타내는 지표이다.
TP는 예측 값이 존재(Positive) 하고 정답이 True 인 경우
FP는 예측 값이 존재(Positive) 하지만 정답이 False 인 경우
FN은 예측 값이 존재 하지 않고(Negative) 정답이 False 인 경우
TN은 예측 값이 존재 하지 않고(Negative) 정답이 True 인 경우 (TN은 쓰지 않는다.)
TP, FP, FN 에 따른 정밀도와 재현율
정밀도 = TP / (FP + TP)
예측 값이 존재하는 경우 중에서 정답을 맞힌 비율
재현율 = TP / (FN + TP)
예측 값의 존재 여부와 상관없이 모든 경우 중에서 정답을 맞힌 비율
정밀도를 100%로 만드는 방법
FP 값을 0으로 만든다.
확실한 기준이 되는 경우만 Positive로 예측, 나머지는 모두 Negative로 예측한다.
전체 환자 1000명중 확실한 경우만 positive로 예측하면 정밀도는 올라간다.
재현율을 100%로 만드는 방법
FN값을 0으로 만든다.
모든 환자를 Positive로 예측한다.
예측을 negative로 해서 틀리는 경우를 없애면 FN 값이 0이 되므로 재현율은 올라간다.
재현율이 상대적으로 중요한 경우
실제 positive 데이터 예측을 negative로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
ex) 암 진단, 금융 사기 판변
정밀도가 상대적으로 중요한 경우
실제 negative 데이터 예측을 positive로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
ex) 스팸 메일
Confidence Threshold에 따른 정밀도와 재현율 변화
confidence threshold가 높을 수록 예측 bbox를 만드는데 매우 신중하게 된다. 정밀도는 높아지고 재현율은 낮아진다.
반대로 confidence threshold가 낮을 수록 예측 bbox를 많이 만들게 되어 정밀도는 낮아지고 재현율은 높아진다.
Precision-Recall Curve
recall값의 변화에 따른 precision 값을 나타낸 곡선을 정밀도 재현율 곡선이라 한다.
이렇게 얻어진 precision 값의 평균을 AP라고 하며, 면적으로 계산된다.
AP 계산하기
아래 그림과 같이 confidence 값을 줄이면서 Precision과 Recall값을 측정한다.
0.9 부터 0.05 까지 측정하여 표로 만든다.
표를 그래프로 만든다.
빨간색의 면적이 AP가 된다.
mean Average Precision
AP는 한 개 오브젝트에 대한 성능 수치이고
mAP는 여러 오브젝트들의 AP를 평균한 값이다.
데이터 셋과 알고리즘 별 mAP
728x90'Deep Learning > vision' 카테고리의 다른 글
OpenCV | FasterRCNN (0) 2021.08.19 MMDetection | Faster RCNN (1) 2021.08.15 OpenCV 영상 처리 (2) 2021.08.07 Object Detection / Segmentation 주요 데이터셋 (0) 2021.08.07