AI软件
本页面提供了在树莓派 5 上运行由 Hailo NPU 驱动的 AI 模型的说明。Hailo NPU 是一款专为运行神经网络而设计的 AI 加速芯片;树莓派的 CPU 不再处理 AI 工作,而是由 NPU 更高效地处理。
您可以通过以下方式将 Hailo NPU 连接到树莓派 5:
- 树莓派 AI Kit,由 M.2 HAT+ 和预装的 Hailo-8L NPU 组成。
- 树莓派 AI HAT+,板载 Hailo-8L NPU 或 Hailo-8 NPU。
- 树莓派 AI HAT+ 2,板载 Hailo-10H NPU。
这三种选项都允许您在树莓派 5 上运行视觉 AI 模型。但是,AI Kit 已停产,因此对于新设计,我们建议使用 AI HAT+ 或 AI HAT+ 2。
AI HAT+ 2 还允许您运行生成式 AI(GenAI)模型。使用 AI HAT+ 2,您可以:
- 运行大语言模型(LLM)。如果您有 AI HAT+ 2 并想同时运行视觉 AI 模型和 LLM,请遵循两套说明:视觉 AI 模型 和 大语言模型。
- 运行视觉-语言模型(VLM)和其他 GenAI 任务。有关说明,请参阅 Hailo 的 GitHub 仓库:hailo-apps。
硬件前提条件
运行 AI 模型需要一台 树莓派 5,安装 64 位树莓派 OS(Trixie),以及以下 Hailo AI 加速器(NPU)选项之一:
- 树莓派 AI HAT+ 或 AI HAT+ 2(推荐),两者都有板载 Hailo 模块。有关这些配件的更多信息,请参阅 AI HAT+。
- 树莓派 AI Kit,包含预装 Hailo-8L AI 加速器的 M.2 HAT+。有关 AI Kit 的更多信息,请参阅 AI Kit。
AI Kit 已停产;对于新设计,我们建议使用 AI HAT+ 或 AI HAT+ 2。
如果您想运行视觉 AI 模型,还需要一个支持的摄像头,例如树莓派摄像头模块 3。我们建议在连接 AI 硬件之前先连接摄像头。有关说明,请参阅安装树莓派摄像头。跳过重新连接树莓派电源的步骤,因为下一步需要断开树莓派电源。
然后,根据您的 AI 硬件,按照连接 AI HAT(HAT+ 或 HAT+ 2)或 AI Kit 到树莓派 5 的说明操作。
接下来,按照软件前提条件中的说明启用 PCIe Gen 3.0(仅 AI Kit)、安装所需依赖项并验证 一切设置正确。
软件前提条件
在树莓派 5 上运行视觉 AI 模型或 GenAI 模型之前,必须配置所需的软件。大致包括以下任务,按顺序执行:
- 启用 PCIe Gen 3.0。手动配置 PCIe 接口,允许 Hailo NPU 以全速通信。这仅对 AI Kit 必需。
- 更新系统。确保您的树莓派 OS 软件包完全更新。
- 安装依赖项。安装必要的软件依赖项,使操作系统(OS)和应用程序能够检测、通信并在 Hailo NPU 上运行 AI 模型。
- 验证安装。验证您的 AI 硬件是否正确检测并准备就绪。
启用 PCIe Gen 3.0(仅 AI Kit)
如果您使用的是 AI Kit,我们强烈建议启用 PCIe Gen 3.0。AI HAT+ 和 AI HAT+ 2 可以跳过此步骤,因为该设置会自动应用。
默认情况下,树莓派 5 在其 PCIe 接口上使用 Gen 2.0(5 GT/s)速度。为了获得 NPU 的最佳性能,使用以下方法之一启用 Gen 3.0(8 GT/s)速度:
- 从配置命令行(CLI)工具(
raspi-config)在树莓派 5 上启用 Gen 3.0。 - 更新配置文件(
config.txt),使树莓派 5 上的 PCIe 接口以 PCIe Gen 3.0 速度运行。
有关此设置的更多信息,请参阅 PCIe Gen 3.0。
- 使用 raspi-config
- 使用 config.txt
首先,打开树莓派配置 CLI;在树莓派终端中运行以下命令:
$ sudo raspi-config
然后,从配置 CLI 完成以下步骤:
- 选择 Advanced Options > PCIe Speed。
- 选择 Yes 以启用 PCI Gen 3.0 模式。
- 选择 Finish 以退出配置 CLI。
- 重启树莓派以使更改生效。您可以在终端中使用
sudo reboot执行此操作。
首先,以 root 用户身份打开配置文件(/boot/firmware/config.txt)。然后:
- 将以下行添加到
config.txt文件:
dtparam=pciex1_gen=3
- 重启树莓派以使这些设置生效:
$ sudo reboot
更新树莓派 OS
确保树莓派 5 运行的是安装了最新软件的树莓派 OS Trixie,并且具有最新的树莓派固件:
$ sudo apt update
$ sudo apt full-upgrade -y
$ sudo rpi-eeprom-update -a
$ sudo reboot
有关更多信息,请参阅升级软件和更新 bootloader 配置。
安装所需依赖项
使用最新的树莓派软件和固件更新树莓派后,使用 NPU 需要以下依赖项:
- Hailo 内核设备驱动程序和固件。
- Hailo RT 中间件软件。
- Hailo Tappas 核心后处理库。
如何安装这些依赖项取决于您使用的 AI 硬件。为您的 AI 硬件选择适当的安装选项:
AI Kit 和 AI HAT+ 需要不同的软件包(hailo-all),而 AI HAT+ 2 需要(hailo-h10-all)。这些软件包不能共存。
- AI Kit 和 AI HAT+
- AI HAT+ 2
要为 AI Kit 或 AI HAT+ 安装所需的依赖项,请打开树莓派终端并运行以下命令:
$ sudo apt install dkms
$ sudo apt install hailo-all
要为 AI HAT+ 2 安装所需的依赖项,请打开树莓派终端并运行以下命令:
$ sudo apt install dkms
$ sudo apt install hailo-h10-all
重启并验证
安装所需依赖项后,必须重启树莓派 5。您可以在树莓派终端中使用以下命令执行此操作:
$ sudo reboot
当树莓派 5 重新启动完成后,运行以下命令检查一切是否正常运行:
$ 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
AI HAT+ 和 AI HAT+ 2 的 Serial Number、Part Number 和 Product Name 可能会显示 <N/A>。这是预期的,不会影响功能。
此外,您可以运行 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
运行视觉 AI 模型
本节提供了在树莓派 5 上设置 Hailo NPU 的指南,使摄像头应用程序能够对摄像头输入运行实时 AI 任务,如对象检测。以下说明适用于 AI Kit、AI HAT+ 和 AI HAT+ 2。
步骤 1. 安装摄像头依赖项
首先,您必须安装树莓派摄像头软件栈。rpicam-apps 软件包提供了树莓派 OS 使用的摄像头工具,并包含视觉 AI 管道所需的 Hailo 后处理软件演示阶段。
使用以下命令安装最新的 rpicam-apps 软件包:
$ sudo apt update && sudo apt install rpicam-apps
然后,运行以下命令确保摄像头正常 工作:
$ rpicam-hello
这会启动摄像头并显示五秒钟的预览窗口。如果预览窗口出现,说明摄像头设置正确。
步骤 2. 运行实时视觉 AI 演示
验证一切正确安装后,您可以使用 rpicam-apps 摄像头软件运行摄像头 AI 演示。该软件使用后处理框架实现 AI 演示;该软件使用预训练的神经网络在 NPU 上对摄像头帧运行 AI 推理。
为了突出 NPU 的一些功能,本节概述了一些展示不同模型和后处理阶段的演示,例如在对象周围绘制边界框或在人周围绘制姿势线。结果以视觉方式显示在实时预览窗口(默认)或在树莓派终端中显示为文本。
以下演示使用 rpicam-hello,但您也可以使用其他 rpicam-apps,例如用于视频录制的 rpicam-vid 和用于静态图像的 rpicam-still。这些应用程序可能需要您添 加或修改一些命令行选项以使其兼容。
对象检测
以下 rpicam-apps 演示使用不同的 YOLO 模型通过 rpicam-hello 执行对象检测。每个演示都在检测到的对象周围绘制边界框,并支持修改输出的可选标志,例如 -n 关闭取景器,-v 2 仅显示文本输出。
不同的演示在速度和准确性方面有不同的权衡。运行以下命令在树莓派 5 上尝试每个演示:
| 模型 | 命令 | 后处理阶段 |
|---|---|---|
| YOLOv6 | rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov6_inference.json | 对象检测。 |
| YOLOv8 | rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_inference.json | 对象检测。 |
| YOLOX | rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolox_inference.json | 轻量级快速对象检测。 |
| YOLOv5 | rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov5_inference.json | 人和人脸检测。 |
图像分割
以下 rpicam-apps 演示使用 rpicam-hello 执行对象检测,然后通过在取景器图像上绘制彩色遮罩来分割对象。运行以下命令在树莓派 5 上尝试该演示:
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov5_segmentation.json --framerate 20
姿势估计
以下 rpicam-apps 演示使用 rpicam-hello 执行 17 点人体姿势估计,绘制连接检测点的线条。运行以下命令在树莓派 5 上尝试该演示:
$ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov8_pose.json