Deep Learning/CS231N

[CS231N] spatial localization and object detection

언킴 2021. 7. 19. 17:30
반응형

 

Localization

Localization as regression

- Overfeat


본 강의에서는 위 내용들을 다루어볼 것이다. 

 

Computer Vision Tasks

Computer vision Tasks는 크게 4가지로 나눌 수 있다. 이미지상의 하나의 물체에 대해서 어떤 클래스에 속하는지 찾아주는 것을 Classification, classification 뿐만 아니라 물체의 위치정보를 바운딩 박스를 이용해 나타내주는 것을 Localization, 한 이미지 내에서 다양한 물체들의 클래스와 위치를 찾아주는 것을 Object Detection, 이미지 상에서 해당 물체와 배경을 인식해 물체의 영역만을 찾아주는 것을 Instance Segmentation이라고 부른다.

 

Classification은 이미지가 주어졌을 때 class label이 결과값으로 출력되고 이를 정확도로 평가할 수 있다.  Localization은 이미지가 주어졌을 때 해당 물체의 바운딩 박스 자체가 결과값으로 출력된다. x,y는 물체 왼쪽 상단의 좌표이고 넓이(width)와 높이(height)로 나타낸다. ($x,y,w,h$) 평가 척도는 Intersection over Union이라는 것을 사용한다.

 

 

 

 

 

Intersection over Union

그림에서 붉은색 상자는 실제 물체의 바운딩 박스인 ground truth 값이고, 파란색 박스는 localization 결과값으로 나온 바운딩 박스이다. 노란색 점선 영역은 두 상자간의 겹치는 영역으로 볼 수 있다. Intersection over Union은 두 상자의 합집합에서 두 상자의 교집합으로 구한 값으로 볼 수 있는데 두 상자는 겹치는 부분이 전혀 없는 0 에서 두 상자가 완전히 겹치는 1의 값의 사이를 가진다. 이를 이용해 예측된 바운딩 박스가 실제 ground truth값과 얼마나 유사한지 평가 척도로 사용할 수 있다. 

 

$IOU = {A_{1} \cap A_{2} \over A_{1} \cup A_{2}}$

 

 

 

 

 

Localization as Regression


이미지가 주어졌을 때 신경망을 이용해 Box coordinates를 예측하고 실제 box coordinates 값과 비교를 할 때 위치 좌표는 regression problem 이므로 loss function으로 L2 distance를 사용하게 된다. 

 

 

 

Step1

Convolution and Pooling 단계에서 pre-train된 AlexNet, VGG, GoogLeNet 등을 이용해 Conv feature map을 생성한다. 

 

 

step 1

 

 

 

Step2

step2에서는 box coordinates를 계산해주는 regression 부분을 추가해준다. 

 

step 2

 

 

Step3

훈련을 진행할 때 regression head 부분에 대해서만 SGD와 L2 loss를 적용하여 모델을 훈련한다.

 

step 3

 

 

 

Step4

test 셋에 입력할 때에는 두가지 head부분 모두를 사용해서 물체의 class와 box coordinates를 예측하게 된다. 

 

step 4

 

 

 

class 부분에서는 K개의 class에 대한 분류를 하게 되고, box coordinate에 대해서는 좌측 상단의 x,y 좌표와 w,h를 구하게 되고 전체적으로 봤을 때 클래스 갯수 K x 4 만큼의 출력값이 나오는 것을 알 수 있다. 

 

 

 

 

 

Overfeat


Overfeat는 뉴욕대에서 classfication, localization, detection에 대한 통합 프레임워크를 제공하는 것을 목표로 개발되었다. 2013년 ILSVRC 대회의 localization 분야에서 1등, classification 4등, detection 3등을 거두었다. 

 

기존의 localization regression 방법에서는 CNN 뒤에 fully-connected layer를 사용했다. 그와는 다르게 Overfeat에서는 fully-connected layer대신에 1 by 1 convolution layer를 사용했다. conv layer 부분은 영상의 크기와는 상관없이 적용이 가능하지만 fully-connected layer부분은 고정된 size를 가지고 있어서 conv 앞 단에서 fixed size를 고려해야하는 동일한 크기으 feature map이 확보되어야하는 단점이 있었다. 이 문제를 1 by 1 convolution으로 해결할 수 있다. 

기존 CNN 다음 사용한 fully-connected layer
overfeat에서 사용한 1 by 1 convolution layer

 

 

 

 

1x1 convolutions 에서 c3가 c2보다 작다면 차원의 축소할 수 있어 연산량을 감소시킬 수 있다. depth를 감소시켜 연산를 확 감소시켜버린다. 

 

 

Overfeat는 Fast Model과 Accurate Model로 나눌 수 있다. Fast Model은 AlexNet과 동일하게 5개의 conv layer로 구성되어 있고, Accurate Model은 6개의 conv layer로 Fast Model보다는 속도가 더 걸리지만 정확도를 향상시킨 모델이다.