本发明涉及计算机视觉领域,具体涉及一种基于无k值聚类的多群体聚众检测方法及系统。
背景技术:
1、聚类(clustering)是机器学习中应用最广泛的技术之一,用于将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”(cluster)。在机器学习中每个“簇”(cluster)可能对应于一些潜在的概念或类别。基于距离的聚类是聚类方法中常用的一种,是通过计算所有样本与“簇中心”的距离,对于每一个样本,将其划分到与其距离最近的“簇中心”所在的簇中。目前常见的基于距离聚类的算法有k-means,但是由于k-means需要事先设定k个类别,而聚众检测中的人群划分是随机的,事先不知道有多少个聚集群体,故难以将k-means算法应用于聚众检测。无k值聚类采用了k-means算法的思想,但是不需要事先知道聚类的数量,即k值。如果各点之间的距离小于设定的距离阈值,则将该点与最相邻的点进行聚类。通过设定点之间的距离阈值,也可以将聚类附近的部分噪声点滤除,将无k值聚类方法应用于聚众检测,可实现对多群体的聚集检测,同时将不属于聚集人群附近的人员滤除。优点是不需要事先知道样本的类别个数,同时可以滤除聚类附近部分的噪声。
2、聚众检测在计算机视觉领域具有广泛的应用。但是,目前现有的聚集检测判断策略是通过掩膜划定检测区域并统计区域内的人群个数,达到设定阈值判断为聚众。这种判断策略只能用于一个大群体的判断,难以应用于对多群体的聚集判断。因此为了解决当前聚众算法存在的上述问题,本文提出了一种基于无k值聚类的多群体聚众检测方法。
3、而申请号为202111049489.8的中国发明专利公开了一种《一种聚众检测方法》,其采用的技术方案是:通过对坐标的降维分解处理来确定存在聚众行为的人员。而本发明所提供的技术方案是通过预训练的yolov5作为所述人体检测网络,并通过基于无k值聚类的多群体聚众检测方法得到最终的聚类结果,即发生了多少组群体聚集的事件。
技术实现思路
1、本发明针对现有技术存在聚众检测方法中的k值需要事先指定以及数值选择敏感,使其难于应用于聚众检测的问题,提供了一种基于无k值聚类的多群体聚众检测方法及系统,本发明采用的技术方案是:
2、本发明第一方面提供了一种基于无k值聚类的多群体聚众检测方法,具体包括以下步骤:
3、s1,采用预训练的2d检测网络作为人体检测网络,得到人体边界框;
4、s2,从所述步骤s1中所述人体边界框获得人体边界框坐标;
5、s3,将所述步骤s2中所述人体边界框坐标进行计算处理,得到边界框的二维中心点的坐标;
6、s4,根据所述步骤s3得到的边界框的二维中心点的坐标,遍历中心点并计算任意两个中心点之间的距离;
7、s5,若所述步骤s4中计算得出的距离小于第一预设阈值,则将对应的两个中心点归为相同的簇中,并将这两个点标记为已聚类的点;通过不断的迭代比较,得到粗分类的多组簇;
8、s6,计算所述步骤s5中每组簇的质心坐标,得到每组簇的质心坐标(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、...(xn,yn);
9、s7,计算所述步骤s6中任意两组簇的质心之间的欧氏距离,若两组簇的质心之间的距离小于第二预设阈值,则将两组簇合并为一组簇,通过不断迭代判断,得到最终的一组簇;
10、s8,判断所述步骤s7中得到的每一组簇中的中心点个数,如果小于组成簇的最小点个数,则删除该簇;同时将所有未被分类的点归为一个簇,然后输出最终的聚类结果,并进行可视化。
11、相较于现有技术,本发明采用了k-means算法的思想,不需要事先设定聚类的个数,为聚众检测的群体个数随机性提供了较好的解决方案;对于聚类群体附近的噪声人员具有一定的滤除作用,确保了多群体聚类的准确性;针对现有的聚众检测算法难于解决多群体的聚集检测问题,提出了解决的方法,扩展了聚众检测算法的应用范围。
12、作为一种优选方案,在所述步骤s1中,具体为采用yolov5作为所述人体检测网络。
13、作为一种优选方案,在所述s2步骤中,所述人体边界框坐标具体为:(x1,y1,x2,y2)0(x1,y1,x2,y2)1(x1,y1,x2,y2)2……··(x1,y1,x2,y2)n;其中,索引0代表第一个边界框的坐标(x1,y1,x2,y2)0包含左上坐标x1,y1,右下坐标x2,y2索引1代表第二个边界框的坐标(x1,y1,x2,y2)1包含左上坐标x1,y1,右下坐标x2,y2,以此类推,索引n代表第n+1个边界框的坐标(x1,y1,x2,y2)n包含左上坐标x1,y1,右下坐标x2,y2。
14、作为一种优选方案,在所述步骤s3中,具体为将步骤s2所得人体边界框坐标代入以下计算式:x=(x1+x2)/2、y=(y1+y2)/2;最终得到所述中心点坐标(x,y)0(x,y)1(x,y)2......(x,y)n。
15、作为一种优选方案,在所述步骤s4中,中心点的距离计算公式具体为:
16、
17、其中,dist为两个中心点之间的距离,x1、x2为中心点的横坐标,y1、y2为中心点的纵坐标。
18、作为一种优选方案,在所述步骤s6中,具体通过以下公式计算所述质心坐标:
19、x=(x1+x2+..+xn)/n,y=(y1+y2+..+yn)/n;
20、其中,x表示质心的横坐标,y表示质心的纵坐标,x1、x2、..xn表示一组簇内所有中心点的横坐标,y1、y2、..yn表示一组簇内所有中心点的纵坐标,n表示一组簇内所有中心点的个数。
21、作为一种优选方案,在所述步骤s7中,所述欧氏距离具体通过以下公式计算:
22、
23、其中,dist表示任意两组簇的质心之间的欧氏距离,x1、x2表示不同簇的质心的横坐标,y1、y2表示不同簇的质心的纵坐标。
24、本发明第二方面提供了一种基于无k值聚类的多群体聚众检测系统,包括依序连接的人体检测模块、第一坐标生成模块、第二坐标生成模块、距离计算模块、第一聚类模块、第三坐标生成模块、第二聚类模块以及聚类结果生成模块;
25、所述人体检测模块采用预训练的2d检测网络作为人体检测网络,得到人体边界框;
26、所述第一坐标生成模块用于从所述人体边界框获得人体边界框坐标;
27、所述第二坐标生成模块用于将所述人体边界框坐标进行计算处理,得到边界框的二维中心点的坐标;
28、所述距离计算模块用于根据得到的边界框的二维中心点的坐标,遍历中心点并计算任意两个中心点之间的距离;
29、所述第一聚类模块用于将小于第一预设阈值的两个中心点归为相同的簇中,并将这两个点标记为已聚类的点;通过不断的迭代比较,得到粗分类的多组簇;
30、所述第三坐标生成模块用于计算每组簇的质心坐标,得到每组簇的质心坐标(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)...(xn,yn);
31、所述第二聚类模块用于计算任意两组簇的质心之间的欧氏距离,若两组簇的质心之间的距离小于第二预设阈值,则将两组簇合并为一组簇,通过不断迭代判断,得到最终的一组簇;
32、所述聚类结果生成模块用于判断得到的每一组簇中的中心点个数,如果小于组成簇的最小点个数,则删除该簇;同时将所有未被分类的点归为一个簇,然后输出最终的聚类结果,并进行可视化。
33、本发明第三方面还提供了一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现前述的一种基于无k值聚类的多群体聚众检测方法的步骤。
34、本发明第四方面还提供了一种计算机设备,包括存储介质、处理器以及储存在所述存储介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现前述的一种基于无k值聚类的多群体聚众检测方法的步骤。
35、与现有技术相比,本发明的有益效果是:
36、本发明设计了一种基于无k值聚类的多群体聚众检测方法及系统,通过采用了k-means算法的思想,不需要事先设定聚类的个数,为聚众检测的群体个数随机性提供了较好的解决方案;通过预设阈值筛选,对于聚类群体附近的噪声人员具有一定的滤除作用,确保了多群体聚类的准确性。