人脸检测闪烁问题分析与平滑

1. 问题描述

当存在人脸遮挡时候,人脸关键点检测存在漏检,表现在画面中就是人脸框时而闪烁。

2. 解决方案

方案1:对人脸检测设定连续帧检测逻辑,仅检测连续N帧检测到人脸,才将之回显,否则视为未检测到人脸;才进行回显,在人脸遮挡的条件下不回显人脸(优先使用)
方案2:使用更好的人脸检测模型,需要兼顾轻量以及高速,精准度;但是需要预研重新编译人脸关键点引擎,测试效果,集成至检测引擎,打包,存在较大的工作量(可作为后续工作)

3. 解决思路(方案1)

利用前N-1帧人脸检测结果判断第N帧检测的人脸是否需要回显
具体算法

  1. 对第N帧检测的人脸遍历第N-1帧的人脸数组
  2. 依据IOU(>0.5)判断历史帧中是否检测到了该人脸框
  3. 以同样方式对N-1帧人脸遍历N-2帧,N-2帧遍历N-3帧数组,以此类推
  4. 仅当当前帧人脸在前N帧都能够找到与之对应的人脸,才认为当前检测人脸正确(比如当前帧A人脸----->N-1帧A‘人脸---->N-2帧A’'人脸------>…)
  5. 将符合条件的当前帧人脸作为最终输出

4. 算法性能

  1. 耗时 < 1ms,几乎不影响整体人脸检测耗时

5. 存在问题

  1. 存在反应迟缓等问题(灵敏度降低),比如当N = 20时候,大概需要接近1s,人脸检测才会出来;而当N = 5时候,灵敏度提升,但是还是容易存在部分闪烁问题,因此这里的N只能取一个折中,实验测试下N = 10有相对较好效果。
  2. 当人脸存在部分遮挡时候,仍然会检测不到,算法不能够优化人脸检测性能(使用不回显方式代替检测到与检测不到之间的来回闪烁)。
  3. 只能控制连续检测不到的帧数,无法控制连续检测到的帧数
  4. 实际闪烁频率与检测耗时相互挂钩,比如在计算性能较差的电脑,单帧耗时可能较长(正常50ms每帧/其200ms每帧),此时连续帧参数N = 10并非为最合适的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值