日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 上手測(cè)試 Hailo:在 Toradex 模塊上加速邊緣 AI

          上手測(cè)試 Hailo:在 Toradex 模塊上加速邊緣 AI

          發(fā)布人:toradex 時(shí)間:2025-03-06 來源:工程師 發(fā)布文章

          by Toradex Allan Kamimura

          邊緣計(jì)算機(jī)視覺

          為何選擇邊緣計(jì)算?

          嵌入式設(shè)備日益智能化,許多機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺任務(wù)正被推向邊緣設(shè)備。在此類設(shè)備上運(yùn)行 AI 模型雖具挑戰(zhàn)性,卻帶來諸多優(yōu)勢(shì):

          1. 降低延遲: 在設(shè)備端處理數(shù)據(jù),避免了向云端或中央處理器傳輸數(shù)據(jù)的等待時(shí)間

          2. 增強(qiáng)隱私保護(hù):敏感數(shù)據(jù)保留在設(shè)備內(nèi),確保符合嚴(yán)格的隱私法規(guī)要求。

          3. 節(jié)省帶寬成本:邊緣處理減少了對(duì)集中式服務(wù)器發(fā)送大量數(shù)據(jù)的需求。

          4. 提升可靠性:系統(tǒng)可在無網(wǎng)絡(luò)連接的情況下獨(dú)立運(yùn)作。

          為何需要外部 AI 加速器?

          Toradex 提供多種計(jì)算機(jī)模塊(SoM),其中一些集成了神經(jīng)網(wǎng)絡(luò)處理單元(NPU),能夠應(yīng)對(duì)不同的 AI 工作負(fù)載。例如,Verdin iMX8M PlusVerdin iMX95和 Aquila AM69 均配備了專為邊緣推理加速設(shè)計(jì)的 NPU,使其適用于眾多計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)應(yīng)用。

          盡管這些模塊提供了強(qiáng)大的 AI 解決方案,但諸如 Hailo-8、EdgeX、MemryX 及 Google Coral 等外部 AI 加速器通過提供模塊化、解耦且可擴(kuò)展的邊緣 AI 推理方案來應(yīng)對(duì)挑戰(zhàn)。這帶來了更高的靈活性和面向未來的 AI 能力。

          1. 將 AI 處理與 SoC 供應(yīng)商軟件解耦
          在邊緣運(yùn)行機(jī)器學(xué)習(xí)面臨的一大挑戰(zhàn)是將模型適配到特定硬件或運(yùn)行庫上。無論是 NXP 的 eiQ 平臺(tái)、TI 的 Edge AI Studio 還是 ONNX 導(dǎo)出工具,每種都有其專屬的 AI 工具包和優(yōu)化策略。外部 AI 加速器將 AI 工作負(fù)載從其他硬件中分離出來,提供了一個(gè)統(tǒng)一的跨多硬件平臺(tái)的運(yùn)行環(huán)境。

          示例: 一個(gè)基于 x86 設(shè)備并使用 Hailo-8 AI 加速器開發(fā)的計(jì)算機(jī)視覺解決方案,可以無縫遷移至搭載 Hailo-8 的 Aquila AM69 模塊上而無需重構(gòu)整個(gè) AI 堆棧。這種解耦確保了僅需最小調(diào)整即可完成遷移,大大縮短了產(chǎn)品上市時(shí)間。

          2. 模塊化與可擴(kuò)展性
          AI 應(yīng)用具有動(dòng)態(tài)特性,隨著工作負(fù)載復(fù)雜度的增加或新功能的創(chuàng)建,性能需求可能會(huì)發(fā)生變化。雖然內(nèi)置的 NPU 能提供堅(jiān)實(shí)的解決方案,但有時(shí)它們可能難以適應(yīng)新的場(chǎng)景。

          Hailo簡(jiǎn)介

          Hailo是一家 AI 處理器制造商,其產(chǎn)品旨在邊緣端上運(yùn)行先進(jìn)的機(jī)器學(xué)習(xí)應(yīng)用,能夠廣泛應(yīng)用于智慧城市、汽車、制造、農(nóng)業(yè)、零售等多個(gè)行業(yè)和領(lǐng)域。

          我們使用 Hailo-8 M.2 模塊在多款 Toradex 模塊上進(jìn)行了測(cè)試。Hailo-8 M.2 模塊是一款具備 26 TOPS 算力及 PCIe Gen-3.0 4通道 M-key 接口的 AI 加速器模塊。該 M.2 模塊可插入多種 Toradex 載板中,實(shí)現(xiàn)實(shí)時(shí)的深度神經(jīng)網(wǎng)絡(luò)推理。

          如何 Hailo 充分利用 Toradex 生態(tài)系統(tǒng)?

          釋放預(yù)處理和后處理任務(wù)

          Hailo Pre-Post Processing Steps

          來源: https://hailo.ai/blog/customer-case-study-developing-a-high-performance-application-on-an-embedded-edge-ai-device/

          典型的計(jì)算機(jī)視覺流程遵循線性模式。從攝像頭捕捉源開始,直到應(yīng)用程序采取行動(dòng),圖像必須經(jīng)過每一個(gè)處理步驟。這意味著如果任何一個(gè)步驟比下一個(gè)耗時(shí)更長(zhǎng),那就是瓶頸所在。

          通常,在比較機(jī)器學(xué)習(xí)模型或硬件時(shí),我們會(huì)非常關(guān)注推理速度,但這只是問題的一部分。

          完整的軟件堆棧

          Hailo 是一個(gè)完整的人工智能解決方案,支持常見機(jī)器學(xué)習(xí)工作流中的大部分步驟。

          1. 性能評(píng)估

            1. TAPPAS 是一個(gè)包含應(yīng)用示例的代碼庫。

            2. Model Zoo 不僅提供了一些模型的基準(zhǔn)測(cè)試結(jié)果,還包括預(yù)訓(xùn)練模型。

          2. 模型訓(xùn)練

            1. 部分預(yù)訓(xùn)練模型附帶了再訓(xùn)練環(huán)境。

          3. 編譯器和運(yùn)行庫



            1. Hailo Dataflow 編譯器

            2. pyHailoRT 和 GStreamer 插件

          從 Toradex 方面來看,這一工作流程可以通過使用 Torizon 云平臺(tái)得到補(bǔ)充。

          1. 監(jiān)控性能

            1. 提前識(shí)別任何問題,確保系統(tǒng)可靠性。

          2. OTA 更新

            1. 輕松更新量產(chǎn)設(shè)備。

          支持 Toradex 模塊硬件

          硬件

          支持的硬件配置

          系列模塊載板Hailo
          AquilaTI AM69
          (1+2 x PCIe 3.0)
          Clover
          (M.2 key B+M)
          Hailo-8
          Hailo-8L
          AquilaNXP i.MX 95
          (1 x PCIe 3.0)
          Clover
          (M.2 key B+M)
          Hailo-8
          Hailo-8L
          VerdinNXP i.MX 95
          (1 x PCIe 3.0)
          Mallow
          (M.2 key B)
          Hailo-8
          Hailo-8L
          VerdinNXP i.MX 8M Plus
          (1 x PCIe 3.0)
          Mallow
          (M.2 key B)
          Hailo-8
          Hailo-8L
          VerdinNXP i.MX 8M Mini
          (1 x PCIe 2.0)
          Mallow
          (M.2 key B)
          Hailo-8
          Hailo-8L
          ApalisNXP i.MX8
          (2 x PCIe 3.0)
          Ixora
          (Mini PCIe)
          Hailo-8R mPCIe

          軟件

          OS版本其他的資源
          Torizon OSBSP 7meta-hailo layer (即將上線)
          Torizon OSBSP 6runtime container (即將上線)
          Torizon OS MinimalBSP 6meta-hailo kirkstone
          OpenEmbedded layer for GStreamer 1.0
          tdx-reference-multimediaBSP 6meta-hailo kirkstone

          YOLOv5 示例

          在本例中,我們將運(yùn)行來自 Tappas 的演示應(yīng)用程序:
          完成此示例后,您應(yīng)得到類似以下的輸出。以 60+ FPS 的速度運(yùn)行(取決于您的攝像頭)。

          Hailo Pre-Post Processing Steps

          我們將使用:

          • 攝像頭

            • 如果使用 USB 攝像頭,由于攝像頭的捕捉速度,幀率可能會(huì)非常低。

          • 顯示器

          • Verdin i.MX8MP + Mallow Carrier 載板

            • Verdin iMX8M Plus QuadLite 1GB IT (0065) 不兼容 Framos 攝像頭。

          • Hailo AI Accelerator

          步驟:

          1. 從源碼構(gòu)建 Torizon OS

            1. 構(gòu)建基礎(chǔ) Torizon OS

            2. 添加依賴項(xiàng)

          2. 硬件設(shè)置

            1. 連接Hailo設(shè)備

            2. 連接攝像頭

            3. 安裝新鏡像

          3. 檢查所有配置

          4. 運(yùn)行示例

          從源代碼構(gòu)建 Torizon OS

          完整指南

          首先,您可能需要檢查計(jì)算機(jī)的 RAM 和磁盤空間

          • 用于 Yocto 項(xiàng)目構(gòu)建的計(jì)算機(jī)

          構(gòu)建 Torizon OS 基礎(chǔ)鏡像
          我們將使用 CROPS 容器來構(gòu)建以下鏡像:

          Torizon OS DistoMachineTorizon OS Image Target版本
          torizonverdin-imx8mptorizon-minimal6.8.0

          創(chuàng)建工作目錄

          cd ~
          mkdir ~/yocto-workdir

          運(yùn)行容器(這將構(gòu)建基礎(chǔ)鏡像)

          這將占用大量?jī)?nèi)存,并需要幾個(gè)小時(shí)才能完成。

          命令的第二行將主機(jī)卷映射到容器的 workdir 目錄。請(qǐng)注意,此文件夾 ~/yocto-workdir 是在上一步中創(chuàng)建的。

          docker run --rm -it --name=crops \
            -v ~/yocto-workdir:/workdir \
            --workdir=/workdir \
            -e MACHINE="verdin-imx8mp" \
            -e IMAGE="torizon-minimal" \
            -e DISTRO="torizon" \
            -e BRANCH="refs/tags/6.8.0" \
            -e MANIFEST="torizoncore/default.xml" \
            -e ACCEPT_FSL_EULA="1" \
            -e BB_NUMBER_THREADS="2" \
            -e PARALLEL_MAKE="-j 2" \ # not sure if I can pass those like this
            torizon/crops:kirkstone-6.x.y startup-tdx.sh

          將依賴項(xiàng)添加到鏡像

          要添加依賴項(xiàng),首先進(jìn)入 ~/yocto-workdir/layers 文件夾。

          cd ./layers

          我們將添加下面 layers:

          • meta-hailo

          • meta-gstreamer1.0

          • meta-toradex-framos

          更多關(guān)于 meta layers 的內(nèi)容,請(qǐng)參考 完整的文檔。

          在 torizon/crops:kirkstone-6.x.y 容器中, 運(yùn)行 bitbake add layers 命令。

          bitbake-layers add-layer meta-hailo/meta-hailo-accelerator
          bitbake-layers add-layer meta-hailo/meta-hailo-libhailort
          bitbake-layers add-layer meta-hailo/meta-hailo-tappas
          bitbake-layers add-layer meta-hailo/meta-hailo-vpu
          bitbake-layers add-layer meta-toradex-framos
          bitbake-layers add-layer meta-gstreamer1.0

          在 build-torizon/conf/local.conf 文件中添加 packages。在末尾添加下面內(nèi)容。

          IMAGE_INSTALL:append = " libhailort hailortcli pyhailort libgsthailo hailo-pci hailo-firmware"
          IMAGE_INSTALL:append = " gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad"
          IMAGE_INSTALL:append = " v4l-utils"

          使用新的 layers 編譯鏡像。

          bitbake torizon-minimal

          你可以在下面位置找到兼容 Toradex Easy Installer 的安裝鏡像  ~/yocto-workdir/build-torizon/deploy/images/verdin-imx8mp/torizon-minimal-verdin-imx8mp-Tezi_6.8.0-devel-<date>+build.0.tar.

          硬件設(shè)置

          連接Hailo設(shè)備

          將 Hailo 設(shè)備插入 Mallow 載板的 M.2 插槽中。

          Hailo Device Connect to Mallow Carrier Board

          連接攝像頭

          將攝像頭連接到 Mallow 載板的 MIPI-CSI 接口上。

          MIPI-CSI connector of the Mallow Carrier Board

          安裝新的 Torizon OS 鏡像

          使用 Toradex Easy Installer (Tezi)  將新鏡像刷入設(shè)備。

          1. 下載Tezi

          2. 將設(shè)備置于恢復(fù)模式

          3. 安裝新編譯的鏡像

          Toradex Easy Installer - Torizon Installation

          檢查安裝情況

          Hailo 設(shè)備

          sudo su
          hailocli scan
          hailocli device-info

          這些命令的輸出應(yīng)能檢測(cè)到設(shè)備已正確連接且驅(qū)動(dòng)程序正常工作。

          顯示屏

          gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink

          您應(yīng)該在屏幕上看到一些彩色圖案。

          Camera 設(shè)備

          此步驟可能因使用的相機(jī)而異。

          v4l2-ctl -d2 -D
          v4l2-ctl --list-formats-ext -d /dev/video2

          對(duì)于 Framos 相機(jī),輸出如下。

          root@verdin-imx8mp-15445736:~# v4l2-ctl --list-formats-ext -d /dev/video2
          ioctl: VIDIOC_ENUM_FMT
          	Type: Video Capture
          
          	[0]: 'YUYV' (YUYV 4:2:2)
          		Size: Stepwise 176x144 - 4096x3072 with step 16/8
          	[1]: 'NV12' (Y/CbCr 4:2:0)
          		Size: Stepwise 176x144 - 4096x3072 with step 16/8
          	[2]: 'NV16' (Y/CbCr 4:2:2)
          		Size: Stepwise 176x144 - 4096x3072 with step 16/8
          	[3]: 'RG12' (12-bit Bayer RGRG/GBGB)
          		Size: Stepwise 176x144 - 4096x3072 with step 16/8

          在演示中,我們將使用 YUYV 格式。因此請(qǐng)記住其中的數(shù)值。

          gst-launch-1.0 -v v4l2src device=/dev/video2 ! video/x-raw ! videoconvert ! autovideosink

          運(yùn)行示例

          某些攝像頭會(huì)指定分辨率和幀數(shù),因此需相應(yīng)調(diào)整這些值。這可以通過修改 PIPELINE 變量的 framerate 值來實(shí)現(xiàn)。

          sudo su
          cd ~/apps/detection/
          ./detection.sh


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: ARM NPU Hailo NXP iMX8MP Toradex Verdin

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉