본문 바로가기

Computer Vision

Learning Common and Specific Features for RGB-D Semantic Segmentation with Deconvolutional Networks (ECCV2016)

반응형

최근 연구 때문에 서로 다른 modality를 가지는 데이터 간 correlation을 학습하는 네트워크를 서치하고 있었는데요, 그러던 중 ECCV 2016에서 발표된  RGB-D 데이터 기반의 semantic segmentation 논문을 하나 찾았습니다.

RGBD 데이터를 이용해 recognition / segmentation의 성능을 향상시키려는 시도는 이전에도 있었습니다. 다만 논문에서 지적하는 점은 이 논문들에서 RGBD 데이터를 다루는 방식이 두 modality의 특성과 관계에 대한 고려 없이 단순히 concat하는식으로 독립적으로 다룬다는 것입니다. 실제로 제가 이 논문을 찾게 된 이유도 같은 이유라고 할 수 있겠네요.

논문에서는 RGB image와 depth map이라는 서로 다른 modality 를 가지는 데이터로부터 추출된 feature들 common feature와 specific feature로 나누어 추출함으로써 좀 더 본질적인 접근이 가능하다고 말하고 있습니다. 이제부터 하나씩 짚어보겠습니다. 논문 링크는 밑에 걸어두겠습니다.

페이퍼 다운로드

Approach

일반적인 RGBD based semantic segmentation network의 경우, RGB image와 depth map을 페어로 받아 pixel-wise class label을 output으로 출력하게 됩니다.

이 논문에서는 이런 일반적인 방식 대신, 두 modality 로부터 추출한 feature region을 바탕으로 segmentation을 수행합니다. 제시한 transformation network 구조를 통해 각 modality에 속하는, 혹은 두 modality가 공유하는 feature들을 추출하고, 그 둘이 서로 보완하도록 함으로써 feature extraction 결과가 나아지도록 기대하는 것이죠.

추출된 각각의 common feature간의 distance는 줄어들고, specific feature 간의 distance는 늘어나도록 학습하며 각각의 데이터를 추출하고, 최종 결과는 각 modality 로부터 나온 decision score를 합쳐 얻게 됩니다.

Network Structure

J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.

논문의 novelty에 해당하는 transformation network(common and specific feature를 추출하는)에 대해 설명하기 전에, 해당 네트워크의 전후로 붙는 convolutional network와 deconvolutional network 파트부터 간략하게 설명하겠습니다. 

앞단에서 feature encoder 역할을 하는 convolutional network는 같은 구조 - VGG16 기반의 14 conv layered network - 의 두 network가 독립적으로 학습되도록 되어 있습니다. transformation 뒷단의 deconvolutional network는 앞단의 convolutional network를 미러링 시켜놓은 형태 (unpooling, deconv, ReLU로 이루어진)입니다.  

Convolutional netowork와 deconvolutional network 사이에 위치해 encoding 된 feature를 input으로 받고, deconv에 들어가는 feature를 output으로 보내는 역할을 하는 것이 바로 transformation network 입니다. 

Transformation network는 RGB, depth 각각에 대해 세 개씩의 fc layer - 아래 표의 fc1^s_rgb, fc1^c_rgb, fc2_rgb 로 이루어져 있습니다. 각 fc layer는 아래표의 conv 6 블록에서 나온 x^conv_rgb를 각각 rgb common feature(c_rgb), modality specific feature(s_rgb), rgb deconvolutional feature(x^deconv_rgb)로 변형시킵니다.

특히, RGB deconvolutional feature의 경우, 위 그림에서 확인할 수 있듯이 해당 modality의 common, specific feature 뿐만 아니라 depth stream에서 나온 common feature 또한 포함되어 있습니다. Depth deconvolutional feature의 경우는 반대로 depth specific feature, depth common feature와 rgb common feature로 이루어져 있겠죠. 이처럼 각각의 common feature 는 상대 modality를 보완하는 형태로 교환되게 됩니다.

J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.

뒷단의 deconvolutional network는 unpooling을 하며 보다 정확한 pixel-wise label map을 얻을 수 있도록 feature map의 사이즈를 키워나가는 역할을 합니다. pooling이 가장 responsive한 node를 찾아 sub-sampling을 함으로써 중요한 feature region들을 뽑아냈다면, unsampling은 해당 feature region의 pooling 이전 위치를 mask operation을 통해 찾아내는 역할을 수행합니다. 

이 논문의 경우 (RGB, depth stream 각각에 대해) 각 deconvlutional layer의 filter는 앞 layer 에서 나온 sparse un-pooled feature map을 좀 더 detail한 label map으로 재건하는 작업을 수행합니다. 각 deconv layer는 차원이 올라감에 따라 좀 더 디테일한 shape structure를 담당하게 될 것입니다.

Multiple Kernel Maximum Mean Discrepancy(MK-MMD)

사실 논문의 novelty가 되는 부분은 각 modality에 대해 common / specific feature를 추출하는 transformation network 파트입니다. 핵심은 common feature의 경우 각 feature 간의 거리가 줄어드는 방향으로, specific feature의 경우 각 feature 간의 거리가 늘어나는 방향으로 유도되어야 한다는 점인데요,

일반적으로 생각할 수 있는 것은 point-wise Euclidean distance가 줄어드는 방향으로 학습시키는 것입니다. 그러나 이런 방식을 사용하게 되면 각 group에 포함되어 있는 outlier 들의 영향력이 커질 수 밖에 없습니다. 그래서 좀 더 reasonable 하고 robust한 correlation 학습을 위해 GAN 등에서 사용되는 방식이 바로 distribution 간의 distance를 계산하는 MMD(Maximum Mean Discrepancy) 방식입니다.

* 앞으로 설명할 내용은 저도 100% 이해된 내용이 아니기 때문에 번역하지 않은 원문을 다소 섞어서 설명해놓았습니다. 양해부탁드립니다. 얕은 이해를 기반으로 하고 있으니 추가해야 할 내용이 있다면 알려주시면 감사하겠습니다. 

MMD의 정의

sample을 바탕으로 두 distribution p와 q가 같은지 아닌지를 판단하기 위해 distribution p에 속한 point에 대해서는 큰 값, q에 속한 point에 대해서는 작은 값을 가지는 'well-behaved function'을 정의해 similarity를 판단하는 test static. 이 사용된 well-behaved function의 generality, restrictivity에 따라 MMD의 성능이 좌우된다.

다시 좀 더 정확한 언어로 설명을 하면, MMD는 두 distribution p,q가 function F를 적용한 결과 비슷한 norm(Expecta-tion)을 가지는 경우에 두 distribution 이 비슷하다고 판단합니다. 좀 더 수학적으로 정의해 보면 아래와 같습니다.

x,y 를 각각 distribution p,q에 속하는 i.i.d(independently and identically distributed) random variable이라고 가정해 보겠습니다. 

https://www.stat.cmu.edu/~ryantibs/journalclub/mmd.pdf

잠시 참고자료의 정의를 빌려왔습니다. 여기서 Ex(f(x)) 혹은 (논문의 정의에 따라) Ex~p(f(x)는 expectation of function f(x) with respect to distribution p를 지칭합니다. 이 때, 위 식에서 C(x)의 정의는 너무 광범위해서 실질적으로 의미있는 결과를 얻기가 힘들기 때문에 좀 더 나은, restrictive한 function F를 정의해야 한다는 점이 MMD를 사용함에 있어 주의할 점이 될 것 같습니다. 좀 더 정확히 표현하면 아래와 같습니다.

https://www.stat.cmu.edu/~ryantibs/journalclub/mmd.pdf. sup는 largest 를 의미합니다.

이 때 중요한 것은, function F가 p = q인지를 판단할 수 있을만큼 coverage가 넓으면서 동시에 충분히 의미 있는 결과를 줄 수 있을 만큼 restrictive하기도 해야한다는 점입니다. 이 점은 다시 말하면, MMD가 어떤 kernel function을 쓰느냐에 따라 전혀 다른 결과를 얻을 수 있는, kernel-dependent한 작업이라는 뜻이기도 합니다.

Gretton et al. 좀 더 robust한 결과를 얻기 위해 복수의 kernel function을 섞어 사용하는 방법을 제시했습니다. MK-MMD(Multiple Kernel Maximum Mean Discrepancy)는 linear combination 으로 연결된 복수의 kernel과 coefficient 들을 이용해 좀 더 robust한 MMD 를 수행할 수 있다고 제시했습니다. 그 결과 두 distribution 간의 distance는 다음과 같이 정의될 수 있습니다.

J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.

여기서 µ_k는 해당 distribution의 mean embedding 에 해당합니다. mean embedding이 무엇인지에 대해서는 좀 더 공부한 뒤 따로 terminology 섹션에 정리해 링크를 달아놓겠습니다. 여기서는 우선 어떤 space 상에 정의한 해당 distribution의 norm(expectation)에 해당한다 라고만 짚고 넘어가겠습니다.

즉, 위 식의 왼쪽 항 부분은 두 distribution의 norm 간의 거리의 제곱이라고 할 수 있습니다. 오른쪽은 각 kernel 을 적용한 결과 나온 distance *각각에 해당하는 coefficient 의 linear combination에 해당하겠네요. 

결과적으로 논문은 training stage에서 다음의 function을 이용해 common feature 를 추출한다고 말하고 있습니다..

J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.

솔직히 말씀드리면 위의 식은 100% 이해하지 못했습니다.. 추후에 제대로 이해되었다고 판단되면 내용 수정해놓겠습니다. 우선 지금은 이런 개념을 바탕으로 common / specific feature를 계산한다고만 하겠습니다.

다시 전체 network로 돌아가보겠습니다. 이 네트워크를 통해 기대하는 것은 common feature c_rgb와 c_d 가 서로 유사하고, specific feature s_rgb와 s_d가 서로 다르다는 것입니다. 따라서 전체 network의 loss는 다음과 같이 정의해 학습합니다.

J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.

여기서 l_rgb와 l_d는 label map과 deconv net output 간의 pixel-wise loss 입니다. 각각의 알파값은 네 개의 loss간 banlancing을 담당하는 learnable parameter입니다. 

Experiments and Results

사실 segmentation 자체를 목적으로 시작한 포스팅은 아니기 때문에, 포함하지 않을까 고민하다 그래도 결과에 대해서는 어느 정도 소개해야 깔끔할 것 같아 간단하게 설몀하고 포스트를 마무리하겠습니다.

논문은 총 두 단계에 걸쳐 network를 학습했습니다. 첫 째는 object를 주변 환경과 구별되는 별도의 segment로 인지하기 위한 single object patch based learning, 두 번째는 복수의 인접한 object segment 간 구분이 가능하도록 하는 multiple object image based learning입니다. 

데이터로는 RGBD based semantic segmentation dataset인 NYU depth dataset V1, V2가 사용되었고, 제시하는 알고리즘의 퍼포먼스 비교를 위해 총 5개의 baseline network를 사용했다고 밝히고 있습니다.

  • B-DN: 각각 single modality conv feature를 input으로 받는 두 개의 독립된 deconv net (correlation 고려 x)
  • S-DN: 각 single modality conv feature를 concat해 input으로 받는 하나의 deconv net (correlation 고려 x)
  • C-DN: 4 channel RGBD image를 input으로 받는 하나의 deconv net (implicit correlation)
  • E-DN: 제시한 2 conv + transformation + 2 deconv 구조에 MK-MMD 대신 Euclidean distance 사용
  • U-DN: 제시한 2 conv + transformation + 2 deconv 구조에 MK-MMD (proposed work)

J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.
J. Wang, Z. Wang, D. Tao, S. See, and G. Wang. Learning common and specific features for rgb-d semantic segmentation with deconvolutional networks. In ECCV, 2016.

마무리..

아무래도 이해도가 좀 부족하다보니 개인적으로 아쉬움이 남는 포스트네요.. 추후에 기회가 되면 보충하도록 하겠습니다. 혹시 수정하거나, 추가할 내용이 있으시면 댓글로 남겨주시면 감사하겠습니다. 아직 공부할 게 참 많구나 라고 새삼 느끼게 되는 논문이었네요. 이만 포스트 마무리짓겠습니다. 부족한 글 읽어주셔서 감사합니다.

추가로 읽으면 도움이 되는 글

반응형