使用python基于密度的像素异常值检测

时间:2019-12-23 02:36:13

标签: python image-processing scikit-learn dbscan anomaly-detection

我有一个分辨率为256 x 256的图像。我的目标是找到图像中离群值较模糊的白色像素。这些图像可以在下面看到,并且它们下面需要的输出。 我使用sklearn应用了DBSCAN集群,其中sklearn为1,min_samples为150。我得到的结果是惊人的,但是花了30秒和大约35 GB的RAM。我想要一些其他异常检测技术,可以将其余黑色像素中的模糊白色像素聚类。我尝试使用随机森林和LOF,但未能获得所需的结果。解决方案应足够快,并使用最少的RAM。 DBSCAN需要很长时间,并且RAM过多。进行聚类时应不提及聚类的数量,以便算法本身可以找到异常像素。 我需要的预期结果如下: enter image description here enter image description here enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

我认为您根本不应该在这里使用集群。我想您要删除某个阈值的值。这是解决此问题的错误工具。如果您有锤子,那么一切看起来都像钉子-但这不是钉子。

简化数据以改善运行时间。大多数像素都非常清晰,因此请先消除所有简单情况。这就是为什么我认为您的方法不合适的原因,您浪费大量的CPU来计算不需要的内容。

不要费心尝试使聚类算法更快-而是重新考虑您的问题。您真的想解决什么?然后设计一种方法,可以完全准确地 直接完成所需的操作,而不是通过诸如聚类这样的半合适的代理操作来完成。