Geometry-aware CNN Features

Jongchan Park
Lunit Team Blog
Published in
21 min readJun 4, 2020

Motivation

Convolutional Neural Network (CNN)을 이용한 딥러닝 연구들은 대부분 semantic한 정보를 이용하여 high-level task(classification, detection, segmentation, etc)를 풀어왔습니다. Deep CNN (DCNN)의 feature들은 목적에 따라 semantic한 정보를 담고 있지만, geometric한 정보를 명시적으로 담고 있지 않습니다.

일반적으로 high-level semantic 정보가 필요하면 DCNN feature를 사용하고, low-level geometry정보가 필요하면 SIFT, HoG등 이미 성능이 널리 증명된 feature들을 사용하면 됩니다. 하지만 semantic과 geometry 정보 둘 다 필요한 분야 (semantic part detection, semantic matching, etc)에서 활용할 feature는 아직 많은 연구가 진행되지 않았습니다. Feature자체보다는 기하학적 구속조건을 도입한 집합 방법에 대한 연구가 진행된 바 있습니다[1][2].

물론, 각 target task마다 지도 학습을 하면 좋은 성능을 기대할 수 있지만[3], 매 번 데이터셋을 모으고 학습하는 것은 많은 자원이 소모됩니다. 이번에 소개할 연구는 각각 image-level supervision, self-supervision을 이용하여 geometry정보를 잘 담고 있는 feature를 학습하였습니다.

이번 글에서는 geometry-aware CNN에 대한 연구를 소개합니다:

  1. AnchorNet: A Weakly Supervised Network to Learn Geometry-sensitive Features For Semantic Matching (CVPR 2017, David Novotny et al)
  2. Self-supervised Learning of Geometrically Stable Features Through Probabilistic Introspection(CVPR 2018, David Novotny et al)

AnchorNet

Objective

기존 CNN들은 사물 레벨의 semantic을 잘 담고 있습니다. 하지만 앞서 말한대로 기존 CNN feature를 dense matching에 활용했을 때엔 low-level feature와 비슷한 성능을 보이고 있습니다. 본 논문에서는 이와 같은 원인이 강한 불변성(invariance) 때문이라고 분석하고 있습니다. 즉 이미지 내 지역적 변화에 대해서 불변하다는 것 입니다. AnchorNet은 이와 같은 semantic하지만, 여전히 기하학적으로 consistent한 feature를 만들고자 합니다. 그리고, AnchorNet은 semantic matching에 대한 annotation 없이, 단지 image-level label만으로도 기존의 fully supervised방식보다 높은 성능을 보인다고 합니다.

Semantic matching (cross-instance)의 예시. 여우와 말의 각 part를 매칭하여 warp.

Insight

AnchorNet의 아이디어는 총 3가지 측면을 중점적으로 보고 있습니다:

  1. Sparse features: 특징적인 local region을 feature에 담겠다는 것 입니다.
  2. Diverse features: 다양한 sparse feature가 물체 전체에 걸쳐서 나오도록 하겠다는 것 입니다. (collection of sparse features covers the objects)
  3. Class-agnostic features: 여러 class에 대해서도 적용 가능한 feature를 찾겠다는 것 입니다. 즉, 고양이의 눈/코/입과 말의 눈/코/입이 비슷한 feature space로 각각 찾아지게 됩니다.
가로축으로 같은 channel의 response를 모아놓은 것. response가 물체의 각 부분에서 뜨고 (sparse), response의 집합은 물체 전체를 덮을 수 있다 (diverse).

Method

AnchorNet의 구조를 나타내는 그림. ResNet50-based의 Hypercolumn (HC) feature를 이용하여 class별 response map (heat map)을 구할 수 있고, 최종적으로는 class-agnostic feature도 계산한다. 이 과정에서 3가지 loss를 사용한다. 그림 상에서 discriminability loss와 diversity loss 내의 변수 명이 뒤바뀌어있다.

Architecture

네트워크는 ResNet50을 기반으로 마지막 avg pool과 fc를 제외한 뒤, 3개의 stage의 출력 값을 합치는 방식을 사용합니다 (Hyper-column feature [4]). 각 output feature map은 서로 사이즈가 다른데, 우선 ReLU를 통과시킨 후, PCA layer (1×1 conv)를 통해서 256 로 channel사이즈를 맞춰줍니다. 그리고 가장 해상도가 높은 사이즈인 56×56로 upsample 후, 각 output의 energy level을 맞춰주기 위해서 spatial location별로 L2 normalize하여 concatenate합니다. 최종 Hypercolumn feature map은 56x56x768사이즈를 갖게 됩니다. 이렇게 모인 conv feature를 이용하여 뒤에 용도에 맞는 층을 쌓게 됩니다.

Hypercolumn feature (descriptor)뒤에 각 class별로 3×3 conv layer를 둬서 response map (heatmap)을 뽑습니다. 이렇게 나온 response map은 채널별로 물체의 각 부분에 대한 response를 담고 있습니다.

Discriminability Loss

Semantic한 정보를 담기 위해서는 이러한 response map에 대한 image-level supervision을 주게 되는데, 각 channel별로 global max pooling (gmax)하여 binary classification loss를 준다. 각 이미지 I별로 foreground object가 있으면 y=1이고, background는 y=-1이다. 수식으로 표현하면 아래와 같다:

Discriminability loss. Φ는 HC feature, F는 HC뒤에 붙는 conv filter, K는 response map의 갯수이다. ψ는 SoftReLU를 나타낸다.

Global max pooling을 사용하게 되면 gradient가 매우 간헐적으로 발생하게 되어서 학습 속도가 느려집니다. 따라서 본 논문에서는 negative (background) 이미지에 대해서 추가 loss를 주는데, 이 때는 global average pooling (gavg)을 쓰도록 합니다.

추가 discriminability loss. Negative 이미지들에 대해서만 global average pooling을 한다.

Diversity Loss

Discriminability loss를 주면 각 물체에 대한 response가 학습되지만, 직관적으로 생각해보면 가장 특징적인 부분(highly-distinctive)에 대해서 반복적인(redundant) response가 학습이 됩니다. 앞서 말했던 목표 중에서 diversity가 있으므로, 이에 대한 추가적인 loss를 주어서 response map이 다양한 부분에서 발생하도록 학습합니다.

Diversity loss는 response간의 orthogonality를 장려하도록 하는데, 즉 correlation을 loss로 주게 됩니다. Correlation은 벡터 간의 내적으로 계산합니다. 총 2가지 측면을 고려합니다: (1) conv filter간의 orthogonality (2) response map간의 orthogonality. 따라서 아래 2개의 식으로 정리할 수 있습니다.

2가지 diversity loss. A는 filter간의 diversity, B는 response map간의 diversity를 장려한다.

앞서 설명된 2가지 loss (discriminability and diversity)를 통해서 학습된 네트워크의 최종 class 별 response map은 각 카테고리 물체의 다양한 부분들을 탐지하도록 학습됩니다. 즉, response map의 채널 별로 지역적인 특징점을 잡아내게 됩니다.

Class-agnostic representation

앞선 내용들은 class-specific response map을 학습하는 방법입니다. 모든 filter는 class별로 학습하기 때문에 전체 class들에 대한 response map은 correlation이 존재하게 됩니다. 예를 들어, “개”와 “새”에 대한 response map 중에, “눈”에 대한 response map이 각각 존재하게 됩니다. 이러한 correlation을 이용하여 class-agnostic한 response map을 학습하고자 합니다. class-agnostic response map은 1×1 conv와 transposed convolution을 이용한 denoising auto encoder (DAE)로 학습합니다. DAE를 위한 reconstruction loss는 아래와 같습니다.

DAE의 reconstruction loss. D는 L2 normalize된 값 간의 L2 distance값이고, Γ은 class-specific response map의 조합 (concat), c는 channel dropout (25%)을 나타낸다.

Experiments

Dataset & baselines

학습에서는 PASCAL-ILSVRC class mapping을 통해 ILSVRC이미지들을 사용합니다. 총 1000개의 ILSVRC class 중에서, 20개의 VOC class로 매핑 가능한건 231가지 class로, 나머지 769개의 class는 background (negative) class로 활용됩니다. VOC 이미지들은 학습에 사용되지 않습니다. 실험은 PASCAL Parts에서의 semantic part matching, semantic mask transfer, semantic key point transfer로 진행하였습니다.

현재 dense correspondence matching관련 state-of-the-art인 Deformable Spatial Pyramid (DSP)와 Proposal Flow (PF)와의 비교실험을 진행하였습니다. 두 방법론 모두 feature design에 대한 것이 아닌, geometric constraint를 이용한 feature aggregation에 대한 내용이라 feature 부분만 AnchorNet feature로 대체하여 실험을 진행하였습니다. 두 baseline 각각 Dense SIFT, HoG를 사용합니다. 그리고 HC feature와의 비교실험도 진행하였습니다.

Results

Semantic part matching in PASCAL Parts — quantitative results

Semantic part matching in PASCAL Parts — qualitative results (ours = DSP+ANet)

PASCAL Parts에서의 semantic parts matching결과를 보면, boat class를 제외하고 모든 부분에서 AnchorNet이 다른 feature보다 나은 성능을 보이는 것을 확인할 수 있습니다. 아래의 qualitative results를 보아도 AnchorNet feature가 더 자연스럽게 mask transfer가 가능한 것을 확인할 수 있습니다 (논문에 더 많은 figure가 있습니다).

Cross-instance semantic part matching in PASCAL Parts

위의 실험과는 다르게, 서로 다른 class간의 semantic part matching을 진행하였습니다. 예를 들어, bicycle과 motorbike는 같은 semantic part들을 가지고 있기 때문에, 해당 파트들을 잘 매칭할 수 있는지를 실험한 것 입니다. 본 실험에서는 class-agnostic feature를 학습한 AnchorNet의 성능이 훨씬 좋은 것을 확인할 수 있습니다.

Self-supervised Geometrically Stable Features

두번째 논문도 같은 저자의 연구로, 이번 CVPR2018에서 spotlight로 발표될 논문입니다. 기존 AnchorNet과 가장 큰 차이점은 self-supervised 방식을 사용했다는 점 입니다. 또한 geometry에 더 집중한 학습 방식으로 dense correspondence task에서 AnchorNet보다 더 좋은 성능을 보여주고 있습니다.

본 논문의 아이디어를 요약하는 그림. Synthetic warp과 confidence map을 이용해서 geometrically stable한 feature point들을 계산할 수 있다.

Insight

본 논문은 geometry-oriented task에서 사용 가능한 feature를 학습하는 것 입니다. 이를 학습하기 위해서 주어진 하나의 이미지를 synthetic warp (projective transform and color transform)으로 변형하고, correspondence point들이 feature space에서 align되도록 학습합니다. 추가적으로 probabilistic instrospection을 도입했는데, 간단하게 말하자면 feature의 reliability를 계산한 것 입니다(confidence map).

Method

네트워크 구조를 나타내는 그림. x는 원래 이미지, x’는 warped image, u와 u’는 각각 x, x’내의 spatial location을 나타내고, φ는 해당 point들의 feature, σ는 해당 point들의 inverse-confidence를 나타낸다. y는 correspondence 여부를 나타낸다.

Architecture

AnchorNet보다 더 간단한 네트워크를 사용합니다. ResNet50 기반으로 마지막 average pooling과 fc를 제거하고, 마지막 stage의 stride를 1로 줄인 후, 해당 stage내의 모든 convolution의 dilation값을 2로 줍니다. 따라서 최종 output feature map은 14x14x2048이 됩니다 (입력 이미지 사이즈 224x224x3 기준). 이렇게 계산된 feature map을 1×1 conv를 이용해서 각 spatial point의 feature φ (2048 dim)와 inverse-confidence σ (1 dim)를 계산해줍니다.

학습할 때에는 input image x를 x’로 warp하여 correspondence일 때의 matching score s를 올리고, correspondence가 아닐 때 낮추도록 학습합니다.

(Informative) invariant description

각 point의 feature φ는 물체의 서로 다른 부분을 구분할 줄 알아야 합니다. 따라서 AnchorNet과 비슷한 방식으로 correlation(correspondence)을 학습하는데, matching score라는 metric을 도입합니다.

Matching score. 꺽쇄괄호는 두 벡터간의 내적 값을 나타낸다.

여기서 주의할 점은 φ가 L2 normalize되어있다는 점 입니다. 즉 corresponding하는 point간의 내적 값인 matching score는 1에 가까워지도록 하고, 반대의 경우 0이 되도록 합니다. 내적 값이 1이 된다는 것은 벡터가 평행하다는 것이고, 0이 된다는 것은 orthogonal하다는 것 입니다. 두 이미지의 point인 u와 u’간의 correspondence는 y로 나타내는데, 안정적인 학습을 위해서 픽셀 간의 거리가 <1이면 correspondence, >30이면 non-correspondence, 그리고 나머지의 경우 borderline인 경우로 하여 학습하지 않도록 합니다. 따라서 matching loss는 아래와 같이 정의됩니다.

이미지 x의 point u, x’의 point u’간의 correspondence에 따른 matching loss.

이미지 x와 x’는 각각 14*14=196개의 spatial point가 존재하는데, 모든 pixel pair에 대해서 학습하게 되면 non-correspondence가 너무 많기 때문에, 밸런스를 맞춰줘야 합니다. 우선 x와 x’간 700개의 correspondence pair를 찾습니다 (image-pixel level). 그리고 700×700의 loss를 계산한 후, 가장 높은 loss를 가지는 30개의 u’를 찾습니다. 최종 loss에서는 700개의 positive pair와 30개의 u’에 해당하는 loss를 weight조정하여 학습합니다. 즉, 학습에는 700개의 positive pair, 30*699의 borderline or non-correspondence pair가 사용됩니다.

Probabilistic introspection

꽤나 많은 pair에 대해서 학습이 진행이 되지만, 실제로 네트워크가 모든 픽셀에서 correspondence를 확실하게 정의할 수 있는 것은 아닙니다. 예를 들어, homogeneous한 부분의 correspondence는 찾기 힘듭니다. 따라서 논문에서는 confidence개념을 도입하여 각 pixel의 matching reliability를 학습합니다. 두 point u와 u’간의 matching score가 reliable한지 여부는 inverse-confidence의 평균으로 계산하여, matching score의 분포를 아래와 같이 정의합니다.

Matching score distribution with probabilistic introspection. C는 normalization constant, l은 matching loss, σ는 u와 u’ inverse-confidence의 평균이다.

네트워크 학습은 위와 같은 distribution에 대한 MLE를 구하는 것이 됩니다. (minimize the negative log of the probability)

Experiments

Dataset

학습 데이터는 AnchorNet과 똑같이 PASCAL-ILSVRC 클래스 간 매핑을 이용하되, PASCAL 20개의 class 중, rigid class에 해당하는 이미지만 학습합니다. 또한, weakly supervised detector를 이용하여 이미지 내에서 foreground object 부분만 잘라내어 학습합니다. 엄밀히 말하면 완전한 unsupervised 방식은 아닌 셈 입니다.

Quantitative result of learned features

학습된 네트워크 feature의 특정 channel response와 해당 이미지에 대한 confidence map을 보여줍니다. 각 클래스 내의 서로 다른 instance에서 비슷한 부분이 같은 response를 갖는 것을 볼 수 있고, foreground object에서 confidence 값이 높은 것을 볼 수 있습니다.

Region matching on PF-Pascal

PF-Pascal[2] dataset에서의 region matching 결과 비교.

PF-Pascal에서의 region matching결과를 보면, 본 논문의 결과가 가장 좋고, 그 다음으로 competitive한 방식인 SCNet-A의 경우 fully-supervised 방식으로 region별 annotation을 사용하였습니다. 본 실험에서는 feature간 비교를 하기 때문에 DSP나 PF같은 geometric constraint(spatial regularization)은 사용하지 않았습니다.

Keypoint matching on PF-Pascal

PF-Pascal에서의 Keypoint matching결과. 모든 결과는 PCK@0.1기준으로 계산되었다.

PF-Pascal에서 keypoint matching결과 역시 본 논문의 수치가 가장 높은데, 역시 SCNet-A가 fully-supervised인 것을 감안하면 상당히 괜찮은 수치라고 보여집니다.

Summary

지금까지의 CNN은 high-level semantic정보를 학습하는 것에 집중되어 왔습니다. 이렇게 학습된 feature는 다양한 high-level task에서 높은 성능을 보여주었지만, geometric/local정보가 중요한 task에서는 hand-crafted feature와 비슷한 성능만을 보여주었습니다. 이번 글에서 소개드린 연구들은 적은 supervision으로도 geometric-aware한 feature를 학습하여 기존 연구들 보다 geometry-oriented task 에서 더 높은 성능을 거뒀습니다. 심플한 아이디어로 재미있는 결과를 보여준 연구들이라 생각되며, 더 다양한 활용 가능성이 있는 방법론이라고 생각됩니다.

혹시 궁금한 점이 있으시거나, 본 글에서 오류를 찾으셨다면 이메일(jcpark@lunit.io)로 연락 주시기 바랍니다. 본 글은 여기서 마치겠습니다.

References

[1] J. Kim, C. Liu, F. Sha, and K. Grauman. Deformable spatial pyramid matching for fast dense correspondences. In Proc. CVPR, 2013
[2] B.Ham, M.Cho, C.Schmid, and J.Ponce. Proposal flow. In Proc. CVPR, 2016
[3] K. Han, R. S. Rezende, B. Ham, K.-Y. K. Wong, M. Cho, and J. P. Cordelia Schmid. SCNet: Learning semantic correspondence. In Proc. ICCV, 2017
[4] B. Hariharan, P. A. Arbela ́ez, R. B. Girshick, and J. Malik. Hypercolumns for object segmentation and fine-grained lo- calization. In Proc. CVPR, 2015.

--

--

Jongchan Park
Lunit Team Blog

Deep Learning Researcher, working at Lunit Inc. Mainly interested in computer vision for recognition. https://sites.google.com/view/jongchanpark