张高兴的 Raspberry Pi AI 开发指南:(一)Hailo-8 配置

2024 年 6 月,Raspberry Pi AI Kit 发布,将 M.2 HAT+ 与 Hailo-8 AI 加速模块捆绑在一起,使 Raspberry Pi 具有了运行 AI 程序的能力。Hailo-8 是由以色列公司 Hailo 开发的一款高性能边缘 AI 处理器(NPU),它专为低功耗、高效率的深度学习推理任务设计,可以提供高达 26 TOPS 的计算能力,适用于各种边缘计算场景。本文主要介绍 AI Kit(AI HAT+)在 Raspberry Pi 5 上的配置和使用。

摄像头配置

Raspberry Pi 5 的主板上有两个 CSI 接口用于接入摄像头,其位置在有线网口后。接入摄像头时将排线的金属面朝向有线网口位置,插入接口。

如果是官方的摄像头模块,不需要做任何配置,即插即用。如果是第三方摄像头模块,需要修改 /boot/firmware/config.txt 配置文件。找到 camera-auto-detect=1 语句,修改为 camera_auto_detect=0 在文件结尾,根据摄像头型号加入以下设置语句:

型号设置语句
OV9281dtoverlay=ov9281
IMX290/IMX327dtoverlay=imx290,clock-frequency=37125000
IMX378dtoverlay=imx378
IMX219dtoverlay=imx219
IMX477dtoverlay=imx477
IMX708dtoverlay=imx708

如果需要同时接入两路摄像头,可以在对应的摄像头配置语句后面加入 cam0cam1 指定摄像头,例如 dtoverlay=imx219,cam0

配置完成后重启,运行命令,预览摄像头并将摄像头画面显示在屏幕上。

rpicam-hello -t 0

AI Kit 配置

Raspberry Pi 5 主板上有一个 PCIe 接口,其位置在 SD 卡槽上方。接入模块时将排线的金属面朝向有线网口位置,插入接口。

安装完成后需要更新系统软件以及固件。

sudo apt update && sudo apt full-upgrade
sudo rpi-eeprom-update

使用 raspi-config 工具启用 PCIe Gen 3.0 确保 NPU 获得最佳性能。

sudo raspi-config  # 选择 Advanced Options -> 选择 PCIe Speed -> 选择 Yes

安装 NPU 所需的软件包。

sudo apt install hailo-all

重启后可运行命令,检查 NPU 是否正常运行。

hailortcli fw-control identify

看到类似于以下内容的输出,则表示已成功。

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

测试

通过克隆官方的仓库 rpicam-apps 来运行示例程序。rpicam 程序实现了一个后处理框架(post-processing framework),可以使用 JSON 处理从摄像头中获取的图像。

git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps

仓库提供了对象检测、图像分割、姿态识别等主流模型的应用案例,例如使用如下命令运行 YOLOv8 的对象检测模型。

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640

参考

  1. AI software - Raspberry Pi Documentation:https://www.raspberrypi.com/documentation/computers/ai.html
  2. AI Kit - Raspberry Pi Documentation:https://www.raspberrypi.com/documentation/accessories/ai-kit.html
  3. 树莓派摄像头使用方法 Camera教程:https://www.raspi.cc/index.php?c=read&id=53&page=1
### 安装配置Hailo-8硬件加速器以部署YOLOv8s #### 准备工作 为了确保能够在树莓派5上成功安装并配置Hailo-8硬件加速器,需要先确认设备已经具备必要的环境条件。这包括但不限于操作系统版本、Python解释器以及相关依赖库的准备。 #### 环境搭建 建议的操作系统为Raspberry Pi OS (64-bit),因为该平台提供了更好的性能支持和更广泛的软件兼容性[^1]。对于编程语言的选择,推荐使用Python 3.x系列作为主要开发工具,并通过pip管理所需的第三方包。 #### Hailo驱动程序安装 访问官方文档获取最新的Linux发行版下的Hailo SDK安装指南,按照指示完成驱动程序的下载与设置过程。此步骤至关重要,它决定了后续能否顺利加载模型文件到Hailo芯片中执行推理操作。 #### YOLOv8s模型移植 考虑到原始YOLO架构可能并不完全适用于嵌入式环境中高效运行的要求,在实际应用前通常还需要对预训练好的权重参数做适当调整优化。具体做法可以参照社区分享的经验案例来进行针对性修改。 #### 测试验证 当切准备工作就绪之后,可以通过编写简单的测试脚本来检验整个系统的功能是否正常运作。下面给出了段用于调用摄像头捕捉图像并通过已部署的YOLOv8s模型实现物体识别的基础代码示例: ```python from hailo_platform import HEF, VDevice, InferVStreamsParams, InputVStreamInfo, OutputVStreamInfo import cv2 import numpy as np def preprocess_image(image_path): img = cv2.imread(image_path) resized_img = cv2.resize(img, (640, 640)) normalized_img = resized_img / 255.0 transposed_img = np.transpose(normalized_img, axes=[2, 0, 1]) batched_img = np.expand_dims(transposed_img, axis=0).astype(np.float32) return batched_img hef = HEF('path_to_your.hef') with VDevice() as device: infer_params = InferVStreamsParams( input_vstreams_info=(InputVStreamInfo(name='input_tensor'),), output_vstreams_info=tuple(OutputVStreamInfo(name=name) for name in hef.get_output_names()) ) with device.infer(hef, infer_params=infer_params) as infer_pipeline: image_data = preprocess_image('/path/to/image.jpg') # 替换为自己的图片路径 results = infer_pipeline.infer({'input_tensor': image_data}) # 处理返回的结果... ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值