[Object Detection] Deformable Convolutional Networks
Paper : https://arxiv.org/abs/1703.06211
Project Page : https://github.com/msracver/Deformable-ConvNets
2017년 3월에 공개된 Deformable Convolutional Networks 라는 논문이다. 말 그대로 변형이 가능한 CNN이라는 개념인데, 이 논문들의 저자는 기존 CNN(Convolutional Neural Network)에서 사용하는 여러 연산(conv / pooling / roi pooling 등)이 기하학적으로 일정한 패턴을 가정하고 있기 때문에 복잡한 transformation에 유연하게 대처하기 어렵다는 한계가 있음을 지적하였다. 일례로 CNN에서 사용하는 Receptive Field 의 크기가 항상 같고, Object Detection 에서 사용하는 Feature 를 얻기 위해 사람의 작업이 필요한 점을 언급하고 있다. 기존 논문들은 weight 를 구하는 방법에 초점을 맞췄다면, 이 논문은 어떤 데이터 x 를 뽑을 것인지에 초점을 맞췄다는 것이 참신하다는 평가를 받았다고 한다.
이러한 문제점을 해결 할 수 있는 Deformable Convolution 및 Deformable ROI Pooling 방법을 제시한다.
1. Deformable Convolution
Deformable Convolution 은 위 그림에서 convolution 에서 사용하는 sampling grid 에 2D offset 을 더한다는 아이디어에서 출발한다. 그림 (a)에서 초록색 점이 일반적인 convolution 의 sampling grid 라면 (b) (c) (d) 처럼 다양한 패턴으로 변형시켜 사용할 수 있다. sampling grid 의 변형은 스케일, 종횡비, 회전 방식 등이 있다.
위 그림은 3 x 3 deformable convolution 의 예시이다. 위 그림과 같이 deformable convolution 개념에는 기존 conv later 이외에도 초록색 그림의 conv 가 더 존재한다. 이 layer 는 각 입력의 2D offset 을 학습하기 위한 것이다. 이 offset 은 integer 값이 아니라 fractional number 이기 때문에 소수 값이 가능하며, 실제 계산은 linear interpolation 으로 이루어진다. (2차원 이기 떄문에 bilinear interpolation) 즉, filter size 를 학습하여 object 크기에 맞게 변화하도록 한 것이다.
학습(Traning) 과정에서 output feature 를 만드는 convolution kernel 과 offset 을 정하는 convolution kernel 을 동시에 학습 할 수 있다. 아래 그림은 convolution filter 의 sampling 위치를 보여주는 예시이다. 붉은색 점들은 deformable convolution filter 에서 학습한 offset 을 반영한 sampling location 이며, 초록색 사각형은 filter 의 output 위치이다. 일정하게 sampling pattern 이 고정되어있지 않고, 큰 object 에 대해서는 receptive field 가 더 커진 것을 확인 할 수 있다.
2. Deformable ROI Pooling
RoI (Region of Interest) pooling 은 크기가 변하는 사각형 입력 region 을 고정된 크기의 feature 로 변환하는 과정이다. 이는 일반적은 RoI Pooling layer 와 offset 을 학습하기 위한 layer 로 구성된다. 한가지 deformable convolution 과 다른 점은, offset 을 학습하는 부분에 convolution 이 아니라 fully connected layer 를 사용한 것이다. 또한 마찬가지로 학습 과정에서 offset 을 결정하는 fc layer 도 backpropagation 을 통해 학습된다.
아래 그림에서 노란색 입력 RoI 에 대해 붉은색 deformable RoI pooling 결과를 보여준다. RoI 에 해당하는 붉은 사각형의 모양이 object 형태에 따라 다양한 형태로 deformation 되는 것을 확인 할 수 있다.
아래 영상은 deformable convolution 개념을 mnist 에 적용한 것이다.
참고자료 1 : https://jamiekang.github.io/2017/04/16/deformable-convolutional-networks/
참고자료 2 : https://github.com/oeway/pytorch-deform-conv
참고자료 3 : https://hwiyong.tistory.com/104
'AI Research Topic > Object Detection' 카테고리의 다른 글
[Object Detction] 3D Object Detection, Google Objectron (3) | 2020.05.27 |
---|---|
[Object Detection] Soft NMS (0) | 2020.03.08 |
[Object Detection] EfficientNet and EfficientDet (0) | 2020.02.23 |
[Object Detection] The Car Connection Picture Dataset (4) | 2020.02.03 |
[Paper Review] Imbalance Problems in Object Detection : A Review (1) | 2020.01.30 |