R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

「R Talk 」是一個深度學習專欄,將通過不定期的推送展示曠視科技的學術分享及階段性技術成果。「R」是 Research 的縮寫,也是曠視研究院的內部代號;而所有「Talk」都是來自曠視 Researcher。「R Talk 」旨在通過一場場精彩紛呈的深度學習演講,拋磚引玉,推陳出新,推動中國乃至全球領域深度學習技術的大發展。近日,2018 全球人工智能與機器人峰會(CCF-GAIR)在深圳盛大召開。作為中國人工智能和機器人學術界、工業界及投資界三大領域的頂級交流盛會,CCF-GAIR 2018 旨在打造國內人工智能領域最具實力的跨界交流合作平臺。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

6 月 30 日,計算機視覺專場舉行,會場現場爆滿,議題同時涵蓋計算機視覺技術的前沿研究動態與相關的具體落地方向,不少聽眾站著聽完了長達數小時的分享。曠視科技首席科學家、研究院院長孫劍博士為大家帶來題為 “雲、端、芯上的視覺計算”的精彩 Talk。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

孫劍博士在 CCF-GAIR 2018 現場演講

孫劍認為,計算機視覺簡單講就是使機器能看,曠視科技希望能夠做到“賦能億萬攝像頭”,讓應用在所有領域的攝像頭都具備智能,不管是在雲、端還是在芯上。

計算機視覺的發展史就是研究如何表示圖像的歷史。深度學習流行之前,最好的辦法是基於特徵的,從圖像裡抽取特徵,再進行分析;但是這個方法有兩個大缺點:首先,該方法完成的非線性變換次數非常有限;其二,大多數參數都是人工設計的,包括 Feature。

深度神經網絡的辦法彌補了手工設計特徵的缺陷,整個非線性變換可以做非常多次,換句話說可以很深,所以特徵表示能力非常強,並且可以自動地聯合訓練所有參數。孫劍在微軟時提出 152 層的 ResNet,第一次在 ImageNet 大規模圖像分類任務上超過了人的能力。

接著,孫劍從計算機平臺的角度對出現的各種神經網絡結構進行了分類:GoogleNet、ResNet 在“雲”上;MobileNet 以及曠視提出的 ShuffleNet 屬於“端”這一類;BNN、XNOR Net 和曠視提出的 DorefaNet 則是在“芯”上。針對目前分平臺設計相關網絡的現狀,孫劍相信未來會有一個“MetaNet 出現,能夠統一解決各個平臺上的神經網絡設計和優化問題”。

最後,孫劍簡單介紹了曠視在雲、端、芯三個平臺上的計算機視覺應用,包括人臉識別、車輛識別、人臉支付、智慧安防、智慧金融、城市大腦、倉儲物流、新零售等。

以下為孫劍 Talk 全文,本文進行了不改變原意的編輯。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

目前人工智能一般劃分為感知和認知兩塊,這一張圖可以看到計算機視覺在人工智能領域所處的位置,綠色表示技術上有重大突破或者應用落地相對成熟、橙色和黃色表示還需重大突破。

曠視科技成立至今已經 7 年,一直專注於計算機視覺領域。去年,曠視獲得了兩個非常好的榮譽,MIT 評選的 2017 年度十大突破性技術中曠視科技的“刷臉支付技術”榜上有名,這是中國公司的技術第一次獲此殊榮;MIT 也將曠視列為 2017 年度全球五十大最聰明公司的第 11 位。曠視去年也完成了新一輪 4.6 億美金的融資,用於做更好、更深入的研究和商業落地。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

簡單來講,計算機視覺就是讓機器能看。曠視科技自創立就一直在回答“如果機器能自動理解一張圖像或者一段視頻,我們能做什麼?”這個問題。當然這麼說比較抽象,其實具體講我們想做的是“賦能億萬攝像頭”。日常生活和各個行業中有很多的攝像頭,比如說手機、安防、工業、零售、無人車、機器人、家庭、無人機、醫療、遙感等等。在這些地方,大多攝像頭還沒智能化,我們的使命是使這些攝像頭有智能,不管是在雲、端還是在芯片上;我們要構建智能大腦來理解智能攝像頭輸入的大量信息。

相對於語音識別來說,計算機視覺應用面非常廣泛。語音識別的輸入和輸出較為單一,核心目標是把一段語音變成一句文字。但計算機視覺系統的輸出要豐富很多,你需要知道圖像/視頻裡面的物體、運動、場景,其中有什麼人、人的位置、行為、表情、注意力等等。你會在不同行業或場景中面臨各種各樣不同的任務,這也讓計算機視覺成為一個很大並增長很快的學術領域(今年計算機視覺年會 CVPR 參會人達到近 7000 人),也誕生出眾多的優秀創業公司。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

計算機視覺的核心問題包括分類、檢測、分割,分別是對一張圖、一張圖的不同區域和一張圖的每個像素做識別。另外如果輸入的是視頻,我們還需要利用時間關係做識別;其中最核心的是分類問題,因為它是後面三個任務的核心和基礎。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

其實,人工智能一出現時,計算機視覺也誕生了。計算機視覺有一個先驅人物叫 David Marr,他在 80 年代初期提出了 Primal Sketch 方法,以及一個研究計算機視覺的大框架,認為圖像應該先檢測 Edge,然後出 2 ½ D sketch 和 3D 模型。但是 MIT 教授 Marvin Minsky 批評說你這個理論很好,但是忽略了核心問題的研究——如何表述一張圖像。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

計算機視覺的早期圖像表示模型是 Part-based,比如人體可以分解成頭、胳膊、腿;人臉可以分解成眉毛、眼睛、鼻子,這樣就可以通過 Part 這種組合式的方法表示物體。如果一個物體有結構,這種組合式方法很合適,但很多自然場景的物體沒有這麼強的結構就不合適了。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

80 年代,早期的神經網絡也成功運用在人臉和手寫數字識別上,但是僅限於這兩個領域。2001 年有一個叫作 Viola & Jones 的人臉檢測的方法,它先是定義一組 Haar 小波基,然後通過機器學習的方法學習 Harr 小波基的組合來表示圖像。這個方法的好處是引入學習來構造圖像表示,壞處是它限定在這個小波基上,對有結構的物體做得好,對沒有結構的物體就不一定合適了。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

大概在 2000 - 2012 年,在深度學習之前最流行的表示是 Local Feature-based。該方法從一張圖片裡面抽取數百個 Feature,去人工形成一些諸如 SIFT/HOG 的 Descriptor,編碼獲得高維向量之後,再送給 SVM 分類器,這是深度學習之前最好的方法。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

對人臉也類似。我以前的研究組也用同樣方法做過人臉關鍵點抽取,獲得高維 Feature,這也是當時最好的人臉識別方式,但是它有兩個大缺點:第一,這個方法整體上是從輸入向量到另外高維向量的非線性變換,這個向量的變換次數是有限的,如果真正算它的非線性變換也就三、四次,變多了是不行的,性能不會提高;第二,其中大多數參數是人工設計的,包括 Feature,但人設計複雜系統的能力是有限的。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

今天的主流方法是深度神經網絡,這兩個特性就被改變了,整個非線性變換非常長,可以做非常多次,所以系統的表示能力非常強;第二是所有的參數聯合訓練。這兩點讓深度神經網絡真正能夠取得非常好的效果,也包括當時我們在微軟提出的 152 層的殘差網絡 ResNet,第一次在 ImageNet 上超過了人的性能。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

ResNet 為什麼能夠工作呢?到今天也沒有一個明確答案,當然有很多解釋。最直觀的解釋是說當你的非線性變換層數非常多,相鄰兩層變換的差別就非常小,與其直接學習這個映射,不如學習映射的變化,這樣的方式就讓整個學習過程,特別是訓練優化過程變得更容易。

還有一個解釋來自該論文(Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun. Deep Residual Learning For Image Recognition. CVPR 2016.)的第二作者張祥雨,他認為 ResNet 的整個學習過程是一個由淺到深的動態過程,在訓練初期等效訓練一個淺層網絡,在訓練後期等效訓練一個深層網絡。

論文第一作者何愷明有另外一個更“科學”的解釋,他認為整個訓練過程相當於深度學習的梯度下降過程中,最為困難的梯度消失問題被 ResNet 解決了,該解釋也發表在 ECCV 2016 的一篇論文(Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Identity Mapping in Deep Residual Networks. ECCV 2016.)中,並在該論文中第一次訓練了一個 1001 層的神經網絡。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

還有一些同行提出的解釋。一種是把 ResNet 和 RNN 關聯起來,認為如果有 Weight Share, ResNet 可以看作是一種 RNN。還有一種解釋把 ResNet 看成是指數多個不同深度網絡的集成。用“集成”這個詞其實有些問題,因為一般我們做集成算法不聯合訓練,但這裡面整個 ResNet 裡指數多個網絡是聯合訓練的,所以很難定義它是不是集成。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

我個人比較認同的一種解釋是 Iterative Refinement,它是說網絡初期的層學習表示,後期很多層不斷迭代和 Refine 這個表示。這跟人理解看圖識字很相似,一個不容易理解的東西你要看一會,是基於當前一些已看內容的理解,反覆看才能看懂。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

還有從從優化觀點的解釋,如果不用 ResNet 這種構造,系統的損失函數會非常坑坑窪窪和高低不平,所以很難優化。我們知道整個網絡訓練是非凸的優化問題,如果是這種不光滑的損失函數,訓練很難跳出局部極小;如果是上圖右邊使用 ResNet 的情況,就可以比較容易地達一個很好的局部極小。最近研究表明,局部極小區域的面積和平坦性和一個方法的推廣能力非常強相關。

多層 ResNet 學習高度非線性映射的能力非常強。去年,ResNet 成功應用於 DeepMind 的 AlphaGo Zero 系統中,用 一個40 或 80 層的網絡就可以學到從棋盤圖像到落子位置這樣一個高度複雜的映射,這非常讓人吃驚。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

2012 年開始有各種各樣的神經網絡結構出現。如果從計算平臺的角度看這些工作,大概可以分成三類:第一類是在“雲”上,像 GoogleNet、ResNet,其目標是向著最高精度方向走,有 GPU、TPU 可以訓練非常大的模型,來探知我們的認知邊界;第二類平臺是在“端”上,特別是一些嵌入式設備,這些設備上的計算能力,內存訪問都有限制,但很多真實的場景就是如此,那你怎麼去做這上面的研究工作呢?谷歌在去年提出 MobileNet 運行在移動端設備上,曠視科技去年提出 ShuffleNet,其目標是說如何在一個給定計算量的設備上得到最好的效果。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

一個網絡的最基本結構是多個 3×3 的卷積,ResNet 加了一個跳轉連接,我們在 ResNet 中還引入一個 Bottleneck 結構,先做 1×1,再做 3×3,再回到 1×1,這樣可以提高卷積的效率。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

去年何愷明有一項工作叫 ResNeXt,它在 3x3 的基礎上引入分組卷積的方法,可以很好地提高卷積的有效性;谷歌的 MobileNet 是一個 3x3 分層卷積的方式,每個層各卷各的,這種方式非常有效,特別是在低端設備上。ShuffleNet 結合分組卷積和分層卷積的思想,對 1×1 Conv 分組;但是如果只分組的話,組間的信息不會交換,這樣會影響特徵學習,因此我們通過引入 Shuffle 操作,讓不同分組的信息更好地交換,然後做 3×3 的分層卷積,再回到 1×1 分組卷積,這就是 ShuffleNet 的核心思想。和其它方法相比,在相同的精度下,ShuffleNet 在真實設備上的速度要比 AlexNet 快 20 倍左右。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

這是我們去年專為手機設計的 ShuffleNet,它在 CPU/ARM 上效果非常好;如果在 GPU 上,它的性能並不好,因為 CPU 和 GPU 的特性不太一樣,這裡面有很多原因,比如卷積的設計,Group 卷積等等,我就不贅述了。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

今年我們設計了 ShuffleNet v2,也就是第二版,拋棄分組卷積的思想,引入 Channel Split 和 Channel Shuffle 組合的新方法。這個方法把 Channel 先一分為二,並把每個分支用非常簡單的結構來做,然後在用 Shuffle 操作合併 Channel,這樣做的根源是我們在網絡設計中發現的一些基本指導原則,比如說我們需要平衡的卷積而不是稀疏的卷積,更加規整的卷積而不是零亂的卷積。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

這項工作目前在 CPU 和 GPU 上都獲得了最好的精度和速度;不光在小模型,在大模型上同樣取得了非常好的效果,上圖最後一行是說 ShuffleNet v2 目前在計算量只有 12.7G Flops 情況下在 ImageNet 上取得了非常高的精度。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

我們還需要將神經網絡運行在芯片上,這不光對網絡結構設計有要求,還要對網絡內部精度的表示做限制,現在最流行的方法是做低精度化,比如 BNN 和 XNOR Net,還有曠視科技提出的 DorefaNet。低精度方法是指神經網絡的權重或激活值用低精度表示,比如 1 位,2 位,4 位。如果可以用低精度表示兩個向量,那麼卷積計算就可以通過芯片上非常簡單的位運算完成計算。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

我們提出的 DorefaNet 是第一個對梯度也做量化的研究工作,從而可以讓我們在 FPGA 甚至 ASIC 上訓練。在這些設備上計算量是一方面,但是它的內存訪問限制更大,DorefaNet 這種方法可以做到更好。上圖是我們在 ImageNet 上得到的 1 位,2 位,4 位和 6 位量化精度下的最好分類結果。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

上述分類問題網絡設計需要考慮不同的平臺,其它問題多是以分類為基礎,比如說檢測,上圖是檢測最近幾年的發展路程,從 R-CNN 到我們提出的 SPP-Net,到 Fast R-CNN,再到我們提出的 Faster R-CNN,它們都是先應用基礎分類網絡,然後構建不同的物體檢測框架。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

檢測方面的目前最有權威性的競賽是 COCO,檢測精度用 mAP 來表示,越高越好。2015 年我們在微軟亞洲研究院用 ResNet 做到了 37.3,曠視研究院去年參加了這個競賽,取得第一名的成績 52.5(滿分 100 分),又推進了一大步。我們獲得 COCO 2017 冠軍的論文是 MegDet。COCO 可以對人進行檢測,也可以抽取特徵,我們也在研究後者的工作(Yilun Chen, Zhicheng Wang, Yuxiang Peng, Zhiqiang Zhang, Gang Yu, Jian Sun. Cascaded Pyramid Network for Multi-Person Pose Estimation. CVPR 2018.),提取人體骨架,通過骨架表示人體運動,進行行為分析,這樣比直接分析圖片進行行為訓練更為有效。

最後介紹一些我們做的基於雲、端、芯上的商業應用。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

在雲上,曠視科技最早推出了面向開發者的 www.faceplusplus.com 的 AI 雲服務。第二個雲服務產品是 www.FaceID.com,這是目前最大的在線身份認證平臺,為互聯網金融、銀行、出行等行業提供在線身份認證服務。第三個非常大的雲服務產品是城市大腦,它的核心是通過很多的傳感器,獲取大量信息,最後做出決策。視覺是目前最大的一個感知方式,因為中國有非常多的攝像頭,通過賦能這些視覺傳感器,我們可以知道人和車的屬性,瞭解交通和地域情況。其中一個很重要的應用是公共安防,即如何用賦能億萬攝像頭來協助城市安全和高效運轉。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

在端上的應用更多,第一個就是手機。vivo V7 是第一款海外上市旗艦機,搭載了我們的人臉解鎖技術,還有小米 Note 3 的人臉解鎖。我們幫助 vivo 和小米在 iPhoneX 發佈之前推出了人臉解鎖手機。華為榮耀 V10 和 7C 手機同樣使用了我們的技術。華為為什麼請孫楊做代言人?因為他長期游泳,指紋已經磨光了,必須用人臉解鎖才能很好地使用手機。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

不光是人臉解鎖,還包括人臉 AI 相機的場景識別,實時知道你在拍什麼,更好地調節相機參數,還可以做人臉三維重建,自動實現 3D 光效。另外一個很有趣的應用是深圳和杭州的肯德基旗艦店,消費者可以直接刷臉點餐,這些圖是我在現場刷臉支付喝到一杯果汁的過程。第二個是新零售,藉助圖像感知系統,能把線下的人、貨、場的過程數字化。線上零售是數字化的,可以根據數字化的用戶統計信息或者個人信息做用戶畫像、大數據分析,幫助提升新零售效率。我們在線下零售,需要用圖像感知來做數字化。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

最後是芯片。我們去年在安防展發佈了一款智能人像抓拍機——MegEye-C3S,把 DorefaNet 跑在 FPGA 上,再放到相機裡,這是業界第一款全畫幅(1080p)、全幀率(30fps)人臉實時檢測抓拍機。

R Talk|曠視科技首席科學家孫劍:打造雲、端、芯上的視覺計算

再往下應該怎麼做呢?今天我們是分平臺,根據平臺的特性設計不同的網絡。我們相信下一代會有一個“MetaNet”,統一解決各個平臺上的神經網絡設計和優化的問題。

謝謝大家。


分享到:


相關文章: