AI软件
入门
本指南将帮助您在 Raspberry Pi 5 上安装 Hailo NPU。这将使您能够使用人工智能神经网络加速器运行 rpicam-apps
摄像头演示。
先决条件
本指南需要以下设备:
- 树莓派 5
- 下列 NPU 之一:
- Raspberry Pi AI Kit,其中包括:
- 一个 M.2 HAT+
- 一个预装的 Hailo-8L 人工智能模块
- 一个 Raspberry Pi AI HAT+。
- Raspberry Pi AI Kit,其中包括:
- 安装 64 位 Raspberry Pi OS Bookworm
- 任何 Raspberry Pi 官方摄像头(如摄像头模块 3 或高质量摄像头)
硬件设置
-
按照 安装 Raspberry Pi 摄像头 中的说明,将摄像头安装到 Raspberry Pi 5 板上。您可以跳过重新连接 Raspberry Pi 的电源,因为下一步需要断开 Raspberry Pi 的电源。
-
按照说明 启用 PCIe Gen 3.0。这一步是可选的,但强烈建议使用 NPU 达到最佳性能。
-
安装使用 NPU 所需的依赖项。在终端窗口运行以下命令
sudo apt install hailo-all
这会安装以下依赖项:
- Hailo 内核设备驱动程序和固件
- HailoRT 中间件软件
- Hailo Tappas 核心后处理库
- Hailo 后期处理软件的
rpicam-apps
演示阶段
-
最后,使用
sudo reboot
重启树莓派,使这些设置生效。 -
为确保一切运行正常,请运行以下命令:
hailortcli fw-control identify
如果您看到类似下面的输出,说明您已成功安装了 NPU 及其软件依赖项:
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
此外,您还可以运行 dmesg | grep -i hailo
检查内核日志,其输出结果应类似于下面的内容:
[ 3.049657] hailo: Init module. driver version 4.17.0
[ 3.051983] hailo 0000:01:00.0: Probing on: 1e60:2864...
[ 3.051989] hailo 0000:01:00.0: Probing: Allocate memory for device extension, 11600
[ 3.052006] hailo 0000:01:00.0: enabling device (0000 -> 0002)
[ 3.052011] hailo 0000:01:00.0: Probing: Device enabled
[ 3.052028] hailo 0000:01:00.0: Probing: mapped bar 0 - 000000000d8baaf1 16384
[ 3.052034] hailo 0000:01:00.0: Probing: mapped bar 2 - 000000009eeaa33c 4096
[ 3.052039] hailo 0000:01:00.0: Probing: mapped bar 4 - 00000000b9b3d17d 16384
[ 3.052044] hailo 0000:01:00.0: Probing: Force setting max_desc_page_size to 4096 (recommended value is 16384)
[ 3.052052] hailo 0000:01:00.0: Probing: Enabled 64 bit dma
[ 3.052055] hailo 0000:01:00.0: Probing: Using userspace allocated vdma buffers
[ 3.052059] hailo 0000:01:00.0: Disabling ASPM L0s
[ 3.052070] hailo 0000:01:00.0: Successfully disabled ASPM L0s
[ 3.221043] hailo 0000:01:00.0: Firmware was loaded successfully
[ 3.231845] hailo 0000:01:00.0: Probing: Added board 1e60-2864, /dev/hailo0
- 要确保摄像机运行正常,请运行以下命令:
rpicam-hello -t 10s
这样就启动了摄像头,并显示十秒钟的预览窗口。确认一切安装正确后,就可以运行一些演示了。
演示
rpicam-apps
摄像头应用程序套件实现了 后处理框架。本节包含几个演示后处理阶段,重点介绍 NPU 的部分功能。
以下演示使用默认显示预览窗口的 rpicam-hello
。不过,您也可以使用其他 rpicam-apps
代替,包括 rpicam-vid
和 rpicam-still
。您可能需要添加或修改一些命令行选项,以使演示命令与其他应用程序兼容。
首先,下载演示所需的后处理 JSON 文件。这些文件决定运行哪些后处理阶段,并配置每个阶段的行为。例如,您可以在对象检测演示中启用、禁用、加强或削弱时间过滤的强度。或者在分割演示中启用或禁用输出掩码绘制。
要下载整个后处理 JSON 文件集,请克隆 rpicam-apps
repo。运行以下命令,只克隆该 repo 中的最新提交,以节省空间:
git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps
后续章节中提供的命令将使用该版本库中的 JSON 文件。为了便于引用这些文件,此命令会在您的主文件夹中创建克隆的 rpicam-apps
目录。如果修改了该目录的位置,还必须修改下面的演示命令,以便引用 JSON 文件的新位置。
对象检测
此演示将显示神经网络检测到的物体周围的边界框。要禁用取景器,请使用 -n
标志。要返回纯文本输出来描述检测到的对象,请添加 -v 2
选项。运行以下命令在 Raspberry Pi 上尝试演示:
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640
或者,您也可以尝试另一种在性能和效率上有不同权衡的模型。
要使用 Yolov8 模型运行演示,请运行以下命令:
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640
要使用 YoloX 模型运行演示,请运行以下命令:
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolox_inference.json --lores-width 640 --lores-height 640
要使用 Yolov5 人脸模型运行演示,请运行以下命令:
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov5_personface.json --lores-width 640 --lores-height 640
图像分割
此演示通过在取景器图像上绘制彩色遮罩来执行物体检测和物体分割。运行以下命令在 Raspberry Pi 上试用该演示:
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov5_segmentation.json --lores-width 640 --lores-height 640 --framerate 20
姿势估计
该演示执行 17 点人体姿态估计,并绘制连接检测点的线条。运行以下命令在 Raspberry Pi 上试用该演示:
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_pose.json --lores-width 640 --lores-height 640