welcom ! Handel home

2025年4月7日 星期一

OpenCV + Hailo-8 AI 加速器 for Pi4 ROS

 將 OpenCV + Hailo-8 AI 加速器 整合到你的 Raspberry Pi 4 系統中,可以實現 即時影像處理 + 深度學習模型推論加速,非常適合應用於:

  • 🚗 自走車辨識(人臉、物件、路線)

  • 🎥 視覺避障 / 追蹤

  • 🧠 智能辨識(搭配 Yolo / MobileNet)


✅ 一、Hailo-8 加速器簡介

項目說明
名稱Hailo-8 / Hailo-8L
類型外接式 AI 推論加速器(M.2 / USB)
加速能力高達 26 TOPS,支援 INT8 模型推論
支援平台Raspberry Pi 4, x86, NVIDIA Jetson
SDKHailo TAPPAS、HailoRT、Hailo CLI 工具

📦 若你使用的是 Hailo-8L USB 模組,請確保你已安裝官方 SDK + runtime。


⚙️ 二、整合架構示意圖

plaintext
[WebCAM] → [OpenCV 影像擷取] ↓ [前處理:resize, normalize] ↓ [Hailo-8 推論:物件偵測/分類] ↓ [OpenCV 畫框、顯示]

🧰 三、安裝步驟概要(在 Pi 4 上)

✅ 1. 安裝 Hailo SDK

(需向 Hailo 申請帳號並下載 SDK 安裝包)

bash
chmod +x install.sh ./install.sh

會安裝:

  • hailort runtime

  • hailo_model_zoo(轉換模型)

  • hailo_applications(tappas demo)

✅ 2. 驗證 USB 模組連線

bash
hailortcli info

應顯示 Hailo 模組資訊。


🧠 四、使用 Hailo 加速推論的方式

✅ 選項 A:使用 Hailo 提供的 TAPPAS Python Demos

bash
cd ~/hailo_applications/tappas python3 apps/yolo/yolo_inference.py --model yolov5s --device hailo

✅ 選項 B:使用自己撰寫的 OpenCV + Hailo Runtime 程式

📦 基本步驟:

  1. 載入影像(OpenCV)

  2. 轉換格式(NHWC → NCHW, normalize)

  3. 送入 Hailo 編譯後模型(.hef

  4. 取得推論結果,轉為 bounding boxes

  5. OpenCV 畫出框線


🧪 五、OpenCV + Hailo Python 範例(物件偵測)

python
import cv2 from hailo_platform import HEF, HailoRT # 初始化 Hailo hef = HEF('yolov5.hef') net = HailoRT.create_hef_network(hef) vstream = net.create_virtual_streams() # 打開 USB webcam cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() img = cv2.resize(frame, (640, 640)) # 模型輸入尺寸 input_data = preprocess(img) # normalize, NHWC to NCHW # 推論 vstream.send_input(input_data) result = vstream.receive_output() boxes = postprocess(result) for (x1, y1, x2, y2) in boxes: cv2.rectangle(frame, (x1, y1), (x2, y2), (0,255,0), 2) cv2.imshow("Hailo YOLO Detection", frame) if cv2.waitKey(1) == 27: break

📦 六、支援的模型範例

模型說明支援度
YOLOv5s/v3-tiny輕量級物件偵測✅ 支援
MobileNet SSD常見分類模型✅ 支援
ResNet18/50分類
Custom 模型(訓練後)經過轉換、量化✅ 支援 INT8

🔧 自定模型轉換流程:

bash
# 將 ONNX 模型轉為 Hailo 格式 hailomz compile --model yolov5.onnx --arch hailo8 --output yolov5.hef

🚀 七、與 ROS 整合

你可以將整個流程封裝為 ROS node,如下:

bash
rosrun hailo_vision yolov5_node.py

訂閱:

  • /camera/image_raw

發布:

  • /yolo/detections(bounding box topic)

  • /vision_result(文字分類結果)

也可以與 move_base 結合做視覺避障/導航。


✅ 總結

元件功能
OpenCV影像擷取、處理、畫框
Hailo-8推論加速(INT8),低功耗、高效能
TAPPAS SDK內建 demo 範例,支援各類模型
自定模型可訓練 ONNX,經量化轉為 Hailo 用 .hef
Raspberry Pi 4控制與邊緣推論平台,適合移動機器人應用

沒有留言: