1. 介紹
歡聚時代AI跨平臺推理框架VNN正式開源啦!同時,我們正式宣佈!友商賣1200萬一年的人臉識別,手勢肢體識別,人物實時摳像,影象風格化等等20餘種能力的AI模型,我們現在全部免費對外開放,假如你有美顏美妝,智慧瘦身,AR人臉手勢貼紙,阿凡達數字人驅動,生成動漫形象等需求,現在不必再承受每年高昂的AI收取費用,使用VNN快盡情探索更多的業務場景吧!
此外,歡聚時代希望VNN可以讓更多中小型企業享受到AI帶來的切實收益,同時一同把VNN建設成全平臺商用性最好的基礎AI推理框架,讓更多的企業可以把自己的小模型跑在不同終端(IOS/Android/PC/MAC/Linux)
開源地址:https://github.com/joyycom/VNN
文件地址:https://github.com/joyycom/VNN/blob/master/doc/doc_index.md
商用成功案例:
Noizz(海外)、Fimo相機、一件電商、馬克水印相機、Hago(海外)、Biugo(海外)、Biu神器、Vfly(海外)、VOO(海外)等等,經過了千萬級月活使用者的商用驗證
效能對比:
278 人臉關鍵點 |
VNN(免費模型) VS 友商(商用模型) |
||||
準確率 |
識別率 |
抖動及閃爍 |
CPU使用率 |
半小時耗電 |
|
VNN |
87% |
93% |
3/31個用例 |
VNN高於友商2%-3% |
VNN高於友商1%-3% |
友商 |
72% |
91% |
7/31個用例 |
2. 效果預覽(部分)
迪士尼人臉風格化
影象風格化
人物摳圖
天空摳圖
3. 技術簡介
近年來深度學習一直是比較火熱的賽道,各種神經網路模型也是層出不窮。受到算力因素的影響,神經網路模型在端側的部署落地也影響著AI的發展。NCNN、MNN、TNN等推理引擎的開源為AI的生態注入了一溪活水,推動著深度學習更高效更智慧的應用於人們的生活。
歡聚集團對深度學習領域持續投入,在研究神經網路模型的同時也自研了深度學習前向推理框架VNN,具有高效能、低功耗、多平臺、輕量級的特性,可用於移動端、PC端以及服務端神經網路模型的部署,並在實際業務產品中加以打磨最佳化。目前VNN框架已經能很好的支援直播、短影片等應用場景。
為了推動其進一步的發展,團隊決定把該專案開源,為開源社群做出貢獻的同時,也能讓感興趣的朋友可以給出一些批評和建議,一起把VNN打造成業界領先的深度學習推理框架。
4. 整體架構
作為神經網路部署框架,VNN致力於填補AI模型與應用場景之間的橋樑,提供了從模型轉換到端側部署的一系列工具,如下
VNN ToolChain 是模型轉換工具鏈,主要實現從AI(深度學習框架訓練的)模型到VNN模型的轉換。Pytorch是目前應用最廣的深度學習訓練框架,VNN ToolChain以Python語言實現,主要支援了Pytorch模型的轉換,透過匯入VNN ToolChain的模組,簡單的幾句程式碼即可轉換出跨平臺的VNN模型。Pytroch模型直轉方案相對中轉方案可以更好地解決因版本問題導致的模型轉換錯誤和運算元缺失等部署痛點。另外,為了支援Tensorflow等其他訓練框架的模型轉換為VNN模型,VNN ToolChain 也支援經ONNX模型中轉後的模型轉換。
VNN Core 是核心運算元庫,實現模型解析和計算、記憶體池管理等功能,包含深度調優的幾十種常見AI運算元的實現。在運算元計算效率方面,具體而言,客戶端主流硬體平臺包括x86、x86_64、ARMv7、ARMv8、ARMv8.2以及OpenGL、Metal等多種體系結構,不同的體系結構在CPU暫存器數量、訪存方法、SIMD暫存器位數、半精度浮點指令支援等若干方面存在差異,這些差異對運算元計算效率有明顯影響。VNN針對各硬體平臺的特性編寫彙編運算元或Intrinsics運算元,充分發揮硬體的計算潛力;其次,深度學習模型常用的卷積層具有多種實現,每種實現在不同的輸入尺寸和卷積層引數下效能各有優劣。VNN包含了卷積層的多種實現,並透過VNN ToolChain的自動測速功能或手工指定的方法為每個卷積層選擇效率最優的實現。
VNN Kit 是工具函式庫,實現日誌輸出管理和模型結果變換等功能。VNN設計了完善的異常處理機制,並提供日誌輸出管理功能,方便開發者從日誌中獲取具體的異常資訊,提高SDK接入和除錯效率。其次,考慮到客戶端開發者常遇到的攝像頭採集畫面映象、倒置問題,VNN提供了對模型結果進行旋轉、翻轉的功能,方便開發者根據實際情況調整模型結果,節省開發者的編碼時間。
VNN SDKs 包括 VNN Face(VNN 人臉關鍵點檢測)、VNN Gesture (VNN 手勢檢測) 等各AI功能的頂層實現庫。VNN SDKs 透過對上文 VNN Core、VNN Kit 庫的共享引用,減少程式碼冗餘。對於移動端佔比最大的ARMv8.x架構,在Andorid、iOS平臺下全部功能的打包體積分別為2.3MB、2.0MB,適用於對安裝包體積敏感的場景。其次,VNN SDKs提供了跨平臺API,方便跨平臺開發並獲得一致的體驗。
5. 優勢
(1) 多種實用AI能力
VNN的首個版本中,開放了人臉關鍵點檢測、人像背景分割、手勢識別、天空分割、衣服分割、頭部分割、頭髮分割、動物分割(貓狗)、表情驅動、文件矯正、場景分類等21個AI功能,可用於美顏、瘦臉、表情貼紙、手勢玩法(控雨)、頭髮換色等實際應用場景,覆蓋直播、短影片、社交工具及其它相關業務。
以人臉關鍵點檢測為例,人臉關鍵點檢測的作用是定位人臉輪廓、眼睛、眉毛、嘴唇等的位置,它是自動瘦臉等智慧美顏美妝特效的基礎演算法。目前自研人的臉關鍵點檢測能夠滿足點位準確,識別率高,抖動閃爍幅度小,功耗低的要求,在效果和效能上持平或優於商湯的相同產品。經過多輪的評測後,公司內部已完成對商湯人臉關鍵點SDK的替換,成為旗下各個應用最基礎的AI功能模組。以下是自研人臉278點關鍵點檢測的效果和在美顏瘦臉上的應用。
視覺AI技術提供了對現實世界更深入的解構和重構能力,我們可以從中發掘新的玩法、樂趣和商機。以VNN提供的“迪士尼人臉風格化”應用為例,首先透過人臉關鍵點SDK檢測出影象中的人臉,其次透過迪士尼人臉風格化SDK根據這張現實中的人臉和關鍵點資訊,生成臉型角度一致的、具有迪士尼風格的人臉,最後透過人臉分割SDK識別現實人臉每個畫素位置,實現生成人臉對現實人臉的精細替換。以下是利用上述3個VNN SDK協作實現“迪士尼人臉風格化”的示例。
VNN將持續最佳化已有AI功能的效能和效果,提供更多的AI能力的覆蓋。 目前VNN已為歡聚時代公司的Hago、VOO、VFlyCloud、VFly、馬克水印相機等多個應用產品提供持續的AI能力支援, 也希望這款開放的SDK能為更多移動端和PC端的應用產品貢獻一份力量。
(2) 多平臺支援
VNN支援Android、iOS、Windows、MacOS、Linux5大系統平臺,而且在各個平臺上,所有的AI功能實現介面風格統一,SDK呼叫介面一致,模型檔案基本一致,基本可以做到幾行程式碼就實現一個AI功能。以人臉關鍵點SDK為例,幾行程式碼就能實現對SDK從建立、設定、執行到銷燬整個生命週期的控制。
另外,VNN提供了詳細的使用說明文件,同時還提供了各個平臺的呼叫Demo,助力AI功能在應用端更高效、更快捷的落地。
(3) 高效能低功耗
以下為VNN 熱門SDK在主流手機上的執行速度。大部分功能均能以實時或準實時的速度執行。人像分割圖片版SDK主要應用於影像編輯與創作,可在滿足生產效率的前提下提供高質量的分割效果。人臉關鍵點和手勢識別在手機上單獨執行時,基本不存在發熱現象。
6. 下一步計劃
(1) 開放GPU支援。針對高功耗的,計算量大的大模型,基於GPU的實現可以加快模型前向速度,降低功耗。
(2) 開放轉換工具鏈VNN ToolChain。基於Python的轉換工具鏈,可以快捷地將Pytorch模型或其它框架下經ONNX中轉的模型,轉換成VNN的模型並部署到各端。
(3) 開原始碼,助力AI生態的繁榮發展,貢獻VNN的力量。