跟踪控制方法、设备、计算机可读存储介质与流程

文档序号:19942857发布日期:2020-02-14 23:24阅读:156来源:国知局
跟踪控制方法、设备、计算机可读存储介质与流程

本发明涉及电子信息技术领域,尤其是涉及一种跟踪控制方法、设备、计算机可读存储介质。



背景技术:

现有的人脸检测方法可以包括级联分类器检测方法、dpm(deformablepartsmodels,可变型部件模型)检测方法等,然而,这些人脸检测方法的可靠性和准确性均比较差。因此,随着cnn(convolutionalneuralnetwork,卷积神经网络)的兴起,基于cnn的人脸检测方法被越来越多地尝试。

基于cnn的人脸检测方法,通常在具有高性能gpu(graphicsprocessingunit,图形处理器)和高性能cpu(centralprocessingunit,中央处理器)的服务器上训练及运行,训练出来的网络存在网络复杂、层数多、参数多和内存开销大等缺陷,从而导致计算过程复杂,无法达到实时检测的效果。



技术实现要素:

本发明提供一种跟踪控制方法、设备、计算机可读存储介质,可以提高人脸检测的准确性和可靠性,降低网络复杂度和计算量,达到实时检测效果。

本发明实施例第一方面,提供一种跟踪控制方法,所述方法包括:获取输入图像序列;基于检测算法,对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框;基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪。

本发明实施例第二方面,提供一种跟踪控制设备,可以包括:存储器和处理器;其中,所述存储器,用于存储程序代码;所述处理器,用于调用所述程序代码,当程序代码被执行时,用于执行以下操作:获取输入图像序列;基于检测算法,对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框;基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪。

本发明实施例第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,实现上述跟踪控制方法,如实现本发明实施例第一方面所述的跟踪控制方法。

基于上述技术方案,本发明实施例中,可以提高人脸检测的准确性和可靠性,降低网络复杂度和计算量,达到实时检测效果,实现多人脸检测,可以减少读写开销和cpu开,不需要频繁调用检测算法,从而降低网络调用频次,解决了功耗过高的问题,避免完全依赖检测算法时的实时性低问题。

附图说明

为了更加清楚地说明本发明实施例中的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,而不是所有实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其它的附图。

图1是一个跟踪控制方法的流程示意图;

图2是一个精简后mtcnn的示意图;

图3a是检测算法的状态机及同步机制示意图;

图3b是跟踪算法的状态机及同步机制示意图;

图4是一个跟踪控制设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。应当理解的是,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或者,“当……时”,或者,“响应于确定”。

实施例1:

本发明实施例中提出一种跟踪控制方法,该方法可以应用于跟踪控制设备,如可移动平台等,其中,所述可移动平台可以包括但不限于无人机、地面机器人(例如无人车等)。此外,该可移动平台可以配置拍摄设备(如相机、摄像机等),并通过该拍摄设备采集拍摄图像,另外,可移动平台还可以配置有云台,该云台可以承载该拍摄设备,以为该拍摄设备增稳和/或调整。

参见图1所示,为跟踪控制方法的流程示意图,该方法可以包括:

步骤101,获取输入图像序列,该输入图像序列可以包括多帧输入图像。

其中,所述输入图像序列可以是视频数据中的连续帧的输入图像。

具体地,所述方法的执行主体可以为可移动平台,如可移动平台的处理器,处理器可以为一个或多个,处理器可以为通用处理器或者专用处理器。

如前所述,可移动平台可以配置有拍摄设备,在可移动平台对目标对象进行跟踪的过程中,则拍摄设备可以对目标对象进行拍摄,以获取拍摄图像,可移动平台的处理器可以获取所述拍摄图像。其中,每个拍摄图像就是一帧输入图像,并且可以将多帧输入图像的集合作为输入图像序列。

其中,所述目标对象具体可以为可移动平台跟踪的对象。

其中,输入图像包括的目标对象可以为至少一个,且目标对象包括人脸。

步骤102,基于检测算法,对该输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框。其中,这里是基于检测算法,只对该输入图像序列中的一帧输入图像(如该输入图像序列中的第一帧输入图像)进行检测,而不是基于检测算法,对该输入图像序列中的每帧输入图像进行检测。

在一个例子中,基于检测算法,对该输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框,可以包括但不限于:通过特定cnn检测算法对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框;其中,所述特定cnn检测算法可以包括但不限于弱分类器。例如,所述特定cnn检测算法可以是包括pnet和rnet,但不包括onet的mtcnn(multitaskconvolutionalneuralnetwork,多任务卷积神经网络)检测算法。

例如,所述特定cnn检测算法可以包括至少一个弱分类器,且不同的弱分类器可以具有相同或者不同的过滤策略;所述过滤策略可以包括但不限于:形态学过滤策略,和/或,肤色过滤策略,也就是说,弱分类器可以采用形态学过滤策略进行过滤处理,或者,也可以采用肤色过滤策略进行过滤处理。

此外,该弱分类器可以部署在特定cnn检测算法的任意一级网络。

在一个例子中,通过特定cnn检测算法对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框,可以包括但不限于:针对输入到特定cnn检测算法的弱分类器的跟踪框,则通过该弱分类器检测该跟踪框是否符合过滤策略;如果不符合过滤策略,则可以将该跟踪框输出给特定cnn检测算法的下一级网络;如果符合过滤策略,则可以过滤该跟踪框。

在一个例子中,通过特定cnn检测算法对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框,还可以包括但不限于:将输入图像和网络参数转换为定点数据(而不是浮点数据),并可以通过特定cnn检测算法利用转换后的定点数据进行处理,得到包括目标对象的跟踪框。

在另一个例子中,特定cnn检测算法还可以通过定点网络(如定点mtcnn网络)实现,所述定点网络中的输入图像和网络参数均为定点数据;基于此,通过特定cnn检测算法对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框,还可以包括但不限于:通过特定cnn检测算法利用所述定点网络中的定点数据进行处理,得到包括目标对象的跟踪框。

在一个例子中,通过特定cnn检测算法对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框之前,还可以对输入图像序列中的一帧输入图像进行预处理,得到预处理后的输入图像;然后,通过特定cnn检测算法对预处理后的输入图像进行处理,得到包括目标对象的跟踪框。其中,所述预处理可以包括但不限于:压缩感知处理;和/或,肤色检测处理。

在一个例子中,通过特定cnn检测算法对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框,还可以包括但不限于:可以利用时域信息预测目标对象的参考区域,并通过特定cnn检测算法对输入图像序列中的一帧输入图像中的参考区域进行检测,得到包括目标对象的跟踪框。

步骤103,基于跟踪算法,根据目标对象的跟踪框(即步骤102得到的目标对象的跟踪框)在一帧输入图像(即进行检测的一帧输入图像)后面的多帧输入图像中对目标对象进行跟踪。其中,这里是基于跟踪算法,在一帧输入图像后面的多帧输入图像中的每帧输入图像中,对目标对象进行跟踪。也就是说,每隔一定数量的输入图像,就可以对一帧输入图像进行进行检测(即步骤102),并在一帧输入图像后面的多帧输入图像中进行跟踪(即步骤103)。

例如,采用步骤102,对第1帧输入图像进行检测,然后,采用步骤103,对第2帧输入图像-第10帧输入图像进行跟踪;然后,采用步骤102,对第11帧输入图像进行检测,然后,采用步骤103,对第12帧输入图像-第20帧输入图像进行跟踪;以此类推,不断重新上述步骤102-步骤103,完成跟踪控制。

在一个例子中,基于跟踪算法,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪,可以包括但不限于:获取基于上一帧输入图像得到的目标对象的跟踪框以及该目标对象的空间上下文模型,其中,该空间上下文模型可以用于指示在所述上一帧输入图像中目标对象与周围图像区域的空间相关性;然后,可以基于该空间上下文模型,在当前帧输入图像中对应跟踪框的位置处以及周围区域中确定该目标对象。

在一个例子中,该空间上下文模型可以包括但不限于以下之一或者任意组合:灰度特征、hog(histogramoforientedgradient,方向梯度直方图)特征、矩特征、sift(scale-invariantfeaturetransform,尺度不变特征变换)特征。

在一个例子中,基于跟踪算法,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪,可以包括但不限于:通过卡尔曼滤波预测目标对象的参考区域;基于跟踪算法,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中的参考区域,对目标对象进行跟踪。

在一个例子中,可以通过第一线程实现检测算法,并通过第二线程实现跟踪算法,也就是说,检测算法和跟踪算法是通过不同的线程实现的。

在一个例子中,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪,可以包括但不限于:通过该第一线程向该第二线程输出目标对象的跟踪框;然后,可以通过该第二线程根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪。

在一个例子中,对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框之后,还可以通过第一线程停止对一帧输入图像后面的多帧输入图像进行检测,即不再对一帧输入图像后面的多帧输入图像进行检测。

在一个例子中,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪,可以包括但不限于:在通过第一线程得到包括目标对象的跟踪框后,可以启动第二线程;在第二线程启动后,通过第二线程根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪,即在所述多帧输入图像中的每帧输入图像中对目标对象进行跟踪。

在一个例子中,在检测算法开启、且当前输入图像是输入图像序列中的第一帧输入图像时,则可以通过第一线程将第一状态机设置为启动状态;在第一状态机为启动状态时,则可以通过第一线程对输入图像进行检测。

此外,在检测算法开启、且当前输入图像不是输入图像序列中的第一帧输入图像时,则可以通过第一线程将第一状态机设置为空闲状态;在第一状态机为空闲状态时,则可以停止通过第一线程对输入图像进行检测。

此外,在检测算法关闭时,则通过第一线程将第一状态机设置为关闭状态;在第一状态机为关闭状态时,则停止通过第一线程对输入图像进行检测。

此外,在跟踪算法开启时,则通过第二线程将第二状态机设置为启动状态;在第二状态机为启动状态时,则通过第二线程对输入图像进行跟踪。

此外,在跟踪算法关闭时,则通过第二线程将第二状态机设置为关闭状态;在第二状态机为关闭状态时,则停止通过第二线程对输入图像进行跟踪。

在一个例子中,基于跟踪算法,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪之后,还可以利用第一输入图像中的第一跟踪框和第二输入图像中的第二跟踪框确定目标对象的目标跟踪框;其中,第一跟踪框是基于检测算法在第一输入图像中得到的包括目标对象的跟踪框;第二跟踪框是基于跟踪算法在第二输入图像中对目标对象进行跟踪时得到的跟踪框;基于跟踪算法,根据目标跟踪框对目标对象进行跟踪。

其中,利用第一输入图像中的第一跟踪框和第二输入图像中的第二跟踪框确定目标对象的目标跟踪框,可以包括但不限于:计算该第一跟踪框与该第二跟踪框的重合程度,并根据该重合程度确定目标对象的目标跟踪框。

其中,根据该重合程度确定目标对象的目标跟踪框,可以包括但不限于:若该重合程度大于或者等于预设阈值(可以根据经验进行配置),则可以将该第二跟踪框确定为该目标对象的目标跟踪框;或者,若该重合程度小于所述预设阈值,则可以将该第一跟踪框确定为该目标对象的目标跟踪框。

其中,重合程度包括:第一跟踪框与第二跟踪框之间的iou(交集并集比)。

基于上述技术方案,本发明实施例中,可以提高人脸检测的准确性和可靠性,降低网络复杂度和计算量,达到实时检测效果,实现多人脸检测,可以减少读写开销和cpu开,不需要频繁调用检测算法,从而降低网络调用频次,解决了功耗过高的问题,避免完全依赖检测算法时的实时性低问题。

实施例2:

针对步骤102,可以基于检测算法,对输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框,在实际应用中,输入图像可以包括多个目标对象,即步骤102可以得到多个跟踪框。例如,步骤101中,先采集输入图像序列1,输入图像序列1包括输入图像1-输入图像10,然后采集输入图像序列2,输入图像序列2包括输入图像11-输入图像20,以此类推,每个输入图像序列均包括10帧输入图像,且每帧输入图像均可以包括目标对象。

在得到输入图像序列1后,可以基于检测算法,对输入图像序列1中的第一帧输入图像(如输入图像1)进行检测,得到包括目标对象的跟踪框。然后,不再对输入图像序列1中的输入图像2-输入图像10进行检测。

进一步的,在得到输入图像序列2后,可以基于检测算法,对输入图像序列2中的输入图像11进行检测,得到包括目标对象的跟踪框。然后,不再对输入图像序列2中的输入图像12-输入图像20进行检测,以此类推。

为实现输入图像(后续以输入图像1为例)的检测,本实施例中,可以采用mtcnn检测算法对输入图像1进行检测,得到包括目标对象的跟踪框。

其中,mtcnn可以采用级联网络进行人脸检测,传统的mtcnn包括3个复杂度依次提高的网络:pnet、rnet和onet,其实现流程可以包括:输入图像经过预处理后,将预处理后的输入图像输出给pnet,在pnet中对输入图像进行处理,得到多个候选框,将这些候选框称为第一类候选框。通过本地nms(non-maximumsuppression,非极大值抑制)方法对第一类候选框进行处理,得到第二类候选框,该第二类候选框包括第一类候选框中的部分候选框。

然后,将第二类候选框输出给rnet,在rnet中对第二类候选框进行处理后,得到第三类候选框,然后,通过本地nms方法对第三类候选框进行处理,得到第四类候选框,该第四类候选框包括第三类候选框中的部分候选框。

然后,将第四类候选框输出给onet,在onet中对第四类候选框进行处理后,得到第五类候选框,然后,通过本地nms方法对第五类候选框进行处理,得到第六类候选框,该第六类候选框包括第五类候选框中的部分候选框。

进一步的,所述第六类候选框就可以是最终得到的各个人脸的跟踪框。

在上述mtcnn中,onet是复杂度最高的网络,其运算速度慢,读写开销大,cpu开销大,从而导致mtcnn无法直接在嵌入式设备运行。

针对上述发现,本发明实施例中提出一种新的mtcnn,该mtcnn是包括pnet和rnet,但不包括onet的mtcnn,且该mtcnn可以包括一个或者多个弱分类器,每个弱分类器可以部署在mtcnn的任意一级网络。

例如,在去除onet后,mtcnn可以依次包括pnet、本地nms(后续称为第一本地nms)、rnet、本地nms(后续称为第二本地nms),这样,可以在pnet之前部署弱分类器,即mtcnn可以依次包括弱分类器、pnet、第一本地nms、rnet、第二本地nms。或者,也可以在pnet与第一本地nms之间部署弱分类器,即mtcnn可以依次包括pnet、弱分类器、第一本地nms、rnet、第二本地nms。或者,还可以在rnet与第二本地nms之间部署弱分类器,即mtcnn可以依次包括pnet、第一本地nms、rnet、弱分类器、第二本地nms,对此不做限制,弱分类器可以部署在mtcnn的任意一级网络。

当然,上述是以一个弱分类器为例,当存在多个弱分类器时,可以将多个弱分类器部署在mtcnn的任意一级网络,例如,弱分类器1部署在pnet之前,弱分类器2部署在rnet与第二本地nms之间,则mtcnn可以依次包括弱分类器1、pnet、第一本地nms、rnet、弱分类器2、第二本地nms,对此不做限制,每个弱分类器均可以部署在mtcnn的任意一级网络。

在一个例子中,弱分类器用于根据过滤策略对跟踪框(也就是上述候选框,后续称为候选框)进行过滤,且不同的弱分类器可以具有相同或者不同的过滤策略。所述过滤策略可以包括但不限于:形态学过滤策略,和/或,肤色过滤策略,也就是说,弱分类器可以根据形态学过滤策略对输入的候选框进行过滤处理,或者,采用肤色过滤策略对输入的候选框进行过滤处理。

综上所述,在对输入图像序列1中的输入图像1进行检测,得到包括目标对象的跟踪框时,若mtcnn依次包括pnet、第一本地nms、rnet、弱分类器、第二本地nms,则实现流程可以包括:输入图像1经过预处理后,将预处理后的输入图像1输出给pnet,在pnet中对输入图像进行处理,得到第一类候选框。通过第一本地nms方法对第一类候选框进行处理,得到第二类候选框,该第二类候选框包括第一类候选框中的部分候选框。将第二类候选框输出给rnet,在rnet中对第二类候选框进行处理后,得到第三类候选框。

然后,将第三类候选框输出给弱分类器,针对第三类候选框中的每个候选框,弱分类器可以检测该候选框是否符合过滤策略;如果不符合过滤策略,则可以将该候选框作为第四类候选框,如果符合过滤策略,则可以过滤该候选框。这样,可以将所有不符合过滤策略的候选框作为第四类候选框,然后将第四类候选框输出给mtcnn的下一级网络,即输出给第二本地nms。

然后,通过第二本地nms方法对第四类候选框进行处理,得到第五类候选框,该第五类候选框包括第四类候选框中的部分候选框。该第五类候选框不再输出给onet,第五类候选框中的每个候选框就是包括目标对象的跟踪框。

在上述过程中,在将输入图像1输出给pnet之前,还可以对输入图像1进行预处理,得到预处理后的输入图像1,并将预处理后的输入图像1输出给pnet。其中,预处理可以包括但不限于压缩感知处理和/或肤色检测处理。而且,通过对输入图像1进行预处理,可以从输入图像1中筛选出可能存在人脸的区域,并将可能存在人脸的区域作为预处理后的输入图像1输出给pnet。

在上述过程中,是将3个级联网络(如pnet、rnet和onet)简化为2个级联网络(如pnet和rnet),从而简化mtcnn的复杂度,然后,通过弱分类器保证精简后的mtcnn仍然保持较好的检出率和准确率,即通过弱分类器对候选框进行形态学滤波和/或肤色滤波,以剔除明显不是人脸的候选框。

参见图2所示,为精简后mtcnn的示意图,针对rnet的输出结果,在弱分类器中进行了形态学滤波和肤色滤波(如基于哈尔特征的肤色滤波)。

在上述过程中,在采用mtcnn对输入图像序列1中的输入图像1进行检测,得到包括目标对象的跟踪框时,可以利用时域信息预测目标对象的参考区域(即预测下一次检测时的人脸可能区域),对此预测方式不做限制。然后,在采用mtcnn对输入图像序列2中的输入图像11进行检测,得到包括目标对象的跟踪框时,可以对输入图像11中的参考区域进行检测,得到包括目标对象的跟踪框。也就是说,输入给mtcnn的是输入图像11的参考区域,而不是输入图像11,从而减少输入给mtcnn的图像内容,提高处理速度。

在一个例子中,在采用mtcnn对输入图像序列1中的输入图像1进行检测,得到包括目标对象的跟踪框时,还可以对所有数据进行定点化的处理,即将输入图像和网络参数(即mtcnn中的参数)转换为定点数据,如通过浮点转定点操作(对此操作方式不做限制),将输入图像和网络参数转换为定点数据。或者,重新训练一个定点mtcnn网络,而mtcnn网络中的输入图像和网络参数均为定点数据。这样,就可以通过mtcnn对定点数据进行处理;在这种方式中,所有数据均为定点数据,不需要进行定点数据的转换。

实施例3:

针对步骤103,可以基于跟踪算法,根据目标对象的跟踪框在一帧输入图像后面的多帧输入图像中对目标对象进行跟踪。例如,步骤101中,先采集输入图像序列1,输入图像序列1包括输入图像1-输入图像10,然后采集输入图像序列2,输入图像序列2包括输入图像11-输入图像20,以此类推,每个输入图像序列均包括10帧输入图像,且每帧输入图像均可以包括目标对象。

在步骤102中,若得到输入图像1中的目标对象的跟踪框,则步骤103中,可以基于跟踪算法,根据输入图像1中的该目标对象的跟踪框,在输入图像序列1中的输入图像2-输入图像10中,对目标对象进行跟踪。

在步骤102中,若得到输入图像11中的目标对象的跟踪框,则步骤103中,可以基于跟踪算法,根据输入图像11中的该目标对象的跟踪框,在输入图像序列2中的输入图像12-输入图像20中对目标对象进行跟踪,以此类推。

为了实现目标对象的跟踪,本实施例中,可以采用stc(时空上下文视觉跟踪)跟踪算法,对目标对象进行跟踪。具体的,可以获取基于上一帧输入图像得到的目标对象的跟踪框(即步骤102得到的跟踪框)与该目标对象的空间上下文模型,该空间上下文模型用于指示在所述上一帧输入图像中目标对象与周围图像区域的空间相关性;然后,可以基于该空间上下文模型,在当前帧输入图像中对应跟踪框的位置处以及周围区域中确定该目标对象。

其中,stc跟踪算法是一个基于时空上下文的目标跟踪算法,可以通过贝叶斯框架对需要跟踪的目标和该目标的局部上下文区域的时空关系进行建模,得到目标和其周围区域特征的统计相关性。然后,综合这一时空关系和生物视觉系统上的关注焦点特性,来评估新的一帧图像中目标出现位置的置信图,置信最大的位置就是新的一帧图像中的目标位置。基于此stc跟踪算法,就可以对目标对象进行跟踪,对此目标对象的跟踪方式不做限制。

针对传统的stc跟踪算法,本实施例中,可以对stc跟踪算法的scale(缩放)变换进行精简,以减少stc跟踪算法的复杂度,对此过程不做限制。

在一个例子中,在使用stc跟踪算法对目标对象进行跟踪时,上述空间上下文模型的特征可以包括但不限于以下之一或者任意组合:灰度特征、hog特征、矩特征、sift特征,对此空间上下文模型的特征的类型不做限制。

在一个例子中,在使用stc跟踪算法对目标对象进行跟踪时,还可以通过卡尔曼滤波预测目标对象的参考区域(即预测下一次跟踪时的人脸可能区域),对此预测方式不做限制。然后,在使用stc跟踪算法对下一帧输入图像中的目标对象进行跟踪时,可以对该下一帧输入图像中的参考区域进行跟踪,即使用stc跟踪算法对参考区域的目标对象进行跟踪,不再对输入图像的所有区域进行跟踪,从而辅助stc跟踪算法更新目标对象位置,提高处理速度。

实施例4:

在步骤101中,先采集输入图像序列1,输入图像序列1包括输入图像1-输入图像10,然后采集输入图像序列2,输入图像序列2包括输入图像11-输入图像20,以此类推,每个输入图像序列均可以包括10帧输入图像。

在步骤102中,在得到输入图像序列1后,可以基于检测算法,对输入图像序列1中的输入图像1进行检测,得到包括目标对象的跟踪框a,但不对输入图像2-输入图像10进行检测。然后,在得到输入图像序列2后,可以基于检测算法,对输入图像序列2中的输入图像11进行检测,得到包括目标对象的跟踪框b,但不对输入图像12-输入图像20进行检测,以此类推。

在步骤103的一个实现方式中,可以基于跟踪算法,根据跟踪框a在输入图像2-输入图像10中对目标对象进行跟踪。然后,可以基于跟踪算法,根据跟踪框b在输入图像12-输入图像20中对目标对象进行跟踪,以此类推。

在这个实现方式中,为了对目标对象进行跟踪,是直接使用检测算法的检测结果(即跟踪框b),而不再考虑之前的跟踪结果,即在输入图像12-输入图像20中对目标对象进行跟踪时,不会考虑输入图像2-输入图像10的跟踪结果,而是直接根据跟踪框b在输入图像12-输入图像20中对目标对象进行跟踪,即目标对象的跟踪过程与输入图像2-输入图像10的跟踪结果无关。

在步骤103的另一个实现方式中,可以基于跟踪算法,根据跟踪框a在输入图像2-输入图像10中对目标对象进行跟踪。然后,可以继续对目标对象进行跟踪,而不会停止跟踪过程,也就是说,可以对每帧输入图像均进行跟踪,如继续在输入图像11-输入图像20中对目标对象进行跟踪,以此类推。

在对输入图像11进行检测,得到跟踪框b后,假设当前正在输入图像12中对目标对象进行跟踪,并得到跟踪框c,则将跟踪框b与跟踪框c进行融合,得到一个准确的跟踪框x(该跟踪框x可以为跟踪框b或者跟踪框c),然后,可以基于跟踪算法,根据跟踪框x在输入图像13-输入图像20中对目标对象进行跟踪,以此类推,在每次基于检测算法得到跟踪框后,就可以将检测算法得到的跟踪框与跟踪算法得到的跟踪框进行融合,得到准确的跟踪框,并基于跟踪算法,根据该跟踪框在输入图像中对目标对象进行跟踪。

在这个实现方式中,为了对目标对象进行跟踪,可以考虑检测算法的检测结果(如跟踪框b)和跟踪算法的跟踪结果(如跟踪框c),即在输入图像12-输入图像20中对目标对象进行跟踪时,可以考虑输入图像的跟踪结果,即将跟踪框b和跟踪框c进行融合,并根据融合结果在输入图像中对目标对象进行跟踪,也就是说,目标对象的跟踪过程与输入图像的跟踪结果有关。

以下结合具体实施例,对上述第二种实现方式进行说明。具体的,本实施例中,可以利用第一输入图像中的第一跟踪框(基于检测算法在第一输入图像中得到的跟踪框,如上述跟踪框b)和第二输入图像中的第二跟踪框(基于跟踪算法在第二输入图像中得到的跟踪框,如上述跟踪框c)确定目标对象的目标跟踪框;然后,可以基于跟踪算法,根据该目标跟踪框对目标对象进行跟踪,也就是说,基于该目标跟踪框执行步骤103,对此不再赘述。

在一个例子中,利用第一输入图像中的第一跟踪框和第二输入图像中的第二跟踪框确定目标对象的目标跟踪框,可以包括但不限于:计算该第一跟踪框与该第二跟踪框的重合程度(即交集并集比iou,如第一跟踪框与第二跟踪框的交集,除以第一跟踪框与第二跟踪框的并集);若该重合程度大于或者等于预设阈值,则可以将该第二跟踪框确定为该目标跟踪框;或者,若该重合程度小于所述预设阈值,则可以将该第一跟踪框确定为该目标跟踪框。

其中,当第一跟踪框与第二跟踪框的重合程度大于或者等于预设阈值时,则说明跟踪算法的跟踪结果没有偏移,维持当前的跟踪目标不变,即将第二跟踪框确定为目标跟踪框,继续根据第二跟踪框进行跟踪;当第一跟踪框与第二跟踪框的重合程度小于预设阈值时,则说明跟踪算法的跟踪结果发生偏移,或者新增人脸,因此消除当前的跟踪目标,或者更新跟踪目标为新增人脸,即将第一跟踪框确定为目标跟踪框,重新根据第一跟踪框进行跟踪。

实施例5:

在上述实施例中,检测算法和跟踪算法还可以通过不同的线程实现,例如,可以通过第一线程实现检测算法,并通过第二线程实现跟踪算法。

例如,在得到输入图像序列1后,第一线程可以基于检测算法,对输入图像序列1中的输入图像1进行检测,得到包括目标对象的跟踪框a,且第一线程停止对输入图像序列1中的输入图像2-输入图像10进行检测。

在得到输入图像序列2后,第一线程可以基于检测算法,对输入图像序列2中的输入图像11进行检测,得到包括目标对象的跟踪框b,且第一线程停止对输入图像序列2中的输入图像12-输入图像20进行检测,以此类推。

进一步的,第一线程对输入图像序列1中的输入图像1进行检测,得到包括目标对象的跟踪框a后,第一线程可以向第二线程输出目标对象的跟踪框a,使得第二线程根据目标对象的跟踪框a在输入图像中对目标对象进行跟踪。第一线程对输入图像序列2中的输入图像12进行检测,得到包括目标对象的跟踪框b后,第一线程可以向第二线程输出目标对象的跟踪框b,使得第二线程根据目标对象的跟踪框b在输入图像中对目标对象进行跟踪。

第一线程在得到包括目标对象的跟踪框a后,还可以触发启动第二线程;在第二线程启动后,第二线程可以根据目标对象的跟踪框a在输入图像2-输入图像10中对目标对象进行跟踪。然后,第二线程可以根据目标对象的跟踪框b在输入图像12-输入图像20中对目标对象进行跟踪,以此类推。

参见图3a和图3b所示,为检测算法和跟踪算法的状态机及同步机制示意图,检测算法和跟踪算法置于不同线程中,维护自身的状态机以实现状态切换,并通过共享内存实现状态同步。检测算法用于从当前输入图像中定位人脸的方框坐标(即上述跟踪框),跟踪算法负责跟踪已检测出来的人脸方框。

其中,在检测算法开启、且当前输入图像是输入图像序列中的第一帧输入图像时,则可以通过第一线程将第一状态机(即检测算法的状态机)设置为启动状态;在第一状态机为启动状态时,则可以通过第一线程对输入图像进行检测。此外,在检测算法开启、且当前输入图像不是输入图像序列中的第一帧输入图像时,则可以通过第一线程将第一状态机设置为空闲状态;在第一状态机为空闲状态时,则可以停止通过第一线程对输入图像进行检测。此外,在检测算法关闭时,则通过第一线程将第一状态机设置为关闭状态;在第一状态机为关闭状态时,则可以停止通过第一线程对输入图像进行检测。

进一步的,在跟踪算法开启时,则可以通过第二线程将第二状态机(即跟踪算法的状态机)设置为启动状态;在所述第二状态机为启动状态时,则可以通过第二线程对输入图像进行跟踪。此外,在跟踪算法关闭时,则可以通过第二线程将所述第二状态机设置为关闭状态;在所述第二状态机为关闭状态时,则可以停止通过第二线程对输入图像进行跟踪。

基于上述各实施例,本发明实施例中,可以提高人脸检测的准确性和可靠性,降低网络复杂度和计算量,达到实时检测效果,实现多人脸检测,可以减少读写开销和cpu开,不需要频繁调用检测算法,从而降低网络调用频次,解决了功耗过高的问题,避免完全依赖检测算法时的实时性低问题。

上述方式是检测算法和跟踪算法融合的多人脸快速检测方式,可以达到实时的多人脸检测效果,能够快速进行人脸检测,达到数百帧/秒的检测速度。

在上述方式中,采用mtcnn检测算法对人脸进行检测,可以提高人脸检测的准确性和鲁棒性,并降低网络复杂度和计算量,减少读写开销和cpu开销,降低网络调用频次,降低功耗。而且,可以对网络参数和运算过程进行定点化的转换,并保证定点化网络精度。通过对mtcnn检测算法进行精简,定点化处理和优化,使得网络复杂度降低,计算量减小,网络运算全部转换为定点运算,并保留较好的精度,从而可以在嵌入式设备上运行。

在上述方式中,引入了内存和cpu开销小的stc跟踪算法,并与检测算法相融合,使stc跟踪算法执行大部分人脸检测,从而解决完全依赖检测算法导致的实时性低问题,由于不需要频繁调用检测算法,从而解决了功耗过高的问题。由于加入stc跟踪算法,检测算法只是起到修正作用,不用频繁调用,所以嵌入式设备上的功耗得到控制。由于融合了stc跟踪算法的跟踪结果和检测算法的检测结果,因此,stc跟踪算法的漂移问题得到了控制。

实施例6:

基于与上述方法同样的构思,参见图4所示,本发明实施例中还提供一种跟踪控制设备40,包括存储器41和处理器42(如一个或多个处理器)。

在一个例子中,所述存储器,用于存储程序代码;所述处理器,用于调用所述程序代码,当程序代码被执行时,用于执行以下操作:获取输入图像序列;基于检测算法,对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框;基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪。

所述处理器通过第一线程实现所述检测算法;

所述处理器通过第二线程实现所述跟踪算法。

所述处理器根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪时具体用于:通过所述第一线程向所述第二线程输出所述目标对象的跟踪框;通过所述第二线程根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对目标对象进行跟踪。

在一个例子中,所述处理器对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框之后还用于:通过第一线程停止对所述一帧输入图像后面的多帧输入图像进行检测。

在一个例子中,所述处理器根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪时具体用于:

在通过所述第一线程得到包括所述目标对象的跟踪框后,启动所述第二线程;在所述第二线程启动后,通过所述第二线程根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪。

所述处理器还用于:在检测算法开启、且当前输入图像是所述输入图像序列中的第一帧输入图像时,通过第一线程将所述第一状态机设置为启动状态;在第一状态机为启动状态时,通过所述第一线程对输入图像进行检测;

在检测算法开启、且当前输入图像不是所述输入图像序列中的第一帧输入图像时,通过第一线程将所述第一状态机设置为空闲状态;在第一状态机为空闲状态时,停止通过所述第一线程对输入图像进行检测;

在检测算法关闭时,通过第一线程将第一状态机设置为关闭状态;在第一状态机为关闭状态时,停止通过所述第一线程对输入图像进行检测。

所述处理器还用于:在跟踪算法开启时,通过第二线程将第二状态机设置为启动状态;在第二状态机为启动状态时,通过所述第二线程对输入图像进行跟踪;在跟踪算法关闭时,通过第二线程将第二状态机设置为关闭状态;在第二状态机为关闭状态时,停止通过所述第二线程对输入图像进行跟踪。

所述处理器基于检测算法,对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框时具体用于:通过特定cnn检测算法对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框;

其中,所述特定cnn检测算法包括弱分类器。

所述处理器通过特定cnn检测算法对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框时具体用于:针对输入到所述特定cnn检测算法的弱分类器的跟踪框,则通过所述弱分类器检测所述跟踪框是否符合过滤策略;如果否,则将所述跟踪框输出给所述特定cnn检测算法的下一级网络。所述处理器通过所述弱分类器检测所述跟踪框是否符合过滤策略之后还用于:如果符合过滤策略,则过滤所述跟踪框。

所述处理器通过特定cnn检测算法对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框时具体用于:

将输入图像和网络参数转换为定点数据,通过所述特定cnn检测算法利用转换后的定点数据进行处理,得到包括所述目标对象的跟踪框。

在一个例子中,所述特定cnn检测算法通过定点网络实现,所述定点网络中的输入图像和网络参数均为定点数据;

所述处理器通过特定cnn检测算法对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框时具体用于:通过所述特定cnn检测算法利用定点数据进行处理,得到包括所述目标对象的跟踪框。

所述处理器通过特定cnn检测算法对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框之前还用于:对所述输入图像序列中的一帧输入图像进行预处理,得到预处理后的输入图像;通过特定cnn检测算法对预处理后的输入图像进行处理,得到包括所述目标对象的跟踪框。

所述处理器通过特定cnn检测算法对所述输入图像序列中的一帧输入图像进行检测,得到包括目标对象的跟踪框时具体用于:利用时域信息预测目标对象的参考区域;通过特定cnn检测算法对所述输入图像序列中的一帧输入图像中的参考区域进行检测,得到包括目标对象的跟踪框。

所述处理器基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪时具体用于:获取基于上一帧输入图像得到的所述目标对象的跟踪框以及所述目标对象的空间上下文模型,所述空间上下文模型用于指示在所述上一帧输入图像中所述目标对象与周围图像区域的空间相关性;基于所述空间上下文模型,在当前帧输入图像中对应所述跟踪框的位置处以及周围区域中确定所述目标对象。

所述处理器基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪时具体用于:

通过卡尔曼滤波预测目标对象的参考区域;基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中的所述参考区域,对所述目标对象进行跟踪。

所述处理器基于跟踪算法,根据所述目标对象的跟踪框在所述一帧输入图像后面的多帧输入图像中对所述目标对象进行跟踪之后还用于:

利用第一输入图像中的第一跟踪框和第二输入图像中的第二跟踪框确定所述目标对象的目标跟踪框;其中,所述第一跟踪框是基于检测算法在所述第一输入图像中得到的包括目标对象的跟踪框;所述第二跟踪框是基于跟踪算法在所述第二输入图像中对所述目标对象进行跟踪时得到的跟踪框;

基于跟踪算法,根据所述目标跟踪框对所述目标对象进行跟踪。

所述处理器利用第一输入图像中的第一跟踪框和第二输入图像中的第二跟踪框确定所述目标对象的目标跟踪框时具体用于:计算所述第一跟踪框与所述第二跟踪框的重合程度;根据所述重合程度确定所述目标对象的目标跟踪框。所述处理器根据所述重合程度确定所述目标对象的目标跟踪框时具体用于:若所述重合程度大于或者等于预设阈值,则将所述第二跟踪框确定为所述目标对象的目标跟踪框;或者,若所述重合程度小于所述预设阈值,则将所述第一跟踪框确定为所述目标对象的目标跟踪框。

实施例7:基于与上述方法同样的发明构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被执行时,执行上述的跟踪控制方法,参见上述各实施例所示。

上述实施例阐明的系统、装置、模块或单元,可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进,均应包含在本发明的权利要求范围之内。

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