曠視首席科學家孫劍:計算機視覺的變革和挑戰 | 北大AI公開課筆記

量子位發表於2018-03-16
主講人:孫劍 | 曠視科技首席科學家
屈鑫 編輯整理
量子位 出品 | 公眾號 QbitAI

週三晚,北京大學“人工智慧前沿與產業趨勢”第三講,本期曠視研究院院長孫劍授課主題為“計算機視覺的變革與挑戰”,分享了計算機視覺和深度學習領域的一些研究進展。

最後,孫劍與北大人工智慧創新中心主任雷鳴就計算機視覺領域的現狀及發展進行了深入交流和討論,也為未來想在計算機視覺領域工作、從事研究的同學給出了建議。

640?wx_fmt=jpeg

全程乾貨滿滿,量子位作為獨家合作媒體,為大家帶來詳細課程筆記一份。

課程導師:雷鳴,天使投資人,百度創始七劍客之一,酷我音樂創始人,北京大學信科人工智慧創新中心主任,2000年獲得北京大學計算機碩士學位,2005年獲得史丹佛商學院MBA學位,同時也是“千人計劃”特聘專家。

主講嘉賓:孫劍,自2002年以來在CVPR, ICCV, ECCV, SIGGRAPH, PAMI五個頂級學術會議和期刊上發表學術論文100+篇,Google Scholar 引用 40,000+次,H-index 68,兩次獲得CVPR Best Paper Award (2009, 2016)。同時,2017年孫劍帶領曠視研究院,擊敗谷歌、Facebook、微軟等AI巨頭企業,獲得 COCO & Places 影像理解國際大賽三項冠軍(COCO物體檢測、人體關鍵點,Places物體分割)。

計算機視覺的發展

曠視科技從創立到現在一直在做計算機視覺,希望把用機器看懂照片,看懂視訊這件事情做深做透。曠視科技是在大範圍的人工智慧領域中,專注在視覺領域。

人工智慧分語音、語義、視覺,視覺是在中國落地最大、公司最多、投資額也是最大的方向。因為視覺的輸出有非常多,而語音的核心只是把一段聲波變成文字,輸入輸出都很單一。

計算機視覺和人工智慧的關係

第一, 它是一個人工智慧需要解決的很重要的問題。

第二, 它是目前人工智慧的很強的驅動力。因為它有很多應用,很多技術是從計算機視覺誕生出來以後,再反運用到AI領域中去。

第三, 計算機視覺擁有大量的量子AI的應用基礎。

我們比較關心的是這幾個核心問題:分類、檢測、分割。分類是指把照片中的物體分類,比如這張照片裡是有貓還是有狗;而檢測就是看圖片中的物體都在哪;分割是指標記畫素,看它們來自於哪個遊離的物體,比如標記圖片,使醫生更清楚這個病變器官是什麼樣的。這些對於圖片的技術都可以用到視訊上,目前實際應用場景中80%都是解決這三個問題。

視覺也是人工智慧剛開始時要解決的問題。

視覺研究的發展

視覺的研究主線是怎樣去表示一張照片。有很多方法,比較早期的方法叫分人自知的方法,比如人分為頭、身體、胳膊,頭分為眼睛、鼻子、嘴,整體是由部分組成的,這個方法先後研究了很多年。有很多人工智慧的知識應用在這個方法裡,但是可做的目標有限,對人、手結構性比較好的可以用這個方法,而很多動物上就無法使用。

90年代時,神經網路第一次能夠在小應用上使用。但是很快,研究神經網路方法的人越來越少。 SVMs出來以後,直接輸入進行SVMs訓練,這種方法的結果跟神經網路的方法很相近。可能是由於當時資料級的不敏感,很多方法可能結果都差不多。但是今天神經網路在這上面效果非常好,遠好於SVMs的方法。

還有一些研究影像表示是用學習的方法去學習影像表示,比如右邊,讓機器學習方法來找一些組合,表示出影像,或者是物體。

640?wx_fmt=png

再後來,又新出來一個方法。這個方法是在深度學習之前計算機視覺常用的方法:Features Engineering,這個方法當時是最好的方法。這種方法特色是說Feature人工設計的,後面是SVM,所以大多數做影像分類的都在設計Feature,誰的Feature又快又好,能力又強,誰的方法整體性就好。

這整個體系有個問題。這是一些變化的組合,但是變化的層數比較少,是很短的序列。現在計算機視覺或者是影像視覺是深度卷積神經網路。相對應的兩個非常有反差:短序列手工設計,和長序列非手工設計。

最早神經網路叫做感知機,它只有一層,但當時大家就覺得能解決很多問題。很快就被人質疑,隨後有人提出了多層感知機。

中間很大的里程碑:BP演算法的出現,這個演算法是說怎麼樣自動調整網路裡面所有的引數。這個演算法其實被不同人在不同時間發明。

但它依然沒有興旺起來,原因有兩個:一、存在SVMs這樣的方法,理論又好,效率又好,當時還比不過SVMs這些方法。二、優化很困難,很難呈現結果。

在幾年前,很多人仍然相信:神經網路是不好的,一個非常深的神經網路是不能夠被訓練的。 這個魔咒這些年逐漸被打破了。最早Hinton在1996年的Paper提出了layer by layer和unsupervised pre-training的方法,雖然這些方法今天都不用了,但在當時對大家的一個激勵。還有計算力的進步,計算力不同也會產生一定的區別,最近幾年在Speech、Image、NLP等領域都產生了很大突破。

深度學習

深度學習概念

640?wx_fmt=png

深度學習為什麼叫深度學習?就是因為裡面的層數很多,層數多了就叫深。AlexNet在2012年,做了一個八層的網路。這之前,大多數的網路只有三層,但是這個方法當時是受到質疑的。過了兩年,一個牛津大學的研究組,把深度推到了20層;然後2015年微軟研究團隊做了個ResNet:152層的網路。

網路有多少層數今天已經不重要了,其中的基本思想是:學習一個很深的神經網路,是要學習一個對映。相鄰幾層之間的對映變化不大,這是很直觀的想法。變化不大的話,我們就用殘差學習的方法,不要直接學習重構網路,而是學習它的變化,變化比直接學會更容易。

訓練過程中,是由淺到深的動態。在早期訓練過程中,可能是訓練淺層網路,在後期時訓練深層網路。因為早期淺層網路沒辦法幫助訓練深層網路。

深度學習的效果

這樣的深度演算法網路,有什麼樣的效果?這是ImageNet:史丹佛的李飛飛教授,帶著他的學生建立的資料集。2000多萬張照片,有10幾萬類,這些照片都是從影像中爬下來的,這個資料庫比以前用的更小的資料庫真實,主要在上面做分類。

640?wx_fmt=png

深度學習解決的問題

多層的網路能解決什麼問題?意味著什麼問題?CVPR 2016最佳論文獎,它解決了深度學習的優化問題。雖然說神經網路是一個很古老的技術,但是它在今天可以通用,是中間一點一滴的進步造成的,包括資料越來越大,計算力越來越好。但是做的這個殘差網路是說,這個網路的體系結構要對優化友好。然後結合前人的工作積累在一起,才有了今天可以反覆訓練,效果非常好的系統。

640?wx_fmt=png

這篇論文裡面優化的問題,深度學習的三大問題。

第一個問題是表述能力的問題。也就是這個模型本身有多少能力的問題。

第二個問題是,假如系統有這個能力,演算法能不能找到這個最優解?能把引數調合適嗎?

第三個問題是推廣能力的問題,推廣能力的問題又分成兩類:弱推廣能力和強推廣能力。機器學習研究的基本問題是:訓練資料和測試資料的統計是同分布的。弱推廣能力是指,如果訓練資料和測試資料不同分佈,就不管了。強推廣能力是指,真正理解了這件事情的表示,遇到新的訓練資料集統計、分佈和訓練資料集,也可以去做。

640?wx_fmt=png

去年AlphaZero他們也用了殘差網路來做AlphaZero核心的技術。

視覺發展時間線

640?wx_fmt=png

這是視覺識別常用的從2012年到2016年的網路結構,表現出了影像分類很大的變化,最近的新趨勢是大家逐漸開始用機器來設計這些網路結構。

視覺的檢測

視覺檢測非常有用。幾年前,做人臉、車的識別,能到70、80分;到了今天,我們可以做很複雜的邏輯檢測,訓練資料也是足夠多的。

最近幾年,檢測的趨勢也是設計物體檢測的框架,不光是指神經網路的結構,檢測是更復雜的系統。

640?wx_fmt=png

在2013年神經網路剛出來時,微軟的一個名叫Rose的研究員做了一個方法:檢測在影像中所有位置都讓給CNN。我們之後所有東西都是基於這個思想,這也是物體檢測中,最近幾年最大的突破。

把前面和後面都做反常學習,Feature也重新更新了,效果很好,這就是Fast R-CNN。但是這裡有一個問題:視窗還是人工設計的,其實也很慢。後來我們和Rose合作了第一個N2N的檢測系統,不需要人工設計成這樣的Feature,但框架還是需要設計。

640?wx_fmt=png

後來又更優化了一下,做了一個非常有效的一步法檢測器設計,這個就是Mask R-CNN,目前是最好的物體檢測系統。

640?wx_fmt=png

這是2017年COCO的比賽。在2015年Face++做到37.3;去年做到52.25,得了冠軍。

COCO冠軍

奪到冠軍背後的工作是什麼呢?

我們做了兩個工作: 第一個是Megdet detection,它解決了如何用很多個顯示卡在一起測mini-batch的檢測器問題。第二個是,Light-Head,它重新設計了Fast R-CNN的網路。

注:量子位曾邀請曠視研究院COCO競賽冠軍隊,對相關論文進行解讀,附送四份筆記:

第一期:COCO2017物體檢測論文解讀

第二期:COCO2017人體姿態估計論文解讀

第三期:Light-Head R-CNN論文解讀

第四期:被遮擋人臉區域的檢測技術

計算

ShuffleNet

640?wx_fmt=png

做了一個計算的軸,大家可以看中間是AlexNet,它的趨勢是:越往右,清晰度越高,但是要求的網路計算複雜度越來越大;左邊是低精度的,但是卻是一個很大的需求。

640?wx_fmt=png

針對低精度的運算,Face++去年做了一個工作是ShuffleNet,它是專門解決在低計算複雜度下如何能把精度做到最高程度的問題。ShuffleNet的設計原理是:把輸入的channel拆成很多的組,拆成組以後做channel shuffle的操作,把資訊交換,然後再做一個3D的shuffle卷積,然後再分組卷積。分組卷積可以很有效地降低計算複雜度,但會丟失一些效能,需要自主判斷如何折中。

ShuffleNet有什麼用呢?

舉一個例子,曠視科技的產品:智慧人像抓拍機。這個相機裡面有一塊FPGA的晶片,FPGA上執行著我們ShuffleNet人臉檢測系統,它今天是業界唯一一款可以在高清影像下,每幀都做檢測的一個智慧終端相機。

Brain++

640?wx_fmt=png

今天的GPU、CPU,不管在雲上還是在端上帶來很多變化,我們也很早就注意這方面的變化。Face++做了一個Brain++的一條系統,Brain++是指如果想訓練神經網路,需要有一個GPU叢集,然後需要有擴大的系統來管理這些軟體,中間要有一個叫深度學習框架,比如TensorFlow,而我們做了一套叫Brain++,這是我們自己研製的深度學習框架。

為什麼我們自己要研製一個深度學習框架?

640?wx_fmt=png

一個原因是歷史原因。當時TensorFlow還沒出現,當時只有像caffe的第一代系統。現在的系統都是基於計算圖做的,設計已經完全不一樣了,我們當時自己做了一個框架,TensorFlow出來之後,大概也是類似的。

這也是公司的風格,要很系統化的做事情,應該是所有創業公司中唯一一家自研深度學習引擎並且全員使用,這兩個條件是並列的關係。

640?wx_fmt=png

也有很多應用,最重要的是人臉識別,這也是最早商業落地的應用。人臉識別以前是傳統方法,現在是兩種formulation來做。

基於人臉技術能做什麼呢?

640?wx_fmt=png

Face++前幾年做了一個人工智慧開放平臺,把我們很多這樣的能力都開放出來,放到雲上,這個比微軟、谷歌都更早一步。目前有幾十萬的開發者使用者來使用這樣的服務,超過一半的使用者都是海外使用者。

1:1的人臉驗證應用在很多地方,Face++的Face ID身份認證服務,有非常多銀行的、網際網路金融的、出行的客戶。

640?wx_fmt=png

人臉是一個很小的部分,其中更大的應用就是城市大腦。城市大了,感知資料以後可以把這些感知資料形成有效的資訊提取出來然後參與決策,不管是對政府還是對商業都是需要做,如果在街面的話可能是公共安防,如果市內的話可能就是商業、零售、地產。

雷鳴對話孫劍

640?wx_fmt=png

你怎麼看CV一些傳統的方法,和現在深度學習的方法?以前的演算法在深度學習中的貢獻有多大?

今天我講的是影像理解、影像識別的主要內容,其實CV領域包含的內容非常多,其中一大塊就是3D,這個領域還是沒有被深度學習所統治,甚至短期內可能也統治不了。它的基礎是幾何,像IPhone X其實也是3D成像的一個過程。

還有一方面叫做初期視覺,比如說把這張照片解析度提高,把顏色調好。這一塊現在處於混合狀態,有很多傳統方法在這種情況下起到很大的作用。

當然有新一代的方法出現的話,這些新的方法是誘變的,那可能是更健康的狀態。

深度學習沒有很強的可解釋性,會不會對深度學習的應用上帶來潛在的風險?

這是兩方面,一方面是說,在我們實際應用中還沒出現這樣的對深度學習攻擊的情況,比如說修改圖片,很小修改就能夠騙過我們的系統產生錯誤的輸出,這個叫做對抗樣本,對抗樣本也有很多情況:有一種是,它知道這個是系統什麼樣的設計;一種是不知道你的系統是什麼樣的設計。目前還沒有真的出現大規模,連小規模都沒有出現過真的有人來攻擊系統的情況。

第二個從方法本身來說,這並不是深度學習特有的問題,即便是一個先進的照片儀器,也依然會有這樣的對抗樣本出現。只是說大概以前對深度學習關注不夠,現在大家有了更多的關注。

現在其實都處在論文狀態,沒有真正地有這樣實際的驅動力量做這件事情。

過去很長時間的進展都在圖片時代,但現在在逐漸進入視訊時代,那視訊處理上現在有些什麼進展?未來在視訊的理解、追蹤、分類、感知、描述等等這些方面會有哪些進展?

視訊做得比較多的是:把一段視訊裡做的事情分類。比如這個場景是在彈琴,還是做體育運動。這裡面有一個基礎方法是:對每張照片分類,然後把每張照片的分類結果加權在一起取一個平均,得出分類。我覺得這個分類還不夠難,分類的類數還不夠多,深度學習可能沒有很好地挖掘視訊裡面的資訊,通過圖片的幾個分類就做好了。

但是細小的分類是難度很大的,比如區別兩個視訊的舞種。

目前像抖音、快手,有一些視訊分類的需求,主要是推薦、整理,在這些方面的話,還沒有很好地驅動出更不一樣的方法出現。

再深入的話,就是對裡面每個運動的物體能夠很好地定位、跟蹤,比如說知道一輛車是從左邊出來的,中間被另外一輛車擋住了,停留5秒鐘又出來還是那輛車,這種整個的分析系統會涉及到很多的關聯、推理、預測的問題。

你以前在微軟研究院其實待了挺長時間,研究院的環境可能還是相對比較寬鬆,後來到了Face++,這個轉換過程你有什麼體驗?有什麼變化嗎?

在微軟研究院也做很多產品相關的事情,我自己研究的信念是:理解研究的問題,一方面把研究做好,一方面把研究的商業做好。所以對我來說的話,從微軟到Face++,打造好Face++研究院的環境,我做的事情是非常類似的,只是說現在在實際應用中,看到了更多的問題。

如果環境太寬鬆,可能看到的都是學術界的一些問題,在產業的研究院中可以看到更多的問題。

另外,創業公司研究院第一任務是:這個研究需要有市場競爭力。以前我會覺得技術差不多就行,95和97是差不多的,已經能用了,使用者體驗可能也差不多。我到了創業公司研究院第一件事情就是,基礎一定要做好。今天有研究院的公司大多數是To B的,這個技術給另外一個企業來用的,他們用這個技術做一個產品,當然會選擇最好技術,哪怕就差2%,也希望能用最好的技術,很多時候不是錢的問題,是心理的問題。

在曠視,科研、工程包括還有產品,這些團隊怎麼能夠無縫合作?會不會有一些矛盾?

這個是大的問題,大概會分成幾塊,研究院生成演算法,需要模型檔案,我們公司有專門的平臺業務組,把這個模型做成在各個平臺上用的SDK,然後產品組會在這些在不同的平臺上加邏輯、場景應用,做出10個產品,這樣相對就做了一定的結果化,這樣的話大家效率會更高一些。

現在人臉識別應用非常廣泛,未來再看三五年的話,從視覺落地的角度,你覺得在哪些大的領域會發展很快,尤其在落地的速度上、影響上,或者從商業的價值上會大行其道?

這個方面的話大概有兩個軌跡,一個是哪個行業,哪個行業落地更容易,哪裡攝像頭最多,哪些產品是我們最去想,所以我們就應該以這樣的軌跡去考察我們現在的產品。當然公司對場景發生的週期判斷是不一樣的,可能是對,也可能是錯。

從現在實物上還是能看到除了基於人臉身份的識別和認證,從安防到身份鑑別領域用得特別多,也挺方便的。

另外像無人車、無人機、物流機器人這一類的應用還是蠻大的。

然後是在視覺醫學上有些應用,也發展得也還算比較迅速。

作為一個學生,如果將來想從事視覺領域的一些工作,更多的是科研或者創業的,那現在應該怎麼去對未來做一些準備?應該做一些什麼事情將來進入到產業的時候能夠做鋪墊?

兩個方面,一方面就是說,趁現在讀一些書,然後看一看都可以做哪些事情,幾本書我推薦一下,一是微軟的研究人員寫的一本書叫做《計算機視覺》,它是講計算機視覺很多的演算法,大家通過這本書可以瞭解,不是今天大家關心深度學習才是全部,其實還有好多其他的。

另外一本是《深度學習》,這本書翻譯的團隊是北大的張志華教授的團隊,張志華教授是我師兄,我自己的機器學習理論跟張教授學的,我相信這本書翻譯的質量是過關的。

最後,建議大家去公司實習。Face++離北大挺近,大家可以來交流一下。(笑)

下期預告

下週三晚18:40,北京大學“人工智慧前沿與產業趨勢”第四講,將由英特爾中國研究院院長宋繼強為大家授課。

感興趣的小夥伴可以新增量子位小助手:qbitbot3,備註“北大”,通過後可進入課程活動群,獲取每期課程資訊,與其他小夥伴互動交流。

祝大家聽課愉快~

學習資料

在量子位微信公眾號(QbitAI)介面回覆:“180316”,可獲取本次課程的視訊回放連結。

加入社群

量子位AI社群15群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot6入群;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進群請加小助手微訊號qbitbot6,並務必備註相應群的關鍵詞~通過稽核後我們將邀請進群。(專業群稽核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態


相關文章