Geometry-aware Deep Network for Single-Image Novel View Synthesis 閱讀報告 由單幅圖像預測其他視角圖像

劉平

2019年7月13日


核心思想

  • 在利用單幅圖像生成對應的新視角圖像時,利用圖像場景的幾何結構(主要是深度Depth和切法向量Normal)特徵、對應的POSE特徵(旋轉矩陣、平移向量和相關的攝像機參數K)計算了新舊圖像之間的單應性(Homography),利用Inverse wraping和逆單應性(Inverse Homography)解決不同時出現在新舊圖像上物體的預測問題,進而以單幅圖像作爲輸入構建出了新視角的圖像;其中,圖像場景的幾何結構特徵幫助構建了更符合實際情況的的新視角圖像。

  • 在細節處理方面,利用優化了損失函數的Refinement Network處理了主體圖像構建過程中各區域交界處不匹配的情況,也提高了圖像的清晰度。


算法流程和感想

  1. 用SLIC方法將圖像分割爲超像素,再用K-means方法以單個超像素作爲元素,聚類分成一定的圖像區域(Seed region)。

  2. 之後是根據預處理之後的圖像來生成Depth和Normal。對於ScanNet數據集,因爲其是帶有語義標註的數據集,採用陳啓峯的方法可以同時獲得所需的Depth和Normal,應用時,以之前生成的超像素作爲單位元素來生成相應特徵;對於KITTI數據集,其本身只有位置的標註,而無語義的標註,故採用J. Zbontar and Y. LeCun的方法,生成Dense depth maps,再由此來得到像素的Noraml,計算過程中採用了計算Inverse depth的方法(由目標圖像對應到源圖像)。

  3. 利用獲得的Depth、Normal和圖像的Pose特徵可以計算得到單應性:
    Hba=K(Rtntd)K1 H_{ba}=K(R-\frac{tn^t}{d})K^{-1}
    採用Inverse warping的方法,找目標像素點對應的源圖像中的點,如果源圖像中對應的點在邊界外,則補0,而這個方法需要用到反向的單應性:
    Hab=K(RT+RTtn~TRT1n~TRTt)K1 H_{ab}=K(R^T+\frac{R^Tt\tilde{n}^TR^T}{1-\tilde{n}^TR^Tt})K^{-1}
    之後,在反過來用算出來的對應位置計算目標像素時,採用雙線性插值的方法。

  4. 然後,對每個Seed region預測每個像素與對應單應性(對應於超像素)相關聯的情況,採用VGG16前4個卷積Blocks作爲網絡結構的Selection network,生成對應於源圖像的Soft mask,再用Inverse wraping使之可以運用到目標圖像。

  5. 以上兩步驟已經生成了目標圖像,但其在Seed region交界處存在扭曲和不清晰等問題。利用Refinement network對圖像進行進一步的處理,網絡結構採用的是E. Park 和 J. Yang等人方法,但對於損失函數進行了優化,用:
    Lt=Lp+λLf L_t=L_p+\lambda L_f
    代替原本的損失函數,其中L_p是平均像素的一階差分,而L_f這個參數範數懲罰項是比較有意思的地方,它表示的是計算得到的特徵和用VGG19得到的特徵的一階差分。

  • 對應圖像中運動部分的處理,單幅源圖像似乎確實沒辦法預測其在目標圖像中的狀態,如果增加到兩幅圖像則可以計算對應物體的location、orientation、direction的變化矢量來幫助預測。但是,對於單幅圖像中類似車等具有運動方向和個體特徵(車頭朝向)和所處環境(馬路線)有關的物體,可以實現部分地預測。
  • 在最後的目標圖像中,因爲在源圖像邊界外像素爲空的影響,仍然存在着扭曲不清晰的情況;注意到,在利用3D場景結構信息來實現新視角單圖像合成對ScanNet中的語義佈局的應用僅僅是生成了Depth和Normal,這部分語義信息可以進一步利用起來,對於部分在源圖像內的邊界上的物體,利用其語義生成虛擬的圖像,來補充對應的目標圖像的邊界部分。

其他

  • 3.1式(6):

[外鏈圖片轉存失敗(img-v6K2XEJy-1568689885446)(C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1562810134125.png)]

中的分母表述似乎有誤了,是否應該爲
Mjt^(xit)=qojiMj^(1xi,jsxq,js,1yi,jsyq,js)+ϵk=1mqoki(Mk^(1xi,ksxq,ks,1yi,ksyq,ks)+ϵ) \hat{M_j^t}(x_i^t)=\frac{\sum_{q\in{o_j^i}}{\hat{M_j}(1-|x_{i,j}^s-x_{q,j}^s|,1-|y_{i,j}^s-y_{q,j}^s|)}+\epsilon}{\sum_{k=1}^m\sum_{q\in{o_k^i}}{(\hat{M_k}(1-|x_{i,k}^s-x_{q,k}^s|,1-|y_{i,k}^s-y_{q,k}^s|)}+\epsilon)}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章