解析:Facebook首創全新深度學習移動平臺,「視頻版」的Prisma是如何實現的?|深度

 2017-01-03 14:20:00.0

雷鋒網(公衆號:雷鋒網)按:「風格特效轉換」  在Prisma出現之後就已被熟知,這是利用神經表徵分離再組合圖片的內容和風格,最後實現可用來描繪藝術圖像。但是,就像我們所體會到的,Prisma依舊存在一些問題,比如使用人數多導致服務器過載、智能軟件處理的計算力不足等,雷鋒網編輯曾在發佈《AI修圖藝術:Prisma背後的奇妙算法 | 深度 》時就曾請教過一些深度學習工程師,爲什麼沒有應用在視頻上?得到的答案是,除了Prisma出現的問題,要保持時間上的幀率一致也是非常麻煩的,對技術的要求也就更高。

現在,爲了讓你在用手機拍攝視頻時,有種手持梵高畫筆的奇妙感受,Facebook首創了一個全新的深度學習移動平臺,利用Caffe2go運行環境和風格轉換算法模型,在手機上完成對像素特徵的實時提取、分析和處理。本文來自圖普科技工程師編譯自 Facebook網站delivering real time ai in the palm of your hand》,解讀「視頻版」Prisma是如何實現的?雷鋒網獨家首發文章。

如今,視頻通話逐漸成爲最受歡迎的溝通方式,在此之際,我們希望給所有人提供一種最先進的、最具創造性的自我表達工具。我們最近開展了對Facebook中一個新的創意特效相機的測試,這個創意特效相機能幫助人們把普普通通的視頻即時轉換成一份精美的視頻藝術作品。

 這種技術叫做「風格特效轉換」。它會從一份圖像中提取出藝術風格和特徵,比如梵高畫作的藝術風格,然後把它應用到另一份圖像或者視頻中。這項技術通常來說比較難以實現,以往需要將數據傳送至數據中心,以在更高處理能力的服務器上進行處理。但是現在不同了!我們首創了一個全新的深度學習移動平臺,它能夠在手機上完成對像素特徵的實時提取、分析和處理,最先進的技術現在在你手上就能完成。

 這是一個成熟的深度學習系統,名字叫做「Caffe2Go」,它的框架現在已經被植入了我們的移動應用程序中。通過把處理圖像和視頻的AI模型壓縮100倍,這個系統能夠在蘋果和安卓系統中高效地運行不同種類的神經網絡。從目前的結果來看,我們已有能力在手機上完成AI進程了,其用時甚至低於二十分之一秒(實際上是50毫秒)——一次眨眼的耗時爲每三分之一秒,即300毫秒。

解析:Facebook首創全新深度學習移動平臺,「視頻版」的Prisma是如何實現的?|深度

 (圖爲Facebook的創意特效相機拍攝的視頻截圖,完整視頻可點原文查看)

上文提到的風格特效轉換工具實際上是兩種技術的結合:Caffe2go運行環境和風格轉換算法模型。因爲我們的AI團隊是處理算法和大型系統的,所以他們非常有能力開發對兩種技術都適用的新模型,讓風格轉換功能實現更高速和高質量的轉換。這兩種技術的結合能夠讓你在用手機拍攝視頻時,有種手持梵高畫筆的奇妙感受。 

三個月以前,我們就從其他人從未做過的事情入手,開始了這項工作:把這個人工智能風格轉換功能視爲一個具有創造性的工具進行傳遞,讓它在人們的所有設備中實時運行。一羣專研於產品、技術和科研的優秀人才現已加入了這個項目。Facebook的AI研究小組成員之一Justin Johnson是一篇基礎性研究論文的作者,論文中描述了這項技術,發展了這個領域先前的一些研究成果。我們的「應用機器學習」小組一直致力於打造一個能夠在移動設備上運行的AI引擎。這個「創意相機」團隊非常瞭解用戶的需求,在所有人的合作之下,這個團隊開發了一個能夠實現在移動設備上實時運行高度優化後的神經網絡的最佳解決方案。在接下來的內容中,我們將會解釋我們是如何思考和開發這項實用技術的。就從Caffe2go開始吧。 

Caffe2go 

  •  輕巧又快捷 

人工智能已經對計算機科學產生了相當大的影響,但是它仍然受到大數據處理的侷限,因爲這個大數據處理中心有時距離AI設備使用者十分遙遠。因此,所有實時處理的AI模型仍然要受到延時的影響,因爲其需要先連通至數據處理中心,之後才能在GPU上運行。我們認爲,讓人們圍着超級計算機跑有點不切實際,所以我們想找到一種方法讓AI 能在當今最普遍存在的一種設備——智能手機——的CPU上運行。

解析:Facebook首創全新深度學習移動平臺,「視頻版」的Prisma是如何實現的?|深度

 有了Caffe2go後,不需連接至遠程服務器,智能手機就能實現識別、表達以及理解。儘管如此,智能手機還是有所侷限。儘管在最近幾年智能手機在計算能力上有了顯著的提高,已經能夠在一秒鐘內執行數十億的算術計算;但是它仍然存在各種各樣的資源侷限,比如電量、內存以及專爲智能軟件設計的計算能力。因此,智能手機對機器學習系統來說既是機遇,又是挑戰。 

爲了應對這個挑戰,我們的解決方法就是設計出一個特別輕巧的、模塊化的框架。爲此,我們運用了Unix哲學,在開源的Caffe2項目之上進行建構。它保證了用於顯示和連接各種組件的核心框架是足夠輕巧的,而且能夠實現多個模塊的連接,以及包括對移動手機的優化設計。我們保存了一個精巧的算法框架,這個框架能讓工程師把抽象計算描述爲一個有向無環圖(DAG),但是這需要保證輸入和輸出圖中節點是沒有約束的才能執行。這就使得我們的工程開發團隊能在不同的平臺執行和優化模塊,同時輕鬆地實現模塊的連接。當這個圖像實際運行起來,它會以各種各樣的硬件特性對自身進行實例化,已達到最高速的運行效果。 

因爲速度是計算密集型移動應用程序的核心所在,尤其是圖像和視頻,輕便的框架設計讓我們能夠對自定義操作符進行平臺的優化。其中一個著名的例子就是一個叫做NNPack的電子圖書館,這是Caffe2在我們手機的運行時內整合而來的。通過利用一個移動CPU功能——NEON,我們能夠極大地提高手機的計算速度。在IOS設備上,我們也已經開始着手整理合成計算加速功能,例如「元語言」。這些都是通過一個模塊化的設計而來的,無需改變整體模型定義。因此,算法和運行時能夠安全地互相支持,不用再擔心任何潛在的不兼容風險。 

  •  「開發者友善」的設計 

Caffe2 同時也是我們首個工業化的深度學習平臺,它能使用完全相同的代碼在CPU、GPU、iOS和安卓四個服務器平臺上全速運行。由於其模塊化的設計,這個框架在允許各平臺使用相同語言的同時進行個性化需求優化。事實上,這是開發人員隱藏起來的執行細節,比如說,這個框架可以選擇移動設備(IOS和安卓系統)的NNPacak或者GPU服務器的CUDNN方案。因此,算法開發人員可以專注於研究算法,而不需要分散精力去研究卷積運行(一種線性運算)。 

快速的部署設計框架對開發者非常有益。對開發者而言,手機運行時的調試可以說是個挑戰,因爲手機的工具鏈組不夠臺式電腦和服務器的先進。我們通過從硬件中提取出神經網絡數學的方法來處理這個問題,用相同的數值輸出就能在移動手機或者服務器上執行Caffe2go的一個序列化網絡了。所以,我們可以把一大部分工作轉移至服務器環境(模型訓練、性能檢測、用戶體驗研究),當一切都正常運作之後,就能擁有一個一鍵部署功能的移動環境了。

  •  風格轉換模型的訓練測試 

「風格轉換」這個想法實際上早就存在了,它最初是由一個研究團隊在2015年8月發表的一篇題爲《藝術風格的神經算法》的開創性論文中。但是,當時這項技術發展緩慢,且需要強大的服務器支撐。在接下來的幾個月,這個研究團隊提升和完善了這項技術,將運行速度提高了好幾個等級,但是它仍然很大程度上依賴服務器上的計算能力。 

現在我們已經可以在移動端快速運行人工智能,但爲了確保做到高質量、高分辨率的實時圖像風格轉換體驗,還是需要繼續進行模型的優化和完善。 

  •  高效模型尺寸的優化 

傳統的風格轉換模型(包括前饋變量)不僅參數數值很大,而且轉換速度較慢,我們的風格轉換應用程序的設計目標就是打造一個全新的、更輕巧、更高效的模型,這個模型可以在iPhone6s上輸出每秒20幀以上且不掉幀的高質量視頻。

 我們採取了三種主要手段來進行模型壓縮。

我們優化了卷積層(加工操作中最耗時的部分)的尺寸數值以及每一層的寬度,同時調整了運行過程中的空間分辨率。卷基層的數值和其寬度可以作爲單獨的槓桿來調整處理時間,通過多角度調整正在處理的圖像,或是調整一個單獨處理行爲的次數。針對空間分辨率,我們可以調整正處於中間處理層的對象的實際大小。通過使用前期聯營(縮小正在處理的圖像)和後期反褶積(放大處理後的圖像),系統不再需要處理過多的信息,處理速度也會加快。並且通過使用這種技術,我們可以在大大降低網絡廣度和深度的同時,保持相當不錯的圖像質量。 

解析:Facebook首創全新深度學習移動平臺,「視頻版」的Prisma是如何實現的?|深度

  •   提高圖像質量 

圖像質量是很主觀的,很難進行準確的測量,尤其是像風格轉換這類。因此,我們建立了包括A/B測試的可視化工具,用來訓練並確保不同的模型能夠得到最高質量的圖像結果。通過由FBLearner Flow技術支持的大規模GPU集羣,我們能夠快速地對大範圍的超參數(如模型建築、內容風格大小和降低取樣)進行掃描,來找到一個既能達到目標性能,又能保持和提高圖像質量的「訓練有素」的前饋風格,從而完成以上的檢測。 

當然還有很多能提高圖像質量的方法,比如說,應用單獨實例標準化而不是平常使用的成批標準化對很多風格特效都有幫助,避免在卷基層補零,或者將不同的預加工和後加工濾鏡應用在風格或圖像上都可以減少圖像僞影。但是我們在測試中發現,這些方法對部分風格有效,並不是對任何風格都行得通的。 

隨着風格轉化技術的速度和圖像質量上的不斷優化和完善,相信將一個在Caffe2框架之上運行的實時圖像處理系統應用於移動設備中指日可待。 

接下來還會有什麼呢?

 Caffe2go與類似Torch的工具鏈研究是Facebook的機器學習產品的核心,由於它的尺寸、速度和靈活性,caffe2go從Facebook的工具堆中脫穎而出。 

我們非常樂於在業界社區中分享我們的軟件和設計,這樣我們可以學到更好地使用多種硬件平臺和算法設計的方法,這些對跨平臺機器學習系統來說多非常重要。在接下來的幾個月裏,我們將繼續關注這個人工智能框架的開源部分。

 隨着我們一步步的向前發展,你可以想象下實時運行的人工智能設備是如何爲無障礙環境、教育及其他領域的人塑造一個更加開放和聯繫緊密的世界。我們手中的智能設備將進一步改變我們對人工智能的認知。通過像Caffe2go這麼快捷、輕巧的機器學習系統,我們會一直致力於爲您提供更多更棒的人工智能和增強現實的體驗,比如讓你在拍攝視頻的時候有像手持梵高畫筆一樣的奇妙體驗。

雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知

解析:Facebook首創全新深度學習移動平臺,「視頻版」的Prisma是如何實現的?|深度

文章來源:雷鋒網