跳到主要内容

对象过滤器

Frigate提供了多种对象过滤器来降低误报率。

对象分数

在配置中设置对象过滤器时,任何低于min_score(最低分数)的检测都会被忽略为误报。threshold(阈值)基于被追踪对象分数历史记录的中位数计算(补零至3个值)。假设min_score设为0.6,threshold设为0.85,以下是各帧的检测情况:

帧数当前分数分数历史记录计算分数是否检测到对象
10.70.0, 0, 0.70.0
20.550.0, 0.7, 0.00.0
30.850.7, 0.0, 0.850.7
40.900.7, 0.85, 0.95, 0.900.875
50.880.7, 0.85, 0.95, 0.90, 0.880.88
60.950.7, 0.85, 0.95, 0.90, 0.88, 0.950.89

在第2帧中,分数低于min_score值,因此Frigate会忽略它并记为0.0。计算分数是分数历史记录的中位数(至少补零至3个值),只有当这个计算分数超过threshold时,对象才会被标记为真实检测。在上例中,这种情况发生在第4帧。

最低分数

任何低于min_score的检测都会立即被丢弃且不会被追踪,因为它被视为误报。如果min_score设置过低,可能会导致误报被检测和追踪,从而干扰对象追踪器并浪费资源。如果min_score设置过高,则可能会丢弃分数较低的真实检测,如距离较远或被部分遮挡的对象,这也可能干扰追踪器并导致有效追踪对象丢失或断开。

阈值

threshold用于确定对象是否为真实检测。当对象检测分数 >= threshold时,该对象被视为真实检测。如果threshold设置过低,一些高分误报可能会创建追踪对象。如果threshold设置过高,则可能会错过真实检测,因为对象分数可能永远达不到足够高的值。

对象形状

也可以通过对象的形状特征来过滤误报。

对象面积

min_areamax_area根据对象边界框的面积进行过滤,可用于排除超出预期大小范围的误报。例如,当一片叶子被检测为狗,或一棵大树被检测为人时,可以通过添加min_area/max_area过滤器来减少这类误报。这些值可以以像素为单位,也可以表示为帧的百分比(例如,0.12表示帧的12%)。

对象比例

min_ratiomax_ratio值与检测对象的宽高比(以像素为单位)进行比较。如果比例超出此范围,对象将被忽略为误报。这可以忽略比例过高(又矮又宽)或过低(又高又窄)的对象。

信息

从概念上讲,比例为1表示正方形,0.5表示"高瘦"的框,2表示"矮胖"的框。如果min_ratio设为1.0,任何高度大于宽度的对象都会被忽略。同样,如果max_ratio设为1.0,则任何宽度大于高度的对象都会被忽略。

其他工具

区域

必需区域是减少误报的强大工具,特别是对于天空中或其他不感兴趣区域的误报。必需区域只会为进入该区域的对象创建追踪对象。

对象遮罩

对象过滤器遮罩是最后的手段,但当误报出现在相对固定的位置且无法通过大小或形状过滤时,它们会很有用。