(高清原視頻截圖) (低清超分后視頻截圖)

  這個(gè)圖片來自百度百家號推出壯美極境公益項(xiàng)目的視頻。左邊的圖片為480p原始視頻截圖,右邊的圖片為360p視頻通過超分能力重建的480p視頻截圖。通過左右視頻截圖對比,可以看到超分后的視頻(右側(cè))在手機(jī)上可以達(dá)到與原始視頻(左側(cè))幾乎一致的視覺體驗(yàn)。

  (超分前) (超分后)

  左圖是360p原始視頻的單幀畫面,右邊將360p視頻超分到480p的畫面,對比來看畫面放大后,畫面不僅沒有損失清晰度,而且變得更清楚。

  所謂視頻超分,通俗來說,就是將低像素的視頻轉(zhuǎn)成高像素,而且視頻還能變得更清楚!

  而對于手機(jī)場景來說,視頻超分本身最重要的不僅僅是追求極致的超分效果,而是速度和效果的均衡。手機(jī)視頻超分主要目標(biāo)是在手機(jī)端上達(dá)到25FPS(手機(jī)端的視頻通常是25FPS,通常來說24FPS+視覺上才不會(huì)感覺到卡頓)的前提下,對畫面進(jìn)行優(yōu)化重建。

  LiteKit提供的視頻超分是業(yè)內(nèi)首次開放的能夠達(dá)到25FPS的視頻超分解決方案。在手機(jī)移動(dòng)應(yīng)用項(xiàng)目中最常見的是360p視頻。LiteKit支持從360p到480p場景下進(jìn)行25FPS的超分。除此以外,LiteKit的視頻超分能夠?qū)Σシ牌鹘獯a后的YUV420視頻幀數(shù)據(jù)直接進(jìn)行處理,并獲得相同格式的輸出數(shù)據(jù),消除了將視頻幀數(shù)據(jù)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換的過程,大大方便了用戶的使用,并降低使用耗時(shí)。

  性能優(yōu)化

  LiteKit的視頻超分能力模型,經(jīng)過反復(fù)的性能調(diào)優(yōu),可以支持360p->480p的超分場景下播放器25FPS的持續(xù)超分。

  從上面的測試結(jié)果可以看到,在18年iPhoneXsMax上,視頻超分也能夠達(dá)到32.15ms的預(yù)測速度,支持播放器25FPS的超分。在最新的iPhone12上,相比iPhoneXsMax,預(yù)測速度進(jìn)一步提升30%。

  手勢識別

  這是LiteKit提供的手勢識別AI能力。它可以準(zhǔn)確的檢測手勢所在位置的矩形坐標(biāo)、手勢類型和置信度,支持識別六種類型的手勢,包括手、五指手勢、V手勢、握拳、1手勢、OK手勢。

  人像分割

  (人像分割前)(人像分割后)

  這是LiteKit提供的人像分割A(yù)I能力,能夠提供實(shí)時(shí)的人像分割,準(zhǔn)確地分割人像和背景,可用于去除背景、人像摳圖、照片合成、背景替換等業(yè)務(wù)之中。

  快速體驗(yàn)

  以上就是LiteKit目前開放出來的AI能力,這些AI能力可以直接點(diǎn)擊以下鏈接快速安裝Android Demo體驗(yàn)(只需一部安卓手機(jī)即可):

https://github.com/PaddlePaddle/LiteKit/releases/download/0.0.10/MMLKitDemo_0.0.10.apk

  可以一秒接入的AI能力

  對于APP開發(fā)者來說,是不是很想知道這些能力能否接入到自己的移動(dòng)應(yīng)用之中呢?

  答案當(dāng)然是肯定的!不僅能接入,而且可以說是一秒就能接入你的APP工程!

  LiteKit提供視頻超分、人像分割、手勢識別一系列AI能力,這些AI能力均來自于百度各個(gè)業(yè)務(wù)線AI場景多年的技術(shù)沉淀,并以SDK的形式提供,做到了開箱即用。

  即使是沒有任何AI實(shí)踐的APP開發(fā)者,只需通過調(diào)用兩三個(gè)簡單API連接LiteKit提供的SDK軟件包,就可以順利接入AI能力。就像拆開快遞箱一樣簡單,打開箱子就可以直接用。

  你可以把SDK想象成一個(gè)虛擬的程序包,在這個(gè)程序包中有一份做好的軟件功能,這份程序包幾乎是全封閉的,只有一個(gè)小小接口可以連通外界,而這個(gè)接口就是API。

  如何接入

  LiteKit的接入只需要?jiǎng)?chuàng)建、推理、釋放三步即可完成AI能力的開發(fā)。雖然對于視頻超分、人像分割、手勢識別,甚至包括未來將要開源的新AI能力,輸入輸出會(huì)各有不同,但是整體流程和API的樣式都被抽象成類似的步驟,甚至API的命名都會(huì)保持高度一致,讓學(xué)習(xí)成本降到最低。下面的代碼就是視頻超分能力的接入過程:

  (內(nèi)容持續(xù)更新中,最新內(nèi)容可以訪問此鏈接獲取。https://github.com/PaddlePaddle/LiteKit)

  LiteKit的設(shè)計(jì)

  LiteKit把接入過程整體抽象為:創(chuàng)建、推理、釋放三步:

  -創(chuàng)建后,可以反復(fù)使用執(zhí)行推理

  -推理的過程整體只有一類API:對輸入數(shù)據(jù)(input)執(zhí)行推理,同步返回輸出數(shù)據(jù)(output)。圖中和模型直接相關(guān)的前后處理的流程,都被封裝在了AI能力推理接口內(nèi)部,用戶既不需要關(guān)心,也不需要任何處理。為了方便不同業(yè)務(wù)不同的輸入,每個(gè)能力的推理接口可能有幾個(gè),這幾個(gè)接口能力完全相同,唯一不同的只是輸入和輸出類型,用戶通常只需要根據(jù)自己的輸入輸出類型關(guān)心最便捷使用的一個(gè)即可。

  -釋放與創(chuàng)建一一對應(yīng),當(dāng)AI業(yè)務(wù)退出的時(shí)候,執(zhí)行即可。

  關(guān)于輸入數(shù)據(jù)的獲取和輸出數(shù)據(jù)的使用,在真實(shí)的業(yè)務(wù)落地中,是需要開發(fā)者進(jìn)行考慮的問題。例如在推理前,需要拿到相機(jī)幀,考慮到手機(jī)的自動(dòng)旋轉(zhuǎn)及前后鏡頭的問題,需要開發(fā)者對圖像進(jìn)行旋轉(zhuǎn)。在獲得推理結(jié)果后,需要開發(fā)者把推理的結(jié)果用適當(dāng)?shù)姆桨高M(jìn)行渲染。

  LiteKit的架構(gòu)

  LiteKit從下至上主要分為三層:

  1.最底層的Paddle Lite:是百度飛槳深度學(xué)習(xí)平臺(tái)提供的開源推理引擎,能夠提供CPU、GPU等多種環(huán)境下進(jìn)行推理。

  2. 中間的LiteKitCore框架層:隔離了業(yè)務(wù)方對Paddle Lite的直接依賴,并向上層提供基本一致的OC、Java、C++ API,提供了基礎(chǔ)結(jié)構(gòu)和數(shù)據(jù)類型的定義,并提供通用的工具集。

  3. LiteKit業(yè)務(wù)層:根據(jù)各自不同的業(yè)務(wù),封裝了人像分割、視頻超分、手勢識別等能力。LiteKit的能力將會(huì)不斷的擴(kuò)充。

  LiteKit的人像分割、視頻超分、手勢識別三大能力, 底層統(tǒng)一依賴LiteKitCore。目前LiteKitCore也同步進(jìn)行了開源。LiteKitCore作為移動(dòng)端AI能力部署工具,其職責(zé)主要是向下接管推理引擎,并向上提供統(tǒng)一的AI推理能力。

  -移動(dòng)端的AI開發(fā)者接入了LiteKitCore之后,不必再關(guān)心推理引擎的配置、模型的加載等復(fù)雜操作,LiteKit內(nèi)部管理了推理引擎大部分復(fù)雜的配置,同時(shí)仍然支持使用者靈活的配置一些入模型地址等的關(guān)鍵參數(shù)。

  -LiteKitCore向上對AI能力的開發(fā)者,提供了Java/ObjectiveC/C++三套接口,能大大降低端AI開發(fā)者的開發(fā)成本。

  下面以C++接口接入CPU AI推理能力為例,簡單示范一下接入的流程:

  -使用LiteKitCore創(chuàng)建AI推理引擎管理實(shí)例,不再需要關(guān)心模型的結(jié)構(gòu),推理引擎的使用方式,只需要通過LiteKitCore進(jìn)行簡單的配置。

  -使用AI推理能力的時(shí)候也不需要關(guān)心推理引擎具體如何調(diào)用,LiteKitCore提供方便使用的C++/Java/ObjectiveC API。

在開發(fā)不同業(yè)務(wù)的過程中,上層的業(yè)務(wù)配置根據(jù)不同業(yè)務(wù)場景設(shè)置,底層LiteKitCore部分代碼完全可以復(fù)用和移植,極大的降低了AI能力開發(fā)的工作量。

展望

LiteKit作為飛槳的移動(dòng)端部署工具,能夠快速的部署基于百度深度學(xué)習(xí)框架飛槳的輕量化推理引擎Paddle Lite的AI能力。能夠讓AI能力在任何APP中、任何場景下快速的工程化落地,可以讓同學(xué)們簡單的實(shí)現(xiàn)自己的AI特效。

LiteKit在不久的將來還會(huì)開放OCR等更多的能力,支持更多的業(yè)務(wù)場景。大家對LiteKit即將開放的能力,還有什么期待呢,如果有的話,就請點(diǎn)以下鏈接,填寫您對AI能力的需求吧:https://iwenjuan.baidu.com/?code=ap8fxl

相關(guān)鏈接

想進(jìn)一步了解LiteKit的小伙伴,可以上Github點(diǎn)star并查看完整文檔及Demo

LiteKit GitHub地址:https://github.com/PaddlePaddle/LiteKit

更多參考:

如果您想詳細(xì)了解更多關(guān)于端側(cè)AI部署的相關(guān)內(nèi)容,可以多多關(guān)注飛槳Paddle Lite。Paddle Lite支持包括手機(jī)移動(dòng)端和嵌入式端在內(nèi)的端側(cè)場景,支持廣泛的硬件和平臺(tái),是一個(gè)高性能、輕量級的深度學(xué)習(xí)推理引擎。除了和飛槳核心框架無縫對接外,也兼容支持其他訓(xùn)練框架如TensorFlow、Caffe保存的模型(通過X2Paddle工具即可將其他格式的模型轉(zhuǎn)換成飛槳模型)。

Paddle Lite GitHub地址: https://github.com/PaddlePaddle/Paddle-Lite

來源:互聯(lián)網(wǎng)

分享到

zhangnn

相關(guān)推薦