淘新聞

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

雷鋒網按:“風格特效轉換” 在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的創意特效相機拍攝的視頻截圖,完整視頻可點

原文

查看)

上文提到的風格特效轉換工具實際上是兩種技術的結合:

Caffe2go運行環境和風格轉換演算法模型

。因為我們的AI團隊是處理演算法和大型系統的,所以他們非常有能力開發對兩種技術都適用的新模型,讓風格轉換功能實現更高速和高品質的轉換。這兩種技術的結合能夠讓你在用手機拍攝視頻時,有種手持梵古畫筆的奇妙感受。 

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

Caffe2go 

 輕巧又快捷 

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

 有了Caffe2go後,不需連接至遠端伺服器,智慧手機就能實現識別、表達以及理解。儘管如此,智能手機還是有所局限。儘管在最近幾年智慧手機在計算能力上有了顯著的提高,已經能夠在一秒鐘內執行數十億的算術計算;但是它仍然存在各種各樣的資源局限,比如電量、記憶體以及專為智慧軟體設計的計算能力。因此,

智慧手機對機器學習系統來說既是機遇,又是挑戰

。 

為了應對這個挑戰,我們的

解決方法就是設計出一個特別輕巧的、模組化的框架

。為此,我們運用了

Unix哲學,

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

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

 “開發者友善”的設計 

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

快速的部署設計框架對開發者非常有益。

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

 風格轉換模型的訓練測試 

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

現在我們已經可以在移動端快速運行人工智慧,但為了確保做到高品質、高解析度的即時圖像風格轉換體驗,還是需要繼續進行模型的優化和完善。 

 高效模型尺寸的優化 

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

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

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

提高圖像品質 

圖像品質是很主觀的,很難進行準確的測量,尤其是像風格轉換這類。因此,我們

建立了包括A/B測試的視覺化工具,用來訓練並確保不同的模型能夠得到最高品質的圖像結果

。通過由FBLearner Flow技術支援的大規模GPU集群,我們能夠快速地對大範圍的超參數(如模型建築、內容風格大小和降低取樣)進行掃描,來找到一個既能達到目標性能,又能保持和提高圖像品質的“訓練有素”的前饋風格,從而完成以上的檢測。 

當然還有很多能提高圖像品質的方法,比如說,應用

單獨實例標準化

而不是平常使用的成批標準化對很多風格特效都有幫助,避免在卷基層補零,或者將

不同的預加工和後加工濾鏡應用在風格或圖像上

都可以減少圖像偽影。但是我們在測試中發現,這些方法對部分風格有效,並不是對任何風格都行得通的。 

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

接下來還會有什麼呢?

 Caffe2go與類似Torch的工具鏈研究是Facebook的機器學習產品的核心,由於它的尺寸、速度和靈活性,

caffe2go從Facebook的工具堆中脫穎而出

。 

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

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