在树莓派上使用Hailo进行物体检测的Frigate设置
摘要
这篇博客文章详细介绍了如何在树莓派上使用Hailo AI协处理器设置Frigate进行物体检测,包括修复PCIe描述符页面大小错误的步骤。该设置可与更便宜的Hailo-8L配合使用,并实现低推理时间。
<p>我运行<a href="https://frigate.video">Frigate</a>来记录安全摄像头,并在视野内检测人员、车辆和动物。我当前的<a href="https://www.jeffgeerling.com/blog/2024/building-pi-frigate-nvr-axzezs-interceptor-1u-case/">Frigate服务器</a>运行在树莓派CM4上,并通过USB连接了一个<a href="https://amzn.to/4aWdOpQ">Coral TPU</a>。</p>
<p>树莓派为树莓派5提供了<a href="https://www.raspberrypi.com/products/ai-hat/">多款AI HAT+</a>,内置Hailo-8或Hailo-8L AI协处理器,适用于在树莓派上进行低功耗推理(如图像目标检测)。如果您购买<a href="https://www.waveshare.com/hailo-8.htm">M.2版本</a>,Hailo协处理器也可用于其他单板计算机和计算机。</p>
查看缓存全文
缓存时间: 2026/05/16 03:39
# 树莓派上使用 Frigate 与 Hailo 进行物体检测
来源:https://www.jeffgeerling.com/blog/2026/frigate-with-hailo-for-object-detection-on-a-raspberry-pi/
我正在运行 Frigate(https://frigate.video/)来录制安防摄像头,并在画面中出现人、车或动物时进行检测。我当前的 Frigate 服务器(https://www.jeffgeerling.com/blog/2024/building-pi-frigate-nvr-axzezs-interceptor-1u-case/)运行在树莓派 CM4 上,并通过 USB 连接了一个 Coral TPU(https://amzn.to/4aWdOpQ)。
树莓派为树莓派 5 提供了多款 AI HAT+(https://www.raspberrypi.com/products/ai-hat/),内置 Hailo-8 或 Hailo-8L AI 协处理器,非常适合在树莓派上进行低功耗推理(如图像物体检测)。如果你购买 M.2 版本的协处理器(https://www.waveshare.com/hailo-8.htm),Hailo 协处理器也可以用于其他单板计算机和电脑。
Exaviz Cruiser 10英寸迷你机架 NVR NAS 构建
Frigate 支持 Hailo,但在我新构建的系统中(上图所示——完整文章即将发布)让它正常工作却让我费了一番周折,因此我在此记录针对 *我的* 构建的过程,供将来参考。
假设你有一台树莓派 5 或 CM5,系统为全新安装的树莓派 OS,并且 Hailo 模块通过 PCIe 连接(无论是 HAT+ 模块还是 M.2 插槽),请按以下步骤操作:
1. 按照 Frigate 的指南从源码安装 Hailo-8 驱动(https://docs.frigate.video/frigate/installation/#hailo-8)。
2. 按照 Frigate 的指南在 Frigate 的 `config.yml` 中设置 Hailo 作为物体检测器(https://docs.frigate.video/configuration/object_detectors/#hailo-8)(注意:我使用我的开源 Pi NVR 项目(https://github.com/geerlingguy/pi-nvr))。
3. 启动 Frigate。
如果你看到类似如下信息:
```
WARNING : CPU detectors are not recommended and should only be used for testing or for trial purposes.
```
那么你的检测器配置很可能有误。请重新检查 `frigate.yml` 中的 `model` 和 `detectors` 配置,然后重试 :)
## PCIe `force_desc_page_size` 问题
除了配置问题(我试了好几次才解决)之外,我在运行 `docker logs frigate` 时还遇到了以下错误信息:
```
[HailoRT] [error] CHECK failed - max_desc_page_size given 16384 is bigger than hw max desc page size 4096
...
RuntimeError: HailoRT inference thread has stopped, restart required.
```
这个错误让我找到了这个论坛帖子(https://community.hailo.ai/t/pcie-max-desc-page-size-issue/136/15),其中提供了一个修复方法:
创建一个文件 `/etc/modprobe.d/hailo_pci.conf`(例如使用 `sudo nano`),内容如下:
```
options hailo_pci force_desc_page_size=4096
```
然后重启树莓派,或者运行以下命令卸载并重新加载 hailo 驱动:
```
sudo modprobe -r hailo_pci
sudo modprobe hailo_pci
```
Frigate 容器日志应会显示 Hailo 检测器正在使用中:
```
[2026-02-18 14:14:35] detector.hailo INFO: Starting detection process: 621
```
现在,系统仪表板会显示 `hailo` 的推理速度约为 12ms,整体 CPU 占用率非常低(这是在两个摄像头下测试的):
Hailo 8 在树莓派 CM5 上通过 Frigate 进行物体检测
好处是,这同样适用于更便宜的 Hailo-8L(即 70 美元 AI HAT+ 中内置的“基础版”),它通常比现在已显古老的 Google Coral TPU(https://amzn.to/4aWdOpQ)便宜得多——至少 USB 版本(兼容性更广)是如此。
我仍然无法理解为什么 Google 在一代之后就放弃了 Coral。他们本可以在“边缘 TPU”市场占据主导地位,但在达到 4 TOPS 后似乎就放弃了。
相似文章
使用 Frigate 升级我的开源 Pi 监控服务器
Jeff Geerling 使用 Exaviz Cruiser CM5 载板和 DeskPi 迷你机架外壳升级了他基于 Pi 的开源监控服务器,该服务器运行带有 Coral TPU 的 Frigate 以进行本地 AI 物体检测。
将树莓派集群用于学习分布式训练/推理
一篇博客文章指导读者如何搭建树莓派集群进行分布式训练和推理,这是系列教程的一部分,旨在利用实惠的硬件让分布式AI变得可及。
用这款树莓派FireWire HAT让MiniDV回归
这篇博文介绍了如何使用一款新的树莓派FireWire HAT(Firehat),搭配PiSugar电池,打造一款便携式存储记录单元(Memory Recording Unit),用于MiniDV摄像机。内容涵盖硬件设置、软件以及该HAT的众筹活动。
如何获得一个好的目标检测模型?[P]
一位用户希望获得关于改进其YOLO11n目标检测模型的建议,计划将其部署在Raspberry Pi 5上,但困扰于理论mAP50指标与实际检测性能之间的差距。
在树莓派上使用FireWire
Jeff Geerling 解释了如何通过在 Linux 内核中重新编译添加 FireWire 支持并配置 32 位 DMA,从而在树莓派上使用 FireWire(IEEE 1394)设备,使用 dvgrab 从旧式 DV 摄像机中采集视频。