本文介紹了 Google AI 的一篇 NeurIPS 2018 論文《Discovery of Latent 3D Keypoints via End-to-end Geometric Reasoning》。
論文連結:https://arxiv.org/pdf/1807.03146.pdf
技術分析師個人簡介
本文作者 Olli Huang 是澳門科技大學的一名博士研究生,她的研究方向是大規模影像檢索 (large-scale image retrieval) 和影像的地理位置估計 (visual-based image geolocalization)。Olli 於 2017 年加入了機器之心的全球團隊,並以自由撰稿人的身份,發表了多篇計算機視覺應用的英文技術評論。
這篇被 NeurIPS 2018 接收的文章,有什麼看點?
這篇文章的作者之一,Noah Snavely(他的個人主頁:http://www.cs.cornell.edu/~snavely/),是計算機視覺領域中很活躍的研究人員。他的主要貢獻之一是開發了 SfM(Structure-from-Motion,運動恢復結構)系統 [1],解決了基於影像的場景重建問題。SfM 已經應用在一些其他領域中,比如姿勢估計 (pose estimation) 或位置識別 (location recognition) [2]。
Snavely 和他的合作伙伴,在這篇文章中重新討論了 3D 姿勢估計 (3D pose estimation) 的問題,提出了名為「KeypointNet」的全新框架,用於發現針對姿勢估計這一特定任務的潛在 3D 關鍵點 (latent 3D keypoints)。這篇文章的研究專案主頁是 keypointnet.github.io (http://keypointnet.github.io/),有興趣的讀者可以點選瞭解關於更多的技術細節。
這篇被 NeurIPS 2018 接收的文章,有什麼優點和不足?
優點
文章的研究問題很有趣,目標是尋找針對特定 3D 物體型別 (比如,飛機) 的最佳關鍵點。簡而言之,無論輸入什麼姿態的 3D 飛機影像,這個框架都應該能夠找到,幫助成功識別物體型別的關鍵點。本文提出了名為「KeypointNet」的端到端框架,用於 3D 物體型別識別。最有意思的是,本文還展示了使用 KeypointNet 得到的 3D 物體型別識別的部分視覺化結果。
不足
這篇文章寫得不太容易讀懂。在第一次閱讀這篇文章時,讀者可能會弄不清作者到底是想要解決「3D 關鍵點檢測」的問題還是「物體型別識別」的問題。事實上,作者想要「一石二鳥」,利用一個端到端框架為一個下游視覺任務——物體型別識別——發現潛在的 3D 關鍵點。
如果你是 NeurIPS 2018 的評審,你認為這篇文章應該被大會接受嗎?
這會是個艱難的決定。但就這篇文章而言,我傾向於說 YES!
從貢獻的角度上講,這篇文章展示了一個全新的框架——KeypointNet——在 3D 物體模型的人工合成資料集上,解決「物體型別識別」問題的能力。文章如果能夠展示,在大型的真實資料集上獲到的更多實驗結果(而不僅僅是附錄中的 9 個實驗結果的話),技術貢獻會更大,也更讓人信服。
1. 本文的亮點
在給定已知型別的物體影像時(比如,一張飛機的影像),KeypointNet 框架將會無監督發現 3D 關鍵點(由畫素座標(pixel coordinates)和深度值(depth values)定義)的有序列表,用於最終的物體型別識別任務。這些關鍵點是特徵表徵(feature representations)的構建塊,在姿勢識別,或是多姿態物體識別(pose-aware or pose-invariant object recognition)中非常有效。
與有監督的方法不同,該框架在學習從一張影像到標註關鍵點(annotated keypoints)列表的對映時,並沒有將關鍵點位置定義為先驗,而是針對 3D 姿勢估計這一下游任務,對這些關鍵點進行最佳化選擇。
在訓練階段,當輸入同一個物體的兩個不同視角影像,以及已知的剛體變化 T (rigid transformation T),目標是輸出用於物體姿勢識別的最優關鍵點預測列表,P1 和 P2。利用 P1 和 P2 這兩個列表,能夠進行從物體的一個視角到另一視角的最佳匹配,如圖 1 所示。KeypointNet 提出了能夠最佳化從圖到關鍵點列表對映的目標函式 O(P1,P2),這一目標函式包含了兩個必要的元件——多視角一致性(multi-view consistency)和相對姿勢估計(relative pose estimation)。
圖 1:在訓練 (training) 過程中,將同一個物體的兩個視角影像作為 KeypointNet 的輸入。兩個視角之間的剛體變化(R,t)是指導訊號 (supervisory signal)。KeypointNet 最佳化了在兩個視角中有一致性,並且能夠用於剛體變化恢復的,3D 關鍵點的有序列表。而在推理 (inference) 過程中,KeypointNet 將從單一輸入影像中提取了 3D 關鍵點,再進行物體型別的識別。
下文將簡要介紹一些必要的先決條件和要點,以便讀者進一步瞭解 KeypointNet 框架。
註釋
每一個訓練 tuple 中都包括一對影像(I,I'),即同一個目標的兩個不同視角影像。此外,我們已知它們的相對剛性變換 T。T 用於從 I 到 I' 的 3D 形狀轉換。T 的矩陣形式如下:
(1) 式中 R 和 t 分別表示 3D 旋轉 (rotation) 和轉換 (translation)。我們想要學習一個函式 f_θ(I),並透過最佳化它的目標函式 O(f_θ(I), f_θ(I')),用於完成從一張 2D 影像 I 到一個 3D 關鍵點列表 P = (p_1,…p_n) 的對映,其中,p_i =(u_i,v_i,z_i)。
1.1 多視角一致性(multi-view consistency)
多視角一致性損失函式(multi-view consistency loss),衡量的是兩張圖片的關鍵點之間的差異。使用這一個函式的目的是,確保關鍵點能夠在不同視角下,追蹤物體相同的部分。具體而言,第一張圖中的 3D 關鍵點的座標,應該與第二張圖中對應關鍵點的座標一致。此外,文章的一個假設是,透視相機模型的全域性焦距為 f。如下文所示,作者用 [x,y,z] 標記 3D 座標(3D coordinates),並用 [u,v] 標記畫素座標(pixel coordinates)。關鍵點 [u,v,z] 從影像 I 到 I'(反之亦然)的投影是透過下面的投影運算得到的:
式中 u'^表示 u 到第二張圖片的投影,而 u^ 代表 u』 到第一張圖片的投影。式中,π:R^4→R^4 表示將相機的 3D 座標 [x,y,z,1]^T 對映到畫素位置(並加上深度值)的透視投影運算:
文章還定義了對稱多視角損失函式(symmetric multi-view consistency loss),標記為 L_con :
面對同一個物體的不同視角影像,透過確保多視角一致性,足以推斷出 2D 關鍵點位置(和深度值)。但是,單純依賴一致性並不能保證方法的有效性。比如,關鍵點通常會指向同一個位置。因此,作者指出了「最優性概念」(a notion of optimality),它會根據特定的下游任務(比如,3D 姿勢估計)選擇關鍵點。文章中,作者將「姿勢估計」作為下游任務,用於促進關鍵點的分離,從而避免關鍵點指向同一個位置。
1.2 相對姿勢估計(relative pose estimation)
相對姿勢估計損失函式,用於「懲罰」P1 到 P2 的真實旋轉 R 與恢復旋轉 R^ 之間的角度差距(angular difference)。而如何恢復旋轉 R^,也被稱為 Orthogonal Procrustes 問題 [3]。
值得注意的是,影像到關鍵點對映的一個重要特性是,畫素級的等效轉換(translation equivariance)。例如,如果輸入影像向左移動了一個畫素,所有關鍵點的輸出位置也應該改變一個單位。KeypointNet 使用空間 softmax 層 (spatial softmax layer),輸出一個機率分佈 g_i (u,v),用於表示關鍵點 i 在畫素(u,v)處出現的可能性。利用等式(2),可以利用空間分佈的期望值(expected values of the spatial distributions),計算出恢復後的畫素座標。
此外,在使用等式(3)計算座標 z 之前,需要首先預測每個畫素的深度值 d_i(u,v)。
KeypointNet 的轉換等價性和多視角一致性(上文 1.1 節),使得轉換誤差得以避免。作者在以下等式中定義了姿勢估計目標函式,即 L_pose,用於衡量使用兩組關鍵點得到的最優最小二乘估計 R^,與真實旋轉矩陣 R 之間的角距離(angular distance)。
2. 實驗
2.1 在人工合成資料集上的實驗結果
文章作者提供了 KeypointNet 在汽車、椅子和飛機三個物體型別上取得的關鍵點預測結果。作者對所有類的每一張圖,都選取了 10 個關鍵點,用於實驗結果的展示。
圖 2 展示了單一物體多檢視情況下,KeypointNet 的關鍵點預測結果。值得注意的是,有一些視角極具挑戰性,例如,椅子的俯檢視。但 KeypointNet 展示了它在判斷物體方向,以及推測遮擋部分(比如俯檢視中的椅腿)的能力。
圖 2:單一物體多視角的關鍵點預測結果。注意,即便物體的某個組成部分被完全遮擋,KeypointNet 也準確預測出了這些關鍵點。(例如,紅色的點追蹤了右後方的椅子腿)。更多視覺化結果見:http://keypointnet.github.io/
如圖 3 所示,KeypointNet 進一步展示了預測遮擋部分的能力。需要指出的是,圖 3 中的物體圖片並沒有用於訓練過程中。對於 KeypointNet 來說,預測已知物體類別的全新示例圖片(unseen instances),更具挑戰性。
圖 3:KeypointNet 在 ShapeNet [5] 汽車、飛機和椅子三個類別取得的關鍵點預測結果。KeypointNet 在面對訓練中未曾見過的圖片例項時(而這些例項在外觀和形狀存在各種變化),仍舊能夠預測物體被遮擋的部分,例如輪子和椅子腿。
3. 如果你在會場上,你有什麼問題想問文章作者?
問題 1
實驗中有兩個失敗的案例(見文章 6.2 節),揭示了當 KeypointNet 無法正確判斷物體的方向時(例如無法分辨汽車的正面和尾部)時,便無法預測出最優關鍵點。我們應當如何解決由於物體方向判斷失敗,而導致的關鍵點預測錯誤這一問題?
問題 2
你們是否準備在更為大型的真實 3D 物體測試集上評估 KeypointNet?將 KeypointNet 擴充套件到更具挑戰性的真實資料集時,會存在哪些困難?
參考文獻
[1] Song Cao, and Noah Snavely.「Learning to match images in large-scale collections.」European Conference on Computer Vision. Springer, Berlin, Heidelberg, 2012.
[2] Yunpeng Li, et al.「Worldwide pose estimation using 3d point clouds.」European Conference on Computer Vision. Springer, Berlin, Heidelberg, 2012.
[3] Peter Schonemann. A generalized solution of the orthogonal Procrustes problem. Psychometrika, 1966.
[4] Ross Goroshin, Michael F Mathieu, and Yann LeCun. Learning to linearize under uncertainty. NIPS, 2015.
[5] Angel X. Chang, et al.「ShapeNet: An Information-Rich 3D Model Repository.」arXiv:1512.03012, 2015.
Olli 的機器之心主頁:https://www.jiqizhixin.com/users/84204384-374e-4de0-bfc5-79eee677a8ec
Olli 的 LinkedIn 主頁:https://www.linkedin.com/in/ollihuang