图像对齐深度学习算法调研
參考博客:
曠視 R TALK:圖像對齊及其應用
單應性Homograph估計:從傳統算法到深度學習
1. 傳統算法
大致流程:
難點:
2. 深度學習算法
2.1 Deep Image Homography Estimation(2016)
論文地址
創新:
- 數據集
- 網絡結構
??直接預測出單應性矩陣參數比較困難,因此網絡預測的是4個頂點的位移量(右邊回歸網絡),然后再計算單應性矩陣。
??文中說沒有置信度會限制一些應用,就搞了左邊的分類網絡,將4個頂點的位移范圍劃分為21個區間,輸出落在每個區間的概率值。
優點:
缺點:
2.2 Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model(2017)
論文地址
代碼地址
創新:
- 網絡結構
??圖(a)為2.1的監督算法,圖(b)為傳統算法,圖(c)為此文無監督算法。
??H~4pt\mathrm{\tilde{H}_{4pt}}H~4pt? 為預測的4個頂點位移向量,結合4個頂點的位置坐標 C4ptA\mathrm{C^A_{4pt}}C4ptA?,通過 Tensor DLT(Direct Linear Transform)得到單應性矩陣 H~\mathrm{\tilde{H}}H~;之后通過空間變換層得到圖像 P~B\mathrm{\tilde{P}^B}P~B,并與實際圖像 PB\mathrm{P^B}PB 計算光度損失(像素點間的 L1 損失)。
??其中,Tensor DLT(代替 SVD 奇異值分解)和空間變換層都是為了便于梯度計算,使網絡得以訓練。
優點:
缺點:
2.3 Content-Aware Unsupervised Deep Homography Estimation(2019)
論文地址
代碼地址
創新:
-
數據集
制作了一套數據集分為5大類,并為了量化評估,手工標注了5000張圖像作為ground truth; - Regular(RE):紋理豐富,單平面遠景適合用單個單應性矩陣對齊
- Low texture(LT):紋理少
- Low light(LL):低光圖像
- Small Foregrounds(SF):小前景
- Large Foreground(LF):大前景
-
網絡結構
令 β∈{a,b}\beta \in \{a,b\}β∈{a,b}
??此文認為直接用像素值當特征不太好,通過 f(?)f(\cdot)f(?) 獲取深層特征 FβF_{\beta}Fβ?,并通過 m(?)m(\cdot)m(?) 生成 mask MβM_{\beta}Mβ?。這里的特征和 mask 都和原圖 IβI_{\beta}Iβ? 分辨率相同,其中 m(?)m(\cdot)m(?) 的作用與 RANSAC 相似,生成的 mask 可以看作是特征的權重,來衡量特征的重要性,從而可以忽略一些干擾的特征(如干擾前景)。Gβ=FβMβG_{\beta}=F_{\beta}M_{\beta}Gβ?=Fβ?Mβ? 輸入給后續的單應性估計網絡,同樣預測4個位移向量,并通過一個線性系統得到單應性矩陣 Hab\mathcal{H}_{a b}Hab?。損失計算:
min?m,f,hLn(Ia′,Ib)+Ln(Ib′,Ia)?λL(Ia,Ib)+μ∥HabHba?I∥22\min _{m, f, h} \mathbf{L}_{\mathbf{n}}\left(I_{a}^{\prime}, I_{b}\right)+\mathbf{L}_{\mathbf{n}}\left(I_{b}^{\prime}, I_{a}\right)-\lambda \mathbf{L}\left(I_{a}, I_{b}\right)+\mu\left\|\mathcal{H}_{a b} \mathcal{H}_{b a}-\mathcal{I}\right\|_{2}^{2} m,f,hmin?Ln?(Ia′?,Ib?)+Ln?(Ib′?,Ia?)?λL(Ia?,Ib?)+μ∥Hab?Hba??I∥22?
其中,
Ln(Ia′,Ib)=∑iMa′Mb?∥Fa′?Fb∥1∑iMa′Mb\mathbf{L}_{\mathbf{n}}\left(I_{a}^{\prime}, I_{b}\right)=\frac{\sum_{i} M_{a}^{\prime} M_{b} \cdot\left\|F_{a}^{\prime}-F_{b}\right\|_{1}}{\sum_{i} M_{a}^{\prime} M_{b}}Ln?(Ia′?,Ib?)=∑i?Ma′?Mb?∑i?Ma′?Mb??∥Fa′??Fb?∥1??,iii 表示特征圖和mask中的像素索引L(Ia,Ib)=∥Fa?Fb∥1\mathbf{L}\left(I_{a}, I_{b}\right)=\left\|F_{a}-F_{b}\right\|_{1}L(Ia?,Ib?)=∥Fa??Fb?∥1?
Hba\mathcal{H}_{b a}Hba? 通過將 IaI_aIa? 和 IbI_bIb? 的特征位置互換得到
??損失函數前兩項最小化變換后圖像特征的差異,第三項是為了避免全零解最大化原始圖像特征差異,第四項則是讓兩個單應性變換盡可能可逆。
??(2021.10.25)后續發現提供的代碼用 torch.nn.TripletMarginLoss() 替代了論文描述的損失函數(TripletMarginLoss解析),基本就是只保留上面損失的1、3項,第4項在 utils.py 里留了個口 getBatchHLoss();主要問題在于 mask 的訓練,從 loss 分析如果 mask 是全為0那么 loss 會最低,這顯然不對;mask 加入訓練時,github 上說用一個小學習率微調網絡,結合反向傳播和數據來看,前景差異大,背景差異小,則 mask 的前景部分會更快地趨向于0,那么 mask 是有效的,但是關鍵在于這個數據集是分割視頻生成的,背景部分差異很小,后面發現很多對齊用的公開數據集即使是背景差異也非常大,這個 mask 的策略基本就是無效的了。
優點:
缺點:
2.4 DeepMeshFlow: Content Adaptive Mesh Deformation for Robust Image Registration(2019)
論文地址
Mesh Flow 大致就是把圖像劃分為網格,每個網格對應一個單應性矩陣,從而適應圖像中的不同深度平面來對齊。
創新:
-
網絡結構
??ResNet-34 后面連接 KKK 個分支(K=3K=3K=3),每個分支從一個自適應池化層開始,并通過卷積層生成一個特定大小的 mesh flow:M1′→(Hg16+1)×(Wg16+1)×2=2×2×2\mathcal{M}_{1}^{\prime} \to \left(\frac{H_{g}}{16}+1\right) \times\left(\frac{W_{g}}{16}+1\right) \times 2=2 \times 2 \times 2M1′?→(16Hg??+1)×(16Wg??+1)×2=2×2×2
M2′→(Hg4+1)×(Wg4+1)×2=5×5×2\mathcal{M}_{2}^{\prime} \to \left(\frac{H_{g}}{4}+1\right) \times\left(\frac{W_{g}}{4}+1\right) \times 2=5 \times 5 \times 2M2′?→(4Hg??+1)×(4Wg??+1)×2=5×5×2
M3→(Hg+1)×(Wg+1)×2=17×17×2\mathcal{M}_{3} \to \left(H_{g}+1\right) \times\left(W_{g}+1\right) \times 2=17 \times 17 \times 2M3?→(Hg?+1)×(Wg?+1)×2=17×17×2
然后將粗尺度 M1′\mathcal{M}_{1}^{\prime}M1′? 和 M2′\mathcal{M}_{2}^{\prime}M2′? 上采樣至 M3\mathcal{M}_{3}M3? 分辨率,并融合 M1\mathcal{M}_{1}M1?、M2\mathcal{M}_{2}M2?、M3\mathcal{M}_{3}M3?。
??mesh flow 的融合通過一個場景分割網絡將圖像 III 分割為 KKK 個類別,輸出大小為 (Hg+1)×(Wg+1)×K\left(H_{g}+1\right) \times\left(W_{g}+1\right) \times K(Hg?+1)×(Wg?+1)×K,融合方式是直接按分類結果選擇每個點的位移向量用哪個 mesh flow 的對應值,最終得到 M?\mathcal{M}^{*}M?。之后的 loss 計算與 2.3 相同。
優點:
2.5 RANSAC-Flow: generic two-stage image alignment(2020 ECCV)
論文地址
代碼地址
論文代碼詳細分析
創新:
- 單應性(粗對齊)與光流法(細對齊)結合
- 迭代方式做對齊
優點:
??按論文中的說法,單應性對圖像細節對齊的不好,而光流法對差異較大的圖像無法對齊,而此方法可以對差異大的圖像細節也對齊好,揚長避短地結合兩種對齊方法。
缺點:
??論文中展示的為相對效果較好(較容易對齊)的結果,下圖為挑選的幾種不同角度的缺點,由于最終的對齊參數為一個像素級對齊矩陣,所以主要缺陷還是與光流法類似。
無法判斷需要對齊的部分
??此例,原始圖像為目標圖像右上一小塊區域,但是算法會盡可能將全圖都對上。
光流法的圖像局部扭曲現象
??像素級對齊通常在低分率的特征圖上做對齊然后插值到原圖的高分辨率,目前判斷扭曲現象是插值造成的。
前景遮擋
??前景遮擋情況下的肉眼觀感很差,存在大面積扭曲,不如 2.3 的效果(無視前景做對齊)。
慢
??1660Ti的筆記本上約10s一對圖像。
2.6 GLU-Net: Global-Local Universal Network for Dense Flow and Correspondences(2020 CVPR)
論文地址
代碼地址
總結
以上是生活随笔為你收集整理的图像对齐深度学习算法调研的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【安全知识分享】五星级酒店员工入职安全培
- 下一篇: 永恒之蓝漏洞(EternalBlue)