閱讀719 返回首頁    go 阿裏雲 go 技術社區[雲棲]


大咖|英特爾中國研究院院長宋繼強:我們是如何與李宇春打造全球第一支三維人臉特效的音樂視頻的

387d7ace9f0ef9e91a98bd32634a7b72b8dab0f4
上個月底,李宇春一支據說籌備時間長達6個月的mv正式發布。這首基於英特爾人工智能技術的MV,將電子曲風的浪漫情歌與尖端科技結合,一上線即火遍全網。在11月15日剛剛結束的2017英特爾人工智能大會上,英特爾中國研究院院長宋繼強揭秘了這支有三維人臉特效的音樂視頻是如何實現的。

此外,英特爾全球副總裁兼中國區總裁楊旭本次大會上宣告了英特爾在人工智能領域的三大戰略方向:創新技術、廣泛合作、推動應用。本次大會以全棧作為核心關鍵詞,發布了從前端到後端的一係列最新研究成果。

e92dc84691882b49554d563555d8c14226ac2e09

例如,英特爾在近期推出了BigDL,這是一款可以幫助開發者在基於Apach Spark大數據集群上構建深度學習應用的軟件框架,能夠和大數據生態係統中很多其他組件,比如說分布式的存儲、SQL的查詢、流式計算、圖式計算等等結合在一起,從而將深度學習技術和基於英特爾架構的大數據分析平台相結合,使得深度學習更方便地被應用在大數據和數據科學社區。

英特爾也為業內提供了強大的整體性的軟件優化,例如MKL-DNN、DAAL函數庫,針對TensorFlow、Caffe、Theano、CNTK等框架的支持和優化,以及平台層麵的Saffron等創新應用,正在讓基於英特爾架構開發和部署AI成為每一家企業或者服務提供商都輕而易舉可以達成的目標。

技術研發方麵,英特爾中國研究院院長宋繼強在本屆AI大會上做了題為《人工智能前瞻性研發》的演講。在演講中,他介紹了上個月英特爾與李宇春合作發布的第一支有三維人臉特效的音樂視頻是如何實現的。這基於英特爾中國研究院過去幾年研究的一整套人臉分析技術的算法框架,包括從二維的人臉圖像中提取出特征點,特征點進一步分析識別出人的屬性、身份和麵部表情。

宋繼強還重點介紹了英特爾推出的業內首款可以自我學習的芯片Loihi芯片。這是英特爾推出的業內首款可以自我學習的芯片,可以幫助我們解決很多具備挑戰性的問題,比如圖像的稀疏編碼,對於複雜約束的滿足,比如做填字遊戲、速讀,複雜模式的匹配、動態學習和適應的過程,IT係統怎麼可能快速適應各種變化場景。這一產品和馮諾伊曼架構完全不同。而且它會直接受益於摩爾定律的推動。很小的芯片上可以做更密的神經元,功耗更低。

以下為宋繼強演講速記,大數據文摘在不改變願意的前提下做了部分刪改。

剛才我們的同事分享了英特爾現有的一些產品和方案,我作為研究院的科學家,給大家分享英特爾在人工智能方麵的一些前瞻性的研究。

現在人工智能定義範圍內是要解決設備怎麼自主的跟人交互的整個過程,包括從感知世界到能夠理解世界和作出相應的反饋。作出反饋最後靠的是終端的設備,而不是靠雲端的大腦,如何能把人工智能這些算法的創新很好的應用到前端設備裏麵去是一個很重要的問題。先看一個例子。

李宇春大家都認識,是年輕一代的偶像,她和英特爾聯合打造了全球第一支有三維人臉特效的音樂視頻,這裏應用了英特爾在消費級機器上,比如家裏的PC、筆記本電腦可以用到的三維人臉實時追蹤重建的技術,可以在臉上做出很多有趣的特效。

9f58362fe7f632a5b9d56fc754bcb131086311bc

圖:李宇春的新歌《今天雨,可是我們在一起》的MV裏,和英特爾聯合打造了全球第一支有三維人臉特效的音樂視頻

大家自己也可以體驗,怎麼樣在一台PC上就可以完成在你臉上疊加各種三維特效。這是消費級電腦上實現的。這件事情我給大家拆解一下,這一個技術能體現到今天的效果是經過了好幾年好多個步驟的研究。英特爾中國研究院過去幾年研究了一整套人臉分析技術的算法框架,包括從二維的人臉圖像中提取出特征點,特征點進一步分析識別出人的屬性、身份和麵部表情。

我們簡單分成三個步驟:

第一階段FA1.0(Face Analytics), FA是人臉分析的縮寫。最開始用簡單算法做簡單的事情,這時候是比較常用的手工定義特征的方法,能夠做麵部的屬性識別,性別、年齡、是否在微笑。

第二階段我們引入深度學習。同時和英特爾處理器架構結合,在英特爾的消費級設備上做到人臉檢測、跟蹤、識別並做動態表情的識別,這些都是在二維裏麵做的。

到3.0版本提升到三維。可以從二維圖像甚至單張圖像重建一個三維人臉,三維人臉上想疊加什麼疊加什麼。

三維人臉也是需要很多的訓練。這樣一張臉是通過很多的三維人臉的模型訓練出來的參數話的可變形人臉模型,300多個參數控製人臉的變形,可以變成李宇春的臉也可以變成我的臉,隻需要控製參數。怎麼樣從二維人臉中提取特征映射到三維人臉的參數空間把它變成你想要的臉呢?這個就通過我們最近新研發的一套深度學習的算法,用幾十萬張圖片訓練出來。能夠做到普通的PC上也可以把這件事情做好。這樣一個功能可以用在虛擬現實、增強現實、3D遊戲裏很多場景。

人臉技術已經分階段應用在英特爾不同種類的產品,包括英特爾集成顯卡的加速部件、我們實感技術的SDK,還有一些前端設備的應用,比如說人臉美化應用,另外還有產業級的端到端的解決方案的應用,所以是非常多的應用領域。

我們現在知道了人臉上的部件是怎麼動的,眉毛上揚,嘴角下撇,這些代表什麼意義呢?這些代表了人的表情,我們在未來的智能設備和人交互的過程一定要了解人的情感,如果不了解人的情感怎麼做好場景相關的交互。所以多模態的情感識別方麵我們做了很長時間研究,多模態是不僅看視覺信息,還看聲音、文字的相關信息。早期我們也是從傳統的技術入手,用手工特征提取方式做了一套運動單元感知特征,也就是說它不是標準照標準視野讓你看人的表情是日常的場景甚至電影場景有遮擋、有陰暗,仍然把人臉表情識別出來,這個比賽在2015年參加的時候我們拿到第一名,這是非深度學習算法。2016年我們把深度學習的網絡植入,這時候我們拿到第二名,我們速度比別人快100倍,基於這樣的結果我們得到了最有影響力的論文獎。今年我們參賽的時候我們用新的算法,及格了,我們把準確率提到60%以上,比我們自己提高了5.5%。

這個新的解決方案我們到底加入了什麼呢?聚合監督情感識別算法,這個聚合監督什麼意思?如果說我把深度學習的一些模型放到情感識別這個領域裏麵來,精度是靠訓練過程反複訓練得到的,如果按照傳統方式隻在輸出層提供監督信號往回訓練,可能訓練效果不是那麼好。所以我們做了一些創新,在它的網絡淺層、中層和底層分別輸入,分別提供監督信號。同時把不同層反饋回來的評分做了概率融合。這樣訓練效果會比別人好很多。這樣的結果讓我們現在處於這個領域的世界前列。

大家聽說過很多關於ImageNet比賽,它是用很大的、上千萬級別的圖像去訓練,也是訓練出很大的深度的神經網絡,這個網絡的效果權衡好。2015年,當時是領先的,微軟提出了一個152層,現在領先的視覺公司都說千層以上,而且很寬,那意味著這樣的網絡模型訓練出來以後計算的複雜度、空間複雜度都很大,沒有辦法放在前端設備上用。其實就要靠模型去壓縮,也就是說訓練出一個大模型後想辦法在保持精度基本不變的情況下壓小,再部署到前端設備商。壓縮有很多種方法,英特爾研究院的方案是采取了低精度深度壓縮三部曲,獲得了百倍壓縮比,性能接近無損。第一步給網絡調結構,網絡的連接結構不重要或者根本不需要的邊去掉,我們說它是“動態網絡手術”,動刀以後再來第二步,現在深度神經網絡的模型的參數、權值都是浮點,比如32位浮點,這樣存儲要大,計算也要浮點運算,能把它變成定點或者幾位的Bit更好,怎麼做?很考驗算法功力,我們有一個INQ漸進式的網絡量化方法,第三步我們再把結構參數通過變長編碼的方式壓縮,同樣可以進一步降低模型的尺寸。時間關係,我隻講INQ的步驟。

6fcf520d67c1d280eb669a24cf248dad3a081097

這樣魔方一樣的網絡模型,很多參數,這些參數初始狀態都是浮點類型。可以先把參數用一種方案做一個劃分,選出來一部分灰色的量化,量化成2的冪次。我要保持綠色的量化部分不變,然後訓練量化的部分。訓練好以後,第一階段再把剩下的灰色部分再選一半再重新訓練,最後全部訓練成綠色的,也就是說所有的參數都是2的冪次。通過這種方式訓練速度很快,它的精度基本無損。而且跟什麼網絡沒有關係都可以拿來壓縮,對於前端可訂製的軟件來講可以直接移位,我們知道2的冪次在電腦裏非常容易用移位計算。這樣組合起來就達到了非常好的結果。

從5bit量化結果來看,每一行的第二小行是加黑,bit位寬是5,原來32的是原本的參考,每一個都比原來的要小一點,也就是錯誤少。也就是說經過這樣的訓練壓縮以後,精度不降反而升了,如果進一步再壓縮到3或者2的時候仍然可以拿到不錯的效果。可能2的時候精度稍微下降,但是2的時候它的尺寸會壓縮很多。同時整合起來看,在其他模型方案上我們比他們也有很好的壓縮,我們的模型壓縮是33.98,這是非常好的提升。

這是把前麵三個步驟全部結合起來,這三個步驟組合以後,我們的方法用4bit做權值和激活參數量化的時候可以達到70億倍的壓縮比,但精度沒有損失反而增加了0.08。如果壓縮更狠,用2bit表示權值,最後達到142倍的壓縮,這時候損失了不到1.5%的精度,這時候很容易讓我們在前端的硬件上部署。

比如說我們的Movidius芯片和FPGA都是屬於功耗和計算上很優秀的前端部署的硬件,比如說Movidius在它最新的Neural compute engine,那個裏麵就會使用我們的低精度壓縮的模型做優化,然後提供這樣的能力給我們的前端海康威視的攝像頭,無人機廠商做最先進的視覺識別任務,這是很先進的技術點,大家可以持續關注。

我們再進一步看一下對視覺信息,對於機器人、無人機、智能家居攝像頭、無人車看到的場景,怎麼理解場景裏發生了什麼,然後再做相應決策,所以理解這個步驟非常重要。學術界稱之為視頻的解析,這裏需要用到多種模態的數據,圖像、聲音、文字,自然界有隱含的規律和知識,我們需要補充上知識讓它快速適應當前的場景,我們把它稱為完整的多模態分析和解決方案。這裏可以做幾件事情,第一可以把視頻內容輸出給程序,讓它產生出文字描述,後麵再做自然語言的分析。也可以把一個視頻當做一個數據庫查詢,我問它問題,你來回答。比如我問視頻當中是否有狗,他回答有沒有。再進一步識別視頻中物體的關係或者語義的關係,所以我們稱之為視覺的關係理解。

在機器學習領域我們有視覺方麵的先進技術,從認知開始我們會繼續往後推動,與更多知識結合,去輔助各個領域的決策和先進的人機交互。

人工智能就隻是機器學習、深度學習這一部分嗎?不是。在去年英特爾AI大會上就和大家分享過,英特爾看深度學習是很全麵的。我們已經有了這麼多種不同的可以支持人工智能的硬件產品,英特爾至強可擴展處理器係列,可以保證很多業務無縫的遷移過來增加人工智能能力,同時配合神經網絡加速器做密集、大規模的深度學習訓練。Mobileye是專門針對無人駕駛領域做主動的安全視覺防控,防止撞車。FPGA是做推理使用的,Movidius是更低功耗的前端智能加速器。這些還不夠。

f7f6ec58ab3b5dd5375e0bdcf238734cc148cc3a

目前來講這些大部分屬於左邊的機器學習類型,它是靠很多經驗的方式給它做數據的端到端的訓練,可以處理複雜多變的數據,但是數據必須可獲得、可觀測、結果可標注,這樣學習效果最好。如果說你看到的數據不完全,包含了隱含知識,或者這些數據本身你標注的時候就有歧義還有一些需要推理的怎麼辦?我們知道機器學習現在最好的也得用幾十瓦或者上百瓦獲取一個業務的能力。但是人的大腦一共才20瓦,我還幹很多事兒,而且我可以持續自主的學習,可以推理出這個場景你在幹什麼,這都是自然智能做的。英特爾一定會把兩個方麵全部看到,在自然智能上也會做很好的前瞻性研究。

舉個例子,在座各位知道編程是怎麼回事兒。傳統的程序員在編程之前知道要解決什麼問題,先畫一個流程圖,這個過程我是知道的,我寫好了這個程序是依據這個流程圖,然後我給它輸入就產生一個答案,傳統的基於已知過程的計算模式。進一步的深度學習,深度學習是有這麼多的數據,知道這些數據是什麼,但是不知道怎麼把兩邊映射起來,中間這個過程不知道,編程也未必編好,所以通過一個深度神經網絡讓它訓練,但到底是怎麼推理和描述出來的現在還不太清楚。神經擬態計算,前麵是從神經元的結構做了近似啟發,但是神經擬態計算試圖解決這個解決,你可以把大黑圈想象成小孩大腦,小朋友一歲、兩歲,他的大腦裏有幾百億的神經元,這些神經元之間互相連接,這些連接以前並沒有存儲很多對事物的處理能力,他是在跟外界交互、學習過程中,慢慢構造出了處理各種問題的過程,同一個腦子可以處理很多過程,可以學音樂、下圍棋、說英語,可以幹這幹那兒,所以是用一個腦子去處理很多不同的過程。這種方式就是神經擬態計算要解決的問題。

量子計算就更複雜了,它要解決的問題裏麵答案非常多,會疊加存在著相互糾纏的量子Bit裏麵,怎麼樣做出一個方案選擇答案出來,和能夠很好的測量結果。英特爾發布了49個量子Bit的量子芯片。量子計算我今天不講,我給大家介紹一下神經擬態計算。

LOIHI,是夏威夷海底的一個活火山,這個火山在不停地噴發,它很快會浮出水麵,就會擴大夏威夷島的範圍,我們用這個名字表示它在不斷的演進。LOIHI的特點在於它可以自我學習,它可以訓練,並不是固定的。可以幫助我們解決很多挑戰性的問題,比如圖像的稀疏編碼,對於複雜約束的滿足,比如做填字遊戲、速讀,複雜模式的匹配、動態學習和適應的過程,整個係統怎麼可能分布式的快速適應到各種變化場景。很多問題是現在可以利用這種平台,這樣的計算學習方式去做的,它和馮諾伊曼架構完全不同。而且它會直接受益於摩爾定律的推動。很小的芯片上可以做更密的神經元,功耗還更低。

191e8a8ab75a54559ed077019664c4a125a7ab91

現在的狀態是什麼呢。我們在一個芯片上可以支持多種事件的學習方式。比如上麵訓練其中一部分神經元來做無監督的模型,檢測和發現這些數據的未知模式。也可以用它的一部分去訓練監督的學習,對標注的模式讓它識別這是貓還是飛機。同時還可以運用一些自監督的方式讓它把一些模式關聯出來,比如我動了方向盤,車輪就會動,車輪動了以後我的攝像頭的視野就會有新的東西產生,所以這些關聯的模式就能夠找出來。同時它還是非常好的做強化學習訓練的一種設備。小孩的整個訓練過程是強化學習訓練的模式。

目前我們發布的這個芯片是業界最領先的帶有學習功能的芯片,包含了各個友商發布芯片的先進性,我們可以讓它學習,放進去的這些東西還可以不停地改變,自己學習和適應它。有128個小核,每核裏有近千個神經元,還有低功耗的x86做協調、設計。前麵講的幾種學習的一些規則我們會放在裏麵,預置在裏麵,可以選擇去使用。同時,這些芯片之間還可以擴展它的連接,變成擬態的一些網絡,可以增大它的能力。實際使用的時候從架構設計到芯片設計是完全連通的,我們做的時候有FPGA的仿真,這個芯片如果不太容易拿到我們可以用FPGA的方式讓大家試用到。神經擬態是用脈衝神經網的方式,它包含了時空脈衝的序列作為輸入。比如現在這個小核裏麵有一個神經元是長這樣,裏麵有很多數圖作為輸入,主圖是輸出,數圖和主突分配接取很多其他的神經元。如果有一個事件發生了,比如說檢測到一個顏色的變化或者運動,它就會產生出一個脈衝,這個脈衝有強度,有時間,和時間綁定,送到神經元,累計它的電位或者類似的模擬方式,達到一定的閾值以後就會觸發一個輸出,輸出以後輸出到所有連接的神經元,繼續推動他們點位的上升。這個方式是人腦學習時采用的方式,它和現在的TPU方式是完全不一樣的,靈活性很強。

現在已經有了這樣的芯片,而且這個芯片年底真正麵市,它是研究型的實驗芯片。

大家會問怎麼在上麵編程呢?現在允許數據科學家在Python的API上設置網絡的構造,和它的一些相應的參數還有一些學習的規則可以製定,我們就可以把我們的數據往裏送,送了以後通過編譯器幫你轉換成能夠在LOIHI上部署的格式,這種格式部署好以後有幾個選擇,一個部署在左下角的功能模擬器,這是純軟件的東西,你可以在上麵模擬它的效果怎麼樣。硬件的方式有三種,FPGA的、芯片的、數字模擬器的,這幾種要保證大家的功能結果是一致的。這是我們在上麵編程的一種模式,目前我們正在和軟件部門一起合作,創造一種讓大家更容易使用的編程方式和結構。

剛才給大家介紹了很多新的算法,還有硬件。我們知道人工智能的落地光靠算法和硬件不行,要靠應用的推動。對於前瞻性的應用,英特爾也在努力布局和探索。醫療健康是每個人息息相關的並且非常關心的,而且精準醫療概念中會使用很多的數據,圖形數據、基因數據,怎麼樣讓人工智能在這些前沿領域發揮作用,這是一個很好的話題。我們和上海交通大學合作也產生了很多好的結果。


原文發布時間為:2017-11-21

本文作者:文摘菌

本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“大數據文摘”微信公眾號

最後更新:2017-11-24 00:34:13

  上一篇:go  Python基礎語法-常量與變量
  下一篇:go  【2017DTC精彩重現】Oracle和MySQL DBA的進階之路