每日最新頭條.有趣資訊

曠視首席科學家孫劍:電腦視覺的變革和挑戰

主講人:孫劍 | 曠視科技首席科學家

屈鑫 編輯整理

量子位 出品 | 公眾號 QbitAI

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

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

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

課程導師:雷鳴,天使投資人,百度創始七劍客之一,酷我音樂創始人,北京大學信科人工智能創新中心主任,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的方法。

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

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

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

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

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

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

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

深度學習

深度學習概念

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

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

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

深度學習的效果

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

深度學習解決的問題

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

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

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

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

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

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

視覺發展時間線

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

視覺的檢測

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

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

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

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

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

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

COCO冠軍

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

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

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

計算

ShuffleNet

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

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

ShuffleNet有什麽用呢?

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

Brain++

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

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

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

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

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

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

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

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

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

雷鳴對話孫劍

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

獲得更多的PTT最新消息
按讚加入粉絲團