比如:
['A','A','A''A','A','C','A','A','A','A','C','A','C','C','C','C','C','C','C']
这个列表里面的第一个C
是错误的数据,我称之为“噪点”。
需要找出第一个和第二个C
并修改成A
,同时不影响后半部分的C
。不知道有没有好的办法?
使用face-recognition做视频人脸识别,有时很少的几帧会识别错误,A 识别成了 C ,但是一个片段绝大部分还是能正确识别的。目前需要修正这些识别错误的人脸,根据前后几帧做出推断。
上面这个例子,恰巧同一块区域先出现了 A ,镜头切换后 C 的脸也在同一块区域。
1
Kirscheis 2022-07-09 07:41:44 +08:00 via Android 1
现成的算法不好改的话,对 confidence 做 bilateral filter 试试
以及连续跟踪目标是研究得挺成熟的专门的算法,叫做 object tracking 或者 target tracking ,你可以找找,我记得有些算法有直接套 yolo 的实现,可以网上下载代码先试试 |
2
tramm 2022-07-09 08:16:11 +08:00 1
卡尔曼滤波算法?
|
3
shinyy 2022-07-09 08:22:40 +08:00 via iPhone 1
3*1 的邻域 中间值修正为邻域里数量多的值就可以了
|
4
codehz 2022-07-09 08:42:57 +08:00 via iPhone 1
听起来可以滑动窗口,窗口大小为 4 ,然后发现中间两个至少一个与周围不同的,就修复,方式为复制左侧活着右侧的值覆盖
(所以 A A A B C C C 这种情况怎么处理) |
5
AyaseEri 2022-07-09 12:27:05 +08:00 1
理论上,这应该是椒盐噪声,中值滤波能一定程度上解决问题
|
6
LeeReamond 2022-07-09 12:32:06 +08:00 1
图像学上解决这种问题一般用以下流程,比如 canny 边缘检测
1.卷积,你这个时间序列的话可能跑核=3 的一维卷积 2.滞后边界跟踪,经过 1 以后,仅有左右两边都是 C 的 C 点,才会是 C 点,可以认为这是个强 C 点,而卷积后改值了的 C 点就是弱 C 点,如果弱 C 点与强 C 点连接则将其调整为强 C 点 |
7
documentzhangx66 2022-07-09 14:38:14 +08:00 1
简单的平滑算法就可以检测甚至过滤掉这些噪点。
|
8
nightwitch 2022-07-10 03:12:46 +08:00 via Android 1
这个是做连续检测常见的问题,常规的思路就是做利用之前的识别结果在时序上做移动平均。
可以找点 object tracking 的代码看看 |