雷鋒網注:作者趙京雷,閱面科技CEO,上海交通大學人工智能博士,前阿里巴巴北京算法研究中心負責人,專注人工智能算法研究超過15年。本文系雷鋒網獨家文章。
2016年是人工智能發展的第60周年,人工智能已經走了很長一段路,隨著AlphaGo的輝煌戰績的出現,又再次引爆了人工智能在各個領域的發展;仡櫽嬎銠C視覺發展之路,才能讓我們踩著歷史的積淀,順應發展的大潮,去探索未來。
| 一、計算機視覺的認知依據
人類對世界的認知非常簡單,我們可以一眼看出一個水果是蘋果還是橘子。但是對于機器來說,我們怎么寫個程序讓機器來分辨蘋果和橘子呢。
(人類的識別)
如果讓大家思考,我們會給出各種答案,比如是不是可以讓機器通過水果的顏色來區分,或者通過形狀和紋理來區分等等。
(基于顏色、形狀、紋理的識別)
在深度學習出現之前,這種基于尋找合適的特征去讓機器辨識物品的狀態,基本上代表了計算機視覺的全部。
以顏色特征為例,它是一種在現在依然被廣泛應用的特征,我們稱之為顏色直方圖特征。它是一種最簡單、最直觀,對實際圖片的顏色進行數字化表達的方式。機器識別圖片只能用二維的向量來表示。我們都知道顏色的值可以用RGB三原色來表示,顏色直方圖的橫軸代表顏色的RGB數值,表示一個物品所有顏色的可能性,縱軸則代表了整個圖像具有某個顏色值的像素數量,其實,通過這樣一種非常直觀的方法,機器就可以對看到的圖片進行顏色表征。在過去的二三十年里,關于顏色特征的表示有很多探索和研究,比如:各種各樣顏色直方圖的變種,使得計算機能夠通過二維數字串的形式,更好地表示圖像的顏色特征,使得其能夠區分看到的不同物品。
左:(顏色直方圖striker 1995) 右:(顏色距 striker 1995)
以紋理特征為例,桔子會有坑坑洼洼的紋理,而蘋果的紋理則非常光滑。這種局部的紋理刻畫,如何通過數字串的形式抽象表示出來,和顏色特征一樣,這是過去很多年計算機視覺一直在探求和優化的問題。下圖是計算機視覺中在各個領域使用較多的紋理特征表示方法示例。
(紋理直方圖)
(SDM)
形狀特征也是一樣,以下兩圖可以直觀的示例計算機視覺通過形狀特征來進行識別。
(Hog:Dalal,2005)
通過這些例子可以看出,計算機視覺在過去很多年,處理問題的方法很簡單,就是找到一種合適的特征抽象方法,對一個待識別或者待分類問題進行特征表達,然后進行計算的過程。
如果要做人臉識別,需要尋找到底是顏色特征還是紋理特征或者形狀特征更適于表達,怎么樣能把目標問題區分開來。對人臉來說,顏色的作用不會很大,因為人臉的顏色長得都差不多。但是人臉的褶皺、紋理,兩眼之間的距離等可能代表了不同人之間的區別,可能紋理和結構特征相比更加有效。而如果我們要檢測識別人體,可能紋理特征就不是那么重要,因為人會穿各種各樣的衣服,但形狀特征就會很重要。所以,過去的計算機視覺是針對不同的問題,選擇不同的特征表征方法。
| 二、計算機視覺的發展過程
從2006年開始,在將近10年的時間里,計算機視覺的方法發生了一個比較本質的變化,就是深度學習的出現,在某種程度上改變了我們前面對計算機視覺的定義。我們先了解一下計算機視覺發展的歷程,看看是基于什么契機和積累,讓計算機視覺發生了這樣的變化。
計算機視覺的發展史可以追溯到1966年,著名的人工智能學家馬文·明斯基給他的本科學生布置了一道非常有趣的暑假作業,就是讓學生在電腦前面連一個攝像頭,然后寫一個程序,讓計算機告訴我們攝像頭看到了什么。大師就是大師,這道題實在是太有挑戰了,在某種意義上它代表了全部計算機視覺要做的事情,因此我們認為這是一個起點。
上世紀70年代,研究者開始去試圖解決讓計算機告知他到底看到了什么東西這個問題。研究者認為要讓計算機認知到底看到了什么,可能首先要了解人是怎樣去理解這個世界的。因為那時有一種普遍的認知,認為人之所以理解這個世界,是因為人是有兩只眼睛,他看到的世界是立體的,他能夠從這個立體的形狀里面理解這個世界。在這種認知情況下,研究者希望先把三維結構從圖像里面恢復出來,在此基礎上再去做理解和判斷。
(David Marr,1970s)
上世紀80年代,是人工智能發展的一個非常重要的階段。人工智能界的邏輯學和知識庫推理大行其道,研究者開始做很多專家推理系統,計算機視覺的方法論也開始在這個階段產生一些改變。人們發現要讓計算機理解圖像,不一定先要恢復物體的三維結構。例如:讓計算機識別一個蘋果,假設計算機事先知道蘋果的形狀或其他特征,并且建立了這樣一個先驗知識庫,那么計算機就可以將這樣的先驗知識和看到物體表征進行匹配。如果能夠匹配,計算機就算識別或者理解了看到的物體。所以,80年代出現了很多方法,包括幾何以及代數的方法,將我們已知的物品轉化成一些先驗表征,然后和計算機看到的物品圖像進行匹配。
(David Lowe, 1987)
上世紀90年代,人工智能界又出現了一次比較大的變革,也就是統計方法的出現和流行。在這個階段,經歷了一些比較大的發展點,比如現在還廣泛使用的局部特征。前面介紹的形狀、顏色、紋理這些表征,其實會受到視角的影響,一個人從不同的角度去看物品,它的形狀、顏色、紋理可能都不太一樣。隨著90年代統計方法的流行,研究者找到了一種統計手段,能夠刻畫物品最本質的一些局部特征,比如:要識別一輛卡車,通過形狀、顏色、紋理,可能并不穩定,如果通過局部特征,即使視角變化了,也會準確對其進行辨識。局部特征的發展,其實也導致了后來很多應用的出現。比如:圖像搜索技術真正的實用,也是由于局部特征的出現。研究者可以對物品建立一個局部特征索引,通過局部特征可以找到相似的物品。其實,通過這樣一些局部點,可以讓匹配更加精準。
(David Lowe, 1999)
到2000年左右,機器學習方法開始盛行。以前需要通過一些規則、知識或者統計模型去識別圖像所代表的物品是什么,但是機器學習的方法和以前完全不一樣。機器學習能夠從海量數據里面去自動歸納物品的特征,然后去識別它。在這樣一個時間點,計算機視覺界有幾個非常有代表性的工作,比如:人臉識別。
要識別一個人臉,第一步需要從圖片里面把待識別的人臉區域給提取出來,這叫人臉檢測。像在拍照的時候,會看到相機上有個小方框在閃,那其實是人臉識別必要的第一步工作,也就是人臉框的檢測。在以前,這是非常困難的工作,但是在2000年左右,出現了一種非常好的算法,它能夠基于機器學習,非?焖俚娜z測人臉,稱之為Viola&Jones人臉檢測器,這奠定了當代計算機視覺的一個基礎。
(Viola&Jones, 2001)
機器學習的盛行其實是伴隨著一個必要條件出現的,就是在2000年左右,整個互聯網的出現和爆發,產生了海量的數據,大規模數據集也相伴而生,這為通過機器學習的方法來做計算機視覺提供了很好的土壤。在這期間,出現了大量學術官方的,針對不同領域評測的數據集。人臉檢測最具有代表性是一個叫FDDB的數據集。這個數據集包含了超過5000多張人臉數據,每一張人臉,都人為的用框給框出來,機器就可以從這些框好的數據里面,通過一些機器學習的手段去學習從任何一張圖片中找到人臉區域。
(FDDB,5171 faces, 2845 images)
另外,我們耳熟能詳的一個數據集是人臉識別數據集LFW。提到人臉識別,可能我們聽過“計算機做人臉識別比人更準”。其實這句話是有一定問題,在很多實際場景里,計算機做人臉識別連人的70%可能都達不到。那么在什么情況下,它比人準呢。有一種情況就是在LFW上。LFW數據集里面有1萬多張人臉和5000多個人的數據,每個人都有在不同情況下拍攝的真實場景的多張人臉;谶@樣的一個數據集,研究者可以在上面評估人臉識別的精度。人臉識別領域發展非?,尤其是最近幾年深度學習的興起后,這個數據集變得非;鸨H嗽贚FW上面的識別正確率大概是97.75%,而機器已經在LFW上可以做到99.75%甚至更要高。
(13233 faces, 5749 people)
在這期間,還出現了其他非常有影響力的數據集,其中比較有代表性的就是由李飛飛教授發起的一個項目IMAGEMET。他通過眾包的方式,標注1400萬張圖片,分了大概2萬多個類別,這些類別包羅萬物,比如像動物,里邊可能分為鳥類、魚類等;植物,里面可能會分為樹和花。她的理想很宏大,就是希望提供這樣一個數據集,為計算機視覺算法提供一個數據土壤,讓未來的機器能夠認識世界上的一切物品。
在2000年代,人工智能經歷了一個快速發展期以后,整個人工智能在很多行業取得了非常好的應用,比如:視覺之外有搜索引擎排序和計算廣告等等,視覺領域人臉檢測器也被用在了各種各樣的相機里面。
到2010年代,人工智能進入了一個最激動人心的年代,它就是深度學習的年代。深度學習從本質上給整個人工智能帶來了一次革命。在上世紀,有人做了一個貓的實驗。在貓腦袋上開了一個洞,然后在貓的前面放各種各樣的物品,觀察貓在不同物品下的反應。通過實驗發現,當我們放一些形狀非常類似的物品時,貓的后腦皮層的相同區域會表現出同樣的刺激反應,這一實驗了說明人的視覺系統認知是分層的。在早期模擬人腦認知的多層神經網絡模型經歷2000年左右的一個低谷后,2006年Hinton教授在《科學》發表了對于深層神經網絡的訓練方法,帶來了深度學習的蓬勃發展。
(LeNet-5, 1998)
上圖左側是一個普通的三層神經網絡算法,是一種淺層的學習方法。在這種淺層神經網絡中,輸入的數據依然是人工抽象出來的特征表達,比如顏色、形狀、紋理或者局部特征等。而右邊的則是現在最常使用的一種深度學習方法,卷積神經網絡。從外面來看,最大的改變是其輸入是原始圖像的像素,不再用人工進行特征表達和抽象,而改用神經網絡本身在淺層自動進行特征抽象。這是淺層機器學習模型和深度學習模型的根本區別之一。
(Hinton, 2006)
(Li, Tang etl, 2014-2015)
自2006年開始,在接近10年的時間里,整個計算機視覺界產生了質的變化,深度學習的出現真正改變了計算機視覺之前的定義。
| 三、計算機視覺的應用領域
深度學習出現以后,對各種各樣的視覺識別任務的精度都進行了大幅度的提升,拿人臉來說,在深度學習出現之前,一個普通的識別算法,比如使用顏色、紋理、形狀或者局部特征,可以將各種特征糅合在一起,人臉識別率一般只能做到94%~95%。在很多的實際系統,比如以前用的人臉考勤,可能當時的系統只能做到90%~92%的識別率。深度學習出現以后,直接將這個精度提高到了99.5%以上,將錯誤率降低了10倍。
這種量級的錯誤率降低意義非凡。比如:把人體識別的精度用到汽車的輔助駕駛系統里邊,如果出現了漏報或錯包,這是非常頭大的事。如果是95%的精度,有100個人經過,在一定距離范圍內,他可能就有五次錯報或者漏報,這肯定是無法接受的。但如果精度再提升10倍或者100倍,比如1萬個人只有5次漏報的話,那這件事可能就是可行了。所以,深度學習的出現使得以前視覺方法不太實用的一些應用領域,基本上都可以通過深度學習的方法來獲得一個良好的應用。
目前計算機視覺的熱點應用在目標檢測、目標識別、目標跟蹤、場景理解、立體視覺等一些領域,人臉識別用的比較多的領域是金融行業,像人臉識別身份驗證等;圖像搜索比較直觀的應用,如拍一張鞋的照片,在淘寶進行搜索,就可以找到類似的鞋。再比如像安防,也是計算機視覺的一個典型應用領域;還有一個非常大的應用,就是在機器人領域,包括整個的智能設備領域,深度學習的出現,使得機器人在視覺能力或者語音能力上,去模仿人的能力成為可能。
隨著深度學習的發展,國內也出現了一些專注于深度學習的視覺企業,比如專注于金融和安防監控的Face++、SenseTime,專注于圖片審核的圖普科技、專注于圖像搜索的衣+,而我們閱面科技則專注于嵌入式視覺和機器視覺領域。
| 四、我的探索
回顧了計算機視覺的發展之路,很多公司在深度學習的大潮中順勢而生,包括我們閱面。
深度學習的出現使得人工智能的應用上產生很多創業和創新機會。
比如在和垂直行業結合方面,像金融、醫療行業,這方面應用的特點是計算發生在服務器端或者云端。
另外一方面的機會來自于各種各樣的硬件設備的智能化升級,這方面應用的特點是計算的前端化和實時化。我們都知道以前的智能硬件都很不智能,用戶體驗不好。人工智能算法的發展,會把一系列的硬件設備變得智能起來,成為真正的智能機器。
嵌入式視覺,就是幫助各種各樣的智能機器,通過嵌入視覺算法,讓它擁有一雙像人類一樣的眼睛,能夠去認知周邊的人或者場景,該研究應用于包括機器人、智能家居、車載設備等領域,主要解決人機交互及場景的感知兩大問題,這兩方面的能力是未來的智能機器必須具備的核心能力。這也是我們在做的事情。
以智能機器來舉例,它需要理解人,知道這個人是誰,并且理解人的表情變化以及交互的手勢和人體動作,這其實就是人機交互層。智能機器的場景感知層,就是將智能機器放在一個陌生環境里,能夠讓它知道處于什么樣的環境,能夠讓它識別物品和場景,能夠進行自主導航定位,自由行走。計算機視覺是整個人機交互和場景感知的未來。
如何為智能機器提供軟硬件一體的視覺認知解決方案?以我們為例——
首先在底層構建了核心的算法引擎,如人臉識別、手勢識別、人體識別和場景識別等。其次在算法層上,我們做了兩件事:一方面做硬件模組,另一方面做芯片。所有硬件層的努力,都是為了讓底層的神經網絡深度學習算法能夠在嵌入式設備上能以快速度、低功耗跑起來。通過軟硬件一體化的解決方案,希望能真正幫助未來的智能機器方便地接入視覺認知服務,去認知這個世界。
| 五、由深度學習的發展看未來的挑戰
計算機視覺的發展當然不可能一帆風順。
對任何一個視覺識別任務而言,它的自然條件的變化,比如像姿態、遮擋,包括光照等各種條件的變化,都會極大的影響它的識別精度和正確率。怎樣去解決這個問題,其實是整個計算機視覺面臨的最大挑戰。
深度學習擅長的是分類問題,而對于上下文語義的理解,它是非常不擅長的。比如讓它理解人類說的話,在這方面的應用這幾年并沒有太多實質性進展,這也是我專注做計算機視覺這件事的原因之一,如果去做自然語言理解,深度學習目前的幫助不大,但連續語義以及上下文的理解是近年深度學習模型研究的重點,相信未來會有所突破。
深度學習確實帶來了實質性的一個突破,但是針對很多任務,離我們真正想達到的精度還有不小差距,比如:人體檢測、物品識別的的精度,在真實場景中比起我們人類,還遠遠不夠。整個學術界對于新一代深度學習模式的研究還一直在繼續。比如:人在認識世界的時候,它不僅僅把信息從大腦的初級皮層向深處的神經元傳遞。人在理解的時候,心理學家發現人腦深層的神經元可以反過來指導最開始輸入層的認知。所以,我相信深度學習,在這些年還會從理論模型上帶來比較大的突破,這種突破可能會使得這種模型越來越逼近我們人對信息的處理。
計算機視覺之路,路漫漫,其修遠,吾將上下而求索。
雷鋒網注:轉載請聯系我們授權,并保留出處和作者,不得刪減內容。