久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 使用Raspberry Pi 5和Hailo-8L AI進(jìn)行物體識(shí)別和距離測(cè)量

使用Raspberry Pi 5和Hailo-8L AI進(jìn)行物體識(shí)別和距離測(cè)量

作者: 時(shí)間:2025-09-17 來源: 收藏

想象一下,一輛車輛以每小時(shí) 54 公里的速度巡航,大約相當(dāng)于一個(gè)物體以每秒 30 幀的速度每幀移動(dòng) 0.5 米的速度(0.5×30×3.6=54 公里/小時(shí))。安裝在車頂上的是一個(gè)緊湊的高性能視覺系統(tǒng),圍繞 板和 加速器構(gòu)建。這種實(shí)時(shí)設(shè)置可以檢測(cè)前方物體并估計(jì)它們與車輛的距離。當(dāng)物體進(jìn)入預(yù)定義的安全區(qū)域時(shí),系統(tǒng)可以立即發(fā)出警告或啟動(dòng)緊急制動(dòng),從而增強(qiáng)態(tài)勢(shì)感知和反應(yīng)時(shí)間。

該系統(tǒng)使用 上的 AI 加速器 HAT 構(gòu)建,作為生產(chǎn)級(jí) AI 平臺(tái)運(yùn)行,能夠以每秒至少 30 幀的速度運(yùn)行。專為車載安裝而設(shè)計(jì),可連續(xù)掃描道路,實(shí)時(shí)識(shí)別物體,并計(jì)算其距離。這些實(shí)時(shí)讀數(shù)顯示在終端上。如果任何物體超過預(yù)定義的接近閾值,系統(tǒng)可能會(huì)通過 GPIO 引腳觸發(fā)警報(bào)。盡管警報(bào)機(jī)制易于實(shí)現(xiàn),但在當(dāng)前版本中仍未構(gòu)建。組裝系統(tǒng)所需的組件列在物料清單表格中。圖1顯示了作者的工作原型。

物體識(shí)別和距離測(cè)量系統(tǒng)

圖1:作者的系統(tǒng)原型

連接和安裝

AI加速器可以安裝在樹莓派的頂部,如圖2所示。請(qǐng)注意,由于 AI HAT 完全覆蓋主處理器,因此 往往會(huì)顯著發(fā)熱。為防止過熱,強(qiáng)烈建議使用額外的冷卻方法。在該系統(tǒng)中,安裝 AI HAT 后,只有特定的固定式冷卻器才能安裝在可用的狹窄空間內(nèi)。完整的設(shè)置及其各個(gè)組件如圖 2 所示。樹莓派 5 還必須由高質(zhì)量的 5V、4A 電源適配器供電,以保持穩(wěn)定的性能。


安裝在樹莓派上的AI加速器

圖2:安裝在樹莓派上的AI加速器

通過主動(dòng)冷卻,Raspberry Pi 5 可以安全地超頻以獲得額外的性能,但代價(jià)是功耗和發(fā)熱略有增加。冷卻器的風(fēng)扇連接器應(yīng)插入 Pi 5 板上的指定風(fēng)扇接頭。當(dāng)與 AI HAT 搭配使用時(shí),基于 YOLO 的 AI 處理的繁重工作由加速器處理,使 Pi 5 能夠?qū)W⒂谟?jì)算和控制邏輯。這種分工確保了平穩(wěn)高效的運(yùn)行,即使在每秒 30 幀的情況下也是如此。

物料清單
組件數(shù)量
樹莓派 5、8Gb 或 16Gb1
適用于 Pi 5 的 加速器,13 TOPS 至 26 TOPS1
Pi 5 相機(jī)1
Pi 5 電源適配器1
高速 SD 卡,32GB 或更多
HDMI 適配器/顯示器1

編程和代碼

首先,確保安裝了 64 位 Raspberry Pi OS Bookworm。該系統(tǒng)在 32 位 Pi作系統(tǒng)上不起作用。建議使用高質(zhì)量的相機(jī)模塊 3 或更高,以獲得最佳效果。

-廣告-

安裝指南

https://www.raspberrypi.com/documentation/computers/ai.html#getting-started

更新 Systembash

$ sudo apt-get update
$ sudo apt-get upgrade

訪問 Raspberry Pi

作 Raspberry Pi 最方便的方法是通過 SSH 從臺(tái)式機(jī)或筆記本電腦訪問它:

$ ssh bera@192.168.x.x

出現(xiàn)提示時(shí),輸入密碼。身份驗(yàn)證后,將授予對(duì) Raspberry Pi 5 終端的訪問權(quán)限。

注意

SSH 訪問是可選的;還支持使用顯示器、鍵盤和鼠標(biāo)進(jìn)行直接連接。

啟用 PCIe Gen 3.0 速度

默認(rèn)情況下,Raspberry Pi 5 以第 2.0 代 PCIe 速度運(yùn)行。要啟用第 3.0 代:

$ sudo raspi-config
  • 導(dǎo)航到高級(jí)選項(xiàng)→PCIE 速度

  • 選擇“是”以啟用第 3 代模式

  • 選擇“完成”,并在出現(xiàn)提示時(shí)重新啟動(dòng)系統(tǒng)。

安裝 Hailo 軟件堆棧

重新啟動(dòng)后,安裝 Hailo 驅(qū)動(dòng)程序和工具:

$ sudo apt install hailo-all

此命令安裝 Hailo 內(nèi)核設(shè)備驅(qū)動(dòng)程序、固件、HailoRT、Hailo 應(yīng)用程序、庫和“rpicam-apps”。然后重新啟動(dòng)系統(tǒng):

$ sudo reboot

重新啟動(dòng)以應(yīng)用所有更改。驗(yàn)證 Hailo 安裝。重新啟動(dòng)后,運(yùn)行:

$ hailortcli fw-control identify

這可確保所有更改生效。

Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.17.0
(release,app,extended context switch
buffer) Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB234500054
Part Number: HM21LB1C2LAE
Product Name: HAILO-8L AI ACC M.2 B+M KEY
MODULE EXT TMP

最后五行確保 Hailo-8L 板已成功安裝。在某些情況下,可能不會(huì)顯示序列號(hào)或部件號(hào),但電路板將繼續(xù)正常運(yùn)行。測(cè)試 rpicam-hello:

$> rpicam-hello -t 10s # This will run
rpicam for 10 seconds and then stop
$> rpicam-hello --help # This displays
the help file

安裝完所有組件后,安裝“rpicam-apps”包以啟用 Hailo AI 加速器功能:

$> sudo apt update && sudo apt install
rpicam-apps

現(xiàn)在可以執(zhí)行高速物體檢測(cè)示例:

$> rpicam-hello -t 0 --post-process-file /

usr/share/rpi-camera-assets/hailo_yolov6_

inference.json

$> rpicam-hello -t 0 --post-process-file /

usr/share/rpi-camera-assets/hailo_yolov8_

inference.json

$> rpicam-hello -t 0 --post-process-file /

usr/share/rpi-camera-assets/hailo_yolov5_

personface.json # This command detects

faces – useful for face counting

$> rpicam-hello -t 0 --post-process-file /

usr/share/rpi-camera-assets/hailo_yolov8_

pose.json # This command detects human

poses – useful for fall detection

這些命令演示了如何將 “rpicam-hello ”與不同的 YOLO AI 模型一起使用。

安裝說明

Hailo RPi5 示例 – 安裝指南:

步驟 1:克隆存儲(chǔ)庫

$> git clone https://github.com/hailo-ai/

hailo-rpi5-examples.git

第 2 步:導(dǎo)航到目錄

$> cd hailo-rpi5-examples

該目錄包含兩個(gè)關(guān)鍵文件:“setup_env.sh”和“requirements.txt”。

由于 Hailo-8L 需要特定的 Python 包版本,因此建議使用虛擬環(huán)境以避免沖突。這允許在本地安裝必要的包版本,而不會(huì)干擾系統(tǒng)范圍的 Python 環(huán)境。下一步是按照 Hailo-8L 套件的推薦激活特殊環(huán)境。

第 3 步:激活虛擬環(huán)境

$> source setup_env.sh

激活后,終端提示符將更改為指示虛擬環(huán)境中的條目:(venv_hailo_rpi5_examples) bera@raspberrypi:~/hailo-rpi5-examples $

第 4 步:安裝所需的 Python 包

(venv_hailo_rpi5_examples) bera@raspberrypi:~/hailo-rpi5-examples $ pip install -r requirements.txt

requirements.txt文件包含 Hailo 示例所需的 Python 包列表。要查看文件內(nèi)容:

$> cat requirements.txt

預(yù)期內(nèi)容:

numpy<2.0.0 setproctitle opencv-python

要單獨(dú)安裝它們:

$> pip install numpy<2.0.0
$> pip install setproctitle
$> pip install opencv-python

第 5 步:下載必要的 Hailo 模型

$> download_resources.sh

若要安裝其他 Python 資源,請(qǐng)?jiān)L問:https://github.com/hailo-ai/hailo-apps-infra

該存儲(chǔ)庫提供適用于 Raspberry Pi 5 的 Hailo 應(yīng)用程序基礎(chǔ)設(shè)施。其中某些部分對(duì)于當(dāng)前代碼是可選的。

$> git clone https://github.com/hailo-ai/
hailo-apps-infra.git
$> pip install --force-reinstall -v -e .
# (Optional)

'git clone' 命令下載了 Hailo 的其他 Python 實(shí)用程序。最后一個(gè) pip 命令完全是可選的;它可以運(yùn)行或跳過。在此階段,系統(tǒng)所需的所有軟件組件都應(yīng)就位。請(qǐng)注意,所有這些工具都屬于開源軟件類別。

使用“basic_pipelines”目錄中的 Python 腳本開始試驗(yàn) Hailo-8L 加速器:

現(xiàn)在,該過程可以繼續(xù)使用 Hailo-8L 加速器,嘗試一些示例 Python 腳本,并最終構(gòu)建單獨(dú)的measure_distance3.py。basic_pipelines子目錄中已經(jīng)提供了兩個(gè)示例 Python 腳本:

  • detection_simple.py

  • pose_estimation.py

這些可以接受來自預(yù)定義源的輸入,例如 MP4 文件、Raspberry Pi 相機(jī)或 USB 相機(jī)。用法示例:

$> python basic_pipelines/detection_

simple.py --input rpicam # From Pi Camera

$> python basic_pipelines/pose_estimation.

py --input test.mp4 # From video file

$> python basic_pipelines/detection_

simple.py --input /dev/video0 # From USB

camera

$> python basic_pipelines/detection.py

--help # Help for detection.py

要使用自定義模型:

$> python basic_pipelines/detection.py

–標(biāo)簽-json 資源/barcode-labels.json

–hef-path 資源/yolov8s-hailo8l-barcode.hef

–輸入資源/barcode.mp4

測(cè)距理論

通過將物體的已知寬度與捕獲圖像中的感知寬度進(jìn)行比較來估計(jì)距離。

根據(jù)針孔相機(jī)模型,距離相機(jī)較遠(yuǎn)的物體會(huì)顯得更小。如果相機(jī)的焦距、物體的真實(shí)寬度和觀察到的圖像寬度已知,則可以使用類似的三角形計(jì)算距離。

標(biāo)準(zhǔn)寬度和默認(rèn)寬度在代碼開頭定義。

分割模型“yolov5n_seg_h8l_mz.hef”有助于識(shí)別完整的物體,即使部分可見也是如此。分割后的圖像用于估計(jì)物體的寬度,然后將其與已知尺寸進(jìn)行比較以確定距離。

# Object width dictionary for distance

estimation (in metres)

OBJECT_WIDTHS = {

“person”: 0.4, “bicycle”: 0.5, “car”:

1.8, “motorcycle”: 0.8, “bus”: 2.5,

“truck”: 2.5, “airplane”: 36.0, “train”:

3.2, “boat”: 5.0, “traffic light”: 0.6,

“fire hydrant”: 0.3, “stop sign”: 0.75,

“cat”: 0.3, “dog”: 0.6, “horse”: 1.2,

“cow”: 1.5, “elephant”: 3.2, “bear”: 1.7,

“zebra”: 1.2, “giraffe”: 2.0,

“bench”: 1.2, “chair”: 0.6, “couch”: 2.0,

“dining table”: 1.8,

“l(fā)aptop”: 0.4, “tv”: 1.2

}

DEFAULT_OBJECT_WIDTH = 0.5 # Default

width (in meters) for unknown objects

FOCAL_LENGTH = 0.5 # Focal length in

meters (Raspberry Pi Camera Module 3 Wide

Spec)

To run the measure_distance3.py script

and capture data from different camera

sources:

$> python measure_distance3.py --input

rpicam # Capture data from Pi camera

$> python measure_distance3.py --input /

dev/video0 # Capture data from USB camera

模型 yolov5n_seg_h8l_mz.hef 支持大約 80 個(gè)對(duì)象類,但在此實(shí)現(xiàn)中,重點(diǎn)僅放在上一個(gè)字典中列出的 26 個(gè)特定對(duì)象上。這些對(duì)象提供了標(biāo)準(zhǔn)物理寬度,可以估計(jì)它們與攝像機(jī)的距離。

測(cè)試

圖 3 說明了技術(shù),而圖 4 和圖 5 顯示了引腳細(xì)節(jié)和安裝。

距離測(cè)量技術(shù)

圖3:技術(shù)

為系統(tǒng)供電并運(yùn)行腳本。物體及其距離將實(shí)時(shí)顯示。

Raspberry Pi 引腳詳細(xì)信息

圖 4:Raspberry Pi 的引腳細(xì)節(jié)

Raspberry Pi 5 與 HAT 配對(duì),由 5V、4A 電源供電,非常適合需要實(shí)時(shí)物體檢測(cè)和距離估計(jì)的嵌入式或固定應(yīng)用。

Raspberry Pi 和相機(jī)安裝

圖 5:相機(jī)和 Raspberry Pi 的安裝

這個(gè)項(xiàng)目可以在哪里使用?

該系統(tǒng)可用于多種目的,例如:

汽車儀表盤監(jiān)控

該系統(tǒng)安裝在擋風(fēng)玻璃上,可以檢測(cè)前方車輛和行人,估計(jì)距離,并在發(fā)生潛在碰撞或不安全的跟車距離時(shí)向駕駛員發(fā)出警報(bào)。它還可以集成語音合成器,例如 espeak-ng,通過揚(yáng)聲器發(fā)出語音建議。

帶咨詢的倒檔監(jiān)控

它安裝在汽車后部,可以在停車過程中檢測(cè)附近的物體或人,并提供視覺/音頻警報(bào),甚至觸發(fā)自動(dòng)制動(dòng)機(jī)制。

智能門禁監(jiān)控

該系統(tǒng)位于入口處,可以檢測(cè)接近的個(gè)人,對(duì)他們進(jìn)行分類(例如送貨員、已知訪客或陌生人),并估計(jì)他們的距離以實(shí)現(xiàn)自動(dòng)作,包括門鈴激活、照明或門解鎖。

建筑物中的占用率和人群分析

它可用于監(jiān)控大廳、走廊或等候區(qū)的人員密度和間距。當(dāng)人們彼此距離太近或該區(qū)域變得過度擁擠時(shí),該系統(tǒng)可以觸發(fā)通風(fēng)系統(tǒng)或人群控制警報(bào)。

倉庫安全系統(tǒng)

它可以檢測(cè)移動(dòng)的叉車或人員,并估計(jì)它們與限制區(qū)域的接近程度。這可以幫助在附近接近時(shí)觸發(fā)警報(bào)或減慢自動(dòng)化機(jī)械的速度,從而提高工作場(chǎng)所的安全性。

用于室內(nèi)導(dǎo)航的機(jī)器人視覺

它用于 AGV(自動(dòng)導(dǎo)引車)或室內(nèi)機(jī)器人,以識(shí)別障礙物并測(cè)量距離,從而在室內(nèi)環(huán)境中實(shí)現(xiàn)更安全、更高效的導(dǎo)航。

學(xué)區(qū)或大門監(jiān)控

該系統(tǒng)監(jiān)控學(xué)校大門附近兒童或監(jiān)護(hù)人的存在和移動(dòng),并根據(jù)檢測(cè)到的行為和距離生成警報(bào)或自動(dòng)執(zhí)行大門作。

收費(fèi)站或橋梁的交通監(jiān)控

該系統(tǒng)識(shí)別車輛類型并測(cè)量距離,以實(shí)現(xiàn)自動(dòng)收費(fèi)、檢測(cè)超載或分析交通密度。

校車閘機(jī)監(jiān)控

它可以幫助觀察進(jìn)來的交通和兒童在校車門周圍的移動(dòng),確保更安全的進(jìn)出條件。



評(píng)論


相關(guān)推薦

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

關(guān)閉