- 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 핵심 리뷰
내용 요약
Dynamic scene에 대해 robust 한 deep homography estimation network를 설명합니다.
1. 들어가며
이번 논문은 Deep Homography Estimation 방법론에 관한 논문입니다. Dynamic scene에 대해 robust 한 deep homography estimation network를 만들기 위해 dynamic scene을 사용한 데이터셋 제작 방법을 설명합니다. 이를 학습하기 위한 네트워크 구조에 대해 설명합니다.
2. 제안 방법
제안 방법을 살펴보겠습니다.
2-1. Dataset generation
먼저 저자들은 기존의 homography estimation을 위한 data 제작 방식에 대한 문제점을 제기합니다. 하나의 이미지를 warping 하여 학습 데이터를 만들기 때문에 dynamic scene에 대해서는 제대로 작동하지 않는다는 것입니다. 이 문제를 해결하기 위해서는 dynamic scene을 사용하여 학습 데이터를 제작해야 합니다. 하지만 dynamic scene homography ground truth dataset이 없기 때문에 직접 제작하는 방안을 제안합니다.
2-1-1. Static video clip detection
먼저 유튜브에서 영상 클립을 추출합니다. 이제 이 중에서 static 한 scene 만을 추출해야 합니다. 이때 static scene이란 주요 물체는 가만히 있고 배경에서만 움직이는 물체들이 있는 경우를 의미합니다. 예를 들어 영상의 중앙에 벤치가 있고 뒤로 자전거 탄 사람이 지나가는 경우가 이에 해당합니다.
이를 위해 먼저 두 프레임 사이에 camera motion이 있었는지 확인해야 합니다. 이를 계산하기 위해 두 프레임 사이에 boundary area가 변하는지를 측정했습니다. 또한 optical flow를 계산하여 threshold를 넘어가는 경우 static하지 않다고 판단했습니다. 이렇게 두 개의 조건으로 static scene을 찾았고, 총 32,385개의 비디오 클립을 모았습니다.
2-1-2. Static video clip detection
그 다음은 기존 방식과 동일하게 제작했습니다.
2-2. Homography estimation neural network
다음은 network를 살펴보겠습니다.
2-2-1. Multi scale neural network
제안 방법의 첫 번째 특징은 multi scale의 input에 대해 학습을 한다는 점입니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 1 1.multi-scale-neural-network](https://blog.kakaocdn.net/dn/bux30q/btrExHH79vo/bSvm2k5R7NfYnyqlsSLOE1/img.png)
Image pair I1, I2에 대해 down sampling을 해가며 k개의 image pair를 만들고, 각각의 네트워크를 통과시킵니다. 각 네트워크는 output으로 4 corners offset값인 8개의 실수 값을 냅니다. 이는 ground truth를 사용하여 regression loss로 학습합니다. 이때 각각 down sampling 된 image pair에서의 H matrix는 다음 식으로 계산할 수 있습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 2 2.down-sampling-H-matrix](https://blog.kakaocdn.net/dn/duemSi/btrEw8MLdVK/9KhE2vrGXAv5LRk9f4To2K/img.png)
- H2 : original H
- H1 : down sampling image H
- S : scaling matrix
사용한 네트워크는 DeTone et al., 2016 과 유사한 구조를 사용합니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 3 3.network-architecture](https://blog.kakaocdn.net/dn/cOp2N8/btrEw8MLgpG/MlZbM1cGCu3scU8p7I8Ye1/img.png)
각각의 네트워크는 down sampling 된 정도에 따라 convolutional layer 개수를 조절합니다. 각 스케일 별로 나온 output은 각각의 ground truth와 L2 loss를 계산하여 최종적으로 summation 합니다.
2-2-2. Mask augmented deep neural network
다음으로는 mask generation 부분을 살펴보겠습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 4 4.mask-generator-architecture](https://blog.kakaocdn.net/dn/cdJBwf/btrEAzP7QsS/g6hv8XYKe40RO8MlYgufpk/img.png)
Dynamic scene에서 homography estimation을 수행하기 위해서는 dynamic content를 이해하는 능력이 필수입니다. 이를 위해 dynamic map을 학습하는 task를 multi task learning으로 학습했습니다. 이때의 mask estimator network는 h estimator와 동일한 구조이면서 dynamic map을 regress 하도록 sub network로 구성했습니다. Mask estimator의 output은 mask ground truth와 binary cross entropy loss로 학습합니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 5 5.binary-cross-entropy-loss](https://blog.kakaocdn.net/dn/m4yWu/btrECAnuBrU/uvKerWn9KrBmGL9EwDB4Hk/img.png)
- Mp : predicted mask
- Mg : ground truth mask
이때 mask의 ground truth를 제작하는 방법을 살펴보겠습니다. 저자들은 optical flow가 threshold보다 크면 moving object라고 정의했습니다. Threshold로는 1 pixel을 사용했으며, 따라서 optical flow가 1 pixel보다 큰 픽셀 값은 1로 ground truth를 제작했습니다. 위에서 image scaling에서 사용한 같은 수식을 사용하여 image scale마다의 mask ground truth를 계산하여 제작할 수 있습니다.
2-2-3. Total loss
위에서 나온 2가지의 loss를 합친 최종 loss는 다음과 같습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 6 6.total-loss](https://blog.kakaocdn.net/dn/pxPMP/btrEvNI9bt4/3HzQVrycm2OXYFYkK2oZM0/img.png)
- lf : homography loss
- ld : mask loss
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. Evaluation on static scenes
먼저 static scene에서의 성능입니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 7 7.evaluation-on-static-scenes](https://blog.kakaocdn.net/dn/ch71Bs/btrEBsXxmfo/Haif0nz1ILz7jTdeK5T1bk/img.png)
다른 모델들보다 성능이 좋으며 특히 mask까지 적용한 MHNm의 성능이 가장 좋은 모습입니다.
3-2. Evaluation on dynamic scenes
다음은 dynamic scene에서의 성능입니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 8 8.evaluation-on-dynamic-scenes](https://blog.kakaocdn.net/dn/PZCDz/btrEwkGFIDX/edDrWpa1QYAWRTM9JocmUk/img.png)
마찬가지로 제일 성능이 좋은 모습입니다.
3-2-1. Effect of training sets
Static dataset으로 학습한 모델과 dynamic dataset으로 학습한 모델의 성능 차이를 확인해보겠습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 9 9.effect-of-training-sets](https://blog.kakaocdn.net/dn/b2YcUZ/btrEyvOgkzd/EUFI531LVfhKhIIUMgp0Fk/img.png)
확실히 dynamic scene (VidSetd)로 학습한 모델의 성능이 static scene (VidSets)로 학습한 모델보다 성능이 좋은 모습을 볼 수 있습니다.
3-2-2. Effect of the dynamic area size
학습 데이터에 dynamic area가 얼마나 많은지에 따른 성능을 비교해보겠습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 10 10.effect-of-dynamic-area-size](https://blog.kakaocdn.net/dn/LV6YR/btrECz9WKJv/WOkzykx1dohKzQQKvLGKAk/img.png)
다른 모델에 비해 dynamic scene이 많아져도 잘 학습하는 모습을 볼 수 있습니다.
4. Ablations
다음은 ablations를 살펴보겠습니다.
4-1. Scale selection
먼저 down sampling 횟수에 따른 성능을 비교해보겠습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 11 11.scale-selection](https://blog.kakaocdn.net/dn/d7dFIs/btrEznoT4FI/fo7SOEtWg8zuk07ukqIHqk/img.png)
Down sampling을 많이 하여 다양한 scale을 사용할수록 성능이 올라가긴 하는데, 3개를 사용할 때 가장 성능이 좋은 모습입니다.
4-2. Real world videos
다음은 real world video로 test 한 결과를 살펴보겠습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 12 12.real-world-videos](https://blog.kakaocdn.net/dn/trPzd/btrEyv1NmGh/TzIBBIkagJBa9NnqhBvpi0/img.png)
NUS stabilization benchmark로 test해도 잘 동작하는 모습을 볼 수 있습니다. 특히 마지막의 mask prediction 결과를 보면 moving object를 잘 찾아내는 모습을 볼 수 있습니다.
4-3. Parallax
다음은 mask를 정말 잘 찾는지 살펴보겠습니다.
![[20' CVPR] Dynamic Scene Deep Homography Estimation : Deep Homography Estimation for Dynamic Scenes 핵심 리뷰 13 13.parallax](https://blog.kakaocdn.net/dn/0dUdJ/btrEAzbvFFF/G4gPCDSaIGrSIdgShmDUX0/img.png)
두 이미지 간의 optical flow를 계산하여 실제 moving part를 측정해보고 predicted mask와 비교해봤습니다. 확실히 moving area를 잘 찾아내는 모습을 볼 수 있습니다.