用于有限资源嵌入式视觉系统的增强型人脸检测和人脸跟踪方法和系统与流程

文档序号:16391114发布日期:2018-12-22 11:41阅读:302来源:国知局
用于有限资源嵌入式视觉系统的增强型人脸检测和人脸跟踪方法和系统与流程

本申请一般涉及机器学习和人工智能领域。具体而言,涉及在有限资源嵌入式视觉系统中捕捉的数字图像中实现实时人脸检测、人脸跟踪及重复人脸检测的系统、装置和技术。

背景技术

深度学习(dl)是机器学习和人工神经网络的一个基于一组算法的分支,该算法通过使用具有很多个处理层的人工神经网络来试图建模数据中的高层次抽象。典型的dl结构可包括许多层的神经元和数百万个参数。可以在配备有gpu的高速计算机上用海量数据训练这些参数,并由在深层网络也能适用的新的训练算法来指导,诸如修正线性单元(relu)、漏失(或丢弃)、数据集增强,以及随机梯度下降(sgd)。

在现有的dl结构之中,卷积神经网络(cnn)是最流行的结构之一。虽然cnn背后的思想在20多年前就被发现了,但是,cnn的真正的能力只是在深度学习理论的近期发展之后才被认识到。到目前为止,cnn已经在许多人工智能和机器学习领域,诸如人脸识别、图像分类、图像字幕生成、可视问答以及自动驾驶汽车中取得了巨大成功。

人脸检测(检测和定位每张人脸在图像中的位置)通常是很多人脸识别应用的第一步。当代人脸检测系统通常包括两个主要模块:人脸检测模块以及人脸跟踪模块。人脸检测模块通常利用dl结构(比如cnn)在数字图像中检测人脸。一旦人脸检测模块在视频的图像帧检测到一张新的人脸(即一个新人),人脸跟踪模块就会在该视频的每个后续图像帧中去跟踪该新人,从而寻找/重新识别该新人。对于一些低复杂度的嵌入式系统装置来说,人脸跟踪模块的功能可以基于如卡尔曼滤波器与匈牙利算法等简单的跟踪技术而得以实现。

在许多人脸检测装置中,由于每一个人的头/脸有着不同的朝向,即在不同图像中具有不同的姿态,因此有必要执行人脸姿态评估。此外,为了避免重复发送和存储同一个人的人脸图像,需要跟踪每一张人脸的姿态变化从而只发送对应于“最佳姿态”的那张人脸图像,例如每张检测人脸的最接近于正视图的人脸(具有最小的旋转角度)。可以采用多种技术估计一个人的头/脸的姿态。其中一项技术首先估计一些人脸关键点的位置,比如眼睛、鼻子、嘴巴,然后再基于这一些人脸关键点的位置来估计人脸的姿态。另外一项技术采用三个欧拉角(俯仰角、偏航角以及翻转角)来展现头部姿态,通过这三个角度来直接估计人脸/头的姿态。因此,当被人脸跟踪模块丢失该被跟踪的人/脸的时候,则对应的被跟踪的人脸就会消失。然后,传送并存储具有最佳姿态的人脸图像,以备将来使用。通过采用基于cnn的dl结构,可以联合执行人脸检测和人脸姿态评估。

很多人脸检测技术可以容易地检测近距离的正向人脸。然而,在无约束情形下,实现稳健并快速的人脸检测依然是非常困难的。这是因为,这些情形通常与人脸的大量变化相关,这些变化包括姿态变化、遮挡、夸张的表情以及极端的光照变化。可以处理这些无约束情形下的有效的基于cnn的人脸检测技术包括:(1)在“用于人脸检测的卷积神经网络级联”(aconvolutionalneuralnetworkcascadeforfacedetection)(李等人,ieee计算机视觉和模式识别会议学报(proc.ieeeconf.oncomputervisionandpatternrecognition),2015年6月1日)中描述的级联卷积神经网络(cnn)结构(下文称之为“级联cnn”或者“级联cnn结构”);以及(2)在“利用多任务级联卷积网络的联合人脸检测和对齐”(jointfacedetectionandalignmentusingmultitaskcascadedconvolutionalnetworks)(张等人;ieee信号处理学报(ieeesignalprocessingletters),2016年10月第10期第23卷第1499-1503页)中描述的多任务级联cnn结构(下文称之为“mtcnn”或者“mtcnn架构”)。

然而,由于mtcnn结构的高度复杂性以及嵌入式系统通常计算资源受限的问题,在嵌入式系统中实现基于mtcnn的人脸检测获得满意的实时检测结果依然存在诸多挑战。此外,嵌入式系统使用的简单人脸跟踪技术经常会导致许多近似重复人脸被跟踪并传送,由此导致浪费计算资源和网络带宽的问题。



技术实现要素:

本申请描述的多个实施例提供了嵌入式视觉系统内的实时人脸检测、人脸跟踪和人脸姿态选择子系统的多个示例。一方面,本申请公开了识别近似重复人脸图像以及在该系统内有选择地传送最佳姿态人脸图像到服务器的过程。该过程包括了以下步骤:当确定被跟踪人脸已经消失时确定该被跟踪人脸的最佳姿态人脸图像;从最佳姿态人脸图像中提取图像特征;计算提取图像特征与特征缓冲器内的一组存储图像特征中的每个存储图像特征之间的一组相似度值,其中该组存储图像特征是从之前传送的一组最佳姿态人脸图像中提取出来的;确定这该相似度值中是否有相似度值高于预先设定的阈值;假若没有相似度值高于该预先设定的阈值,则将该最佳人脸图像传送到服务器并将提取出的图像特征存储至该特征缓冲器。

在一些实施例中,当该被跟踪人脸在预先确定的一定数量的图像帧中被物体遮挡,则判定该被跟踪人脸已经消失。

在一些实施例中,该图像特征由以下的一项或几项组成:方向梯度直方图(hog)特征、harr型特征、尺度不变特征转换(sift)、基于深度学习的人脸特征。

在一些实施例中,该组存储图像特征和提取出来的图像特征属于同一类型。

在一些实施例中,计算提取图像特征与特征缓冲器内的一组存储图像特征中的一个存储图像特征之间的相似度值的方式为:计算该提取图像特征和该存储图像特征之间的的余弦相似度。

在一些实施例中,如果图像特征是基于深度学习(dl)的人脸特征,则提取图像特征与该组存储图像特征之间的比较可用来确定该被跟踪人脸是否为同一个人已存储人脸但与该已存储人脸具有不同的姿态的重复人脸。

在一些实施例中,如果计算出的任一相似度值高于预先设定的阈值,则阻止将该最佳姿态人脸图像传送至服务器。

另一方面,公开了一种对使用摄像头捕捉的灰度输入图像进行实时人脸检测的方法。该方法包括以下步骤:接收人脸图像训练数据集;将该人脸图像训练数据集中的彩色图像转化成灰度训练图像;采用转化后的灰度图像训练卷积神经网络(cnn)人脸检测模块;从摄像头中接收灰度输入图像;采用由转化后的灰度图像训练的cnn人脸检测模块对接收到的灰度输入图像执行人脸检测操作。

在一些实施例中,人脸图像训练数据集是主要由彩色图像所组成的大规模公共训练数据集。

在一些实施例中,灰度输入图像是在单色光或者灰度照明条件下捕捉的。

在一些实施例中,灰度照明条件包括led灯光照明。

在一些实施例中,摄像头只捕捉灰度图像。

在一些实施例中,cnn人脸检测模块包括多任务级联cnn(mtcnn)。

在另外一方面,公开了一种识别近似重复人脸图像并有选择地传送最佳姿态人脸图像到服务器的嵌入式系统。该嵌入式系统包括:处理器;与该处理器连接的存储器。该存储器存储指令,当处理器执行该指令时,该系统执行如下:当确定被跟踪人脸已经消失时确定该被跟踪人脸的最佳姿态人脸图像;从最佳姿态人脸图像中提取图像特征;计算提取图像特征与特征缓冲器内的一组存储图像特征中的每个存储图像特征之间的一组相似度值,其中该组存储图像特征是从之前传送的一组最佳姿态人脸图像中提取出来的;确定这该相似度值中是否有相似度值高于预先设定的阈值;假若没有相似度值高于该预先设定的阈值,则将该最佳人脸图像传送到服务器并将提取出的图像特征存储至该特征缓冲器。

在一些实施例中,该嵌入式系统为监控摄像头系统、机器视觉系统、无人机系统、机器人系统、自动驾驶汽车或者移动装置中的一项。

附图说明

通过阅读下文详细描述和各个附图,可以理解本申请的结构和操作,在附图中,相同的附图标记表示相同的部件,其中:

图1所示为根据本申请一些实施例中包括实时人脸检测、人脸跟踪和人脸姿态评估的示例性嵌入式视觉系统;

图2所示为根据本申请一些实施例中的位于图1所示嵌入式视觉系统内的人脸检测和跟踪子系统的示例性实施方式的框图;

图3所示为根据本申请一些实施例中的嵌入式视觉系统内的实时人脸检测人脸姿态评估和人脸跟踪的示例性过程的流程图;

图4所示为根据本申请一些实施例中的用于检测一被跟踪的人是否已从视频中消失的流程图;

图5所示为根据本申请一些实施例中的已获取视频帧序列和该已处理视频帧的对应子集;

图6所示为根据本申请一些实施例中的基于已处理视频帧执行未处理视频帧的人脸检测和跟踪的示例性过程的流程图;

图7所示为根据本申请一些实施例中的位于图1所示嵌入式视觉系统内的人脸检测和跟踪子系统的示例性实施方式的框图;

图8所示为根据本申请一些实施例中用于提高处理灰度输入图像的人脸检测性能的示例性过程的流程图;

图9所示为根据本申请一些实施例中的用于识别近似重复人脸和有选择地将最佳姿态人脸传送至服务器的示例性过程的流程图;

图10所示为根据本申请一些实施例中的为实现嵌入式视觉系统的客户端-服务器网络环境。

具体实施方式

下文的详细描述旨在作为主题技术的各种配置的描述,并不旨在表示可以实施主题技术的唯一配置。附图包含在本文中,并构成详细描述的一部分。详细描述包括用于旨在全面理解主题技术的具体细节。然而,主题技术不仅限于本文所阐述的具体细节,没有这些具体细节也有可能实施。在某些情况下,结构和组件以框图的形式示出,以避免使主题技术的概念变得模糊。

除非上下文有其他明确说明,说明书通篇采用的下列术语均以此处定义为准。术语“头部姿态”、“人脸姿态”和“姿态”可以互相置换,均表示人的头部在图像中的具体方位。“被跟踪的人”、“已跟踪的人”和“人脸跟踪者”可置换,均表示由本申请公开的人脸检测和人脸跟踪视频系统中的数字视频图像被检测到并跟踪的人。

嵌入式视频系统

图1示出了示例性嵌入式视觉系统,根据本文所描述的一些实施例,该嵌入式视觉系统可以实现实时人脸检测、人脸姿态评估和人脸跟踪功能。嵌入式视觉系统100可整合或实现为监控摄像头系统、机器视觉系统、无人机系统、机器人系统、自动驾驶汽车系统或者移动装置。在图1中可以看出,嵌入式视觉系统100可包括总线102、处理器104、存储器106、存储装置108、摄像头子系统110、人脸检测和跟踪子系统112、输出装置接口120,以及网络接口122。在一些实施例中,嵌入式视觉系统100为低成本嵌入式系统。

总线102集中表示可连接嵌入式视觉系统100的各种组件的所有系统、外围装置以及芯片组总线。例如,总线102可将处理器104与存储器106、存储装置108、摄像头系统110、人脸检测和跟踪系统112、输出装置接口120,以及网络接口122通信连接。

处理器104从存储器106取回指令予以执行并取回数据予以处理,以便控制嵌入式视觉系统100的各种组件。处理器104可以包括任何类型的处理器,包括但不仅限于微处理器、大规模计算机、数字信号处理器(dsp)、个人备忘记事簿、装置控制器和电器内的计算引擎,以及现在已知或以后开发的任何其他处理器。进一步地,处理器104可包括一个或多个核。处理器104本身可包括存储代码以及数据供处理器104执行的高速缓存。

存储器106可包括任何类型的可以存储代码以及数据以供处理器104执行的存储器。这包括但不仅限于动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、只读存储器(rom),以及现在已知或以后开发的任何其他类型的存储器。

存储装置108可包括任何类型的可以与嵌入式视觉系统100集成的非易失性存储器装置。这包括但不限于磁性、光学,以及磁光存储装置,以及基于闪存和/或带蓄电池后备电源的存储器的存储装置。

总线102还连接到摄像头子系统110。摄像头子系统110被配置成以预定的分辨率采集静止图像和/或视频图像,并通过总线102,将采集到的图像或视频数据传送到嵌入式视觉系统100内的各种组件,诸如连接到存储器106供缓冲,并连接到人脸检测和跟踪子系统112以进行人脸检测、人脸姿态评估、人脸跟踪以及最佳姿态选择。摄像头子系统110可以包括一个或多个数字摄像头。在一些实施例中,摄像头子系统110包括一个或多个配备有广角镜头的数字摄像头。由摄像头子系统110采集到的图像或视频可以具有不同的分辨率,包括高分辨率,诸如1280×720p,1920×1080p或其他高分辨率。

人脸检测和跟踪子系统112还包括人脸跟踪模块114、人脸检测和人脸姿态评估联合模块116和最佳姿态选择模块118。在一些实施例中,人脸检测和跟踪子系统112用于接收捕捉的视频图像,如通过总线102捕捉的高分辨率视频图像,并利用人脸检测和人脸姿态评估联合模块116在接收到的视频图像中执行基于cnn的人脸检测和人脸姿态评估操作,从而在每个视频图像内检测人脸,并对每一个检测人脸生成人脸姿态评估;人脸检测和跟踪子系统112进一步被配置并使用人脸跟踪模块114在一序列视频图像中跟踪每一个检测的人脸,并在被跟踪的人脸从视频中消失的时候利用最佳姿态选择模块118确定每个被跟踪人脸的最佳姿态。人脸检测和人脸姿态评估联合模块116可在一个或多个硬件cnn模块内实现。一般来说,人脸检测和跟踪子系统112被配置成在同时跟踪多个人。理想状态下,人脸检测和跟踪子系统112应该能够同时跟踪尽可能多的人。在一些实施例中,人脸检测和人脸姿态评估联合模块116可以使用由粗至细的多级mtcnn结构。如果嵌入式视觉系统100为低成本嵌入式系统,则人脸检测和人脸姿态评估联合模块116可以在一个或多个低成本硬件cnn模块内实现,例如,海思半导体hi3519片上系统(soc)内的内嵌cnn模块。

输出装置接口120也连接到总线102,所述输出装置接口120例如可以显示由人脸检测和跟踪子系统112所生成的结果。与输出装置接口120一起使用的输出装置例如包括打印机和显示装置,诸如阴极射线管显示器(crt)、发光二极管显示器(led)、液晶显示器(lcd),有机发光二极管显示器(oled)、等离子体显示器,或电子纸。

最后,如图1所示,总线102还通过网络接口122将嵌入式视觉系统100连接到网络(未示出)。如此,嵌入式视觉系统100可以是网络(诸如局域网(“lan”)、广域网(“wan”),或内联网,或网络的网络,诸如因特网)的一部分。在一些实施例中,人脸检测和跟踪子系统112将一特定人的多个检测的人脸中具有最佳姿态的检测人脸通过网络接口122和网络传送至控制中心或者主服务器。嵌入式视觉系统100的任何或所有组件都可以与本公开主题结合使用。

人脸检测和跟踪结构

图2示出了根据本申请描述的一些实施例中的嵌入式视觉系统100内的人脸检测和跟踪子系统112的示例性实施方式200的框图。如图2所示,人脸检测和跟踪子系统200从已捕捉视频中接收一序列视频图像202,将该序列视频图像作为输入,并为该视频202中每个独立的检测人脸/人生成最佳姿态人脸图像220,并将该最佳姿态人脸图像220作为输出。需要说明,该人脸检测和跟踪子系统200至少包括运动检测模块204、人检检测模块206、人脸姿态评估模块208、最佳姿态选择模块210以及人脸跟踪模块212。如上文所提到的,人脸检测和跟踪子系统200被配置成在在捕捉视频202中可同时跟踪多个人。理想状态下,人脸检测和跟踪子系统200能够同时跟踪尽可能多的人。人脸检测和跟踪子系统200还可以包括图2中未示出的其他模块。下面将对该人脸检测和跟踪子系统200的每个部分进行更加详细的描述。

运动检测

从图中可以看出,首先,运动检测模块204接收已捕捉视频的给定视频图像202。在一些实施例中,假定视频图像202中捕捉的人脸是运动相关的,该运动从一个人开始进入摄像头视野开始,一直到该人离开该摄像头的视野或者被其他人或物体所遮挡为止。因此,为了降低人脸检测和跟踪子系统200的计算复杂度,该运动检测模块204可以预处理每个视频帧,从而定位和识别在每个视频帧内与运动相关的那些区域,即移动区域。通过这种方式,人脸检测模块206只需要对那些检测到的移动区域进行操作,从而检测人脸图像;与之相对,忽略该视频图像内与运动不相关的剩余区域(换言之,该人脸检测和跟踪子系统200不再进一步处理该剩余区域),从而整体提高了系统效率和图像处理速度。然而,也存在这样一种情形,即人进入视频范围内,然后停止移动。在这种情形下,起始移动的人脸变成了静止的人脸。下文我们将提供一些可以检测和处理此类静止人脸的技术。

在一些实施例中,运动检测模块204通过直接计算一序列视频帧中的当前视频图像和先前视频图像之间的差值图像,检测最新接收到的视频图像内的移动区域。在一实施例中,当前视频图像与该视频序列帧中相对于该当前视频图像的紧接的前一个视频图像进行比较。在一些嵌入式系统中,可以利用嵌入式运动检测硬件,如dsp来实现该运动检测模块204。例如,当采用hi3519片上系统实现人脸检测和跟踪子系统200时,可以利用hi3519soc内的dsp中的内嵌运动检测功能实现该运动检测模块204。该运动检测模块204的输出包括可具有许多不同尺寸的一组已识别移动区域214。需要说明,对于检测的移动人体对象,与该人体对象相关的移动区域包括人脸和人体,并且还可以包括不止一张人脸。因此,每一个已识别移动区域会被发送至后续的人脸检测模块206中,以检测每个检测移动区域内的绝大多数或者所有人脸。

美国专利申请15/789,957(申请日:2017年10月20日;发明名称:基于嵌入式系统小规模卷积神经网络模块的人脸检测和头部姿态角评估)对该运动检测模块204进行了更加详细地说明,其内容以引用形式并入本申请。

人脸检测和人脸姿态评估

对于由运动检测模块204生成的每个检测移动区域214,基于cnn的人脸检测模块206均可用于检测该检测移动区域内的一些或所有人脸。可以采用很多不同的技术实现该人脸检测模块206。例如,可以采用方向梯度直方图(hog)特征比对技术结合支撑矢量机(svm)分类器实现该人脸检测模块206。在一些实施例中,可利用由粗至细多级cnn结构,就是在(张等人在“利用多任务级联卷积网络的联合人脸检测和对齐”,《ieee信号处理学报》,2016年10月第10期第23卷第1499-1503页)期刊中描述的那种结构,而不使用mtcnn结构来实现用于人脸检测的人脸检测模块206。然而,还可以采用其他已知或者未来开发的基于cnn的人脸检测结构和技术实现该人脸检测模块206,均不会超出本申请的保护范围。人脸检测模块206生成一组检测人脸216以及对应的边界框位置。需要说明,人脸跟踪模块210可基于该人脸检测模块206的当前输出,跟踪已处理视频图像中先前检测到的人脸,其中该当前输出与最新处理的视频图像相关联。

当一个人进入视频范围,该人的头/脸可具有不同的方向,即在不同的视频图像中具有不同的姿态。估计每个检测人脸的姿态有利于保持跟踪序列视频帧中每张人脸的姿态变化;当被跟踪的人被认为是丢失并需要被移除的时候,将对应于“最佳姿态”的人脸图像发送到主服务器,用于人脸识别,其中该“最佳姿态”的人脸图像即最接近于每个检测人脸的正视图(具有最小的旋转角度)的人脸图像。人脸检测和跟踪子系统200采用人脸姿态评估模块208估计由人脸检测模块206输出的每个检测人脸的姿态,并生成人脸姿态评估218。最佳姿态选择模块201利用该人脸最佳姿态评估模块208的输出,当人们在一序列视频帧中移动的情况下更新每个被跟踪的人的最佳姿态。

在一技术中,基于一些人脸关键点的位置,通过计算这些人脸关键点与正视图中对应关键点的距离确定该人脸关键点的位置,并基于该位置估计人脸姿态,该人脸关键点例如为眼、鼻、嘴。另一技术利用三个欧拉角表示该头部姿态,该欧拉角为俯仰角、偏航角以及翻转角,并利用这三个欧拉角直接估计该姿态。该基于角度的姿态评估方法通常比该基于关键点的方法具有更低的复杂度,这是由于基于角度的方法仅需要三个值,而基于关键点的方法在其估计过程中通常需要不止三个关键点坐标。此外,该基于角度的姿态评估方法还可以通过采用该三个姿态角的绝对值的和来执行简单的最佳姿态评估。

上述两种人脸姿态评估技术均可利用传统方法,而不采用深度神经网络实现;或者利用如cnn的深度神经网络实现。当由cnn实现时,可以将人脸检测模块206和人脸姿态评估模块208作为单个神经网络联合实现。美国专利申请15/789,957(申请日2017年10月20日,发明名称:基于嵌入式系统小规模卷积神经网络模块的人脸检测和头部姿态角估计)描述了该基于cnn的联合人脸检测和头部姿态角估计系统和技术,该申请的内容以引用形式被并入本申请。

在人脸检测和跟踪子系统200中,人脸姿态评估模块208后接最佳姿态选择模块210,该最佳姿态选择模块210用于在一序列视频帧中被跟踪的人的一序列检测人脸相关的一序列姿态评估中确定每个被跟踪的人的“最佳姿态”,并更新该“最佳姿态”。在一些实施例中,该“最佳姿态”被定义为最接近于正视图的人脸姿态(换言之,具有最小的整体头部旋转角度)。从图2中可以看出,该最佳姿态选择模块210可与人脸跟踪模块212连接,以接收人脸跟踪信息。由于人脸姿态评估模块208连续估计该人的姿态,并且最佳姿态选择模块210不断地更新该人的最佳姿态,因此,最佳姿态选择模块212可以保持跟踪每个被跟踪的人。在一些实施例中,当人脸跟踪模块212确定一个被跟踪的人已经从视频中消失(即是,被跟踪的人确定要从视频中消失),最佳姿态选择模块210会将对应于该被跟踪的人的当前最佳姿态对应的检测人脸图像(即最佳姿态人脸图像220)传送到控制中心或者主服务器,用于人脸识别任务。

人脸跟踪模块212可实现用于确定一个被跟踪的人是否已经从该视频中消失的多项技术。例如,一项技术保持跟踪每个人的最新计算的人脸边界框。假定不存在极端移动的情况下,该被跟踪的人的最近计算的边界框与该被跟踪的人的紧接之前的边界框之间应该具有一定程度的重叠。因此,当人脸跟踪模块212确定该被跟踪的人的最近计算的边界框与该被跟踪的人的紧接之前的边界框之间不具有重叠时,该人脸跟踪模块212确定该被跟踪的人已经从该视频中消失。在另一项技术中,该人脸跟踪模块212可以保持跟踪所有检测人脸的给定标注(即一组唯一的标注与对应的检测人脸之间的关联)。接下来,如果在先前分配给先前处理的视频图像中的一个被跟踪的人的给定标注未被分配给当前处理视频图像中的任何检测人脸,则可以认为与该给定标注相关联的被跟踪的人已经从视频中消失。

在一些场景中,在视频中逗留很久的人会导致该人的最佳姿态迟迟无法被传送至该控制中心或者主服务器。为了解决这一问题,一些实施例提供了一种早期姿态提交技术。在一具体实施例中,该早期姿态提交技术在处理一序列视频图像期间,如果被跟踪的人的估计人脸姿态在其中一个视频帧中已经足够好(例如,当与阈值相比该人脸姿态已经足够好),则可以将对应于该“足够好的人脸姿态”的检测人脸图像立即传送至服务器,而不需要等待该被跟踪的人离开该视频的视野。更具体地,如果该神经网络在检测人脸图像的同时也生成了人脸关键点,则该被确定的关键点相对于全正面人脸姿态相关的基准人脸关键点的距离可以与阈值距离进行比较。或者,如果该神经网络检测人脸图像的同时也生成了三个姿态角,则这些估计的姿态角的绝对值之和可以与该阈值角进行比较。在这两种情况下,当最近计算的姿态度量值低于对应的阈值的情况下,最近计算的该被跟踪的人的姿态度量值可以被认为是“足够好”,并且该被跟踪的人的对应人脸图像可以被传送至该服务器。在这些实施例中,为了避免同一个人的人脸被重复传送,在确定该被跟踪的人脸已经从视频中消失之后,仅当“足够好”的人脸图像未被提交到控制中心或者服务器时,才将该人的已确定的最佳姿态传送至该控制中心或服务器。

人脸跟踪

在人脸检测和跟踪子系统200中,为了找到每个被跟踪人的最佳姿态,有必要从该人一开始被检测到进入视频起,一直到确定该人已经从视频中消失的整个过程中,跟踪该已捕捉视频中每一帧中该被跟踪的人的位置。

在一些实施例中,将该基于cnn的人脸检测模块206和人脸姿态评估模块208应用于该已捕捉视频202中的每一帧。换言之,该子系统200中的运动检测模块204的输入包括该已捕捉视频202的每一帧。这对于高性能嵌入式视觉系统100或者当该已捕捉视频帧速率非常低的情况下是可行的。在这些实施例中,该人脸检测和跟踪子系统200针对该已捕捉视频202的每一帧,生成一组检测人脸以及对应的边界框坐标。利用来自于该序列视频帧的人脸检测信息,人脸跟踪模块212可以执行单人脸跟踪或者顺序地执行多脸跟踪。例如,已捕捉视频202仅包括单个人,则基于该已处理视频帧的人脸跟踪仅涉及确定该被跟踪人脸何时从该视频中消失。

如果已捕捉视频202包括多个人,则该人脸跟踪模块212需要执行多脸跟踪,同时跟踪该多个人。在一实施例中,起初可以单个视频帧内检测多个人。在另一实施例中,由于多个人在不同的时间点进入该视频,因此可以在多个视频帧中分别检测该多个人。在一些实施例中,在对多个人进行检测和标注之后,该人脸跟踪模块212执行多脸跟踪,从而通过将先前视频帧中的一组标注边界框与最近处理的视频帧中识别的边界框进行匹配,进而跟踪检测到的该多个人。在一实施例中,可以利用匈牙利算法将该先前视频帧中的一组标注边界框与该最近处理的视频帧中识别的边界框进行关联。例如,可以构建先前视频帧中的边界框与最新处理视频帧中边界框之间的相似矩阵,其中每个矩阵元素用于衡量先前视频帧中的给定边界框与最新处理视频帧中边界框之间的匹配分数。可以采用不同的参数计算该匹配分数,其中一种参数为一对边界框之间的交并比。为了将两个连续的视频帧的边界框关联起来,可以采用其他数据关联的技术替代该匈牙利算法,并且生成的用于数据关联的cnn特征也可以采用边界框之外的特征。例如,为了提高人脸关联性能,可以考虑一些低成本人脸特征,例如人脸尺寸、纵横比、lbp、hog、颜色直方图等。

图3显示了根据本申请一些实施例,在嵌入式视觉系统内执行实时人脸检测、人脸姿态评估和人脸跟踪的示例性过程300的流程图。该过程300一开始在已捕捉视频的一序列视频帧中接收视频图像(步骤302)。在一些实施例中,该嵌入式视觉系统包括监控摄像系统、机器视觉系统、自驾车和移动手机。接下来,该过程300在该视频图像上执行人脸检测操作,以在该视频图像中检测一组人脸(步骤304)。在一些实施例中,步骤304包括:采用上文描述的运动检测模块在该视频图像中识别一组移动区域,并针对该组已识别移动区域中的每一个移动区域,应用基于cnn人脸检测技术以检测该移动区域是否包括人脸。在一些实施例中,该原始视频图像内的边界框用来限定每一个检测人脸图像。

接下来,过程300基于该检测人脸确定新人已经进入到该视频内(步骤306)。例如,该过程300可以对紧接的先前视频图像的一组标注检测人脸和当前视频图像中的一组未标注检测人脸执行人脸关联操作。该过程随后将未与先前检测人脸相关联的每个检测人脸确定为新人。接下来,过程300在该已捕捉视频中的后续视频图像中跟踪该新人(步骤308)。例如,过程300可以检测该新人在后续的视频图像中的一序列新位置。对于包含该新人的后续所有新位置的视频图像中,过程300均计算在该新位置,该新人的检测人脸的人脸姿态;并且上传该新人的最佳姿态。

接下来,过程300检测该被跟踪新人是否已经从该视频中消失(步骤310)。图4显示了根据本申请一些实施例,用于检测被跟踪的人是否已经从视频中消失的示例性过程400的流程图。该过程一开始确定该检测的人在当前视频帧中不具有对应的检测人脸(步骤402)。在一些实施例中,步骤402包括:在当前视频帧的预测新位置及其周围未检测到该被跟踪的人。接下来,该过程检测在当前视频帧对应位置处是否具有与该被跟踪的人对应的人脸,其中该对应位置为当前视频帧的前一个视频帧中该被跟踪的人的检测人脸的位置(步骤404)。如果具有,则该过程确定该被跟踪的人未移动并且具有一张静止的人脸(步骤406)。否则,该过程确定该被跟踪的人脸的确已从该视频中消失(步骤408)。

回到图3,如果在步骤310中确定该被跟踪的新人已经从该视频中消失,则过程300随后将该被跟踪的新人对应于已确定最佳姿态的检测人脸图像发送至服务器(步骤312)。需要说明,不需要发送所有的被跟踪人脸,而只需要传送对应于该最佳姿态的人脸图像,这显著降低了对网络带宽和存储空间的要求。否则,如果该被跟踪新人依然在该视频中,则过程300在后续视频图像中继续跟踪该人,并且更新该人的最佳姿态(步骤314)。

上文讨论的假定前提是该基于cnn的人脸检测模块206和人脸姿态评估模块208可应用于该已捕捉视频204的每个视频帧。然而,由于该嵌入式系统的资源和性能限制,在一些实施例中,该嵌入式视觉系统100采用cnn模块处理每个视频帧是不现实的。此外,为了降低计算复杂度并提高实时视频处理速度,该基于cnn的人脸检测模块206和人脸姿态评估模块208不一定要应用到每个视频帧。在一些实施例中,运动检测模块204仅接收该已捕捉视频帧的子集,例如每n个视频帧接收一个视频帧;同样地,基于cnn的人脸检测模块206和人脸姿态评估模块208可仅应用于视频帧的子集。图5显示了根据本申请一些实施例,已捕捉的视频帧序列502及对应的已处理视频帧子集504。在图中所示的实施例中,每4个视频帧中仅1个视频帧用于处理人脸检测和人脸姿态评估(n=4)。因此,每两个被处理视频帧中间的那些视频帧不具有与其相关的跟踪信息。

然而,有必要对该cnn模块未处理的“中间”视频帧执行人脸检测和人脸跟踪。例如,在被跟踪人脸的边界框被连续地显示在监控器的应用中,需要为这些中间帧生成边界框,否则该边界框的显示会一直闪烁。此外,当n很大时,由于多个被跟踪的人会发生非常大量的移动,因此采用该人脸相关技术从一个被处理的视频帧504到下一个被处理的视频帧504中跟踪多个人变得更加困难。在这种情形下,会再需要对这些“中间”视频帧执行人脸跟踪。

在一些实施例中,人脸跟踪模块212可用于定位和标注该中间视频帧内的被跟踪人脸,而无需应用人脸检测模块206。在一些实施例中,人脸跟踪模块212用于基于该被跟踪人脸在该已处理帧(例如帧1)的确定位置,确定在紧跟该已处理帧504(例如帧1)之后的未处理视频帧(例如帧2)内的每个被跟踪人脸的位置。例如,图6显示了根据本申请一些实施例,基于已处理视频帧执行未处理视频帧的人脸检测和跟踪的示例性过程600的流程图。在一些实施例中,示例性过程600在人脸跟踪模块212上实现。

对于已处理视频帧中的每个检测人脸,过程600将该检测人脸的对应边界框定位为参考框,并将该边界框内的检测人脸图像定位为搜索块(步骤602)。接下来,在后续的未处理视频帧中,过程600在该未处理视频帧中以该参考框的同一位置为中心的具有预定义尺寸的搜索窗内进行检测(步骤604)。更具体地,可以在该搜索窗内对多个具有参考框尺寸的多个位置(例如64个不同的位置)进行搜索。在该搜索窗内的每个搜索位置处,将该搜索块与该参考框内的图像块进行比较(步骤606)。因此,过程600在该搜索块和对应图像块最佳匹配的搜索位置处,确定该未处理视频帧中相同的检测人脸(步骤608)。需要说明,只要该未处理视频帧内的搜索窗足够大并且两个连续帧(假定无极限移动)之间中该检测人脸的位置不产生较大的变化,则直接搜索技术足以精确地定位该检测人脸在该未处理视频帧的位置,而无需采用神经网络,无论该检测人脸的移动是线性的或者非线性的。接下来,过程600可以将对应的边界框置入被确定为最佳匹配的搜索位置,从而在该未处理视频帧中确定该检测人脸的新位置(步骤610)。需要说明,在将过程600应用于一给定未处理视频帧(例如图5中的帧2)之后,可以基于最新已处理视频帧(例如帧2)内的检测人脸,对紧接该最新已处理视频帧之后的其他未处理视频帧(例如图5中的帧3-4)重复执行过程600。

在一项实施例中,过程600通过计算该该搜索块和该被比较的图像块之间的相似度分数将该搜索块与该搜索窗内给定搜索位置处的图像块进行比较。在一些实施例中,该搜索块与该图像块之间的相似度可以简单计算为该搜索块和该图像块之间的差值。

在一些实施例中,为了加快上文描述的搜索过程,人脸跟踪模块212基于采用该已处理视频图像中的参考位置和该检测人脸的预测运动,预测每个检测人脸在未处理视频帧中的新位置。更具体地,对于已处理视频帧(如图5中的帧#5)中的每个检测人脸,人脸跟踪模块212首先预测该检测人脸在该未处理视频帧(例如图5中的帧#6)中的估计位置。在这些实施例中,首先基于该检测人脸在先前已处理视频帧内的多个人脸位置预测该检测人脸的移动(例如轨迹和速度)。例如,在图5所描述的视频序列502中,在帧1和帧5中的检测人脸位置可用于预测帧6-8中该检测人脸的新位置。需要说明,该移动的预测可包括线性预测和非线性的预测。在线性预测中,可以预测该移动的轨迹和速度。对于非线性预测,可以采用卡尔曼滤波器方法。

接下来,对于该已处理视频帧中的每个检测人脸,人脸跟踪模块212采用对应的搜索块在该未处理视频帧中搜索该检测人脸的估计新位置(即该搜索位置)。需要说明,由于该估计位置的精确度提高,因此人脸跟踪模块212不需要在该估计位置附近的很多位置进行搜索。对于以该估计位置为中心的每个搜索位置,将该搜索块与该搜索块内的图像块进行比较。因此,在该搜索块和对应图像块最佳匹配的搜索位置处,确定该未处理视频帧中相同的检测人脸。作为上述过程的变型,人脸跟踪模块212可直接将先前帧中检测人脸的边界框用来估计该未处理视频帧的估计位置,并将该边界框内估计位置处的图像块作为该未处理视频帧内的检测人脸的图像块。

为了进一步降低计算复杂度并加快人脸跟踪过程,可以采用运动检测模块204对降采样/低分辨率版本的该序列帧进行运动检测,这可以通过很多标准人脸检测方案实现。其中一个用于生成降采样版本的输入视频帧并在该图像内执行人脸检测的方法在美国专利申请15/657,109(申请日2017年7月21日,发明名称:采用嵌入式系统中的小规模卷积神经网络模块的人脸检测)中有所描述,其内容以引用形式被并入本申请。

低帧处理率下的人脸跟踪

如上所述,由于多级cnn操作,将人脸检测模块206和人脸姿态评估模块208应用于每个输入视频帧将需要大量的计算。对于以高帧率捕捉图像的嵌入式系统,在已捕捉视频图像中执行实时人脸检测和人脸姿态评估将变得相当困难。当捕捉到新的视频帧时,一些低端嵌入式视频系统如果处理速度不能满足该高输入帧率,就不可以处理输入视频帧。在这些情况下,一些嵌入式系统只能对视频帧的子集执行基于cnn的人脸检测和人脸姿态评估,例如,每n个输入视频帧中选取一个输入视频帧(例如n=4)。因此,未对这些未处理或者“中间”视频帧进行人脸检测和人脸姿态评估。在该系统中,人脸跟踪性能比较差并且被跟踪的人脸容易丢失。

为了解决这一问题,一种方法是利用前两个或多个已处理视频帧中确定的人脸位置预测紧接该两个或多个已处理视频帧中最后一个视频帧之后的未处理帧的人脸位置,从而实现该预测。例如,在图5所描述的示例中,已处理的帧1和5可用于预测帧6-8的人脸位置。在另一实例中,已处理帧1、5和9可用于预测帧10-12的人脸位置。在一些实施例中,用于未处理帧的人脸位置预测可以包括采用线性预测或者是如卡尔曼滤波器方法的更复杂的方案。

另一种解决该低帧处理率问题的方法采用运动估计,在一个或多个后续的未处理视频帧中搜索先前的已处理帧中每个检测人脸的新位置。再次以图5为例,假定将基于cnn的人脸检测模块206和人脸姿态评估模块208应用于帧1和帧5,由于这两个帧之间具有较大的间隔,直接将帧1中的标注与帧5中的检测人脸进行关联是比较困难的。在一些实施例中,上文结合图6描述的搜索和标注过程可以递归应用于帧1直至帧5。更具体地,利用帧1检测并标注的人脸,在帧2中搜索对应的人脸,并且将帧2中重复出现的人脸进行标注。接下来,以帧2中检测并标注的人脸为参考,对帧3中的人脸进行搜索和标注,以此往复。最终,基于来自帧1的初始人脸检测信息,对帧4中的人脸进行搜索和标注。接下来,采用其中一项人脸关联技术,利用帧4中已经标注的人脸对帧5中先前检测人脸进行标注。

在一特定的例子中,该基于cnn的人脸检测模块206和人脸姿态评估模块208可以每隔一个的方式应用于视频帧中,例如帧1、帧3、帧5、帧7等(即,n=2)。可利用其中一项人脸关联技术对该cnn处理过的帧进行标注,该人脸关联技术例如为上文提到的交并比(iou)技术。接下来,对于每一个未被处理的中间视频帧(例如帧2),可以通过在紧接之前和紧接之后的已处理视频帧(帧1和帧3)中插入被跟踪人脸的对应位置,简单地确定每个被跟踪人脸的位置。需要说明,上述技术可以很容易地被扩展到基于cnn的人脸检测模块206和人脸姿态评估模块208应用于三视频帧选一帧(即n=3)的场景中去。

静止人脸的检测

如上文所描述的,如果假定在已捕捉视频中检测的人是一直移动的,并且移动检测操作仅通过对移动区域进行提取和处理的方式对该视频帧进行预处理,则当该人在该视频图像中的某一点停止时,该人的脸无法在后续的视频帧中被检测到。需要说明,如果将该运动检测模块204从人脸检测和跟踪子系统200中除去,并且整个输入视频图像均由后续模块处理,则该问题不再存在。上文已结合图4对停止移动的人的检测技术进行了描述。只要该人继续保持静止,该技术还用于在该人再次开始移动之前继续在更多视频帧中监控该停止移动的人。然后,可以将上文描述的人脸跟踪技术再次应用于运动中的人。

显示高帧率

很多监控系统包括视频预览特征,该特征可使控制中心对每个摄像头捕捉的视频进行实时预览。然而,由于一些在嵌入式视觉系统100中实现的低成本的基于cnn的人脸检测模块206不能够以高帧率(例如每秒30帧(30fps)的视频捕捉率)运行,由于帧率的明显降低,仅显示已处理帧及相关检测人脸边界框的子集会导致视觉质量非常不佳。

在一些实施例中,为了提高预览模式的视觉质量,本申请公开的技术通过在显示中引入延迟生成高帧率显示。再次以图5为例,每4个帧对该输入视频序列处理一次。为了显示该已捕捉视频,该显示首先延迟4帧,显示第一个已处理帧,然后显示下面三个未被处理的帧2-4。接下来,显示已处理帧5,然后显示下面三个未被处理的帧6-8,并且该过程以此往复。虽然并非所有显示的帧都显示该检测人脸的边界框,但是显示视频可以以初始帧率播放,并且可以与初始视频一样流畅。需要说明,上文描述的4帧的延迟506仅为示例性的。可以基于所需处理时间确定延迟506,并且该延迟被设定为大于确定的处理延迟。

改进人脸检测和人脸跟踪子系统

图7示出了根据本申请描述的一些实施例中的嵌入式视觉系统100内的人脸检测和跟踪子系统112的示例性实施方式700的框图。注意到人脸检测和跟踪子系统700和人脸检测和跟踪子系统200在总体结构上基本相同。即人脸检测和跟踪子系统700从已捕捉视频中接收一序列视频图像702,将该序列视频图像702作为输入,并为该视频图像702中每个独立的检测人脸/人生成一组最佳姿态人脸图像720,并将该最佳姿态人脸图像720作为输出。此外,人脸检测和跟踪子系统700还包括有运动检测模块704,人脸检测模块706,人脸姿态评估模块708,最佳姿态选择模块710和人脸跟踪模块712。人脸检测和跟踪子系统700在检测新的人脸的同时,还在该捕捉视频图像702内跟踪多张人脸。理想状态下,人脸检测和跟踪子系统700被配置成能够同时跟踪尽可能多的人。

在一些实施例中,人脸检测模块706可以由基于dl的mtcnn结构实现,这一种结构已经在“利用多任务级联卷积网络的联合人脸检测和对齐”(jointfacedetectionandalignmentusingmultitaskcascadedconvolutionalnetworks)(张等人;ieee信号处理学报(ieeesignalprocessingletters),2016年10月第10期第23卷第1499-1503页)期刊中所公开了。mtcnn结构通过多任务学习过程并利用统一级联cnn将人脸检测和人脸校准操作整合在一起。这种级联cnn的结构和“用于人脸检测的卷积神经网络级联”(aconvolutionalneuralnetworkcascadeforfacedetection)(李等人,ieee计算机视觉和模式识别会议学报(proc.ieeeconf.oncomputervisionandpatternrecognition),2015年6月1日)中描述的是相似的,mtcnn结构也使用由粗至细的多个cnn级去处理不同分辨率的输入图像。然而,在mtcnn的结构里面的每一级中,可利用单独的cnn级集中训练人脸关键点定位、人脸二元分类和边框校准。因此,在mtcnn结构里只需要三个cnn级。更具体的说,mtcnn的第一级通过浅层cnn快速生成候选面部窗口。接下来,mtcnn的第二级通过一个更加复杂的cnn排除掉大量的非人脸窗口并精炼出候选窗口。最后,mtcnn的第三级使用一个更加强大的cnn进一步确定每一个输入的窗口是否是人脸。如果结果是人脸,则会进一步估计面部的五个关键点的位置。在一般情况下,与级联cnn结构相比,mtcnn结构更适用于资源有限的嵌入式视觉系统。除了使用mtcnn结构,人脸检测模块706还可以采用其他已知或者未来开发的基于cnn的人脸检测结构和技术实现该人脸检测模块206,这均不超出本申请的保护范围。人脸检测模块706生成一组检测人脸716以及对应的边界框位置。

尽管mtcnn结构通常更加适用于大多数嵌入式视觉系统,然而由于很多嵌入式视觉系统(比如hi3519(soc))均资源受限,而原始mtcnn结构依然需要消耗大量的计算资源,从而限制了人脸检测的速度,最终进一步限制了同时被人脸检测模块706跟踪到的人的数量。在一些实施例中,人脸检测模块706除了使用原始mtcnn结构去运行以外,还可以使用原始mtcnn结构的“简化版”去加速人脸检测操作,这一技术在(霍华德等人“移动网络:适用于移动视觉应用的有效的卷积网络”(“mobilenets:efficientconvolutionalnetworksformobilevisionapplications,”),计算研究库,2017年4月)期刊中已经被公开了(下文也称之为“移动网络”)。

使用上文所述的“移动网络”技术,人脸检测模块706可由改进的mtcnn结构实现,该mtcnn使用约简参数α在每一个conv层减少过滤器的数量。对于给定的conv层以及给定的约简参数α,输入频道m的数量变成了αm,输出频道n变成了αn。在一些实施例中,约简参数α的数值是介于0到1之间的,典型的设定数值例如为0.25、0.25、0.5、0.75和1,其中1代表着没有约简。例如在移动网络中,所有cony层均采用75%的过滤器(即是,α=0.75),分类精度方面的精度稍有下降。类似的,在mtcnn的三个网络中的所有conv层均保留75%的过滤器,就获得了一个“0.75的mtcnn”。作为测试,这个0.75的mtcnn被放在一个armcortexa7核的嵌入式平台上使用,由“宽泛人脸数据集”(widerfacedataset)训练;用“人脸检测数据库和基准”(fddb)的所有的r/g/b频道作为输入数据来进行测试。测试结果是,基于这个0.75的mtcnn结构的设备,人脸检测只有1%的准确率丢失,而该系统的处理速度提高了约一半。在实际运行过程中,基于使用这种约简参数α介于0.5到0.75之间的“简化版”mtcnn结构的人脸检测模块706能够获得令人满意的人脸检测准确率,同时也能显著的加快处理速度。

嵌入式视觉系统中的一些摄像头(例如传统监控系统)只能捕捉到灰度视频图像702。此外,可能在单色光和灰度照明条件下捕捉到视频图像702,所以视频图像702会更加接近于灰度图像而非彩色图像。例如,城市夜间照明越来越多地采用led灯源,如公交车站灯箱和街道灯,这些在自然界中大多都是属于单色和灰度的光。再例如,公共交通同样越来越多地采用led灯源,如地铁站和室内地铁站。在这样的情况下,即使摄像头能够捕捉彩色图像,其所捕捉到的监控录像图片基本都是灰度图像。因此,当输入的人脸检测和跟踪子系统700的视频图像702都是灰度图像时,图像块714会作用于人脸检测模块706上,使其能够变成单一的灰度频道格式,而非原来的3个r/g/b频道。

然而,当人脸检测模块706使用常规的训练数据集进行数据训练并且输入视频图像702是灰度图像时,该人脸检测模块706的性能会下降。这是因为公共的训练数据集,比如“宽泛人脸数据集”在自然光照的条件下大都是作为rgb图像而被捕捉的。因此,当人脸检测模块706内的cnn是使用rgb图像进行数据训练而输入视频图像702是灰度图像时,在训练数据集合与输入图像之间就会出现大量的数据分布不对称。这样,在处理灰度图像702的时候,训练的cnn的准确性就会降低。在一个具体性能测试中,人脸检测模块706使用原始mtcnn结构并用rgb图像进行数据训练,其输入的灰度图像就会被当做三个相同的频道进行处理。在该测试中,人脸检测的性能是足够好的。但是,在另一性能测试中,当利用前文所述的0.75的mtcnn实现人脸检测模块706时,该采用rgb图像训练图像的训练0.75的mtcnn在灰度输入图像702上的性能表现不佳。

为了解决上文中所提到的问题,降低数据分布不对称的其中一项方案是使训练图像和处理的视频图像更加一致。特别是,当输入的视频图像702是灰度图像,脸检测模块706也应该使用灰度图像进行训练。但是,直接获取大量灰度训练图像不太可行,在一些实施例中,取自于大规模的训练数据库中的训练图像,如“宽泛人脸数据集”首先被转化成为灰度图像,然后这些转化后的灰度图像随后被人脸检测模块706用来训练数据。同样的思路可以应用于其他格式的输入图像中。换言之,基于视频图像702的一些特征,可对训练数据集加以修改,从而使训练图像和处理的视频图像之间更具一致性,从而减少数据分布不对称。

图8示出了根据本申请一些实施例中的对处理灰度输入图像改进人脸检测性能的示例性过程的流程图。首先,接收人脸图像训练数据集,例如彩色feret数据库或“宽泛人脸数据集”(步骤802)。接下来,将训练数据集中的彩色图像转化成灰度图像(步骤804)。下一步,使用转化后的灰度图像对人脸检测cnn模块中进行训练(步骤806)。再下一步,在人脸检测和跟踪应用中,接收灰度视频图像并使用由灰度训练图像训练过的人脸检测cnn模块在灰度图像上执行人脸检测(步骤808)。

基于上文描述的技术,对前文提到的性能测试进行进一步修改。特别地,人脸检测模块使用0.75的mtcnn结构(或者是0.75的mtcnn模块)由“宽泛人脸数据集”转化来的灰度图像进行数据训练,并且训练过的0.75的mtcnn用于处理fddb里的图像。使用灰度训练的0.75mtcnn模块的性能只比使用rgb的全mtcnn模块性能差一点点(~1.5%)。然而,灰度训练的0.75mtcnn模块在灰度输入图像中的性能明显优于rgb训练的0.75mtcnn模块在相同的灰度输入图像中的性能。因此,所提出的简化mtcnn结构能够和cnn训练技术相结合来提升彼此的性能,同时提高人脸检测模块706处理灰度输入图像的速度。

根据上文结合图2~3所描述的内容,在实时人脸跟踪进程中,人脸检测和跟踪子系统700保持跟踪每一个被跟踪的人脸的最佳姿态人脸,当被跟踪的人脸从视频中消失并需要被移除的时候,其将当前的最佳姿态人脸图像发送到服务器做进一步分析,比如人脸识别。通常情况下,当一个人的人脸暂时性的被在同一个图像帧中的另一个人或者物体挡住的时候,被跟踪的人会被认为丢失了。当在接下来的图像帧中,挡住的人脸的障碍物被去除并且人脸重新出现时,人脸又可以被检测到了。理想状态下,这个重新检测到的人脸应该是被认为是已经存在的人脸而不是一张新的人脸。然而,基于简单人脸跟踪技术,如卡尔曼滤波器与匈牙利算法不能够有效的处理这样的遮挡情况,这经常导致产生许多近似重复的人脸。如果这样的近似重复的人脸没有被人脸检测和跟踪子系统700识别出来,则这些重复的最佳姿态人脸就会被传送到服务器中,从而浪费了网络带宽和存储空间。

在一些实施例中,为了解决上述问题,当被跟踪人脸已经丢失而该最佳姿态人脸尚未发送到该服务器时,执行近似重复人脸检测程序。更详细的说,在将每一个最佳姿态人脸图像传送到服务器之前,对该最佳姿态人脸图像进行特征提取操作,从而对该最佳姿态人脸图像中提取出预先确定的图像特征。例如,预先确定的图像特征可以是hog特征、harr型特征,sift特征或其中一种基于dl人脸特征。但是,在一些实施例中,能够从最佳姿态人脸图像中提取出超过一种图像特征。例如,在其中一个实例中,能够从最佳姿态人脸图像中提取出hog特征和harr型特征。

接下来,将提取图像特征与之前传送的最佳姿态人脸图像中提取并存储的特征进行一一比对。这些特征可以被存储在嵌入式视频系统的人脸跟踪运算的本地缓冲器。然而,这些存储特征也可以被远程存储,比如存储在云端服务器里,从而与嵌入式视频系统的人脸跟踪运算分割开来。在一些实施例中,对于一维(1d)或二维(2d)特征(比如hog特征和harr型特征)来说,可以将从最佳姿态人脸图像中新提取出来的特征和从之前传送的最佳姿态人脸图像中存储的特征进行计算,从而得出余弦相似性或者欧几里得相似性。当使用基于dl的人脸特征时,可以通过比较提取出的特征和存储特征以检测出存储的同一个人的重复的脸,但是存储的脸能与该重复人脸具有有不同的姿态。在一些实施例中,如果新提取的特征与存储的特征比对计算出的有任何相似度值的数值高于预先设定的阈值(比如0.8),则该最佳姿态人脸被认定为近似重复人脸而不会被传送到服务器。然而,如果新提取的特征与存储的特征之间计算出的相似度值中的所有相似度值都低于预先设定的阈值,则该最佳姿态人脸被认为是一张唯一的脸,则将此图像传送到服务器并与相关提取特征被存储在特征缓冲器或者存储器的。使用了上述技术后,可以显著减少近似重复人脸的数量和传送的最佳姿态人脸的数量,从而节省了网路带宽和存储资源。

图9示出了根据本申请一些实施例中识别近似重复人脸图像并有选择地传送最佳姿态人脸图像到服务器的示例性过程的流程图。该过程首先在人脸跟踪操作结束时,接收确定的最佳姿态人脸图像,其中该确定的最佳姿态人脸图像为该被跟踪的人脸从视频中消失时的人脸图像(步骤902)。在一些实施例中,当该被跟踪的人脸在预先确定的一定数量的连续图像帧中被物体遮挡,则判定该被跟踪的人脸已经消失。接下来,从最佳姿态人脸图像中提取图像特征(步骤904)。如上文所描述的,提取出的特征可以是hog特征、harr型特征、sift特征或基于dl人脸特征中的一种或多种的结合。接下来,这个过程将计算新提取出来的特征和从之前传送的最佳姿态人脸图像中提取并存储在特征缓冲器中的一组存储特征中的每一个存储特征之间的一组相似度分数(步骤906)。接下来,该过程判断这组相似度值中是否有数值高于预先设定的阈值(步骤908)。如果判断所有相似度值均不高于预先设定的阈值,则会将此最佳姿态人脸图像传送到服务器并将提取出来的相关特征存储到特征缓冲器(步骤910)。否则,判定该最佳姿态人脸图像是近似重复人脸图像,并阻止将此最佳姿态人脸图像传送至服务器(步骤912)。

图10示出了根据本申请一些实施例中,用于实现本申请公开的嵌入式视觉系统的示例性客户-服务器网络环境。网络环境1000包括数个通过网络1008通信连接至服务器1010的嵌入式视觉系统1002、1004和1006。一个或多个远程服务器1020与该服务器1010和/或一个或多个嵌入式视觉系统1002、1004和1006连接。

在一些示例性实施例中,嵌入式视觉系统1002、1004和1006可包括监控摄像头系统、机器视觉系统、无人机、机器人、无人驾驶车、智能手机、pda、便携式媒体播放器、笔记本电脑或其他与一个或多个数字摄像头集成的嵌入式系统。在一个示例中,每一个嵌入式视觉系统1002、1004和1006均包括一个或多个摄像头、cpu、dsp以及一个或多个小规模cnn模块。

服务器1010包括处理装置1012和人脸数据库1014。处理装置1012用于执行程序,从而基于人脸数据库1014中存储的人脸信息对从该嵌入式视觉系统1002、1004和1006接收到人脸图像进行人脸分析。处理装置1012还用于将已处理的人脸图像存储入人脸数据库1014。

在一些示例中,服务器1010可以是单个计算装置,如计算机服务器。在其他实施例中,服务器1010可以表示不止一个协同工作的计算装置,该计算装置执行服务器计算机的行为(例如云计算)。该服务器1010可运行网络服务器,其中该网络服务器通过网络1008与客户端装置(例如嵌入式视觉系统1002、1004和1006)中的浏览器通信连接。在其中一个示例中,该服务器1010可运行客户端应用程序,从而在服务调度过程中调度客户器提供者和客户端之间的客户启动服务以及服务器提供者启动服务。服务器1010还可以通过网络1008或者其他网络或通信途经与一个或多个远程服务器1020建立通信。

该一个或多个远程服务器1020可单独或者结合服务器1010实现该服务器1010的上述多种功能以及/或者存储容量。该一个或多个远程服务器1020中的每个服务器可以发起多项服务。例如,服务器1020发起的服务包括:提供与一个或多个建议位置相关的信息,该信息例如为与建议位置相关的网页界面或网站;确定一个或多个用户或企业的位置、用户查询识别搜索引擎、一个或多个用户评论或者查询服务;或者提供关于一个或多个企业、消费者以及/或者关于该企业的查询或反馈的一个或多个其他服务。

服务器1010还可以维护架设在一个或多个远程服务器上的社交网络服务,或者与该社交网络服务建立通信。该一个或多个社交网络服务可提供多项服务,并且可使用户创建文件并将其自身与该远程社交网络服务内的其他用户发生关联。该服务器1010以及/或者该一个或多个远程服务器1020还可以协助生成并维护社交图谱,该社交图谱包括用户创建的关联。该社交图谱例如可包括该远程社交网络服务的所有用户的列表,以及每个用户与该该远程社交网络服务中其他用户的关联。

该一个或多个远程服务器1020中的每个服务器可以是单个计算装置,如计算机服务器,或者可以表示不止一个协同工作的计算装置,该计算装置执行服务器计算机的行为(例如云计算)。在一实施例中,服务器1010和该一个或多个远程服务器1020可以由单个服务器实现,或者由多个服务器合作实现。在一示例中,该服务器1010和该一个或多个远程服务器1020可通过网络1008并经由该客户端装置(例如嵌入式视觉系统1002、1004和1006)处的用户代理建立通信。

利用安装在该嵌入式视觉系统1002、1004和1006中的客户应用程序,嵌入式视觉系统1002、1004和1006的用户可与架设在服务器1010中的系统以及/或者架设在远程服务器1020中的一个或多个服务进行交互。或者,用户可以通过该嵌入式视觉系统1002、1004和1006中的基于网络的浏览器应用程序与该系统和该一个或多个社交网络服务进行交互。可通过网络(例如网络1008)改进嵌入式视觉系统1002、1004和1006与该系统和/或一个或多个服务之间的通信。

可以通过多种通信协议促进嵌入式视觉系统1002、1004和1006和服务器1010和/或一个或多个远程服务器1020之间的通信。从一些方面,嵌入式视觉系统1002、1004和1006和服务器1010和/或一个或多个远程服务器1020之间的通信可以通过通信接口(未示出)建立无线通信,如果必要,该通信接口包括数字信号处理电路。该通信接口可提供多种模式或协议下的通信,包括全球系统移动通信(gsm)语音电话、短讯服务(sms)、增强型消息业务(ems),或多媒体消息业务(mms)发送、码分多址(cdma)、时分多址(tdma)、个人数字蜂窝(pdc)、宽带码分多址(wcdma)、cdma2000,或者通用分组无线业务(gprs)等。例如,可通过射频收发器(未示出)实现通信。此外,可采用蓝牙、wifi或者其他收发器实现短距离通信。

网络1008例如可包括个人局域网络(pan)、本地局域网(lan)、校域网(can)、城域网(man)、广域网(wan)、宽带网络(bnn)、因特网等。此外,该网络1008包括但不限于下述网络拓扑结构中的一项或多项:总线网络、星形网络、环形网络、网状网络、星形总线网络、树状或分级网络等。

这里所公开的各实施例所描述的各种说明性逻辑块、模块,电路、以及算法步骤,可以作为电子硬件、计算机软件或两者的组合来实现。为清楚地显示硬件和软件的此互换性,上文已经一般就其功能而言描述了各种说明性组件、单元、模块、电路,以及步骤。此类功能集是被实现为硬件还是软件取决于具体应用和整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能集,但此类设计决策不应被解释为能够脱离本公开的范围。

用于实现与本文所公开的各方面一起所描述的各种说明性逻辑、逻辑块、模块、以及电路的硬件可以与通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、场可编程门阵列(fpga)或其他可编程逻辑器件,单独的栅极或晶体管逻辑、单独的硬件组件,或被设计为执行本文所描述的功能的其任何组合,来实现或执行。通用处理器可以是微处理器,但是在备选方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以作为接收器装置的组合来实现,例如,dsp和微处理器的组合、多个微处理器、和dsp核一起的一个或多个微处理器,或任何其他这样的配置。可另选地,一些步骤或方法可以由给定功能特定的电路来执行。

在一个或更多示例性方面,所描述的功能可以以硬件、软件、固件,或其任何组合来实现。如果以软件来实现,则功能可以作为一个或多个指令或代码存储在非暂态的计算机可读取的存储介质上或非暂态的处理器可读取的存储介质上。本文所公开的方法或算法的步骤可以以能够驻留在非暂态的计算机可读取的或处理器可读取的存储介质上的处理器可执行指令来具体化。非暂态的计算机可读取的或处理器可读取的存储介质可以是能够被计算机或处理器访问的任何存储介质。作为示例但不作为限制,这样的非暂态的计算机可读取的或处理器可读取的存储介质可包括ram、rom、eeprom、闪存、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储装置,或可以用来存储指令或数据结构形式的所需要的程序代码并可以被计算机访问的任何其他介质。如本文所使用的磁盘和光盘包括压缩光盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘,以及蓝光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述各项的组合也包括在非暂态的计算机可读取的和处理器可读取的介质的范围内。另外,方法或算法的操作可以作为一个代码和/或指令或代码和/或指令的任何组合或组,驻留在非暂态的处理器可读取的存储介质和/或计算机可读取的存储介质上,存储介质可以被包括到计算机程序产品中。

尽管本专利文件包含许多细节,但是,这些不应该被解释为对任何所公开的技术的或要求保护的东西的范围的限制,而是作为对特定的技术的特定实施例的特定的特征的描述。在本专利文件中在单独的实施例的上下文中所描述的某些特征也可以在单一实施例中组合地实现。相反,在单一实施例的上下文中所描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,虽然特征在上文可以被描述为以某些组合地起作用,甚至最初要求如此,来自要求保护的组合的一个或多个特征可以在某些情况下从组合中删除,要求保护的组合可以被定向到子组合或子组合的变体。

类似地,尽管操作在附图中是按特定顺序描绘的,但是,这不应该被理解为要求这样的操作以所示出的特定顺序或按先后顺序执行,或所有所示出的操作都被执行,以实现所需要的结果。此外,在本专利文件中所描述的各实施例中的各种系统组件的分离不应该被理解为在所有实施例中都要求这样的分离。

本专利文件只描述了几个实现和示例,可以基于在本专利文件中所描述的和示出的内容作出其他实现、增强和变化。

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