當前位置:
首頁 > 新聞 > 曠視科技首席科學家孫劍:如何打造雲、端、芯上的視覺計算

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

雷鋒網按:2018 全球人工智慧與機器人峰會(CCF-GAIR)在深圳召開,峰會由中國計算機學會(CCF)主辦,雷鋒網、香港中文大學(深圳)承辦,得到了深圳市寶安區政府的大力指導,是國內人工智慧和機器人學術界、工業界及投資界三大領域的頂級交流盛會,旨在打造國內人工智慧領域最具實力的跨界交流合作平台。

6 月 30 日,計算機視覺專場舉行,會場現場爆滿,不少聽眾站著聽完了長達數小時的演講。上午場的議題為「計算機視覺前沿與智能視頻」,由香港科技大學助理教授、RAM-LAB 主任劉明擔綱主持。在他的串聯下,香港科技大學教授權龍、曠視科技首席科學家、研究院院長孫劍、雲從科技聯合創始人姚志強、臻識科技 CEO 任鵬、雲飛勵天首席科學家王孝宇以及商湯聯合創始人林達華等學界、業界大咖進行了 6 場深度分享,既有計算機視覺技術的前沿研究動態,也有相關技術落地的具體方向。

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

曠視科技首席科學家、研究院院長孫劍博士為大家帶來題為 「雲、端、芯上的視覺計算」的精彩演講。孫劍認為,計算機視覺簡單講就是使機器能看,曠視科技希望能夠做到「賦能億萬攝像頭」,讓應用在所有領域的攝像頭都具備智能,不管是在雲、端還是在芯上。

計算機視覺的發展史就是研究如何表示圖像的歷史。深度學習流行之前,最好的辦法是基於特徵的,從圖像里抽取特徵,再進行分析;但是這個方法有兩個大缺點:首先,該方法完成的非線性變換次數非常有限;其二,大多數參數都是人工設計的,包括 Feature。深度神經網路的辦法彌補了手工設計特徵的缺陷,整個非線性變換可以做非常多次,換句話說可以很深,所以特徵表示能力非常強,並且可以自動地聯合訓練所有參數。孫劍博士在微軟時提出 152 層的 ResNet,第一次在 ImageNet 大規模圖像分類任務上超過了人的能力。

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

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

以下為孫劍演講全文,雷鋒網進行了不改變原意的編輯。

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

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

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

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

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

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

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

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

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

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

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

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 層的神經網路。

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

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

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

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

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

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

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

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

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

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

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

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

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

檢測方面的目前最有權威性的競賽是 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.),提取人體骨架,通過骨架表示人體運動,進行行為分析,這樣比直接分析圖片進行行為訓練更為有效。

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

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

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

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

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

謝謝大家。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

CVPR 2018 中國論文分享會之「視覺與語言」
雲天勵飛首席科學家王孝宇:AI 從學術到產業,我的所做所想

TAG:雷鋒網 |