受限空间内自适应人脸聚类的方法、计算机装置及计算机可读存储介质与流程

文档序号:21460016发布日期:2020-07-10 17:58阅读:146来源:国知局
受限空间内自适应人脸聚类的方法、计算机装置及计算机可读存储介质与流程

本发明涉及图像识别的技术领域,具体地,是一种在受限空间内自适应人脸聚类的方法以及实现这种方法的计算机装置、计算机可读存储介质。



背景技术:

随着智能技术的发展,通过图像识别的方式来对人员进行识别已经广泛应用在多个领域,例如,在数字图像中对人脸进行检测,并且对检测到的多个人脸进行聚类是一种广泛的需求,除了应用于一般性的数字媒体管理和手机相册管理之外,还可应用于多种现实场景,比如车载视频监控系统,对车内司机和乘客进行脸部抓拍、聚类和识别分析等。

现有技术中,进行人脸检测并且对人脸图像聚类的方法通常是先获取多张原始图像,对各原始图像进行人脸检测,确定每一张原始图像中的人脸区域,然后对定位出的人脸区域进行关键点定位和特征提取,并利用提取到的人脸特征向量实现聚类。

具体的方法通常包括以下两种:第一种方法通常使用经典的聚类算法,如k-means,mean-shift等实现人脸图像的聚类,从而将属于同一个人的图像聚类在一起。但是,这种聚类算法往往需要预定义类别数量,而且对初始聚类中心和异常值敏感,造成结果的准确性不高。此外,这种聚类算法往往假设同一个人的照片在距离其中心点更近,由于人脸姿态的多样性,比如受光照、肤色、遮挡、人脸姿态等因素影响,这种假设往往不满足实际应用的需求。

第二种方法是在提取人脸图像的特征向量后,根据所提取的特征向量构建相似度矩阵,在相似度矩阵中寻找连通图,将每个连通图对应的人脸归为一类。但是,这种方法需要遍历整个由人脸节点构成的图,计算复杂度高,耗时较大,通常难以在短时间内输出人脸图像聚类的结果。



技术实现要素:

本发明的主要目的是提供一种计算量小且计算准确率高的受限空间内自适应人脸聚类的方法。

本发明的另一目的是提供一种实现上述受限空间内自适应人脸聚类的方法的计算机装置。

本发明的再一目的是提供一种实现上述受限空间内自适应人脸聚类的方法的计算机可读存储介质。

为实现本发明的主要目的,本发明提供的受限空间内自适应人脸聚类的方法包括获取至少一张原始图像,对原始图像进行人脸检测,获取原始图像中的人脸图像,并计算每一人脸图像的特征向量;并且,计算任意两张人脸图像的特征向量的相似度,根据任意两张人脸图像的特征向量的相似度以及相似度阈值构建无向图,每一人脸图像作为无向图中的一个节点,赋予每一节点一个类别;根据每一节点的邻居节点的类别来确认当前节点的类别,经过预设次数的迭代计算后获得一次聚类计算的结果,判断当前聚类计算的结果是否满足预设的要求,如不满足,则调节相似度阈值再次构建无向图,再次进行聚类计算。

由上述方案可见,通过构建无向图并且通过多次迭代计算来确定每一个节点的类别,通过多次迭代计算后,无向图中节点的类别数量将减少,从而将多张人脸图像划分为有限数量的多类。由于本发明的方法通过多次迭代计算进行聚类,每一次迭代计算的计算量并不复杂,聚类计算的计算量较少,能够提高聚类计算的效率。

另一方面,由于本发明是通过多次聚类计算来确定最终的聚类计算结果,并且在多次聚类计算时,通过使用上一次聚类计算的结果自适应的调节相似度阈值,例如上一次聚类计算输出的结果是类别数量过多,则通过提高相似度阈值来减少聚类计算后的类别数量,能够很好的满足在受限空间内的聚类计算要求。

一个优选的方案是,根据每一节点的邻居节点的类别来确认当前节点的类别包括:初次迭代计算时,将当前节点的任一邻居节点的类别赋予当前节点。

由此可见,在初次迭代计算时,由于所有节点的类别都是不相同的,因此通过将任意一个邻居节点的类别赋予当前节点,能够最快的启动迭代计算,使得迭代计算的计算量最小化,也使得聚类计算具有可操作性。

进一步的方案是,根据每一节点的邻居节点的类别来确认当前节点的类别包括:后续迭代计算时,根据当前节点的所有邻居节点的类别计算当前节点的类别。

可见,在后续的迭代计算过程中,需要使用所有的邻居节点作为计算当前节点类别的参考,这样可以确保充分考虑当前节点所有邻居节点的情况,提高当前节点的类别识别准确性。

更进一步的方案是,根据当前节点的所有邻居节点的类别计算当前节点的类别包括:确定当前节点与每一邻居节点之间连接线的权重值,根据当前节点与邻居节点之间连接线的权重值、该邻居节点的类别来计算当前节点的类别。

可见,使用当前节点与邻居节点之间连接线的权重值、该邻居节点的类别来计算当前节点的类别,可以确保权重值较高的邻居节点的类别对当前节点的类别确定有较大的影响,从而提高当前节点类别计算的准确性。

一个优选的方案是,确定当前节点与邻居节点之间连接线的权重值包括:判断当前节点与该邻居节点的特征向量的相似度是否大于或等于相似度阈值,如是,确定与该邻居节点之间连接线的权重值为第一权重值,否则,确定与该邻居节点之间连接线的权重值为第二权重值;其中,第一权重值大于第二权重值。

由此可见,对于相似度较高的邻居节点,该邻居节点的类别具有较大的权重,对于相似度较低的邻居节点,该邻居节点的类别具有较小的权重,这样能够确保当前节点的类别与最相似的邻居节点保持一致,提高节点类别计算的准确性。

更进一步的方案是,确定当前节点与邻居节点之间连接线的权重值包括:以当前节点与该邻居节点的特征向量的相似度作为权重值。

可见,直接使用两个节点的特征向量的相似度作为权重值,简化权重值计算的计算量,有利于减少节点类别计算的时间,从而提高人脸图像聚类计算的效率。

更进一步的方案是,判断当前聚类计算的结果是否满足预设的要求包括:判断当前聚类计算的结果中,所有节点的类别数量是否在预设的范围内,如是,确认满足预设的要求。

由于在受限空间内,节点的类别数量范围可预先设定,因此只需要判断当前聚类计算的结果中,节点类别数量是否在预设范围内即可以确定当前的聚类结果是否满足要求,可以快速的进行后续的计算。

更进一步的方案是,获取一段视频,对视频的每一帧图像进行人脸检测,计算该段视频中出现在各帧图像中的最多人脸数量;确认当前聚类计算的结果是否满足预设的要求包括:所有节点的类别数量不少于视频中出现在各帧图像中的最多人脸数量。

更进一步的方案是,当本发明应用在受限空间内,该受限空间所能容纳的人数存在上限,例如当本发明应用于车载视频监控系统时,由于车厢内人员的数量上限是确定的,因此聚类获得的类别数量上限也是确定的,如果聚类获得的类别数目大于该上限值,表示聚类计算将同一名人员的人脸聚类为至少两类,此时需要进一步调整相似度阈值,重新进行聚类计算,这样可以确保聚类计算结果的准确性。

为实现上述的另一目的,本发明提供的计算机装置包括处理器以及存储器,存储器存储有计算机程序,计算机程序被处理器执行时实现上述受限空间内自适应人脸聚类的方法的各个步骤。

为实现上述的再一目的,本发明提供计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述受限空间内自适应人脸聚类的方法的各个步骤。

附图说明

图1是本发明受限空间内自适应人脸聚类的方法实施例的流程图。

图2是本发明受限空间内自适应人脸聚类的方法实施例中获取人脸图像并计算人脸图像的特征向量的流程图。

图3是本发明受限空间内自适应人脸聚类的方法实施例中构建无向图的流程图。

图4是本发明受限空间内自适应人脸聚类的方法实施例中一次聚类计算的流程图。

图5是本发明受限空间内自适应人脸聚类的方法实施例中自适应人脸聚类计算的流程图。

以下结合附图及实施例对本发明作进一步说明。

具体实施方式

本发明的受限空间内自适应人脸聚类的方法应用在智能设备上,优选的,智能设备设置有摄像装置,如摄像头等,智能设备利用摄像装置所获取的视频数据进行图像分析,例如获取视频中的每一帧图像,并且对每一帧图像中的人脸进行检测,然后对检测得到的人脸区域图像进行聚类计算。本发明主要是针对受限空间环境下进行人脸聚类计算,例如在车厢等受限空间内进行人脸聚类的计算。优选的,智能设备设置有处理器以及存储器,存储器上存储有计算机程序,处理器通过执行该计算机程序实现受限空间内自适应人脸聚类的方法。

受限空间内自适应人脸聚类的方法实施例:

本实施例应用人脸检测的计算机程序实现,也就是在聚类计算过程中需要应用人脸检测的算法,由于人脸检测的算法有很多种,本实施例并不限制人脸检测的具体算法。

本实施例是获取一段视频数据,然后对视频数据中多帧图像进行人脸区域检测,获取每一帧图像中的人脸区域,计算每一帧图像中人脸区域的数量,由人脸区域数量最多的一帧图像可以确定该段视频中所检测的最多的人脸类别数量,考虑到人脸检测算法在实际应用中存在漏检的可能性,所检测的最多的人脸类别数量就是车厢内人员的数量下限。由于本实施例需要对人脸图像进行聚类,聚类的目的就是将同一个人的人脸图像识别出来,因此,本实施例需要根据所识别的车厢内的人员数量范围来确定聚类识别结果中人脸图像类别的数量,并以此作为一次聚类计算的结果是否满足预设要求的判断标准。

下面结合图1至图5详细介绍本实施例的工作过程。参见图1,首先执行步骤s1,获取多张原始图像。所获取的原始图像可以是一段视频中的多帧图像,多帧图像可以是连续的多帧图像,也可以是不连续的多帧图像。由于人员运动是具有连续性的,即使获取的图像不是连续的,往往对聚类计算的结果不会有实质的影响,相反,如果从一段视频中获取连续的多帧图像,将导致聚类计算所获取的图像数量过多,计算量过大,影响聚类计算的效率,因此,可以获取不连续的多帧图像。例如,每间隔预设的时间获取一帧图像,或者将一段视频划分为多个时间区间,从每一个时间区间内随机获取一帧或者多帧图像。例如,对于一段时间长度为20秒的视频,可以将视频划分为20段,每一段的时间长度为1秒,从每一段视频中随机获取一帧或者两帧图像作为原始图像。

然后,执行步骤s2,对每一张原始图像进行人脸检测,获取多张人脸图像。具体的,分别对每一张原始图像进行人脸检测,将检测到的每个人脸分别保存为一张人脸图像。本实施例中,人脸检测的方法是通过采用一定的策略对原始图像进行搜索以确定当前原始图像中是否含有人脸,如果是,则返回人脸的位置、大小等。人脸检测的具体算法可包括传统的检测算法和基于深度学习的检测算法,其中传统的算法又包括基于统计的算法以及基于结构特征的算法等。近年来,随着深度学习神经网络在模式识别方面取得了巨大的成功,例如图像分类、目标检测、图像分割、语音识别以及机器翻译等领域,基于深度学习的检测算法性能远超传统的浅度模型,得到了广泛关注和应用。对于每张原始图像来说,可以仅采用一种人脸检测算法来对其进行人脸检测,为了提升检测效果,也可以采用多种算法相结合的方式来对其进行人脸检测,具体的人脸检测算法可根据实际需要而定。

接着,执行步骤s3,计算步骤s2所获取的每一张人脸图像的特征向量。本实施例可以根据预先训练得到的特征向量提取模型,分别提取出每张人脸图像的人脸特征向量。具体的,参见图2,首先执行步骤s11,获取一张人脸图像所包含的各部分的关键点的位置信息,根据至少一个部分的关键点位置信息对人脸图像进行校正,即执行步骤s12。对人脸图像校正的方法有很多种,其中一种方法是:首先根据人脸图像中左右眼睛的关键点信息,计算两只眼睛的中心连线和水平线间的夹角,按照该夹角将人脸图像旋转至水平位置,即旋转后的人脸图像中,两只眼睛的中心连线与水平线平行。人脸图像的校正方法是已知的方法,在此不再赘述。然后,执行步骤s13,对经过校正的人脸图像进行放缩和平移,使得人脸图像中的某一部分或者某几部分的关键点位置信息符合预设关系,例如两只眼睛的中心连线距离为某一固定值、五官中心位置像素点位于某一固定像素位置等。优选的,为方便后续利用特征提取模型提取人脸特征向量,可将上述经过旋转的人脸图像放缩至预设的某一固定分辨率,例如分辨率为128×128。

最后,执行步骤s14,针对经过校正、缩放的人脸图像,利用预先训练得到的特征提取模型,分别提取人脸特征向量。为了训练得到特征提取模型,本实施例需要预先获取多个训练样本,通过对多个训练样本进行训练获得特征提取模型。训练获得特征提取模型可以基于现有的算法实现,在此不再赘述。优选的,本实施例应用基于深度学习方法训练获得特征提取模型,由于基于深度学习方法训练的特征提取模型相较于传统模型,能够提取到辨识度更高的人脸特征,可进一步提升人脸聚类计算的性能,例如提高聚类结果的准确性。

接着,执行步骤s4,计算任意两张人脸图像的特征向量相似度。计算特征向量相似度的方法有很多种,最常见的方法是夹角余弦算法,该方法是根据向量空间中两个向量之间的夹角余弦值来衡量两个个体之间的差异,余弦值越接近于1,表示夹角越接近0度,两个个体之间相似度越高。例如,将两张人脸图像的特征向量作为向量空间中两个向量,这样就可以计算出这两个向量之间的夹角余弦值。经过步骤s4,所获取的多张人脸图像中,两两之间的相似度将被计算出来。

然后,执行步骤s5,利用预先设定的相似度阈值、任意两张人脸图像的相似度来构建无向图。无向图是指连接线没有方向的图。下面结合图3介绍构建无向图的具体流程。

首先,执行步骤s21,将参与聚类计算的每张人脸图像分别对应为无向图中的一个节点。两个节点之间可以有连接线,也可以是没有连接线,节点之间的连接线表示两个节点之间的相似度关系,也就是表示两张人脸图像之间的相似度关系。当然,步骤s21中并不需要设定两个节点之间的连接线。

然后,执行步骤s22,获取相似度阈值的初始值或者调整值。如果当前聚类计算是第一次构建的无向图,也就是第一次进行聚类计算,则使用的相似度阈值是初始值,初始值是一个预先设定的值。如果当前聚类计算不是第一次构建的无向图,即不是第一次进行聚类计算,则使用的相似度阈值是调整值,调整值是根据上一次聚类计算的结果进行调整的值。

然后,执行步骤s23,计算任意两个节点之间的相似度与步骤s22所获取的相似度阈值的关系,即判断任意两个节点之间的相似度是否大于或者等于相似度阈值,也就是执行步骤s24。如果两个节点之间的相似度大于或者等于相似度阈值,则执行步骤s25,将两个节点之间设置为有连接线,如果两个节点之间的相似度小于相似度阈值,则执行步骤s26,两个节点之间设置为没有连接线。

接着,执行步骤s27,判断是否遍历无向图中的所有节点,如是,则执行步骤s28,输出无向图,此时,无向图中的多个节点通过连接线与其他节点连接,且具有连接线的任意两个节点的相似度均大于相似度阈值。如果步骤s27的判断结果为否,表示无向图中还有节点未进行相似度的判断,则返回执行步骤s23,获取未进行处理的节点并判断该节点是否存在相似度大于相似度阈值的节点,如果存在,则将两个节点之间设置为具有连接线。

需要说明的是,将两个节点之间设置为有连接线或者无连接线的目的是为了确定每一个节点的类别时所设置的权重,一种实施方式是,可以依赖于两个节点之间是否有连接线来确定两个节点之间连接线的权重值,另一种实施方式是,任意两个节点之间均设置为有连接线,但如果两个节点之间的相似度小于相似度阈值,则将该连接线的权重值设置为0。两个节点之间连接线的权重值设置方式以及应用在节点类别计算的具体方法将在后面详细说明。

在构建无向图后,将应用所构建的无向图进行聚类计算,并且获得聚类计算的结果。实际应用时,仅通过一次聚类计算未必能够获得预期的结果,通常需要进行多次的聚类计算,并且在执行后续的聚类计算时,需要不断的对相似度阈值进行调整。并且,每一次的聚类计算是一个迭代计算的过程,即每一次聚类计算需要经过多次的迭代计算,迭代计算的次数是可以预先设置的。

具体的,首先执行步骤s6,赋予无向图中每一个节点一个类别,并且进行预设次数的迭代计算,然后,执行步骤s7,判断当前聚类计算的结果是否满足要求,如果满足要求,则执行步骤s8,输出当前聚类计算的结果,否则,执行步骤s9,对相似度阈值进行调整,并且返回执行步骤s5,重新构建一个无向图,并且使用新构建的无向图再次进行聚类计算,再次判断聚类计算的结果是否满足预设要求。这样,经过多次聚类计算后,可以获得预期的结果。

下面结合图4介绍一次聚类计算的过程。首先,执行步骤s301,判断当前的迭代计算是否为第一次迭代计算,如是,则执行步骤s302,赋予每一个节点一个类别。因此,在初始状态下,无向图中的每一个节点都具有自己唯一的一个类别,也就是说,在初始状态下,无向图中的每一张人脸图像各属于一个类别,类别的数量与无向图中节点的数量相等。

然后,执行步骤s303,获取一个节点作为当前节点。一种情况是,按照预先设定的排列顺序依次获取各个节点作为当前节点。更优的,在所有尚未计算类别的节点中,随机获取一个节点作为当前节点,随机性的适当运用可以提高聚类计算的效率。

然后,执行步骤s304,随机获取当前节点的一个邻居节点,并且将该邻居节点的类别赋予当前节点。邻居节点是与当前节点之间具有连接线的节点,一种情况是,两个节点之间的相似度大于相似度阈值才会设置有连接线,则邻居节点是与当前节点之间具有较高相似度的节点。另一种情况是,任意两个节点之间都设置有连接线,如果两个节点之间的相似度低于相似度阈值,则两个节点之间连接线的权重值较低,这种情况下,当前节点的邻居节点就是当前节点之外的任意一个节点。

在随机获取当前节点的一个邻居节点后,将该邻居节点的类别赋予当前节点。例如,当前节点的类别是x1,随机选取的邻居节点的类别是x2,将邻居节点的类别赋予当前节点后,当前节点的类别就变为x2。

然后,执行步骤s305,判断是否遍历完所有节点,如不是,表示还存在节点没有进行类别计算,则返回执行步骤s303,继续获取其他未进行类别计算的节点作为当前节点,进行类别计算。

如步骤s305的判断结果为是,表示无向图中所有的节点均完成了一次类别计算,即完成了一次迭代计算,则执行步骤s310,判断是否达到预设的迭代次数。由于仅通过一次迭代计算是无法将所有节点的类别减少到预设的数量,因此,本申请将设置多次迭代计算来进行人脸聚类,因此预先设置每一次聚类计算所需要执行的迭代计算次数,例如每一次聚类计算需要执行5次或者8次迭代计算。步骤s310就是判断当前迭代计算的次数是否到达预设的次数,如没有达到预设的次数,则返回执行步骤s301,并进行后续的迭代计算。

返回执行步骤s301后,将判断当前迭代计算是否为第一次迭代计算,如不是,则执行步骤s306,获取一个节点作为当前节点,获取节点的方式与步骤s303保持相同。

然后执行步骤s307,获取当前节点的所有邻居节点的类别,然后执行步骤s308,根据所有邻居节点的类别来确认当前节点的类别,具体的,根据当前节点的所有邻居节点的类别、当前节点与该邻居节点连接线的权重值来计算当前节点的类别。

一种情况是,两个节点之间的相似度大于或等于相似度阈值才会设置有连接线,此时,可通过计算当前节点与其邻居节点之间的相似度权重累加和来确定当前节点的类别,例如,直接使用当前节点与某一邻居节点之间的相似度作为两个节点之间连接线的权重值。假设当前节点a有3个邻居节点,分别是邻居节点b、c、d,其中当前节点a与邻居节点b之间的相似度为0.9,邻居节点b的类别为x3,当前节点a与邻居节点c之间的相似度为0.8,邻居节点c的类别为x4,当前节点a与邻居节点d之间的相似度为0.7,邻居节点d的类别为x3。则进行累加计算后,当前节点a的类别为x3的权重值总和为0.9+0.7=1.6,当前节点a的类别为x4的权重值总和为0.8,显然,当前节点a的类别为x3的权重值总和大于类别为x4的权重值总和,因此确定当前节点a的类别为x3。

另一种情况是,任意两个节点之间都设置有连接线,如果两个节点之间的相似度低于相似度阈值,则两个节点之间连接线的权重值较低,此时当前节点的类别计算可以采用下面的方式进行:如果当前节点与某一个邻居节点的相似度大于或等于相似度阈值,则将当前节点与该邻居节点之间连接线的权重值设置为第一权重值,例如第一权重值为1,如果当前节点与某一个邻居节点的相似度小于相似度阈值,则将当前节点与该邻居节点之间连接线的权重值设置为第二权重值,例如第二权重值为0。可见,第一权重值大于第二权重值,也就是两个节点之间的相似度较高的,权重值较高,两个节点之间的相似度较低,权重值也较低,这样可以确保计算当前节点的类别时,与其相似度较高的邻居节点具有较高的权重值占比,提高当前节点类别计算的准确性。

假设当前节点a有5个邻居节点,其中有3个邻居节点与当前节点a之间连接线的权重值为1,这3个邻居节点的类别均为x5,另外2个节点与当前节点a之间连接线的权重值为0,则以与当前节点a之间连接线的权重值为1的3个邻居节点的类别来确定当前节点a的类别,即将当前节点a的类别设置为x5。

如果存在两个或两个以上的类别的邻居节点与当前节点之间连接线具有相同的权重值的情况,则将这两种类别随机选取一个赋予当前节点。例如,当前节点a有4个邻居节点,且这些邻居节点与当前节点a之间连接线的权重值均为1,其中两个邻居节点的类别为x6,另外两个邻居节点的类别为x7,则从类别x6与类别x7中随机选取一个赋予当前节点,即当前节点的类别可能是x6或者x7,且概率相等。

执行步骤s308后,执行步骤s309,判断是否遍历完所有节点,如不是,表示还存在节点没有进行类别计算,则返回执行步骤s306,继续获取其他未进行类别计算的节点作为当前节点,进行类别计算。

如步骤s309的判断结果为是,表示无向图中所有的节点均完成了一次类别计算,即完成了一次迭代计算,继续执行步骤s310,判断是否到达预设的迭代次数,如果未到达预设的迭代次数,再执行步骤s301,继续执行下一次的迭代计算,如果到达预设的迭代次数,则执行步骤s311,输出迭代计算的结果,迭代计算的结果也就是一次聚类计算的结果。

需要说明的是,在某些受限空间内,如小型车辆内部人数往往是有限的,因此摄像头所拍摄的视频画面中人脸数量也是有限的,因此,聚类计算可以将录制的视频中的人员数量作为参考,来确定聚类的类别数量,例如摄像头所拍摄的一段视频中,通过对多帧图像进行人脸检测后,多帧图像中包含的人脸数量最多的一帧图像的人脸数量就是人脸聚类计算中可用于参考的最小类别数量,这是考虑到对人脸检测时可能出现的漏检的情况。

同时,受限空间内可容纳的最多人数也是有限制的,因此可以将最多容纳人数作为人脸聚类计算中的最大类别数量。例如针对五座车,可以设定聚类计算的结果是类别数量不超过5个。因此,记录、更新图像中出现过的最多人脸数量,以及有限空间内最多可容纳人数,可用于检验人脸聚类计算输出的类别数量是否符合预设要求,若不符合要求,则自适应调整相似度阈值,并重新执行聚类计算,直至聚类计算结果满足预设要求。

下面结合图5介绍进行多次聚类计算的过程。首先,执行步骤s41,获取初始设定的相似度阈值,然后,执行步骤s42,应用初始设定的相似度阈值、所检测到的人脸图像构建无向图,无向图的具体构建方法在前面已经详细描述。然后,执行步骤s43,进行一次聚类计算,即执行步骤s31至步骤s37的计算,接着,执行步骤s44,判断当前聚类计算的结果是否满足预设的要求。本实施例中,聚类计算的结果满足预设要求的条件是聚类计算的结果中,节点的类别数量在预设的范围内,即不少于视频各帧图像中检测到的最多人脸数量的一帧图像的人脸数量,且不多于受限空间内最多容纳人员数量。

如果聚类结果不满足预设的要求,则需要执行步骤s46,对相似度阈值进行调整,具体的,如果聚类结果是聚类获得的类别数量较多,则可以上调相似度阈值,例如将相似度阈值从0.7调整为0.8,从而减少每一节点的邻居节点数量,或者说与当前节点的相似度大于相似度阈值的邻居节点数量将减少,通过有限次迭代计算后节点的类别数量也将减少。如果聚类结果是聚类获得的类别数量较少,则可以下调相似度阈值。将相似度阈值调整后,返回执行步骤s42,使用调整后的相似度阈值构建无向图,并进行下一次的聚类计算,直到聚类计算的结果满足预设的要求。当步骤s44的判断结果为是,表示当前聚类计算的结果已经满足预设的要求,则执行步骤s45,输出聚类计算的结果。

本实施例采用基于无向图的自适应聚类算法,通过构建无向图并在无向图中迭代查找每个节点对应的所有邻居节点的类别,以此来确认当前节点所属的类别,从而实现聚类。同时基于应用场景信息,可自适应调整相似度阈值,使得聚类结果不断得到优化。与传统的聚类计算相比,本实施例的聚类结果准确性更高,性能更加鲁棒。此外,本实施例的计算量较少,聚类计算的计算量少,能够提高人脸聚类计算的效率。

需要说明的是,上述实施例获取的原始图像是多张,但实际应用时,也可以仅仅获取一张原始图像,并且对所获取的一张原始图像进行人脸检测后进行聚类计算。

计算机装置实施例:

本实施例的计算机装置可以是智能设备,例如具有图像处理能力的车载监视仪器等,该计算机装置包括有处理器、存储器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述受限空间内自适应人脸聚类的方法的各个步骤。

例如,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明的各个模块。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。

本发明所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。

存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

计算机可读存储介质:

上述计算机装置所存储的计算机程序如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述受限空间内自适应人脸聚类的方法的各个步骤。

其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

最后需要强调的是,本发明不限于上述实施方式,例如相似度阈值初始值的变化,或者预先设定的迭代次数变化等,这些改变也应该包括在本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1