計算機視覺需要更多幾何洞察
作者 | Alex Kendall
編譯 | KK4SBB
如今,深度學習已顛覆計算機視覺領域,端到端的深度學習模型幾乎是任何問題的最佳解決方案。尤其是卷積神經網路(CNN),因為它效果拔群而廣受歡迎。可是,這些深度學習模型都像是一個個黑盒子,盒子內的奧秘仍然不為人所知。筆者認為,現在的研究人員只是簡單地寫少量代碼來調用深度學習介面,儘管這種直白的使用方式能解決大多數計算機視覺問題,但是最終效果顯然還存在更大的提升空間。
PoseNet(http://mi.eng.cam.ac.uk/projects/relocalisation/)是我曾經開發的一種使用深度學習技術判斷攝像頭姿態的演算法。這是計算機視覺領域的一個經典問題,並且有非常完整的相關理論研究。當時用深度學習訓練了一個端到端的模型,這個模型取得了很好的效果。可是,現在回想,覺得當時自己完全忽略了這個問題的已有理論背景。在本文的末尾作者補充了相關工作的最新進展,從更偏向理論的角度重新審視了問題,並用基於幾何的方法取得了巨大的效果提升。
簡單地調用深度學習介面就能解決問題的時代即將結束,計算機視覺領域的下一次進步將源自對幾何形態的深入研究。
為何源自幾何
在計算機視覺領域,幾何描述這個世界的結構和形狀,涉及深度、體積、形狀、姿態、視差、運動和光流等測量角度。
幾何在視覺模型中地位較高的原因在於幾何定義了這個世界的結構,而且我們人類能理解這種結構(比如,從經典的教科書(http://www.robots.ox.ac.uk/~vgg/hzbook/)中學習)。因此,有很多複雜的幾何關係並不需要利用深度學習技術從頭學起,比如,物體的深度和運動狀態等。通過使用已有的幾何知識構建體系結構,我們可以將它們對應到現實中,簡化了學習過程。本文結尾的一些示例將介紹如何使用幾何來提高深度學習架構的性能。
另一種範式是使用語義表示。語義表示指的是用語言來描述物體在現實中的關係。例如,我們可以將物體描述為「貓」或「狗」。但是,幾何在語義上有兩大特性:
幾何形態可以直接觀察。人們直接用視覺觀察這個世界的幾何形態。在最基本的層面上,人們可以通過追蹤幀與幀之間相應像素的關係來直接觀察物體的運動狀態和深度情況。另外一些有趣的例子,包括根據陰影觀察形狀或是從立體視差推測深度。與此相反,語義表示是人類語言所特有的,每個標籤對應於一個名詞實體,無法直接觀察。
幾何是基於測量的連續變數。例如,人們可以用「米」來度量深度或是用像素來衡量視差,而語義表徵則是離散量或二值標籤。
為什麼這些屬性很重要呢?其中一個重要的原因在於這些屬性對無監督學習非常有幫助。
英國劍橋中心,幾何結構的運動重建,來自於手機的視頻拍攝
無監督學習
無監督學習無需標註數據就能學習物體的表示和結構。獲取大量的已標註訓練數據需要耗費財力物力,因此無監督學習提供了更具擴展性的框架。
作者上面提到幾何學的兩個特性正好可以用來訓練無監督學習模型:可觀察性和連續表示。
例如筆者去年發表的一篇作品(https://arxiv.org/abs/1603.04992),介紹了如何利用無監督訓練和幾何形態來預測物體的深度,這篇論文給出了幾何學原理與上述兩個特性結合形成無監督學習模型的絕佳案例,也有幾篇思路類似的論文(https://arxiv.org/abs/1505.01596)。
語義還不夠嗎?
語義在計算機視覺領域一直備受關注,許多高引用論文成果都來自圖像分類和語義分割領域。
僅依靠語義來設計一套表達方式會存在問題,因為語義是由人類定義的。人工智慧系統理解語義並提供與人類交互的介面必不可少,而語義是人類定義的,很有可能這種定義並不是最合理的定義方式。直接從觀察到的幾何世界學習可能更自然。
與此同時,低層次的幾何形態也是嬰兒學習觀察世界的形式。根據美國眼科協會的調查,人類在出生後的前九個月學習協調眼睛的聚焦和感知深度、顏色和幾何形狀等屬性。直到第十二個月才學會如何識別物體和語義。這說明在人類視覺中學習幾何學的基礎是非常重要的,人類會很好地把這些洞察融入到計算機視覺模型中。
機器眼中的世界(SegNet)。每種顏色表示不同的語義類別,比如道路、人行道、交通標誌等等。
近期研究列舉
使用PoseNet重定位
PoseNet是一種單目六自由度的重定位演算法。此演算法可以解決著名的「被綁架的機器人(https://en.wikipedia.org/wiki/Kidnapped_robot_problem)」問題。
在ICCV 2015上發表的第一篇論文中,筆者通過訓練端到端的映射模型來解決此問題,將輸入圖像映射到六自由度的照相機姿態。此方法把整個問題看做一隻黑盒。在今年CVPR發表的論文(https://arxiv.org/pdf/1704.00390.pdf)中,有用幾何學原理做了改進,不再將學習照相機姿態和方向作為兩個獨立的回歸目標,而是用幾何重投影誤差聯合訓練。效果得到了顯著提升。
立體視覺深度預測
立體演算法通常是指通過觀察兩幅校準圖像對之間的差異來獲得人造立體效應的過程。這就是所謂的視差,它在相應的像素位置與場景深度成反比。因此,基本上可以將問題簡化為一個匹配問題,即從左、右圖像分別找到對象之間的對應關係,以此來計算深度。
最先進的立體演算法還是以深度學習技術為主導,但也僅用於構建匹配特徵。深度估計所需的匹配和正則化步驟還未用到深度學習。
筆者從幾何學的角度提出了GC-Net(https://arxiv.org/pdf/1703.04309.pdf)網路結構。眾所周知,我們可以利用沿著單目視差線構成的cost volume來估計視差。該文的新穎之處在於如何用回歸模型來對cost volume的幾何形狀建模。更多細節可以參考這篇論文(https://arxiv.org/pdf/1703.04309.pdf)。
GC-Net結構圖,它利用幾何形狀的顯示錶示來預測深度。
總結
本文的主要內容可以歸納為以下兩點:
理解計算機視覺領域的經典解決方案很有裨益(尤其當讀者的研究背景是機器學習或者數據科學);
如果能夠借鑒幾何特性來構建網路,機器學習模型會變得更簡單和有效。
http://alexgkendall.com/computer_vision/have_we_forgotten_about_geometry_in_computer_vision
※神經網路:比原來更容易學習了
※JavaScript——下一代物聯網全棧開發
※從開發零基礎到登上Steam和Oculus:一個VR遊戲開發者的自述
TAG:CSDN |
※計算機二級如何快速通過,你需要知道這些!
※新的一年想要更美?你可能需要幾把好刷子
※如何使自己看起來很有氣質 這幾個方面你需要重視
※機器學習到底需要多少數據?可能並不是越多越好
※荒野行動就算沒有倍鏡 這幾件神器不需要配件 但是不可忽視
※想要多肉養得更好,這些小技巧你需要知道
※心理測試:最想吃哪一碗泡麵,測你最近需要注意些什麼
※只需要兩步,精緻面容讓你更有自信
※戰鬥機怎麼換髮動機?需要多少人?需要多久時間才能完成?
※女人並不是很難追,關鍵是你需要做好這幾點
※測一測,你需不需要做雙眼皮?
※買顯示器不糾結,只需要看準這幾點!
※如何讓自己更有魅力?你需要做到這一點
※到底需要多久你才能理解那句"你變
※為什麼進入戰鬥機不能直接爬行,需要用梯子?原因很多人都不知道
※短焦投影機想要替代電視? 還需要很久
※用手機拍出更好的視頻,這裡有些原則需要注意
※如何穿衣才能顯瘦又好看?你需要知道這幾個法則!
※累覺不愛?你可能需要這個
※野釣想要漁獲多,需要做好這幾個方面的調整,才能保證收穫