從特徵描述符到深度學習:計算機視覺發展20年

從特徵描述符到深度學習:計算機視覺發展20年

Author : Tomasz Malisiewicz

翻譯:趙毅力(panovr at gmail dot com)

原文鏈接點這裏

我們都知道在過去兩年(2012-2014年)深度卷積神經網絡在目標檢測與識別的基準測試中有過輝煌的成績,所以你可能會問:在此之前的物體識別技術是什麼樣子?早期識別系統的設計和現代以多層卷積爲基礎的框架之間的關係是什麼?

讓我們先來回顧一下過去20年裏計算機視覺研究中的一些重要理論和方法。

1995年至2000年:局部特徵描述符的崛起

1999年當英屬哥倫比亞大學教授大衛·羅伊(David Lowe)提出SIFT(尺度不變特徵變換的縮寫,Scale Invariant Feature Transform)算法後,計算機視覺研究的世界幾乎在一夜之間發生了改變。SIFT是一種對圖像塊進行比較和匹配的魯邦解決方案。在大衛·羅伊沒有提出SIFT算法之前,人們通常只使用SSD(平方距離的總和)作爲圖像塊比較的距離度量標準,對此並沒有太多的考慮。

這裏寫圖片描述

SIFT描述符計算方法:梯度方向和規範化技巧

SIFT又被稱爲局部特徵描述符 – 這是一個雄心勃勃的研究人員在圖像方面超過十年研究的成果之一。 大衛·羅伊和英屬哥倫比亞大學爲SIFT算法申請了專利,並且大衛·羅伊還在自己的主頁上公佈了SIFT實現的一條經過編譯後的二進制程序,供研究人員在他們的工作中使用。 SIFT允許一幅彩色圖像中的點由一個低維向量進行魯棒表示。當你通過旋轉照相機對同一物理拍攝不同角度的多幅圖像,這些對應點的SIFT描述符在其128維空間中非常相似。初看之下在進行圖像匹配之前需要進行如SIFT這麼複雜的處理似乎有點愚蠢,但是請相信我:那是因爲你,作爲一個人類,可以用肉眼觀看兩個圖像塊並迅速“理解”它們屬於同一個物體上的相同點,而這對於計算機來說是不同的。 SIFT對計算機視覺(包括立體視覺、從運動結恢復構等)的幾何方面的研究都有着重要的影響,後來還成爲用於對象識別的流行的詞袋模型的基礎。

看到SIFT這樣的技術在圖像塊匹配上大大超過像平方距離求和(SSD)方法在每一個有抱負的視覺科學家的職業生涯的重要一步。SIFT不只是濾波器響應的一個載體,其中的直方圖分級和規範化的步驟也是非常重要的。值得指出的是,雖然最初SIFT(在其論文中公佈的形式)主要作爲興趣點檢測器的輸出,但是後來發現興趣點檢測步驟在對象分類問題中並不重要。對於分類問題,研究人員對圖像應用的是SIFT描述符的向量量化。

我還要提到的是其它的描述符方法,如旋轉圖像方法提出的時間早於SIFT,但由於旋轉圖像方法只適用於2.5維的數據,所以這一方法的影響力沒有SIFT方法那樣大。

2000年至2005年:現代數據集(又名強化視覺科學)

單應估計、地平面估計、機器視覺,從運動恢復結構以及其它計算機視覺幾何問題極大地受益於魯邦的圖像特徵,如SIFT。但對20世紀90年代末來說,很明顯,互聯網是下一件大事。在線圖像,還有跟多正在創建的數據集。結構恢復(即幾何視覺)問題不再是這一代研究人員主要感興趣的主題。這是一個大數據集的時代,以此同時加州理工學院的Caltech-101數據集逐漸得到普及,分類研究在不斷上升。研究人員不再僅僅是對自己內部的數據集評估他們自己的算法,現在大家都有一個更加客觀的標準方法來進行方法之間的比較。儘管用2015年的標準來看Caltech-101數據集被認爲是過時的,但是可以把它認爲是更現代的ImageNet數據集的鼻祖。

2000年至2005年:箱、網格和視覺單詞(即面向描述符的機器學習)

研究人員逐步從視覺幾何恢復問題轉向更爲雄心勃勃的目標識別問題,涌現了詞袋(BoW,Bag of Words)、空間金字塔(Spatial Pyramids)、矢量量化(Vector Quantization),以及在計算機視覺的各個階段使用的各種機器學習工具。原生的SIFT對於寬基線立體匹配來說很棒,但它不是強大到足以從相同的視覺對象類別提供兩種不同的對象實例之間的匹配。我們需要的是一種對以下思路進行編碼的方法:相對於彼此對象部件可以變形,一些圖像塊可能會確實。總體而言,需要更多基於統計的方法來對物體進行表徵。

由Josef Sivic和Andrew Zisserman於2003年提出視覺單詞(Visual Words),這是一種從大規模的文本匹配中借鑑的方法。Josef和Andrew把它們應用到視頻內容中。視覺字典可以通過執行對SIFT描述符進行無監督學習(例如通過K-均值聚類),將128維的SIFT描述映射爲整數獲得。可以使用這些視覺單詞的直方圖來表示圖像,這種表示是一種相當可靠的方。至今詞袋模型的變種仍被大量使用在視覺研究中。

這裏寫圖片描述

基於內容的視頻匹配與檢索

另一個關於對象識別的想法是使用某種形式的分級結構進行對象匹配的方法。Caltech-101圖像數據主要包含對象,所以這些網格最初被放置在整個圖像,後來他們被放置在對象包圍盒上。Kristen Grauman發表的著名的金字塔匹配核(Pyramid Match Kernel)論文介紹了一個用於在圖像匹配過程中整合空間信息的強大的和分層的方法。下圖是其中的一幅示意圖:

這裏寫圖片描述

格勞曼提出的基於金字塔匹配核的改進圖像匹配

在那個時候研究人員還不清楚是否應該專注於更好的特徵、更好的比較標準或更好的學習方法。在2000年中期對於年輕的博士生是否應該花更多的時間來設計新的描述符或新的支持向量機核函數也並不是十分清楚。

2005年至2010年:對象模板(即方向梯度直方圖和DPM)

在2005,一個名叫Navneet Dalal的年輕研究人員向世界展示了用他自己設計的HOG特徵描述符能夠完成的功能。

這裏寫圖片描述

Navneet Dalal的HOG描述符

HOG描述符是當每個人通過使用多層學習對詞袋應用運用空間分級,使得他們的系統過於複雜的時候出現的。Dalal巧妙設計的描述符其實本質上是比較簡單的。HOG的論文是由Navneet和他的博士生導師Bill Triggs在2005年發表的。Bill Triggs因爲早期在幾何視覺方面的研究而出名,Dalal博士則是由於他新發現的描述符而出名。HOG描述符最初應用於行人檢測問題,之所以HOG描述如此受歡迎的原因是用在HOG上層使用機器學習工具非常簡單和容易理解,這種機器學習工具正是線性支持向量機。

我要指出的是在2008年在一篇關於對象檢測的後續文章中介紹了一種技術叫做以變形部件爲基礎的模型(做計算機視覺研究的人一般把這個方法稱爲DPM),有助於加強HOG技術的普及和功能。在2008年我也開始使用HOG方法。作爲一個研究生的最初幾年(2005-2008年)我一直使用自己設計的濾波器組,並且也積累了一些特徵描述符的經驗。最後,我意識到,我自己設計的特徵描述符方法只是“好”,因爲我是把它們應用到的圖像分割算法的輸出,因此速度都非常緩慢。當我開始使用HOG方法時,沒有多久我就意識到我不會再走回頭路去使用那些自己定製的、速度慢的特徵描述符了。當我開始使用一個多尺度金字塔,再搭配上如Ramanan和Felzenszwalb改進的HOG方法,我就能夠以100倍的速度處理圖像。

這裏寫圖片描述

著名的可變性部件模型

DPM爲什麼變得如此受歡迎的原因之一是它是PASCAL VOC挑戰賽的衛冕冠軍,以及Ramanan和Felzenszwalb公佈了優秀的MATLAB/ C++實現代碼。我知道很多研究者從來沒有完全承認釋放如此巨大的代碼真對剛入學的博士生的意義,但在某些時候,就好像每個人都在修改DPM的代碼庫以便爲自己嘗試CVPR的比賽。大部分的新生都缺乏堅實的軟件工程技能,給予他們DPM的代碼來獲得一些一些實驗和運行結果是一個正確的方式。就我個人而言,我從來沒有去深入研究以DPM爲基礎的方法,但我確實有幾次對DPM代碼庫進行了拆分。

2010至2015年:大數據,卷積神經網絡和深度學習

到2008年的某個時候,科學家們越來越適應大型數據集的處理。這是不是“雲計算”和“大數據”的興起,這是數據科學家的興起。早晨設計一個公式,午飯期間開發一個原型,在晚上部署大規模的計算,在日落的時候並整合結果到生產系統。我花了兩個夏天在谷歌的做實習研究,我看到了很多以視覺黑客成名的研究人員和工程師。但在谷歌他們不只是寫“學院派”的論文,而是實實在地進行大數據的處理。將來的視覺研究者將會非常熟悉大型數據集的處理。不在需要一個人有數學學位的博士、一位軟件工程師、一位經理和一個測試人員。很多人都可以完成所有這些工作。

1980年至2015年:深度學習

2014年絕對是深度學習豐收的一年。關於深度學習有趣的是它是一種非常古老的技術。我們現在看到的深度學習本質上是神經網絡2.0的版本。但這一次,我們的計算機和研究以及開發的速度要比原來快好幾個數量級。好笑的是現在倡導深度學習的人和90年代初倡導這種技術的同樣的一批研究人員。我猜他們真的笑到了最後,因爲最終這些神經網絡大師成爲研究深度學習追隨的人。Geoffrey Hinton,Yann LeCun,Andrew Ng和Yeshua Bengio是深度學習的四位巨人。現在,幾乎每個做機器學習的人都在研究深度學習。

但隨着谷歌、Facebook、百度以及衆多小創業公司乘着深學習浪潮,誰將會上升到頂部成爲人工智能的主人?

那麼今天的深層學習系統和昔日的識別系統有什麼相似性?

和以往的基於特徵的系統相比,多尺度卷積神經網絡並沒有太大的不同。在深度學習系統的第一級的神經元學習利用梯度的方式是類似於手工設計的特徵的,例如SIFT和HOG。在過去使用滑動窗口發現對象,但現在它更容易和更感性的認爲這種操作可以作爲圖像與濾波器進行過濾。有些最佳監測系統習慣使用多元線性支持向量機,結合一些特設的方式,現在我們基本上更多在使用這種線性決策邊界。深度學習系統可以被認爲是應用線性算子的多階段過程,並通過非線性激活函數放到一個管道中進行處理。和以核函數爲基礎的學習系統相比,深度學習更類似於一種將多個線性支持向量機進行巧妙組合的系統。

現在不再手工設計特徵描述。然而,深度學習系統的架構仍然需要手工設計 – 看起來專家們最擅長此任務。在古典和現代的識別系統內部的操作仍然是大同小異。除了聰明以外,現在你還需要一個大型計算機。關於這方面的研究還有很大的提升空間,所以我鼓勵大家在自己的研究中要更具創新性。

作爲一位明智的研究人員,瞭解研究領域以前的歷史可以使我們可以更好地規劃我們的未來。我希望你喜歡這個簡短的計算機視覺歷史介紹,下一次在你尋找研究靈感的時候,不要害怕回顧過去的研究歷史。

發佈了141 篇原創文章 · 獲贊 131 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章