[22′ arxiv] Depth Aware Deep Homography Estimation : Depth-Aware Multi-Grid Deep Homography Estimation with Contextual Correlation 핵심 리뷰

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

내용 요약

Multi grid feature flow를 예측하는 deep homography estimation 방법론을 설명합니다.

1. 들어가며

이번 논문은 Deep homography estimation 방법론에 관한 논문입니다. Image를 multi grid로 나눠 flow를 예측하는 방법을 사용합니다. 이때 flow를 예측하기 위해 feature 간의 correlation을 측정하는 방법을 제안합니다. 또한 depth별 동일한 homography를 적용하기 위한 depth aware shape preserved loss를 제안합니다.

2. 제안 방법

제안 방법을 살펴보겠습니다.

2-1. Network overview

먼저 network 전체 구성을 살펴보겠습니다.

1.network-architecture
그림1. Network Architecture

제안하는 네트워크는 input으로 2개의 image를 받아 feature flow를 output으로 낸 뒤 이를 homography matrix로 변환하는 방식을 사용합니다. Feature extractor는 scale별 feature를 추출하며 각 scale별 feature를 사용하여 순차적으로 homography를 계산하는 residual homography learning 방식을 사용합니다. 주요 모듈을 하나씩 살펴보겠습니다.

2-2. Contextual correlation

먼저 contextual correaltion module입니다. 이는 추출한 2개 이미지의 feature로부터 서로 간의 contextual correlation을 계산하여 feature flow로 변환하는 역할을 수행합니다.

2.contextual-correlation
그림2. Contextual Correlation

2-2-1. Correlation volume

먼저 기존 방법으로 사용되었던 cost volume 방식과 contextual correlation 방식을 비교해보겠습니다.

먼저 cost volume은 각 픽셀 별 correlation을 구하는 방식인 반면 contextual correlation은 패치 별 correlation을 구하는 방식이라는 차이가 있습니다. 이로 인해 computational complexity가 contextual correlation이 훨씬 작다는 장점이 있습니다.

두 번째 차이점은 cost volume은 correlation을 cosine similarity로 구하는 반면, contextual correlation은 convolution 연산으로 구한다는 차이가 있습니다. 그림을 보면 contextual correlation을 구하기 위해 target feature의 patch들을 쌓아 HW개의 convolution filter를 만들고, 이를 reference feature와 각 패치에 대해 convolution 연산을 수행하여 correlation volume을 만드는 모습을 볼 수 있습니다.

위의 내용을 종합하여 Cost volume을 수식으로 표현하면 다음과 같습니다.

3.cost-volume
그림3. Cost Volume

Contextual correlation을 수식으로 표현하면 다음과 같습니다.

4.contextual-correlation
그림4. Contextual Correlation

2-2-2. Scale softmax

이렇게 구한 correlation volume은 HxWx(HW)의 사이즈를 갖는 텐서입니다. 우리의 목표는 각 패치에 대해 reference feature와 target feature의 correlation을 구하는 것이므로 각 패치에 대해 HW개의 값을 softmax 해줍니다. 이때 constant scale factor alpha를 곱해서 class 간의 거리를 늘려줍니다.

5.scale-softmax
그림5. Scale Softmax

이 alpha의 효과를 visualize 해보면 다음과 같습니다.

6.scale-softmax-효과
그림6. Scale Softmax 효과

Scale factor alpha를 곱해줬을 때 명확하게 correlation이 높은 patch만 큰 값으로 남는 모습을 볼 수 있습니다.

2-2-3. Feature flow

이제 위에서 구한 scale softmax값을 사용하여 feature flow로 변환해야 합니다.

7.feature-flow
그림7. Feature Flow

Scale softmax값은 각 패치에 대해 correlation 값을 갖고 있으므로 이 값과 인덱스를 이용하여 feature flow를 계산합니다.

8.feature-motion
그림8. Feature Motion
  • p : correlation volution with scale softmax
  • m : feature motion
  • mod {} : modulus operation (나머지 값)

2-3. Backward multi grid deformation

다음은 multi grid deformation 과정을 살펴보겠습니다.

9.backward-multi-grid-deformation
그림9. Backward Multi Grid Deformation

기존 방식대로 multi grid를 forward deformation을 하면 warped multi grid에 대해 각 픽셀과 매칭 작업을 수행해야 합니다. 하지만 deformed 된 grid는 irregular 하므로 이 과정이 쉽지 않습니다. 따라서 저자들은 이 과정을 반대로 수행하는 backward multi grid deformation 방법을 제안합니다.

2-4. Unsupervised training

실제 scene data에서는 ground truth homography가 존재하지 않기 때문에 unsupervised 방식으로 학습합니다.

2-4-1. content alignment loss

첫 번째 loss는 content alignment loss입니다. Warp가 제대로 되었다면 target image와 warped image의 차이가 작도록 loss를 구성합니다.

10.content-alignment-loss
그림10. Content Alignment Loss
  • E : all one matrix

Feature를 multi scale로 추출했으므로 모든 feature에 대해 loss를 적용하면 다음과 같습니다.

11.content-alignment-loss-all-scale
그림11. Content Alignment Loss All Scale

2-4-2. Depth aware shape preserved loss

다음은 depth aware shape preserved loss를 살펴보겠습니다. 아이디어의 핵심은 동일한 depth를 갖는다면 동일한 homography를 가져야 한다는 것입니다. 따라서 동일한 depth grid에 대해 동일한 homography가 나오도록 loss를 구성합니다.

12.depth-aware-shape-preserved-loss
그림12. Depth Aware Shape Preserved Loss

먼저 depth를 측정하기 위해 pretrained depth estimation model을 사용하여 depth level을 측정합니다. 이렇게 구한 depth map을 n개의 레벨로 나눕니다. 이렇게 구한 레벨별 인접한 grid들의 feature flow가 일직선이 되도록 loss를 구성하면 다음과 같습니다.

13.grid-similarity
그림13. Grid Similarity

모든 grid에 대해 위의 loss를 적용하면 다음과 같습니다.

14.depth-aware-loss
그림14. Depth Aware Loss

2-4-3. Objective function

최종 loss는 위의 두 loss를 종합하여 구성합니다.

15.total-loss
그림15. Total Loss

3. 실험 결과

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

3-1. Synthetic dataset

먼저 synthetic dataset에서의 성능입니다.

16.result-synthetic-dataset
그림16. Result Synthetic Dataset

제안 방법은 real dataset을 target으로 하고 있지만 synthetic dataset에서도 좋은 성능을 내는 모습을 볼 수 있습니다.

3-2. Real dataset

다음은 real dataset에서의 성능입니다.

17.result-real-dataset
그림17. Result Real Dataset
18.result-real-dataset-visualization
그림18. Result Real Dataset Visualization

Traditional solution은 resolution이 낮아질수록 feature detection이 어려워지면서 성능이 낮아지는 모습을 볼 수 있습니다. 또한 대부분의 learning 방법론들은 overlapping이 적은 문제는 잘 못 푸는 모습을 볼 수 있습니다. 이는 long rage correlation을 학습하지 못하기 때문입니다.

3-3. Robustness analysis

다음은 low texture/low light 환경에서의 실험 결과를 살펴보겠습니다.

19.robustness-analysis
그림19. Robustness Analysis

잘 작동하는 모습을 볼 수 있습니다.

3-4. Cross dataset validation

다음은 UDIS-D로 학습한 뒤 image stitching에서 사용되는 dataset으로 test 해보겠습니다. Image stitching에서 사용하는 데이터셋은 다양한 scene에 다양한 degrees of parallax를 갖는다는 특징이 있습니다.

20.cross-dataset-validation
그림20. Cross Dataset Validation

그럼에도 잘 작동하는 모습을 볼 수 있습니다.

3-5. Compared with cost volume

다음은 feature를 추출한 뒤 correlation을 구하는 방식에 따른 성능을 비교해보겠습니다.

21.compared-with-cost-volume
그림21.compared-with-cost-volume

결과는 다음과 같습니다.

22.result-cost-volume-comparison
그림22.result-cost-volume-comparison

먼저 concat을 하면 아무것도 못 배운다는 걸 알 수 있습니다. Convolution도 concat과 크게 차이 없는 성능을 보입니다. Cost volume을 하면 성능이 개선되는 모습이지만 파라미터가 매우 늘어나며 속도가 느려집니다. 반면 CCL은 성능도 좋아지고 속도도 빠른 모습을 볼 수 있습니다. 이는 cost volume과 달리 patch level에서 flow를 계산하기 때문입니다.

4. Ablations

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

4-1. Contextual correlation

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

23.ablation-contextual-correlation
그림23.ablation-contextual-correlation

Contextual correlation을 사용할수록 성능이 증가하는 모습을 볼 수 있습니다.

4-2. Number of grids

다음은 grid의 개수에 따른 성능을 살펴보겠습니다.

24.ablation-number-of-grids
그림24.ablation-number-of-grids

Grid는 잘게 쪼갤수록 성능이 늘어나는데, 8×8에서 가장 성능이 좋은 모습을 볼 수 있습니다.

4-3. Depth aware shape preserved loss

다음은 depth aware shape preserved loss의 효과를 살펴보겠습니다. 위의 table 결과를 보면 32개의 depth level로 나눌 때 가장 성능이 좋은 모습을 볼 수 있습니다.

25.ablation-depth-aware-loss
그림25.ablation-depth-aware-loss

위의 그림을 보면 depth aware term을 추가하면 grid가 이상하게 찌그러지는 현상을 막아주는 모습을 볼 수 있습니다.

Series Navigation<< [21′ CVPR] Perceptual Loss for Robust Unsupervised 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