物体/目标过滤器
Frigate 提供了多种物体/目标过滤器来降低误报率。
目标分数
在配置中设置物体/目标过滤器时,任何低于min_score(最低分数)的检测结果都会被忽略为误报。threshold(阈值)基于被追踪目标分数历史记录的中位数计算(补零至 3 个值)。假设min_score设为 0.6,threshold设为 0.85,以下是各帧的检测情况:
| 帧数 | 当前分数 | 分数历史记录 | 计算分数 | 是否检测到目标 |
|---|---|---|---|---|
| 1 | 0.7 | 0.0, 0, 0.7 | 0.0 | 否 |
| 2 | 0.55 | 0.0, 0.7, 0.0 | 0.0 | 否 |
| 3 | 0.85 | 0.7, 0.0, 0.85 | 0.7 | 否 |
| 4 | 0.90 | 0.7, 0.85, 0.95, 0.90 | 0.875 | 是 |
| 5 | 0.88 | 0.7, 0.85, 0.95, 0.90, 0.88 | 0.88 | 是 |
| 6 | 0.95 | 0.7, 0.85, 0.95, 0.90, 0.88, 0.95 | 0.89 | 是 |
在第 2 帧中,分数低于min_score值,因此 Frigate 会忽略它并记为 0.0。计算分数是分数历史记录的中位数(至少补零至 3 个值),只有当这个计算分数超过threshold时,目标才会被标记为真实检测。在上例中,这种情况发生在第 4 帧。
最低分数
任何低于min_score的检测结果都会视为误报而被丢弃且不会被继续追踪。如果min_score设置过低,可能会导致错误的检测和追踪目标,从而干扰目标追踪器并浪费资源。
而如果min_score设置过高,则可能会丢弃分数较低的正确检测结果,如距离较远或被部分遮挡的目标,这也可能干扰到追踪器并导致正确的目标追踪丢失或断开。
阈值
threshold用于确定目标是否为真。当物体/目标的检测分数 >= threshold时,该目标被视为为真。
如果threshold设置过低,一些高分的误报可能会创建追踪目标。
而如果threshold设置过高,则可能会错过真正的目标,因为目标分数可能永远达不到足够高的值。
目标形状
可以通过目标的形状特征来过滤误报。
目标面积
min_area(最小面积)和max_area(最大面积)将根据目标边界框的面积进行过滤,可用于过滤掉所属场景下目标大小不符合预期的误报。
例如,一些窗户会反光,反射远处的行人,而实际上站在窗户位置的人的大小和窗户玻璃反射的人的大小是完全不一样的,这时候就可以通过添加min_area 和 max_area过滤器来减少这类误报。这些值可以以像素为单位,也可以以画面大小的百分比(例如,0.12 表示画面大小的 12%)。
目标比例
min_ratio和max_ratio值将与检测目标的宽高比(以像素为单位)进行比较。如果比例超出此范围,检测结果将视作误报而被忽略。这可以忽略比例过高(又矮又宽)或过低(又高又窄)的目标。
例如,站着的人一般不会出现比例过高(又矮又宽)的情况,这个时候就应该过滤掉这类型的目标,避免误报。
信息
从概念上讲,比例为 1 表示正方形,0.5 表示"高瘦"的框,2 表示"矮胖"的框。如果min_ratio设为 1.0,任何高度大于宽度的目标都会被忽略。同样,如果max_ratio设为 1.0,则任何宽度大于高度的目标都会被忽略。
其他工具
区域
必需区域是减少误报的强大工具,特别是对于天空中或其他不感兴趣区域的误报。必需区域只会为进入该区域的目标创建追踪目标。
目标遮罩
物体/目标过滤器遮罩是最后的手段,但当误报出现在相对固定的位置且无法通过大小或形状过滤时,它们会很有用。