跳到主要内容

硬件推荐

摄像机

输出H.264视频和AAC音频的摄像机将提供 Frigate 及其物联网集成功能的最大兼容性。如果您的摄像机支持多个子码流以允许使用不同的分辨率进行目标检测、流传输和录像而无需重新编码,这也会很有帮助。

推荐使用拥有多个码流(具有可配置分辨率和帧速率)的摄像机。配备大尺寸传感器的型号,夜间图像质量出色,更大尺寸的传感器优于更高的分辨率,尤其是在晚上。不推荐使用Wifi摄像机,它们的码流可靠性较低,会导致连接丢失或视频数据丢失。

服务器

双网卡可以为摄像机设置专用网络,从而阻止它们访问互联网。任何配备Intel CPU并能够运行Debian的设备都应该可以正常工作。运行Google Coral(非USB接口)需要具有M.2或 PCIe Express插槽。

检测器

检测器是一种经过优化的设备,可有效运行推理以检测目标。使用推荐的检测器意味着检测之间的延迟会更短,且每秒可以运行更多的检测。Frigate 是围绕使用检测器实现高推理速度而设计的。将 TensorFlow 负载转移到检测器使检测的速度快了一个数量级并且会显着降低CPU负载。Frigate 支持多种具有不同推理速度和性能的检测器类型。

TensorRT - Nvidia GPU

TensortRT 检测器能够在具有支持 12.x 系列 CUDA 库的 Nvidia GPU 的 x86 主机上运行。主机系统上的最低驱动程序版本必须>=525.60.13. 此外,GPU 必须支持5.0或更高的算力。 请查看 TensorRT文档以获取更多信息

根据GPU和所使用的模型,推理速度会有很大差异。Tiny变体比同等的非Tiny模型更快,一些已知的例子如下:

NameInference Speed
GTX 1060 6GB~ 7 ms
GTX 1070~ 6 ms
GTX 1660 SUPER~ 4 ms
RTX 30505 - 7 ms
RTX 3070 Mobile~ 5 ms
Quadro P400 2GB20 - 25 ms
Quadro P2000~ 12 ms

Google Coral TPU

强烈建议使用Google Coral。60美元的设备将胜过2000美元的CPU。Frigate 可与https://coral.ai/上任何受支持的Coral设备配合使用。

USB版本与最广泛的硬件兼容,并且不需要主机上的驱动程序。 但是,它确实缺少其他版本的自动节流功能。

PCIe和M.2版本需要在主机上安装驱动程序。按照https://coral.ai/中适合您的版本说明进行操作

单个Coral可以处理许多摄像机,足以满足大多数用户的需求。您可以根据 Frigate 报告的推理速度计算Coral的最大性能。如果推理速度为10,您的Coral将达到1000/10=100,即每秒100帧。如果您的检测fps经常接近该值,您应该首先考虑调整动态遮罩。如果这些已经正确配置,则可能需要第二个Coral。

OpenVINO

OpenVINO检测器能够运行在:

  • 具有iGPU的第六代Intel平台及更新版本
  • 具有VPU硬件的x86和Arm64 主机(如:Intel NCS2)
  • 大多数现代AMD CPU(尽管Intel官方不支持)

更多信息可在检测器文档 中。

推理速度因使用的 CPU、GPU 或 VPU 而异,以下是一些已知的示例:

NameInference SpeedNotes
Intel NCS2 VPU60 - 65 msMay vary based on host device
Intel Celeron J4105~ 25 msInference speeds on CPU were 150 - 200 ms
Intel Celeron N3060130 - 150 msInference speeds on CPU were ~ 550 ms
Intel Celeron N3205U~ 120 msInference speeds on CPU were ~ 380 ms
Intel Celeron N402050 - 200 msInference speeds on CPU were ~ 800 ms, greatly depends on other loads
Intel i3 6100T15 - 35 msInference speeds on CPU were 60 - 120 ms
Intel i3 8100~ 15 msInference speeds on CPU were ~ 65 ms
Intel i5 4590~ 20 msInference speeds on CPU were ~ 230 ms
Intel i5 6500~ 15 msInference speeds on CPU were ~ 150 ms
Intel i5 7200u15 - 25 msInference speeds on CPU were ~ 150 ms
Intel i5 7500~ 15 msInference speeds on CPU were ~ 260 ms
Intel i5 1135G710 - 15 ms
Intel i5 12600K~ 15 msInference speeds on CPU were ~ 35 ms

AMD GPUs

借助 rocm 检测器,Frigate 可以利用 AMD 的许多独显。

Hailo-8l PCIe

Frigate 支持在任何硬件上使用 Hailo-8l M.2 卡,但目前只在 Raspberry Pi5 PCIe hat AI 套件上进行了测试。

在写本文档时,Hailo-8L 芯片使用 SSD MobileNet version 1 模型的推理时间约为 17-21 毫秒。

社区支持检测器

Nvidia Jetson

Frigate 支持所有 Jetson 板卡,从价格低廉的 Jetson Nano 到功能强大的 Jetson Orin AGX。在配置适当的预置时,它将使用 Jetson 的硬件媒体引擎;在配置 TensorRT 检测器时,它将使用 Jetson 的 GPU 和 DLA 进行目标检测。

推理速度因 YOLO 模型、jetson 平台和 jetson nvpmodel(GPU/DLA/EMC 时钟速度)而异。大多数模型的推理速度通常为 20-40 毫秒。DLA 比 GPU 更高效,但速度并不快,因此使用 DLA 会降低功耗,但会略微增加推理时间。

瑞芯微平台

Frigate 支持所有瑞芯微单板上的硬件视频处理。不过,只有以下这些板卡才支持硬件目标检测:

  • RK3562
  • RK3566
  • RK3568
  • RK3576
  • RK3588

对于 yolo-nas s,启用全部 3 个内核的 rk3588 的推理时间通常为 25-30 毫秒。

Frigate 使用CPU做什么?它使用检测器做什么?

这摘自reddit上的一个用户提问 。为清楚起见,略作修改。

CPU使用情况:我是CPU,Mendel是Google Coral

我和我的好友Mendel的任务是让邻居的红脚鲣鸟远离我父母的院子。现在我真的不擅长识别鸟类。这花了我很长时间,但我的朋友Mendel在这方面的表现令人难以置信。

然而Mendel几乎在其他任何事情上都遇到了困难。所以我们达成协议,我等到看到有东西在移动,拍张照片,然后给他看照片,他告诉我那是什么。大多数时候都没什么,但最终我看到了一些动静,Mendel告诉我那是鲣鸟。搞定了!

当我提高摄像机的分辨率时会发生什么?

然而我们意识到有一个问题,院子里仍然到处都是粪便。我们怎么就错过了呢!我都看了一整天了!我的父母检查了窗户,发现它很脏,而且有点小,无法看到整个院子,所以他们把窗户清理干净,然后换了一扇更大的窗户。现在有了更多可看的东西!然而对我而言现在要在更大的区域进行动态侦测,必须更加努力地工作!就连我的好友Mendel也必须更加努力,因为现在这些照片中有更多细节,他必须查看这些细节,看看这是否是鬼鬼祟祟的鲣鸟。

基本上 – 当您提高流的分辨率和/或帧速率时CPU需要解析的数据明显增多,这需要更多的算力。Google Coral确实擅长进行目标检测,但它没有时间一直到处寻找(尤其是当有很多窗口需要检查时)。为了平衡它,Frigate 使用CPU来进行动态侦测,然后将这些帧发送给Coral进行目标检测。这使得Coral可以供大量摄像机使用,而不会超载。

如果使用的是Coral,hwaccel参数是否有用?

是的!Coral无法帮助解码视频流。

解压缩视频流需要消耗大量的CPU功耗。视频压缩使用关键帧(也称为 I 帧)来发送视频流中的完整帧。接下来的帧只包括与关键帧的差值,CPU 必须通过合并差值与关键帧来编译每个帧 更多详细说明。更高的分辨率和帧频意味着解码视频流需要更强的处理能力,因此应尽量在摄像机上设置,以避免不必要的解码工作。