在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 智能計算 > 設計應用 > 基于機器學習的高效嵌入式計算機視覺

            基于機器學習的高效嵌入式計算機視覺

            作者: 時間:2024-09-04 來源:Arm 收藏

            作者: 物聯(lián)網(wǎng)事業(yè)部主任軟件工程師兼技術推廣工程師

            本文引用地址:http://www.biyoush.com/article/202409/462644.htm

            Sandeep Mistry

            TinyML 是 (ML) 的一個分支,專注于將 ML 模型部署到低功耗、資源受限的物聯(lián)網(wǎng) (IoT) 設備上。在物聯(lián)網(wǎng)設備上部署 ML 模型有諸多好處,包括減少延遲和保護隱私性,因為所有數(shù)據(jù)都是在端側(cè)處理。TinyML 在 2019 年引起了人們的關注,當時,Google 的 TensorFlow 團隊發(fā)布了適用于微控制器的 TensorFlow Lite (TFLM) 庫 [1] 。

            最初的用例和 TFLM 示例側(cè)重于在基于 Cortex-M4 [2] 的開發(fā)板(例如 Arduino Nano 33 BLE Sense [3] 和 SparkFun Edge [4] )上運行量化的 8 位關鍵詞檢測 [5] 和人員檢測 [6] 模型。這些示例利用 Cortex-M4 CPU 的 SMLAD [7] 指令對模型所需的乘加 (MAC) 運算執(zhí)行端側(cè) ML 推理。

            上表總結了 Arduino Nano 33 BLE Sense 上兩種模型的 MAC 數(shù)量、RAM 和閃存要求以及推理延遲。

            配備 Ethos-U55 NPU 的現(xiàn)代微控制器能夠運行最初為移動端應用開發(fā)的復雜模型。Ethos-U55 NPU 支持 44 個 TensorFlow Lite 算子 [8] 的位精確輸出,并且可配置為每個周期執(zhí)行 32、64、128 或 256 次 MAC 運算。本文將通過在配備 Ethos-U55 NPU 的現(xiàn)代微控制器上運行兩個 TinyML 應用來展示 NPU 的性能優(yōu)勢。我們將分別在采用和不采用 Ethos-U55 NPU 的微控制器上運行應用中所使用的 ML 模型,以此對推理延遲進行基準測試。

            現(xiàn)代物聯(lián)網(wǎng)開發(fā)板


            TinyML 應用被部署到 Seeed Studio 的 Grove Vision AI Module V2 [9] 開發(fā)板上,該開發(fā)板基于 Himax WiseEye2 HX6538 微控制器并集成了 16 MB 的外部閃存。Himax WiseEye2 HX6538 [10] 微控制器搭載了 Cortex-M55 CPU 和 Ethos-U55 NPU,運行頻率均為 400 MHz,且?guī)в?512 KB 緊耦合存儲器 (TCM) 和 2 MB SRAM。

            圖:Seeed Studio Grove Vision AI Module V2 開發(fā)板

            該開發(fā)板上有一個 15 引腳相機串行接口 (CSI),連接至 Himax WiseEye2 HX6538 MCU,可與基于 OmniVision OV5647 的相機模塊一起使用。開發(fā)板上運行的應用可以從相機模塊 [11] 實時采集分辨率為 160x120、320x240 或 640x480 像素的 RGB 圖像。

            將 2.8 寸的 TFT 彩色液晶屏和 3.7 伏的鋰聚合物 (LiPo) 電池連接到開發(fā)板上,便能打造出一款便攜式的電池供電設備。

            TinyML 應用


            部署到開發(fā)板上的兩個基于的應用將會持續(xù):

            從相機模塊采集圖像。

            完成使用 ML 模型時所需的預處理和后處理并執(zhí)行 ML 推理。

            在開發(fā)板所連接的 TFT 屏幕上顯示所采集的圖像和 ML 推理結果。

            第一個應用將使用兩個 ML 模型來檢測臉上的關鍵特征點,第二個應用則使用 ML 模型來檢測人體姿態(tài)中的關鍵特征點。

            這兩個應用都將用到 TFLM 庫和 Ethos-U 自定義算子 [12] ,以便將 ML 運算卸載到 NPU 中。應用中所用的量化 8 位 TensorFlow Lite 模型必須使用 Arm 的 vela [13] 編譯器進行編譯。vela 編譯器將 NPU 支持的運算轉(zhuǎn)換為 Ethos-U 自定義算子,使其可分派到 NPU 進行高效執(zhí)行。任何不受 NPU 支持的運算都將保持原樣并退回到 CPU 上運行。

            左為 8 位量化 TensorFlow Lite 模型圖,右為經(jīng) vela 編譯的 8 位量化 TensorFlow Lite 模型圖 (點擊圖片,查看全圖)

            在上例中,除了 pad 運算之外的所有 TensorFlow 算子都被 vela 編譯器轉(zhuǎn)換為在 Ethos-U55 NPU 上運行的 Ethos-U 自定義算子。未轉(zhuǎn)換的 pad 算子將回調(diào)到 CPU 上運行。

            Face Mesh 應用


            該應用從相機模塊采集 320x240 圖像,然后估算人臉上的 468 個關鍵特征點。對于那些需要識別熟悉面孔、監(jiān)測注意力、識別情緒或執(zhí)行醫(yī)療診斷的用例來說,該應用可以用作特征提取層。其采用了兩個 ML 模型,首先是使用 Google MediaPipe BlazeFace(短程)模型 [14] 來識別圖像中面部的位置。檢測到人臉后,繼而使用 Google MediaPipe Face Mesh 模型 [15] 來識別圖像中最大的那個人臉的 468 個關鍵特征點。

            MediaPipe BlazeFace(短程)模型


            MediaPipe BlazeFace(短程)模型需要將一張 RGB 128x128 圖像作為輸入,且每次推理要執(zhí)行 3,100 萬次 MAC 運算。利用 Katsuya Hyodo 的 PINTO_model_zoo GitHub 資源庫 [16] ,可得到 TensorFlow Lite 格式的 BlazeFace(短程)模型的 8 位量化版本。

            上表總結了對 RAM 和閃存的要求,并將單獨使用 Cortex-M55 CPU 與同時使用 Cortex-M55 CPU 和 Ethos-U55 NPU 所對應的推理延遲進行了比較,結果顯示 Ethos-U55 NPU 將推理速度提高了 109 倍!

            MediaPipe Face Mesh 模型


            MediaPipe Face Mesh 模型需要將一張 RGB 192x192 的臉部裁剪圖像(填充率為 25%)作為輸入,且每次推理要執(zhí)行 3,680 萬次 MAC 運算。從 GitHub [17] 下載該模型的 16 位浮點版本,并使用 tflite2tensorflow [18] 工具將其轉(zhuǎn)換為 8 位量化模型。

            上表總結了對 RAM 和閃存的要求,并將單獨使用 Cortex-M55 CPU 與同時使用 Cortex-M55 CPU 和 Ethos-U55 NPU 所對應的推理延遲進行了比較,結果顯示 Ethos-U55 NPU 將推理速度提高了 103 倍。

            Ethos-U55 的優(yōu)勢


            將 ML 計算卸載到 Ethos-U55,可使該應用每秒執(zhí)行 10 次以上的推理。如果將其部署到 Cortex-M55 CPU,在臉部可見的情況下,該應用只能每八秒執(zhí)行一次推理。

            姿態(tài)估計應用


            該應用從相機模塊采集 320x240 圖像,然后為圖像中檢測到的每個人估計人體姿態(tài)的 17 個關鍵特征點。該應用可以用作那些需要檢測跌倒或運動的應用的特征提取層,或作為人機界面的輸入。

            該模型使用 Ultralytic YOLOv8 GitHub 資源庫的 DeGirum 分支 [19] ,通過一張 256x256 的 RGB 圖像輸入,導出為一個 8 位量化 TensorFlow Lite 模型。對 DeGirum 進行修改可以讓導出的模型更好地針對微控制器進行優(yōu)化,這是通過刪除轉(zhuǎn)置運算并分離模型的七個輸出來實現(xiàn)的,旨在提高量化的準確性。該模型每次推理需要進行 7.28 億次 MAC 運算。

            上表總結了對 RAM 和閃存的要求,并將單獨使用 Cortex-M55 CPU 與同時使用 Cortex-M55 CPU 和 Ethos-U55 NPU 所對應的推理延遲進行了比較,結果顯示 Ethos-U55 NPU 將推理速度提高了 611 倍!將 ML 計算卸載到 Ethos-U55,可使該應用每秒執(zhí)行 10 次以上的推理。如果將其部署到 Cortex-M55 CPU,該應用只能每 62 秒執(zhí)行一次推理。推理延遲的縮短使得應用能夠更快地對人們的動作做出反應。

            結論


            本文演示了為移動端應用開發(fā)的 ML 模型,它們每次推理需要進行千萬到數(shù)億次 MAC 運算,可部署到配備 Ethos-U55 NPU 的現(xiàn)代微控制器上。與 TFLM 庫中所含的示例應用相比,這些 ML 模型對 MAC 運算、RAM 和閃存的要求更高。使用 NPU 可以讓應用在一秒內(nèi)執(zhí)行多次推理,而如果沒有 NPU,則每隔幾秒或一分鐘內(nèi)只能執(zhí)行一次推理。因此,使用 NPU 對于應用來說非常有利,使其能夠運行一個或多個相比初始 tinyML 應用中所使用的模型更為復雜的 ML 模型,而且能夠?qū)χ車h(huán)境做出更快的反應。

            本文展示的應用離不開 Himax 團隊的辛勤付出,他們將 Face Mesh 和 Yolov8n-pose 模型移植到了 Himax WiseEye2 HX6539 微控制器上。正是他們的項目成果,啟發(fā)了我去開發(fā)一臺帶有 TFT 顯示屏和可充電電池的緊湊型便攜式電池供電設備。


            評論


            相關推薦

            技術專區(qū)

            關閉