视频去重消重软件,搬运视频变原创一键搞定软件

TIKTOK资讯 2年前 (2023) code
21 0

需求

一直在做视频物体识别,当识别到某个物体之后产生报警,最近开始优化,当镜头移动速度较慢时,在时域上可能后面连续很多帧都能识别达到这个物体,该物体可能就出现重复。

如下图,大框是镜头视野,如果第一帧出现了A1框报警,随着镜头向前移动,时域上后面可能识别出A2/A3/A4等等,但其实都是A1这个物体

视频去重消重软件,搬运视频变原创一键搞定软件

极端情况下,可能镜头静止不动,则可能一直识别到该物体。因此我们需要对该物体框标记并去重。

标记两个框重复的算法

  • 【条件M】类型必须相同
  • 【条件N】IoU大于某个门限(IoU是两个框交集面积处于并集面积,无交集则为0)
  • 【条件P】两个框中心点小于某个门限

我们制定的策略是 M and (N or P)

多个重复问题解决

前序帧和后续帧的多个框可能符合重复算法,如下图, A1-1是第一帧输出; A2-1和A2-3可是第二帧输出,那明显A2-1和A2-3看起来都跟A1-1重复。

视频去重消重软件,搬运视频变原创一键搞定软件

为解决这个多匹配问题,我们设想的是选取一个中心点距离最小的,例如上述例子中,A2-1比A2-3的中心点更接近A1-1,则A2-1是重复的。

我们也设想了如下策略,但暂时没有应用,也不知道效果,目前中心点距离策略的效果已经比较明显了。

  • IoU最大的(移动时,形状加距离考虑IoU最大)
  • 面积最接近的(基于相同物体面积变化最小)

连续帧和最大边界处理

  • 连续帧容错处理

由于镜头在移动,所以像素、清晰度以及角度可能存在一定差别,物体也不一定是每帧都能输出,因此定义连续帧不一定非要两个帧连续,我们设定了间隔帧参数,后续帧小于这个间隔帧参数都判定为连续

  • 最大边界处理

镜头静止时间是有限的,或者说识别出的物体静止时间也是有限的,设置最大边界,可以重新上报或者激活这个物体的输出,目前我们根据采样率设置的10万帧,可配置。

实现策略

  • 窗口策略

10万的边界,不可能真的等待所有检测结果出来了才计算重复性,一般采用窗口策略, 对于第一帧来说,只要最大间隔帧范围内的结果都有了,那第一帧是否有重复的框就确定了。如果按照首帧策略,这个框就可以输出了,后续的重复帧抑制即可。

视频去重消重软件,搬运视频变原创一键搞定软件

如果A1, 判定有A2重复之后,A1即可输出,也不参与后续计算; 后面的框只需要判定是不是跟A2重复即可。

  • 双向链表

实际上框的比较只需要关注前后即可。 如果我们需要输出第一个帧,那链头确定的时候就可以输出了;如果需要输出最后一个帧,那链尾确定的时候输出即可。

视频去重消重软件,搬运视频变原创一键搞定软件

可能最复杂的是输出置信度最高的,但该场景下,不适合大范围输出,例如10万个重复性边界,该场景再考虑置信度最高输出没有实际的价值。 简单探讨一下策略,该策略下, 链头是最先发现的框,后续的框会merge到之前的链尾,每两个框都能确定置信度最高的是谁,那链尾永远能够保存置信度最高的信息,从来满足需求。

相关文章