논문 읽기/Object Detection

[논문 읽기] CoupleNet(2017), Coupling Global Structure with Local Parts for Object

AI 꿈나무 2021. 5. 1. 15:18
반응형

 안녕하세요! 거의 한달 만에 논문을 읽어보네요..ㅎㅎ 그동안 다른 공부를 하느라 논문 읽기에 소흘했었습니다! 다시 열심히 논문을 읽도록 하겠습니다ㅎㅎ! 이번에 읽어볼 논문은 Object Detection 분야에서 2017년에 제안된 CoupleNet입니다!

 

 2017년까지 Object Detection의 발전 방향을 보면, Faster R-CNN과 R-FCN이 좋은 결과를 성취합니다. CoupleNet은 R-FCN에서 제안하는 position-sensitive RoI Pooling(PSRoI)의 문제점을 지적합니다. PSRoI는 region proposals에서 local 정보를 활용하여 성능을 향상시키지만, 이는 Global 정보와 context를 훼손시킨다고 말합니다.

 

 CoupleNet은 local과 global 정보를 둘 다 활용하기 위해 Couple module을 제안합니다. couple module은 2개의 branch로 구성되어 있으며 하나는 local 정보를 추출하는 RSRoI pooling, 다른 하나는 global 정보를 추출하는 RoI pooling으로 구성됩니다. RPN에서 생성한 region proposal을 couple module로 전달하여, 두 개의 pooling을 거쳐서 local 정보와 global 정보를 함께 이용할 수 있게 됩니다. 여기에 추가적으로 두 결과값에 normalization과 coupling strategy를 적용하여, 두 정보를 상호 보완적으로 이용합니다.

 

 

 위 그림은 CoupleNet 구조입니다. 이미지에서 sofa는 강아지와 사람에 가려져서 식별하기 어려운 상황입니다. RSRoI pooling은 sofa 확률을 0.08로 예측했고, 일반 RoI pooling은 sofa 확률을 0.45로 예측합니다. 두 정보를 결합하여 sofa 확률이 0.78로 상승합니다. 이처럼 local 정보와 global 정보를 결합하여 사용하면, 사물이 가려져 있거나 끊긴 경우에도 잘 탐지할 수 있습니다.

 

 어떤 방식으로 couple module을 구현했고, 어떻게 local, global 정보를 결합했는지 살펴보도록 하겠습니다.

 

CoupleNet

 CoupleNet은 PSRoI Pooling과 RoI Pooling을 포함합니다. PSRoI는 local 정보를 추출하며, 앞으로 local FCN으로 표기하겠습니다. RoI Pooling은 객체의 전체 모양과 context를 사용하여 global 정보를 추출하며, global FCN으로 표기하겠습니다.

 

 feature extractor로 이미지에서 특징을 추출한 뒤에 RPN을 사용하여 region proposals를 생성합니다. 생성된 region proposals는 local FCN과 global FCN으로 전달되며, 출력값은 하나로 결합되어 최종 점수를 출력합니다.

 

Local RCN

 

 local RCN은 이미지내에서 잘린 객체 또는 가려진 객체를 검출하는 데에 탁월합니다. 하지만 단순한 객체나 배경이 많이 포함되어 있는 객체를 검출하는 데에는 어려움이 있습니다. 위 그림 (a)에서 잘려진 여자 얼굴은 local FCN이 잘 검출하지만 (b) 그림의 식탁은 잘 검출하지 못합니다. 따라서 local 정보와 global 정보를 함께 이용하는 것입니다.

 

 local RCN은 R-FCN에서 제안한 PSRoI pooling을 의미합니다. RPN의 출력값에 k^2(C+1) 채널을 가진 1x1 convolution을 사용하여 PS score map을 생성합니다. k는 객체를 kxk로 분할하는 것을 의미합니다. 이 논문에서는 k=7을 사용합니다. 그리고 C+1은 배경을 포함한 class 수를 의미합니다. 생성된 score map에 각 C+1에 k^2average voting을 수행하여 (C+1) 채널의 출력값을 생성합니다. 이 (C+1) 채널은 객체의 클래스 확률을 나타냅니다.

 

Global FCN

 global FCN은 단순한 객체나 배경을 많이 포함하고 있는 객체를 검출하는데에 탁월합니다. RPN의 출력값에 RoI pooling을 적용하여 서로 다른 크기의 RoI를 하나로 묶습니다. 여기에 kxk size의 convolution과 1x1 size의 convolution을 적용합니다. 논문에서는 k=7을 사용합니다. 최종 출력값은 class 정보를 담은 (C+1) 차원이 됩니다. RoI pooling 연산 덕분에 global FCN은 객체의 전체적인 구조 정보를 추출할 수 있습니다.

 

Coupling struction

 global fcn과 local fcn 출력값을 결합하는 방법에 대해 설명합니다. 두 결과값 각각에 1x1 conv를 적용하여 normalization을 수행합니다. 그리고, 두 개의 normalize된 결과값을 element wise sum으로 결합합니다.

 

Performance


참고자료

arxiv.org/pdf/1708.02863.pdf

반응형