精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何構(gòu)建一個演示移動端應(yīng)用

Arm社區(qū) ? 來源:Arm社區(qū) ? 2024-11-15 11:43 ? 次閱讀

作者:Arm 戰(zhàn)略與生態(tài)部工程師 Ayaan Masood

作為通訊工具,視頻會議幾乎隨處可見,尤其適用于遠程辦公和社交互動。但其使用體驗并非總是簡單直接、即開即用,可能需要進行調(diào)整,確保音頻視頻設(shè)置良好。其中,照明便是一個難以把握的因素。在會議中,光線充足的視頻畫面會顯得得體大方,而糟糕的照明條件則會顯得不夠?qū)I(yè),還會分散其他與會者的注意力。有時,改變光照情況并不可行,特別是在光線昏暗的冬季或照明不足的地點。

在本文中,我們將探討如何構(gòu)建一個演示移動端應(yīng)用,以解決弱光條件下的視頻照明問題。我們將介紹支持該應(yīng)用的神經(jīng)網(wǎng)絡(luò)模型及其機器學(xué)習(xí) (ML) 管線、性能優(yōu)化等。

找到合適的神經(jīng)網(wǎng)絡(luò)

我們采用基于神經(jīng)網(wǎng)絡(luò)的解決方案改善視頻照明。因此,這項工作的核心在于找到適合當前任務(wù)的神經(jīng)網(wǎng)絡(luò)。目前,市面上有很多出色的開源模型可供使用,而為本項目找到合適的候選模型至關(guān)重要。我們在評估模型時主要關(guān)注以下三項要求:性能良好、照明質(zhì)量出色、視頻處理表現(xiàn)優(yōu)異。

我們的目標是實現(xiàn)移動端實時推理,這意味著,每幀處理時間只有嚴格控制在 33 毫秒內(nèi),才能實現(xiàn)每秒 30 幀的流暢播放。其中包括預(yù)處理/后處理步驟以及神經(jīng)網(wǎng)絡(luò)運行所需的時間。視頻畫質(zhì)增強是另一項重要標準。該模型可智能化增強暗像、還原細節(jié),確保視頻幀之間暫時保持連貫,避免畫面閃爍。

模型架構(gòu)

所選模型來自 2021 年研究論文《用于弱光圖像/視頻增強的語義引導(dǎo)零樣本學(xué)習(xí)》[1]。在包含混合曝光和照明條件的復(fù)雜數(shù)據(jù)集上進行測試時,該模型的弱光增強質(zhì)量非常出色。暗像中不清晰的細節(jié)和結(jié)構(gòu)突然變得清晰起來。該模型的另一個優(yōu)點是尺寸極小,僅有一萬個網(wǎng)絡(luò)參數(shù),因此推理速度很快。在模型架構(gòu)方面,輸入的圖像張量被縮小并傳遞到卷積層棧。這些層會預(yù)測逐像素增強因子,然后在模型后處理模塊中,將增強因子以乘法方式應(yīng)用到原始圖像像素上,從而生成增強的圖像。

值得一提的是,訓(xùn)練采用包含兩千張合成圖像的小型數(shù)據(jù)集,這就表明,如果數(shù)據(jù)集規(guī)模更大,模型就還有更大提升空間。我們增強了真實參照圖像,生成一系列統(tǒng)一曝光值,從而調(diào)整圖像明暗。該模型的訓(xùn)練不受監(jiān)督,無需標簽,而是通過一個指導(dǎo)訓(xùn)練的損失函數(shù)來學(xué)習(xí)如何增強弱光圖像。這個損失函數(shù)是多個獨立損失的組合,它們分別負責(zé)圖像的各個方面,如顏色、亮度和語義信息

ML 管線

該應(yīng)用的 ML 管線從輸入幀開始,根據(jù)模型輸入張量要求加以處理,然后推理并向用戶顯示輸出。攔截相機幀進行推理是 CameraX 庫的內(nèi)置功能,通過安卓的“圖像分析”API 實現(xiàn)。

我們采用了兩種不同的 ML 推理引擎:ONNX runtime和 TensorFlow Lite。將 Pytorch 模型導(dǎo)出為 ONNX 模型是 Pytorch 庫自帶的功能,而導(dǎo)出到 TensorFlow Lite 則困難得多。該模型的有效導(dǎo)出器為 Nobuco,其工作機制是先創(chuàng)建可轉(zhuǎn)換為 TFLite 的 Keras 模型。

模型推理產(chǎn)生的輸出格式取決于 ML 運行時。如果采用 ONNX,則為 NCHW(即數(shù)量、通道、高度、寬度);如果采用 TFLite,則為 NHWC,其中通道排在末尾。這影響了后處理步驟的完成方式,即將整數(shù) RGB 值的輸出緩沖區(qū)解包,以創(chuàng)建終末位圖,并顯示在屏幕上。

結(jié)果呈現(xiàn)

性能優(yōu)化

在 Kotlin 中將 RGBA 位圖轉(zhuǎn)換為 RGB 的計算成本很高。當性能預(yù)算限制在 33 毫秒以內(nèi)時,僅轉(zhuǎn)換過程就需要花費幾十毫秒。為了加快速度,我們使用了 C++ 語言,并對編譯器進行了全面優(yōu)化。但是,要從 Kotlin 代碼調(diào)用 C++ 代碼,就得用到 Java 原生接口 (JNI)。通過 JNI 傳遞一個 3x512x512 大小的浮點數(shù)緩沖區(qū)成本很高,因為必須復(fù)制兩次,先從 Kotlin 復(fù)制到 C++,處理完后再復(fù)制回 Kotlin。為了解決這個問題,我們使用了 Java 直接緩沖區(qū)。傳統(tǒng)緩沖區(qū)的內(nèi)存由安卓運行時在堆上分配,C++ 不容易訪問。而直接緩沖區(qū)必須按照系統(tǒng)的正確字節(jié)順序分配,而一旦分配好了,內(nèi)存就能以操作系統(tǒng)和 C++ 易于訪問的方式分配。這樣,我們就省去了復(fù)制到 JNI 的時間,并能夠利用高度優(yōu)化的 C++ 代碼。

量化

該模型使用量化技術(shù)進行優(yōu)化。量化就是使用較低精度表示神經(jīng)網(wǎng)絡(luò)的權(quán)重和激活值,從而在略微犧牲模型質(zhì)量的情況下提高推理速度。量化用的數(shù)據(jù)類型通常比較小,例如 INT8,它占用的空間只有原來 32 位浮點數(shù) (FP32) 的四分之一。模型量化有兩種:動態(tài)量化和靜態(tài)量化。動態(tài)量化僅量化模型權(quán)重,并在運行時,針對激活值確定量化參數(shù)。靜態(tài)量化則事先使用代表性數(shù)據(jù)集量化權(quán)重和激活值,所以在推理方面更快。對于這個模型,靜態(tài)量化提高了推理速度,而輸出照明增強效果則略暗一些,這樣的取舍是值得的。

模型推理時間

6db0939a-9d84-11ef-93f3-92fbcf53809c.png

圖:模型推理時間 Pixel 7

上圖比較了使用 ONNX runtime 和 TensorFlow Lite 對弱光增強模型進行模型推理的時間。在 Pixel 7 上的分辨率為 512x512。我們先將 ONNX runtime 作為推理引擎。在 CPU 上運行時,F(xiàn)P32 的模型推理時間為 40 毫秒。當量化到 INT8 時,這一時間縮短到 32 毫秒。性能原本有望獲得大幅提升,但使用可視化工具 Netron 分析模型文件后發(fā)現(xiàn),模型圖中增加了額外的量化/反量化算子,從而增加了計算開銷。使用 XNNPack 和 INT8 模型的 TensorFlow Lite 在 CPU 上的表現(xiàn)稍慢于 ONNX runtime,推理時間接近 70 毫秒。不過,TensorFlow Lite 在使用 GPU 處理時,超越了之前所有推理引擎和模型類型的組合。對于 512x512 輸入圖像的推理,TensorFlow Lite 僅需 11 毫秒,因此我們選擇它作為運行模型的后端,以實現(xiàn)實時照明增強。

安卓性能提示 API

想要重復(fù)對演示應(yīng)用進行基準測試,就必須要用 ADB 命令來開啟安卓固定性能模式。這是因為每次測試時,CPU 的頻率可能會變來變?nèi)ィ珹DB 命令可以固定 CPU 頻率。我們發(fā)現(xiàn),在使用這種固定性能模式后,幀時間減少了。但這也讓應(yīng)用開發(fā)者左右為難,因為他們沒法控制 CPU 頻率,但又不能指望終端用戶會使用 ADB。不過,安卓性能提示 API 可以解決這個問題。該 API 主要用于游戲,其工作原理是設(shè)定目標幀時間并將該指標報告回安卓系統(tǒng),由安卓系統(tǒng)調(diào)整時鐘頻率,嘗試達到該目標。這使得幀時間得到了與固定性能模式相當?shù)牧己酶纳啤?/p>

幀率

當弱光增強功能打開時,應(yīng)用會顯示幀時序。盡管幀率約為 37 FPS,但攝像頭幀速率會根據(jù)硬件和照明情況受到限制(在極弱光條件下,安卓系統(tǒng)會降低相機 FPS 以提高亮度)。在 Pixel 7 上,向用戶顯示的幀速率(默認的安卓攝像頭 API)上限為 30 FPS。更快的推理并不會帶來更好的用戶體驗,因此保留了一個 7 FPS 的性能緩沖。

進一步的模型訓(xùn)練

盡管原始模型在暗場景下的照明增強效果相當不錯,但圖像有時會出現(xiàn)過度曝光的情況。為了解決這個問題,我們采用了一個包含兩萬張合成圖像的大型數(shù)據(jù)集進行訓(xùn)練,此前的研究論文僅使用了兩千張圖像。

不過,基于大型數(shù)據(jù)集的訓(xùn)練時間會變長。經(jīng)過調(diào)查,性能下降的原因是每批量八張圖像超出了 GPU VRAM 容量,并溢出到系統(tǒng)內(nèi)存中。為了在不增加 VRAM 使用量的情況下提高有效批次大小,我們采用了梯度累積技術(shù),無需針對每個批量計算梯度,而是累積多個批量后再計算梯度。在我們的案例中,我們可以使用的批量上限是六張圖像,而采用梯度累積技術(shù)后,我們能夠使用的批量是 60 張圖像。

結(jié)論

我們在本文中展示了一個可運行的演示移動端應(yīng)用,用于實時改善移動端視頻的照明效果?;?Arm 平臺優(yōu)化并運行 ML 模型的過程非常順暢,得益于量化和各種推理引擎等技術(shù)的運用,該模型能夠在 33 毫秒的嚴苛性能限制下順利運行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:使用移動端神經(jīng)網(wǎng)絡(luò)實現(xiàn)實時弱光視頻增強

文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何構(gòu)建簡單的對講電路

    在這個電路中,我們將構(gòu)建非常簡單的對講電路,您可以使用該電路在房屋或?qū)W校內(nèi)以兩種方式進行本地通信。這個項目帶來了童年的記憶,即使用火柴盒和線來制作
    的頭像 發(fā)表于 11-21 17:26 ?1575次閱讀
    如何<b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的對講電路

    如何構(gòu)建具有同步復(fù)位的CMOS四進制計數(shù)器?

    如何構(gòu)建具有同步復(fù)位的CMOS四進制計數(shù)器?輸入 復(fù)位控制信號RESET 時鐘信號clk輸出
    發(fā)表于 12-10 17:56

    構(gòu)建基于LM13700的壓控放大器

    我的 perfboard 原型演示。我正在制作 PCB 構(gòu)建演示。但我可以確認它有效!與我的 LED vactrol VCA 相比,這個對 CV 輸入有更線性的響應(yīng),這讓我可以用我的 ADSR 進行更平滑的膨脹
    發(fā)表于 06-30 06:14

    什么是投影機無PC移動演示

    什么是投影機無PC移動演示 無PC移動演示
    發(fā)表于 02-05 10:31 ?306次閱讀

    高通聯(lián)合中國移動、中興通訊進行5G新空口系統(tǒng)的互通演示

    2017年11月23-26日,“2017中國移動全球合作伙伴大會”將在廣州舉行。高通作為中國移動的重要合作伙伴,重點展示與中移動合作的5G產(chǎn)業(yè)化最新成果和5G創(chuàng)新應(yīng)用。 其中就包括聯(lián)合中國移動
    的頭像 發(fā)表于 11-28 11:50 ?5887次閱讀

    如何快速構(gòu)建移動跨平臺視頻通話應(yīng)用

    今天我們就來看下如何使用 Agora Flutter SDK 快速構(gòu)建簡單的移動跨平臺視頻通話應(yīng)用。
    的頭像 發(fā)表于 02-24 06:01 ?2801次閱讀
    如何快速<b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>移動</b>跨平臺視頻通話應(yīng)用

    pc是什么意思_PC移動區(qū)別

    PC是和移動終端相對應(yīng)的名詞,就是指網(wǎng)絡(luò)世界里可以連接到電腦主機的那個端口,是基于電腦的界面體系,它有別于移動的手機界面體系。
    發(fā)表于 05-08 10:28 ?6.4w次閱讀

    中興聯(lián)手廣州移動實現(xiàn)構(gòu)建的5G地鐵切片

    5月28日,中興通訊與廣州移動在廣州塔地鐵站率先實現(xiàn)了全球首個5G SA環(huán)境的無線PRB(Physical Recourse Block,物理資源塊)硬隔離切片方案,解決方案涵蓋了5G商用終端、5G基站、承載及5G核心網(wǎng),構(gòu)建
    的頭像 發(fā)表于 06-03 15:47 ?3250次閱讀

    的無人機導(dǎo)航模擬演示

    借助現(xiàn)代人工智能算法,多旋翼無人機可以成為智能代理,在未知環(huán)境中導(dǎo)航。給定目的地,無人機可以控制環(huán)境,重建環(huán)境地圖并動態(tài)規(guī)劃到目的地的軌跡。這項工作的目的是構(gòu)建
    的頭像 發(fā)表于 04-06 15:00 ?4520次閱讀

    如何構(gòu)建連接互聯(lián)網(wǎng)的流量計

    該項目演示了如何構(gòu)建連接互聯(lián)網(wǎng)的流量計,該流量計可以連續(xù)測量河流的流量并在線向用戶提供實時數(shù)據(jù)。
    的頭像 發(fā)表于 05-11 17:21 ?1781次閱讀
    如何<b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>連接互聯(lián)網(wǎng)的流量計

    如何使用ESP32構(gòu)建BLE iBeacon

    在本教程中,我們將使用 ESP32 構(gòu)建 BLE iBeacon,其中 ESP32 將充當服務(wù)器,智能手機將充當客戶。
    發(fā)表于 07-12 16:48 ?6990次閱讀
    如何使用ESP32<b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>BLE iBeacon

    構(gòu)建移動RFID閱讀器

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建移動RFID閱讀器.zip》資料免費下載
    發(fā)表于 12-05 10:31 ?1次下載
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>移動</b>RFID閱讀器

    構(gòu)建移動友好的SAM方案MobileSAM

    萬物等等),但是受限于計算量問題,這些應(yīng)用難以用在移動。 本文旨在將SAM的"重量級"解碼器替換為"輕量級
    的頭像 發(fā)表于 06-30 10:59 ?1180次閱讀
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>移動</b><b class='flag-5'>端</b>友好的SAM方案MobileSAM

    構(gòu)建移動應(yīng)用程序

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建移動應(yīng)用程序.zip》資料免費下載
    發(fā)表于 07-04 14:33 ?0次下載
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>移動</b>應(yīng)用程序

    Artist RoboHelper的構(gòu)建

    電子發(fā)燒友網(wǎng)站提供《Artist RoboHelper的構(gòu)建.zip》資料免費下載
    發(fā)表于 07-10 16:42 ?0次下載
    <b class='flag-5'>一</b><b class='flag-5'>個</b>Artist RoboHelper的<b class='flag-5'>構(gòu)建</b>