728x90
반응형

 

Paper : https://arxiv.org/abs/1703.06211

 

Deformable Convolutional Networks

Convolutional neural networks (CNNs) are inherently limited to model geometric transformations due to the fixed geometric structures in its building modules. In this work, we introduce two new modules to enhance the transformation modeling capacity of CNNs

arxiv.org

 

Project Page : https://github.com/msracver/Deformable-ConvNets

 

msracver/Deformable-ConvNets

Deformable Convolutional Networks. Contribute to msracver/Deformable-ConvNets development by creating an account on GitHub.

github.com

 

 

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/

 

Deformable Convolutional Networks · Pull Requests to Tomorrow

Deformable Convolutional Networks 16 Apr 2017 | PR12, Paper, Machine Learning, CNN 이번 논문은 Microsoft Research Asia에서 2017년 3월에 공개한 “Deformable Convolutional Networks”입니다. 이 논문의 저자들은, CNN (Convolutional Neural Network)이 (지금까지 image 처리 분야에서 많은 성과를 거뒀지만) 근본적으로

jamiekang.github.io

 

참고자료 2 : https://github.com/oeway/pytorch-deform-conv

 

oeway/pytorch-deform-conv

PyTorch implementation of Deformable Convolution. Contribute to oeway/pytorch-deform-conv development by creating an account on GitHub.

github.com

 

참고자료 3 : https://hwiyong.tistory.com/104

 

Deformable Convolutional Networks

Abstract https://github.com/msracver/Deformable-ConvNets. Convolutional neural networks (CNNs) are inherently limited to model geometric transformations due to the fixed geometric structures in thei..

hwiyong.tistory.com

 

728x90
반응형