<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

上手測試 Hailo:在 Toradex 模塊上加速邊緣 AI

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

by Toradex Allan Kamimura

邊緣計算機視覺(jué)

為何選擇邊緣計算?

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

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

  2. 增強隱私保護:敏感數據保留在設備內,確保符合嚴格的隱私法規要求。

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

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

為何需要外部 AI 加速器?

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

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

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

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

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

Hailo簡(jiǎn)介

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

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

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

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

Hailo Pre-Post Processing Steps

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

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

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

完整的軟件堆棧

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

  1. 性能評估

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

    2. Model Zoo 不僅提供了一些模型的基準測試結果,還包括預訓練模型。

  2. 模型訓練

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

  3. 編譯器和運行庫



    1. Hailo Dataflow 編譯器

    2. pyHailoRT 和 GStreamer 插件

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

  1. 監控性能

    1. 提前識別任何問(wèn)題,確保系統可靠性。

  2. OTA 更新

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

支持 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 (即將上線(xiàn))
Torizon OSBSP 6runtime container (即將上線(xiàn))
Torizon OS MinimalBSP 6meta-hailo kirkstone
OpenEmbedded layer for GStreamer 1.0
tdx-reference-multimediaBSP 6meta-hailo kirkstone

YOLOv5 示例

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

Hailo Pre-Post Processing Steps

我們將使用:

  • 攝像頭

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

  • 顯示器

  • Verdin i.MX8MP + Mallow Carrier 載板

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

  • Hailo AI Accelerator

步驟:

  1. 從源碼構建 Torizon OS

    1. 構建基礎 Torizon OS

    2. 添加依賴(lài)項

  2. 硬件設置

    1. 連接Hailo設備

    2. 連接攝像頭

    3. 安裝新鏡像

  3. 檢查所有配置

  4. 運行示例

從源代碼構建 Torizon OS

完整指南

首先,您可能需要檢查計算機的 RAM 和磁盤(pán)空間

  • 用于 Yocto 項目構建的計算機

構建 Torizon OS 基礎鏡像
我們將使用 CROPS 容器來(lái)構建以下鏡像:

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

創(chuàng )建工作目錄

cd ~
mkdir ~/yocto-workdir

運行容器(這將構建基礎鏡像)

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

命令的第二行將主機卷映射到容器的 workdir 目錄。請注意,此文件夾 ~/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

將依賴(lài)項添加到鏡像

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

cd ./layers

我們將添加下面 layers:

  • meta-hailo

  • meta-gstreamer1.0

  • meta-toradex-framos

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

在 torizon/crops:kirkstone-6.x.y 容器中, 運行 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。在末尾添加下面內容。

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.

硬件設置

連接Hailo設備

將 Hailo 設備插入 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)  將新鏡像刷入設備。

  1. 下載Tezi

  2. 將設備置于恢復模式

  3. 安裝新編譯的鏡像

Toradex Easy Installer - Torizon Installation

檢查安裝情況

Hailo 設備

sudo su
hailocli scan
hailocli device-info

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

顯示屏

gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink

您應該在屏幕上看到一些彩色圖案。

Camera 設備

此步驟可能因使用的相機而異。

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

對于 Framos 相機,輸出如下。

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 格式。因此請記住其中的數值。

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

運行示例

某些攝像頭會(huì )指定分辨率和幀數,因此需相應調整這些值。這可以通過(guò)修改 PIPELINE 變量的 framerate 值來(lái)實(shí)現。

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


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



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

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>