深度學習時代的計算機視覺

在上世紀50年代,數學家圖靈提出判斷機器是否具有人工智能的標準:圖靈測試。圖靈測試是指測試者在與被測試者(一個人和一臺機器)隔開的情況下,通過一些裝置(如鍵盤)向被測試者隨意提問。進行多次測試後,如果有超過30%的測試者不能確定出被測試者是人還是機器,那麼這臺機器就通過了測試,並被認爲具有人類智能。

圖靈測試一詞來源於計算機科學和密碼學的先驅阿蘭·麥席森·圖靈寫於1950年的一篇論文《計算機器與智能》,其中30%是圖靈對2000年時的機器思考能力的一個預測,但是從圖靈測試提出來開始到本世紀初,50多年時間有無數科學家提出很多機器學習的算法,試圖讓計算機具有與人一樣的智力水平,但直到2006年深度學習算法的成功,才帶來了一絲解決的希望。

深度學習時代的計算機視覺

爲什麼深度學習之前,傳統計算機視覺算法在人臉識別、跟蹤、目標檢測等諸多領域沒有達到深度學習的精度呢?回答這一問題,需要我們先了解傳統算法的特點。

對於視覺算法來說,大致可以分爲以下4個步驟:圖像預處理、特徵提取、特徵篩選、推理預測與識別。計算機視覺可以說是機器學習在視覺領域的應用,所以計算機視覺在採用這些機器學習方法的時候,不得不自己設計前面3個部分。但對任何人來說這都是一個比較難的任務。

傳統的計算機識別方法把特徵提取和分類器設計分開來做,然後在應用時再合在一起,比如如果輸入是一個摩托車圖像的話,首先要有一個特徵表達或者特徵提取的過程,然後把表達出來的特徵放到學習算法中進行分類的學習。

傳統視覺算法.jpg

過去20年中出現了不少優秀的特徵算子,比如最著名的SIFT算子,即所謂的對尺度旋轉保持不變的算子。它被廣泛地應用在圖像比對,特別是所謂的structure from motion這些應用中,有一些成功的應用例子。另一個是HoG算子,它可以提取物體,比較魯棒的物體邊緣,在物體檢測中扮演着重要的角色。

這些算子還包括Textons,Spin image,RIFT和GLOH,都是在深度學習誕生之前或者深度學習真正的流行起來之前,佔領視覺算法的主流。

這些特徵和一些特定的分類器組合取得了一些成功或半成功的例子,基本達到了商業化的要求但還沒有完全商業化。比如指紋識別算法、基於Haar的人臉檢測算法、基於HoG特徵的物體檢測。但這種成功例子太少了,因爲手工設計特徵需要大量的經驗,需要你對這個領域和數據特別瞭解,然後設計出來特徵還需要大量的調試工作。說白了就是需要一點運氣。

另一個難點在於,你不只需要手工設計特徵,還要在此基礎上有一個比較合適的分類器算法。同時設計特徵然後選擇一個分類器,這兩者合併達到最優的效果,幾乎是不可能完成的任務。

深度學習時代的計算機視覺

深度學習的前世

深度學習網絡的最初原型是人工智能領域的大牛Lecun在1998年AT&T的實驗室時發明出來的,當時用這一網絡進行字母識別,達到了非常好的效果。

我們不禁要問:似乎卷積神經網絡設計也不是很複雜,98年就已經有一個比較像樣的雛形了。自由換算法和理論證明也沒有太多進展。那爲什麼時隔20年,卷積神經網絡才能捲土重來,佔領主流?

這一問題與卷積神經網絡本身的技術關係不太大,與其它一些客觀因素有關。

首先,深度卷積神經網絡需要大量數據進行訓練。網絡深度太淺的話,識別能力往往不如一般的淺層模型,比如SVM或者boosting;如果做得很深,就需要大量數據進行訓練,否則機器學習中的過擬合將不可避免。而2006年開始,正好是互聯網開始大量產生各種各樣的圖片數據的時候,即視覺大數據開始爆發式地增長。

另外一個條件是運算能力。卷積神經網絡對計算機的運算要求比較高,需要大量重複可並行化的計算,在當時CPU只有單核且運算能力比較低的情況下,不可能進行個很深的卷積神經網絡的訓練。隨着GPU計算能力的增長,卷積神經網絡結合大數據的訓練才成爲可能。

最後一點就是人和。卷積神經網絡有一批一直在堅持的科學家(如Lecun)纔沒有被沉默,纔沒有被海量的淺層方法淹沒。最後終於看到卷積神經網絡佔領主流的曙光。

深度學習的今生

深度學習的概念由Hinton等人於2006年提出,具備天時地利人和的深度學習從此一發不可收拾,其在計算機視覺的諸多領域取得的效果遠超傳統機器學習算法,包括人臉識別、圖像問答、物體檢測、物體跟蹤

人臉識別方面,工作比較超前的是湯曉鷗教授,他們提出的DeepID算法在LWF上做得比較好。最新的DeepID-3算法,在LWF達到了99.53%準確度,與肉眼識別結果相差無幾。

物體檢測方面,2014年的Region CNN算法、2015年的Faster R-CNN方法、FACEBOOK提出來的YOLO網絡、在arXiv上出現的最新算法叫Single Shot MultiBox Detector在識別精度和速度上均與較大提升。

物體跟蹤方面,DeepTrack算法是第一在線用深度學習進行跟蹤的文章,當時超過了其它所有的淺層算法。此後越來越多的深度學習跟蹤算法提出。

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