跳到主要内容

调整动态侦测

Frigate 使用动态侦测作为第一道检查工序,查看画面中是否有任何值得用目标检测来检查的事情发生。

一旦检测到动态,它就会尝试将邻近的动态区域组合在一起,希望在图像中找出一个矩形来捕捉值得检查的区域。这就是你在调试查看器中看到的红色 "动态框"。

目标

默认动态设置对大多数摄像机都适用,但在某些情况下,调整动态检测可以获得更好、更理想的效果。每台摄像机都有自己的环境,影响动态的变量各不相同,这意味着相同的动态设置并不适合所有摄像机。

在调整动态之前,了解目标很重要。在最佳配置中,可以检测到人和汽车的动态,但不能检测到草地移动、灯光变化和时间戳等。如果动态检测灵敏度过高,CPU 负载就会增加,目标检测率增加也会导致误报率增加。如果灵敏度不够,则会错过事件。

创建动态遮罩

首先,遮罩并非由要检测的目标引起的有规律动态的区域。查找动态遮罩候选区域的最佳方法是观看启用了动态框的调试流。时间戳、树枝和大型灌木丛等经常随风移动的物体是动态遮罩的最佳用例。在可能的情况下,请避免创建动态遮罩,以免阻挡对要跟踪目标的动态侦测,即使这些目标位于不希望发生事件的位置。不应使用动态遮罩来避免检测特定区域内的目标。更多详细信息请参阅 遮罩文档

准备测试

调整动态检测的最简单方法是实时调整,打开一个窗口/屏幕,其中包含 Frigate 调试视图和启用的动态框,同时打开另一个窗口/屏幕,以便配置动态设置。建议使用 Home Assistant 或 MQTT,因为它们可对某些动态设置进行实时配置,这意味着更改值时无需重启 Frigate。

在 Home Assistant 中,Improve Contrast, Contour Area, and Threshold 配置实体默认为禁用,但可以轻松启用并用于实时调整,否则可以使用 MQTT。

在白天调整动态侦测

现在一切都准备就绪,请找一个代表正常情况的时间进行调试。例如,如果您在风和日丽的日子里调整动态,您可能会发现在多云和无风的日子里动态设置不够灵敏。

备注

请记住,动态检测只是用来确定何时应该使用目标检测。您应该力求使动态侦测足够灵敏,从而不会错过要使用目标检测来检测的目标事件。这样做的目的是防止目标检测在图像中每一个微小的像素变化时都持续运行。大风天仍然会侦测到大量动态。

阀值

阈值决定了像素亮度需要发生多大变化才能被视为动态。

# 默认阀值
motion:
# 可选:传递给 cv2.threshold 的阈值,用于确定像素的差异是否足以被算作动态。(默认:如下所示)(default: shown below)
# 增大该值会降低动态检测的灵敏度,减小该值会提高动态检测的灵敏度。
# 数值应介于 1 和 255 之间。
threshold: 30

阈值越低,表示动态侦测对颜色的变化越敏感,例如,当棕色的狗与棕色的栅栏混在一起,或者穿红色衬衫的人与红色的汽车混在一起时,动态侦测就更有可能检测到。但如果阈值过低,则可能会将风吹草动、阴影等情况侦测为动态。

观察调试视图中的动态框,提高阈值,直到只能看到肉眼可见的动态。这样做之后,重要的是要进行测试,确保仍能侦测到所需的动态。

轮廓区域

# 默认轮廓区域值
motion:
# 可选:调整后的动态图像中算作动态的最小尺寸(像素) (默认:如下所示)
# 增加该值将防止检测到较小的动态区域。减小将使动态侦测对较小的动态目标更敏感。
# 作为一个经验法则:
# - 10 - 高灵敏度
# - 30 - 中灵敏度
# - 50 - 低灵敏度
contour_area: 10

阈值计算完成后,会将发生变化的像素分组。轮廓区域值用于确定哪些变化的像素组符合动态特征。数值越小灵敏度越高,这意味着远处的人、小动物等更有可能被侦测为动态,但这也意味着阴影、树叶等的微小变化也会被侦测为动态。数值越大,灵敏度越低,意味着这些东西不会被侦测为动态,但有可能在靠近摄像机时才会侦测到所需的动态。

观察调试视图中的动态框,调整轮廓区域,直到没有小于 Frigate 检测到的移动目标最小值的动态框为止。

提高对比度

此时,如果动态效果符合预期,就没有必要继续进行当天的调整。如果您无法在侦测到所需动态和非所需动态之间找到平衡,您可以尝试禁用提高对比度,然后回到阈值和轮廓区域步骤。

在夜间调整动态侦测

一旦对白天的动态侦测进行了调整,这些设置就有可能在夜间也能很好地进行动态检测。如果是这种情况,就可以将首选设置写入配置文件,不再进行调整。

不过,如果首选的日间设置在夜间效果不佳,建议使用 HomeAssistant 或其他解决方案来自动更改设置。这样就可以使用完全不同的动态设置来实现最佳的日夜动态侦测。

针对动态的大幅变化进行调整

# 默认lightning_threshold:
motion:
# 可选:用于侦测闪电或其它动态侦测需要重新校准的重大变化的图像百分比。(默认:如下所示)
# 增加该值会使动态侦测更有可能将闪电或光圈模式变化视为有效动态。
# 减小该值会使动态侦测更容易忽略大量动态,如人接近门铃摄像头。
lightning_threshold: 0.8
提示

有些摄像头(例如门铃摄像头)可能会在有人直接走在摄像头前面时漏检,而 lightning_threshold 会导致重新校准动态侦测。在这种情况下,可能需要增加lightning_threshold 以确保不会错过这些事件。

较大的运动变化(例如 PTZ 移动以及摄像机在彩色和红外模式之间切换)应该会导致无运动检测。这是通过 lightning_threshold 配置完成的。它被定义为用于侦测闪电或其他需要重新校准动态侦测的重大变化的图像百分比。增加此值将使动态侦测更有可能将闪电或红外模式变化视为有效动态。降低此值将使动态侦测更有可能忽略大量动态,例如有人接近门铃摄像头。