在业务层面,非专业人士评价算法模型的好坏通常用准确率这样一个感性指标,但是说白了并不会有用户去特别严格的统计指标,大部分业主都是一个非0即1的是非判断。因此,一个好的算法模型的评价标准基本可以总结为:
- 对于肉眼可见的目标大部分可及时弹窗告警
- 每天的的误报量,不让业主感到烦恼 这两点说起来是非常容易,但是想做到,不仅需要在训练模型在数据标注、模型训练这种硬实力下苦工,也需要在后处理逻辑上深刻理解业务。 那么为什么要重视后处理逻辑呢? 回答:如果按照学术界的算法准确率的理解,假设算法模型对于每一帧的识别准确率是99%(相当高的数据了),那么视频流每秒可产生25帧图像,一天就会有216万帧图像需要AI推理分析。那么即便是99%的准确率,每天的误报数据就会有2.16万帧。这么多的误报数据,任何一个用户都是无法接受的。
后处理能发挥哪些作用
- 大大提升呈现给用户的报警准确率
- 对于单帧无法做出判断的业务,可由后处理来完成,如打架识别
- 对于难点算法可以用后处理逻辑来有效的突破
都有哪些常见的后处理编写方法
窗口统计类

后处理可以把单帧的识别结果聚合起来,做一个投票机制,如抽烟行为识别算法,我们可以把最近五秒的所有识别结果,做一个统计,当超过80%的图像帧都识别为抽烟告警时,才真正的告警弹窗。这样就可以大大提升报警准确率。
动态分析类

最典型是火焰识别算法,火焰识别算法由于它的颜色、形状丰富度的特征过于单一的问题,一直是业界的难题。容易出现的错误报警包含:
- 车辆逆光的红色车尾灯
- 夜晚橘黄色的灯光
- 墙面宣传图画中恰巧有火焰的图片 那么该如何通过动态分析的后处理逻辑来消除问题呢? 回答:用后处理逻辑把一定时间窗口内(比如10秒)的所有告警搜集起来,然后对每一帧逐帧分析目标物体的变化。因为正常的火焰是跳动的,如果经过连续帧的对比,发现每一帧的识别结果都处于同一个坐标位置,那么就可以过滤掉。
时序判断类

如打架算法,这类算法是需要连续帧来完成一个时序动作的判断。如果单纯的通过一帧来识别打架行为,那么很多行为如“勾肩搭背”也会被定义成打架行为。后处理可以对连续多秒的数据做一个时序判断,从而提高识别准确率
如果你有别的好的后处理逻辑,欢迎分享
回复