- Deep Homography Estimation에 관한 모든 것
- [16′ arxiv] Deep Homography Estimation : Deep Image Homography Estimation 핵심 리뷰
- [17′ ICCV] Hierarchical Homography Estimation : Homography Estimation from Image Pairs with Hierarchical Convolutional Networks 핵심 리뷰
- [18′ ACCV] Perspective Field Homography Estimation : Rethinking Planar Homography Estimation Using Perspective Fields 핵심 리뷰
- [18′ ICRA] Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model 핵심 리뷰
- [19′ arxiv] Deep Mesh Flow: Content Adaptive Mesh Deformation for Robust Image Registration 핵심 리뷰
- [20′ ECCV] Content Aware Deep Homography Estimation : Content-Aware Unsupervised Deep Homography Estimation 핵심 리뷰
- [20′ CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰
- [21′ CVPR] Perceptual Loss for Robust Unsupervised Homography Estimation 핵심 리뷰
- [22′ arxiv] Depth Aware Deep Homography Estimation : Depth-Aware Multi-Grid Deep Homography Estimation with Contextual Correlation 핵심 리뷰
내용 요약
Triplet loss를 구성하여 unsupervised learning 방식으로 homography estimation을 학습하는 방법론을 설명합니다.
1. 들어가며
이번 논문은 Deep homography estimation 방법론에 관한 논문입니다. Feature를 맞춰주기 위한 loss, trivial solution을 피하기 위한 loss, homography estimation loss를 구성하여 unsupervised learning 방식으로 homography estimation을 수행하는 방법론을 제안합니다.
2. 제안 방법
제안 방법을 살펴보겠습니다.
2-1. Network structure
먼저 네트워크의 구조를 살펴보겠습니다.
네트워크는 크게 feature extractor, mask predictor, homography estimator로 구성되어 있습니다. 하나씩 살펴보겠습니다.
2-1-1. Feature extractor
먼저 input image의 feature를 추출해주는 역할을 하는 feature extractor입니다. Homography estimation을 하고자 하는 input image a, b에 대해 동일한 파라미터의 CNN으로 feature를 추출해주는 역할을 수행합니다. Feature extractor는 fully convolutional network로 구성되어 있습니다.
2-1-2. Mask predictor
다음은 mask predictor입니다. Moving object 등의 non-planar scene은 signle homography로 align을 맞추기 어렵습니다. 이에 RANSAC 같은 알고리즘에서는 homography estimation을 위한 inlier를 찾아 가장 적합한 matrix를 계산합니다.
비슷하게 저자들은 inlier position을 자동으로 학습할 수 있는 subnetwork를 제안합니다. 이 subnetwork m은 inlier probability map (mask)를 만들어내는 역할을 수행합니다. 이 부분들은 homography estimation에 가장 많이 기여하는 부분들을 의미합니다. 이때 output으로 나온 mask는 feature map 사이즈와 동일하게 구성합니다. 이렇게 feature를 mask에 통과시켜서 weighted feature map을 얻을 수 있습니다. 수식으로 표현하면 다음과 같습니다.
이렇게 구성한 mask network는 크게 두 가지 역할을 수행합니다.
첫 번째는 feature map에 대한 attention 기능입니다.
두 번째는 feature에 대한 weighting 역할입니다.
이는 low texture, moving foreground 같은 부분들을 자연스럽게 제거하며 alignment를 잘 맞출 수 있는 부분만 고려하도록 해줍니다.
2-1-3. Homography estimator
이렇게 나온 두 개의 weighted feature map을 concat 한 뒤 homography estimator network가 받아 2*4개의 2d offset vector를 생성합니다. 이렇게 나온 2*4개의 offset vector로 곧바로 homography matrix H를 만들 수 있습니다.
2-2. Triplet loss for robust homography estimation
다음은 위에서 소개한 네트워크를 어떻게 homography estimation을 unsupervised learning 방식으로 학습하게 하는지 loss 부분을 살펴보겠습니다. 제안하는 loss는 크게 3가지로 구성되어 있습니다.
2-2-1. Normalized L1 loss
첫 번째는 normalized L1 loss입니다. h네트워크에서 추출한 H로 image a를 warp 시킵니다. (l’a) 이 l’a를 feature extractor를 통과한 output을 F’a라고 하겠습니다. 만약 H가 정확하게 계산된 거라면 F’a와 Fb는 align이 잘 맞아야 합니다. 하지만 현실에서 single homography matrix로 transformation을 맞추기는 어려우므로 Ma’과 Mb로 normalize 해줍니다.
- I’ : warped image
- I : pixel locations in the masks and feature maps
- warp operation : STN
이 loss는 a, b 순서만 바꿔서 동일한 논리로 또 구할 수 있습니다.
2-2-2. To avoiding trivial solution loss
위의 loss만으로 학습하면 네트워크는 가장 쉬운 solution을 찾아 모든 feature 값을 0으로 수렴시킬 것입니다. 이를 방지하기 위해 Fa와 Fb의 차이가 최대화되도록 loss를 구성해줍니다.
2-2-3. Homography matrix loss
마지막으로 제대로 구한 게 맞다면 이렇게 구해진 Hab, Hba는 서로 inverse 관계여야 합니다. 따라서 이 둘이 inverse가 되도록 loss를 구성해 줍니다.
2-2-4. Final loss
최종 loss는 위에서 설명한 모든 loss로 구성합니다.
2-3. Unsupervised content awareness learning
다음은 학습 방식에 대해 살펴보겠습니다. 저자들이 제안하는 방법은 unsupervised 방식으로 homography estimation을 학습할 수 있습니다. 학습 단계는 2단계로 구분하여 구성했습니다.
첫 번째 단계는 mask 네트워크의 attention map role을 비활성화하여 학습합니다. 이는 G=1로 세팅하여 구현할 수 있습니다.
두 번째 단계는 이렇게 60k interation을 학습한 뒤 attention map role을 포함하여 fine tuning 합니다.
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다. 먼저 실험을 위한 데이터셋 구성에 대해 살펴보겠습니다. 데이터셋은 총 5개의 카테고리로 구성되어 80k image pair로 이루어져 있습니다. 각 카테고리는 regular(RE), low texture(LT), low light(LL), small foregrounds(SF), large foregrounds(LF) 5개입니다. Test data는 카테고리 구분 없이 랜덤으로 4.2k 개의 이미지를 선택했습니다.
3-1. Qualitative comparison
먼저 qualitative comparison 결과를 살펴보겠습니다.
기존의 DNN based method들 보다 높은 성능을 볼 수 있습니다. 다음은 feature based method 들과의 비교 결과입니다.
확실히 feature based 방식은 low texture, low light condition에서 약한 모습을 보이는 모습을 볼 수 있습니다.
3-2. Quantitative comparison
다음은 quantitative comparison 결과를 살펴보겠습니다.
Error metric으로는 사람이 labeling 한 GT와 모델이 측정한 estimation 값과의 L2 distance로 측정했습니다. L3×3은 warping 하지 않은, identity matrix를 의미합니다. 결과적으로 RE를 제외하고는 제안 방식이 feature based method 보다 좋은 모습입니다. 뿐만 아니라 다른 DNN based method들 보다도 좋은 모습을 볼 수 있습니다.
4. Ablations
다음은 ablations를 살펴보겠습니다.
4-1. Content aware mask
위의 table 2.c를 보면 mask에 따른 성능이 나옵니다. Mask를 전부 넣어줬을 때 성능이 제일 좋은 모습을 볼 수 있습니다.
4-2. Feature extractor
위의 table 2 row6를 보면 feature extractor를 사용하지 않으면 luminance 변화 등에 민감하게 반응해 robustness가 떨어지는 모습을 볼 수 있습니다.
4-3. Triplet loss
위의 table 2 row5를 보면 avoiding trivial solution을 제거했을 때의 성능을 볼 수 있습니다. 이는 해당 loss가 traivial solution을 피하게 해 줄 뿐만 아니라 opimization도 더 좋게 해 준다는 것을 알 수 있습니다.
4-4. Backbone
위의 table 2.c row7~9를 보면 다양한 backbone에서도 성능이 잘 나오는 모습을 볼 수 있습니다. 뿐만 아니라 sufflenet 같이 light weight backbone에서도 성능이 잘 나오는 모습입니다.
4-5. Training strategy
위의 table 2.c 11,11을 보면 scratch training 보다 성능이 잘 나오는 모습을 볼 수 있습니다.
4. Failure cases
다음은 failure cases을 살펴보겠습니다.
위의 failure cases를 보면 large baseline alignment에서는 feature based method가 더 강한 모습을 보이는 걸 알 수 있습니다.