列表如何找出并修正“噪点”数据

2022-07-09 07:29:46 +08:00
 chenliang0571

比如: ['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 的脸也在同一块区域。

1798 次点击
所在节点    程序员
8 条回复
Kirscheis
2022-07-09 07:41:44 +08:00
现成的算法不好改的话,对 confidence 做 bilateral filter 试试

以及连续跟踪目标是研究得挺成熟的专门的算法,叫做 object tracking 或者 target tracking ,你可以找找,我记得有些算法有直接套 yolo 的实现,可以网上下载代码先试试
tramm
2022-07-09 08:16:11 +08:00
卡尔曼滤波算法?
shinyy
2022-07-09 08:22:40 +08:00
3*1 的邻域 中间值修正为邻域里数量多的值就可以了
codehz
2022-07-09 08:42:57 +08:00
听起来可以滑动窗口,窗口大小为 4 ,然后发现中间两个至少一个与周围不同的,就修复,方式为复制左侧活着右侧的值覆盖
(所以 A A A B C C C 这种情况怎么处理)
AyaseEri
2022-07-09 12:27:05 +08:00
理论上,这应该是椒盐噪声,中值滤波能一定程度上解决问题
LeeReamond
2022-07-09 12:32:06 +08:00
图像学上解决这种问题一般用以下流程,比如 canny 边缘检测
1.卷积,你这个时间序列的话可能跑核=3 的一维卷积
2.滞后边界跟踪,经过 1 以后,仅有左右两边都是 C 的 C 点,才会是 C 点,可以认为这是个强 C 点,而卷积后改值了的 C 点就是弱 C 点,如果弱 C 点与强 C 点连接则将其调整为强 C 点
documentzhangx66
2022-07-09 14:38:14 +08:00
简单的平滑算法就可以检测甚至过滤掉这些噪点。
nightwitch
2022-07-10 03:12:46 +08:00
这个是做连续检测常见的问题,常规的思路就是做利用之前的识别结果在时序上做移动平均。
可以找点 object tracking 的代码看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX