[19′ arxiv] Deep Mesh Flow: Content Adaptive Mesh Deformation for Robust Image Registration 핵심 리뷰

This entry is part 6 of 10 in the series Deep Homography Estimation

내용 요약

Meshflow를 output으로 내는 homography estimation model을 설명합니다.

1. 들어가며

이번 논문은 Deep homography estimation 방법론에 관한 논문입니다. 기존 방식들과 달리 2개의 image를 input으로 받아 meshflow를 output으로 내는 deep homography estimation 방법론을 설명합니다. 이를 위한 mask predictor와 segmentation network를 구성하는 방법을 설명합니다.

2. 제안 방법

제안 방법을 살펴보겠습니다. 제안 방법의 핵심은 H matrix 또는 perspective field 등을 예측하는 기존 방법과 달리 meshflow를 예측하는 모델을 사용한다는 것입니다. MeshFlow는 2개의 image view 사이의 non linear warping을 표현하는 motion model입니다. Optical flow와 유사하지만 각 픽셀 간의 관계가 아닌 mesh들 간의 motion을 예측한다는 점에서 computational complexity가 더 적다는 장점이 있습니다. Image를 HxW개의 grid로 나눈다면, 총 (H+1) x(W+1) 개의 vertices를 갖습니다. 이때 각각의 grid에 2d motion vector를 매칭 하면 (H+1) x(W+1) x2 size의 Meshflow가 나오게 됩니다.

2-1. Network structure

네트워크 구조를 살펴보겠습니다.

1.network-architecture
그림1. network-architecture

전체적으로 봤을 때 2개의 image를 input으로 받아 (H+1) x(W+1) x2 size의 mesh flow를 output으로 내는 구조를 하고 있습니다. 이렇게 구한 meshflow는 linear solver를 사용하여 homography matrix로 변환합니다. 크게 4가지의 모듈로 나누어 살펴보겠습니다.

2-1-1. Feature extractor

먼저 feature를 추출하는 역할을 수행하는 feature extractor입니다. FCN으로 구성되어 있으며 HxWx3 size의 image를 input으로 받아 HxWxC의 feature로 변환하는 역할을 합니다.

2.feature-extractor
그림2. feature-extractor

이때 f는 shared parameter network를 사용합니다.

2-1-2. Mask predictor

다음은 mask predictor입니다. Moving objects의 경우 depth가 달라지기 때문에 single homography로 align을 맞추는 건 불가능합니다. 따라서 RANSAC을 사용하여 inlier를 찾는 것처럼, 전체 feature 중 inliear를 찾기 위한 네트워크를 구성했습니다. 이 subnetwork는 inlier probability map, 즉 mask를 학습합니다. 이 mask는 feature map의 contents에 해당하는 부분으로 homography estimation에 많이 공헌하는 부분만 highlight 하도록 학습합니다. Mask의 size는 feature map과 동일하며 feature에 weight를 주는 역할을 수행합니다.

3.feature-weighting
그림3. feature-weighting

2-1-3. Meshflow estimator

이렇게 mask까지 곱해진 weighted feature G는 meshflow estimator로 들어가 meshflow를 냅니다. 이때 각 layer마다 나온 feature를 사용하면 n개의 서로 다른 scale의 G를 사용하여 meshflow를 예측할 수 있습니다. 저자들이 사용한 ResNet34를 예로 들면 총 3개 scale의 feature를 사용하게 되고, 마찬가지로 총 3개 scale의 meshflow가 나오게 됩니다. 이렇게 나온 3개 scale의 meshflow는 fusion을 위해 가장 큰 scale로 upscale 합니다. 이제 각 grid별로 3개의 meshflow를 선택할 수 있습니다.

2-1-4. Scene segmentation

이때 어떤 scale의 meshflow를 선택할지를 결정하기 위해 segmentation network를 사용합니다. Segmentation network는 2개의 image를 input으로 받아서 가장 큰 scale의 meshflow와 동일한 resolution의 segmentation map을 출력합니다. 이때 채널의 개수는 위에서 설명한 scale의 개수와 동일합니다. (ResNet34의 경우 3에 해당)

4.scene-segmentation
그림4. scene-segmentation

이렇게 나온 segmentation output을 사용하여 각 grid에 대해 가장 큰 값을 갖는 scale의 meshflow를 선택합니다.

5.segmentation-mask
그림5. segmentation-mask
6.scale-selection
그림6. scale-selection
  • (u, v) : vertex coordinate on the mesh

2-2. Triplet loss for training

다음은 loss를 살펴보겠습니다. Loss의 구성은 전체적으로 content aware homography network와 유사합니다. 먼저 warped image와 target image가 같아지도록 loss를 구성합니다.

7.loss1
그림7. loss1

이렇게만 구성하면 모든 feature를 0으로 보내게 되므로 이를 방지하기 위해 image_a와 image_b가 같아지지 않도록 loss를 구성합니다.

8.loss2
그림8. loss2

추가로 제대로 학습되었다면 Hab와 Hba는 inverse 관계여야 함을 이용하여 loss를 구성합니다.

9.loss3
그림9. loss3

최종 loss는 다음과 같습니다.

10.total-loss
그림10. total-loss

2-3. Unsupervised content awareness learning

다음은 mask의 기능과 역할에 대해 살펴보겠습니다. 저자들이 주장하는 mask가 content aware 하게 학습되는 이유는 다음과 같습니다.

첫 번째로 feature에 weight를 주는 기능을 수행하기 때문입니다.
두 번째는 loss를 측정할 때도 masking 된 부분만 weighted 되어 계산되기 때문입니다. 이는 homography estimation을 위해 필요한 부분에만 집중하겠다는 의미이므로 unsupervised 방식으로 필요한 contents를 스스로 찾아낸다고 주장합니다. 이렇게 학습한 mask를 살펴보겠습니다.

11.comparison-of-masks
그림11. comparison-of-masks

다양한 scale을 사용하기 때문에 종합적인 mask를 계산하는 모습을 볼 수 있습니다.

12.mask-example
그림12. mask-example

위의 그림을 보면 차, 사람, 물 같은 moving objects들은 잘 걸러내고 robust feature만 잘 masking 하는 모습을 볼 수 있습니다.

3. 실험 결과

다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.

3-1. Datasets

저자들은 데이터셋을 총 5가지의 카테고리로 나누어 구성했습니다.

13.datasets
그림13. datasets
  • SP : single plane
  • MP : multi plane
  • LF : large foreground
  • LT : low texture
  • LL : low light

3-2. Comparison with existing method

다음은 성능 비교를 살펴보겠습니다.

14.comparison-with-existing-method
그림14. comparison-with-existing-method

4. Ablations

다음은 ablations를 살펴보겠습니다.

4-1. Without mask

먼저 mask의 효과를 살펴보겠습니다.

15.ablations-mask
그림15. ablations-mask

Mask를 사용하면 모든 카테고리에 대해 성능이 오르는 모습을 볼 수 있습니다. 특히 LT에서 큰 폭의 성능 향상을 볼 수 있습니다.

Series Navigation<< [18′ ICRA] Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model 핵심 리뷰[20′ ECCV] Content Aware Deep Homography Estimation : Content-Aware Unsupervised Deep Homography Estimation 핵심 리뷰 >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top