Deep Learning/Object Detection
SPPnet
입력 이미지 크기와 상관없이 CNN을 적용할 수 있도록 Spatial Pyramid Pooling 기법을 제안한 논문이다. 1. 배경 R-CNN 이전에 제안된 R-CNN은 convolution layer 이전에 crop이나 warp로 이미지 크기를 고정시킨 후 2000개의 영역에 CNN을 통과시켰다. 따라서 다음과 같은 단점을 가진다. 2000개의 region에 각각 CNN을 통과시킨다. → CNN 연산량이 너무 많아 속도가 느려진다. 강제 warping → 큰 객체는 줄이고, 작은 객체는 늘려 정보 손실로 인해 성능이 하락할 수 있다. CNN, SVM classifier, bounding box regressor를 따로 학습해야한다. end-to-end 모델이라고 볼 수 없다. SPPnet 입력 이미지..
R-CNN
R-CNN은 CNN을 object detection task에 처음 적용한 모델로 2-stage 모델에 해당하며, 초기 모델로 구조는 꽤나 직관적이다. 0. Overview selective search 알고리즘을 사용해 region proposal(이미지에서 객체에 대한 후보 영역 검출)을 수행한다. 뽑은 2천개의 이미지 영역(다양한 크기, 비율을 가짐)을 고정된 크기의 이미지로 resize 한다. (원본 이미지의 비율을 고려하지 않아 여기서 이미지 변형이나 손실 발생) 총 2천개의 영역에 pre-trained ConvNet에 통과시켜 4096차원의 특징 벡터(feature vector)를 추출한다. 추출한 feature vector에 각 클래스별로 학습시킨 SVM classifier를 사용해 분류 수..
NMS (Non Maximum Suppression)
1. NMS NMS란 하나의 객체(object)에 bbox가 여러개 만들어진 경우 각 객체당 confidence가 가장 큰 bbox 하나만 남기는 기법이다. 가장 정확한 bbox 하나만 남기는데, optimal bbox를 찾을 수는 없고, bbox 후보 중 가장 정확도가 높은 bbox를 찾는다. (local maxima를 찾는 과정) 2. NMS 과정 각 bbox는 해당 객체를 얼마나 잘 detect하는지를 나타내는 confidence 값을 가진다. 모든 bbox에 대하여 threshold 이하의 confidence값을 가지는 bbox는 제거한다. (threshold를 기준으로 1차적으로 필터링) confidence score를 기준으로 나머지 bbox를 내림차순 정렬한다. 첫번째 bbox를 기준으로 다..
성능 평가 지표 3(속도)
1. FPS (frames per second) fps는 frames per second의 약자로 초당 처리하는 프레임 개수를 의미한다. fps 값이 클수록 모델이 빠르다는 뜻이다. 2. FLOPs (FLoating Point OPerationS) 단위 시간(1초)에 얼마나 많은 소수점 연산을 수행하는지 측정하는 지표로, FLOPs 값이 작을수록 빠른 모델이다. ‘FLOPs가 큰게 빠른 모델이 아닌가?’ 라는 생각이 들 수 있지만, 모델이 단위 시간에 처리할 수 있는 capacity가 아니라 단위 시간에 처리해야하는 일의 양을 의미한다. 1초 동안 연산을 100번 해야하는 모델과 10번 해야하는 모델 중 후자가 더 빠르기 때문에 FLOPs가 작을수록 빠른 모델이다. (단위 시간동안 처리해야할 연산량, 파..
IoU (Intersection over Union)
object detection task에서 IoU가 필요한 이유 classification task의 경우에는 정답 라벨이 있기 때문에 예측값이 정답 라벨과 동일한지 비교하면 된다. 하지만, object detection의 경우 정답 bbox와 예측 bbox가 얼마나 겹치는지에 따라 맞은/틀린 bbox 예측인지가 달라지기 때문에 얼마나 겹친 bbox를 맞다고 판단할지에 대한 기준(TP, FP를 판단하는 기준)이 필요하다. 그래서 IOU가 뭐야? 한국말로 교집합 / 합집합 이라는 의미로, 두 bbox의 교집합을 합집합으로 나눈 값이다. 두 개의 bounding box의 좌표가 주어졌을 때 IoU를 시각화하면 위와 같다. 두 bbox가 일치할수록 1에 가까운 값이 나온다. ⇒ 모델이 예측한 bbox와 정답 ..
성능 평가 지표 2
저번 포스팅에 이어 성능 평가 지표로 활용되는 ROC curve와 PR curve 에 대해 정리해보았다. 1-1. ROC curve Receiver Operating Characteristic curve의 약자로, threshold에 따른 모델의 분류 성능을 나타낸 것이다. sensitivity(민감도), 특이도(specificity)로 그려지는 곡선이다. default threshold는 0.5로 [0.0, 0.49] 값을 가지는 probability는 False, [0.5, 1.0] 값을 가지는 probability는 True로 예측한다. threshold에 따라 에러율, False Positive와 False Negative 값이 변한다. True Positive Rate: recall, sensi..
성능 평가 지표 1
볼 때마다 나를 혼동시키는 혼동 행렬부터 precision, recall, f1 score까지 모델의 성능 평가 지표에 대해 정리해보았다. 1. Confusion Matrix 학습을 수행한(통한) 모델의 예측 성능을 측정하기 위해 모델의 예측값과 실제값을 비교하기 위한 표 분류 모델의 성능 평가 지표로 사용된다. 모델을 평가하는 요소는 모델이 예측한 값과 정답이 얼마나 유사한지, 예측과 정답간의 관계를 통해 정의할 수 있다. 시국에 맞게 코로나에 걸린 사람과 걸리지 않은 사람을 예측하는 모델을 예로 들어 코로나에 걸리면 Positive(양성), 걸리지 않으면 Negative(음성)로 표현한다. 이름은 (예측값이 맞았는지) (예측값) 순서로 읽으면 된다. True Positive(TP): 실제 Positi..
Object Detection Overview
1. Object Detection Object Detection은 컴퓨터비전, 영상처리와 관계가 깊은 기술이다. Classification: 이미지가 어떤 클래스에 속하는지 분류 Classification + Localization: 이미지 속의 객체 분류 + bbox 위치 찾기 (객체 하나) Object Detection: 이미지 속의 객체 분류 + bbox 위치 찾기 (객체 여러개) image classification task에 bbox를 찾는 regression task가 추가된 것 Instance Segmenataion: 이미지 속의 객체 분류 + 픽셀 단위로 위치 찾기 (객체 여러개) 2. Bounding box H*W 크기의 이미지일 때, 좌측 상단이 (0,0), 우측 하단을 (W, H)로..