自动检测2d阵列/热图中的簇

问题描述 投票:-1回答:1

我对视频文件进行了对象检测,并对每个像素被激活的秒数求和,以求出该区域中显示对象的时间,这给了我二维的时间值数组。由于这些对象大多数时候都位于视频的同一位置,因此导致屏幕上的某些区域具有比其他区域更高的激活性。现在,我想找到一种自动检测“群集”而无需事先知道群集数量的方法。我考虑过使用类似k-means的方法,但也了解了一些有关查找局部最大值的知识,但是我无法完全弄清楚如何将所有这些方法放在一起,或者哪种方法最好。另外,对象的大小各不相同,所以我不确定是否可以使用局部最大值方法?

最终结果将是每个群集的ID和最大时间值的列表。

[[3, 3, 3, 0, 0, 0, 0, 0, 0]
 [3, 3, 3, 0, 0, 0, 2, 2, 2]
 [3, 3, 3, 0, 0, 0, 2, 2, 2]
 [0, 0, 0, 0, 0, 0, 2, 2, 2]]

从此示例数组中,我将得到一个列表:

id | Seconds
1  |  3
2  |  2

我没有做太多的尝试,因为我不知道从哪里开始,并且对方法的任何建议(包括代码示例或链接到我可以在其中找到的方法的建议)将不胜感激! :)

python machine-learning computer-vision
1个回答
0
投票
[如果您事先不知道簇数,则可能要使用与K-means不同的算法(一种算法不依赖于簇数)。我建议阅读有关此任务的dbscan和hdbscan。祝你好运:)
© www.soinside.com 2019 - 2024. All rights reserved.