基于嵌入式视觉系统的实时人脸跟踪和人脸姿态选择的方法及装置、系统转让专利

申请号 : CN201810285802.X

文献号 : CN108629284B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梅迪·塞伊菲王星陈明华王凯超王卫明吴谦伟郑健楠梁杰

申请人 : 深圳奥瞳科技有限责任公司

摘要 :

公开了在嵌入式视觉系统内的实时人脸检测、人脸跟踪和人脸姿态选择子系统。一方面,公开一种对视频中获取的人执行实时人脸姿态评估和最佳姿态选择的方法,方法包括:在视频的一序列视频帧中接收视频图像;在该视频图像上执行人脸检测操作,以在该视频图像中检测一组人脸;基于该组检测人脸检测是否有新人进入到该视频内;通过检测该新人在后续的视频图像中的一序列人脸图像,在该视频中的后续视频图像中跟踪该新人;对于每张包含该被跟踪新人的检测人脸的后续视频图像:估计与该检测人脸关联的姿态;以及基于该估计姿态更新该新人的最佳姿态;以及一旦检测到该新人已从该视频中消失,将该新人对应于当前最佳姿态的检测人脸发至服务器。

权利要求 :

1.一种实时人脸跟踪和人脸姿态选择的方法,其特征在于,所述方法包括:在视频的一序列视频帧中接收视频图像;

在所述视频图像上执行人脸检测操作,以在所述视频图像中检测一组人脸;

基于该组检测人脸检测是否有新人进入到该视频内;

通过检测所述新人在后续的视频图像中的一序列人脸图像,在该视频中的后续视频图像中跟踪所述新人;

对于每一张包含该被跟踪新人的检测人脸的后续视频图像:

估计与所述检测人脸关联的姿态;以及

基于该估计姿态更新所述新人的最佳姿态;以及

一旦检测到所述新人已从该视频中消失,将所述新人对应于当前最佳姿态的检测人脸发送至服务器;其中仅传送该检测人脸序列中具有最佳姿态的检测人脸降低了网络带宽并提高了存储效率。

2.根据权利要求1所述的方法,其特征在于,在更新所述最佳姿态之后,还包括步骤:将该已更新最佳姿态与阈值进行比较,其中所述阈值表示人脸姿态足够良好以执行人脸识别;

如果所述已更新最佳姿态满足阈值条件,则无需等待所述新人从所述视频中消失,直接将所述新人的对应于所述已更新最佳姿态的检测人脸传送至所述服务器。

3.根据权利要求2所述的方法,其特征在于,在将新人的对应于所述已更新最佳姿态的检测人脸传送至所述服务器之前,还包括:确定已被认定足够好的所述新人的检测人脸是否在先前已被传至服务器;

如果先前已传至所述服务器,则不再将所述新人对应于已更新最佳姿态的检测人脸传送至所述服务器。

4.根据权利要求1所述的方法,其特征在于,检测所述新人从所述视频中消失还包括:确定所述新人在最新处理的视频图像中不再具有对应的检测人脸图像;

检测在所述最新处理的视频图像中对应于所述新人在先前视频帧中检测人脸图像的位置处是否具有所述新人的对应人脸图像;

如果具有所述新人的对应人脸图像,则确定所述新人处于静止状态;

否则,确定所述新人已经从所述视频中消失。

5.根据权利要求1所述的方法,其特征在于,一旦确定所述新人处于静止状态,则所述方法包括:在后续的视频图像中继续监测所述新人,直至所述新人再次开始移动为止。

6.根据权利要求1所述的方法,其特征在于,在所述视频图像上执行人脸检测操作,以在所述视频图像中检测一组人脸包括:在所述视频图像中识别一组移动区域;以及

针对已识别的所述一组移动区域中的每一个移动区域:将基于神经网络的人脸检测技术应用于所述移动区域,以检测所述移动区域内的一张或多张人脸。

7.根据权利要求1所述的方法,其特征在于,基于该组检测人脸检测是否有新人进入所述视频包括:对第一已处理视频图像的一组标注检测人脸和紧接所述第一已处理视频图像之后的第二已处理视频图像中的一组未标注检测人脸执行人脸关联操作;以及将不与所述第一已处理视频图像的一组标注检测人脸中的任一图像关联的所述紧接所述第一已处理视频图像之后的第二已处理视频图像中的一组未标注检测人脸中的每一张检测人脸识别为新人。

8.根据权利要求1所述的方法,其特征在于,后续视频图像中跟踪所述新人包括:对第一已处理视频图像中所述新人的已标记检测人脸和第一已处理视频图像之后的第二已处理视频图像中所述新人的一组未标注检测人脸之间执行直接人脸关联操作。

9.根据权利要求8所述的方法,其特征在于,由于所述新人的移动,所述新人在所述第一已处理视频图像中的已标记检测人脸的第一位置不同于所述新人在所述第二已处理视频图像中未标记检测人脸的第二位置。

10.根据权利要求8所述的方法,其特征在于,所述新人在所述第一已处理视频图像中的已标记检测人脸的边界框和所述新人在所述第二已处理视频图像中的未标记检测人脸的边界框互相交叠。

11.根据权利要求1所述的方法,其特征在于,在所述视频中的后续视频图像中跟踪所述新人包括:定位所述新人在已处理视频图像中的检测人脸的边界框并将所述边界框作为参考框,并将所述边界框内的检测人脸图像定位为搜索块;

将具有预定义尺寸的搜索窗置于已处理视频帧之后的未处理视频帧中的所述边界框的位置附近,其中所述搜索窗具有多个搜索位置;并且对于所述搜索窗内的多个搜索位置中的每一处位置:将所述参考框放置在所述搜索位置处;以及

将所述搜索块与所述参考框内的图像块进行对比。

12.根据权利要求1所述的方法,其特征在于,在所述视频中的后续视频图像中跟踪所述新人包括:定位已处理视频图像中所述新人的检测人脸的边界框,并将所述边界框作为参考框,将所述边界框内的检测人脸图像作为搜索块;

基于所述检测人脸在所述已处理视频图像中的边界框的位置以及所述新人的预测移动轨迹,对所述新人在所述已处理视频图像之后的未处理视频图像中的人脸位置进行预测;

在未处理视频帧中的预测位置周围放置具有预定义尺寸的搜索窗,其中所述搜索窗包含大量的搜索位置;以及对于所述搜索窗内的多个搜索位置中的每一个搜索位置:

将所述参考框放置在所述搜索位置;以及

将所述搜索块与所述参考框内的图像块进行比较。

13.根据权利要求12所述的方法,其特征在于,利用所述未处理视频帧之前的两个或多个已处理视频帧中所述新人的两个或多个检测人脸的两个或多个检测位置,确定所述新人的预测移动。

14.根据权利要求12所述的方法,其特征在于,所述方法还包括:利用线性预测或者利用基于卡尔曼滤波器的非线性预测预测所述新人的移动。

15.根据权利要求1所述的方法,其特征在于,所述估计与所述检测人脸关联的姿态包括:基于卷积神经网络对后续每张视频图像联合执行人脸检测和姿态评估。

16.根据权利要求1所述的方法,其特征在于,与所述检测人脸关联的姿态评估包括与所述检测人脸关联的三个头部姿态角。

17.根据权利要求1所述的方法,其特征在于,所述新人的最佳姿态为相对于正面方向具有最小整体旋转角度的人脸姿态。

18.一种实施实时人脸跟踪和人脸姿态选择的视觉装置,所述装置包括:接收模块,用于从视频中一序列视频帧中接收视频图像;

人脸检测模块,用于对所述视频图像执行人脸检测操作,从而在所述视频图像中检测一组人脸;以及基于该组检测人脸检测进入所述视频的新人;

人脸跟踪模块,用于通过在后续视频图像中检测所述新人的一序列人脸图像,在所述视频的后续视频图像中跟踪所述新人;

人脸姿态选择模块,对于每一张包含被跟踪的新人的检测人脸的后续视频图像,用于估计与所述检测人脸关联的姿态,并基于该估计姿态更新所述新人的最佳姿态;并且一旦检测到所述新人已从所述视频中消失,将所述新人对应于当前最佳姿态的检测人脸发送至服务器,其中仅传送所述检测人脸序列中具有最佳姿态的检测人脸可以降低网络带宽并提高存储效率。

19.一种基于嵌入式视觉系统的实时人脸跟踪和人脸姿态选择的嵌入式系统,所述嵌入式系统包括:处理器;

与所述处理器连接的存储器;

与所述处理器和所述存储器连接的获取装置,用于获取视频的图像;

接收模块,用于从视频中一序列视频帧中接收视频图像;

人脸检测模块,用于对所述视频图像执行人脸检测操作,从而在所述视频图像中检测一组人脸;以及基于该组检测人脸检测进入所述视频的新人;

人脸跟踪模块,用于通过在后续视频图像中检测所述新人的一序列人脸图像,在所述视频的后续视频图像中跟踪所述新人;

人脸姿态选择模块,对于每一张包含被跟踪的新人的检测人脸的后续视频图像,用于估计与所述检测人脸关联的姿态,并基于该估计姿态更新所述新人的最佳姿态;并且一旦检测到所述新人已从所述视频中消失,将所述新人对应于当前最佳姿态的检测人脸发送至服务器,其中仅传送所述检测人脸序列中具有最佳姿态的检测人脸可以降低网络带宽并提高存储效率。

20.根据权利要求19所述的嵌入式系统,其特征在于,所述嵌入式系统为监控摄像头系统、机器视觉系统、无人机系统、机器人系统、自动驾驶汽车或者移动装置中的一项。

说明书 :

基于嵌入式视觉系统的实时人脸跟踪和人脸姿态选择的方法

及装置、系统

技术领域

[0001] 本申请一般涉及机器学习和人工智能领域,更具体而言,涉及在低成本嵌入式系统中捕捉的数字图像中实现实时现场人脸跟踪和人脸姿态选择的系统、装置和技术。

背景技术

[0002] 深度学习(DL)是机器学习和人工神经网络的一个基于一组算法的分支,该算法通过使用具有很多个处理层的人工神经网络来试图建模数据中的高层次抽象。典型的DL架构可包括许多层的神经元和数百万个参数。可以在配备有GPU的高速计算机上用海量数据训练这些参数,并由在深层网络也能适用的新的训练算法来指导,诸如修正线性单元(ReLU)、漏失(或丢弃)、数据集增强,以及随机梯度下降(SGD)。
[0003] 在现有的DL架构之中,卷积神经网络(CNN)是最流行的架构之一。虽然CNN背后的思想在20多年前就被发现了,但是,CNN的真正的能力只是在深度学习理论的近期发展之后才被认识到。到目前为止,CNN已经在许多人工智能和机器学习领域,诸如人脸识别、图像分类、图像字幕生成、可视问答以及自动驾驶汽车中取得了巨大成功。
[0004] 由于人体会发生移动,在一序列已捕捉图像中每个人的头部/人脸都会具有不同的方向,因此在一些人脸识别应用中需要对每个检测人脸的姿态进行评估。通过采用基于CNN的DL结构,人脸检测和人脸姿态评估可以联合处理执行。
[0005] 对于很多应用环境而言,包括犯罪/事故调查以及零售市场调查过程中的消费者分析过程中,对已捕捉的监控视频执行人脸识别可以提供尤其有价值的信息。近期,随着计算机硬件和机器学习技术的迅速发展,在监控视频系统中直接执行诸如人脸检测的多种高级任务已经成为可能。人脸检测,即检测和定位图像中每个人脸的位置通常是进行人脸识别过程的第一步。在人脸检测之后,其余的人脸识别任务通常由主服务器或者控制器中心执行。然而,如果监控视频系统包括大量的监控摄像头并且所有的已捕捉视频均需要传送至该控制中心或者主服务器以执行人脸识别和其他任务,那将对该控制中心或者服务器的网络带宽要求和计算能力的要求都异常的高。因此,对于配置有很多摄像头的监控视频,每个摄像头最好仅将已捕捉视频中的检测人脸传送至该服务器,而无需传送整个视频文件。然而,对于通常捕捉包含多人的图像并且人们在视频内会长时间逗留的情形下的监控视频系统,生成并传送至该服务器的人脸图像的数量依然会特别的高。

发明内容

[0006] 本申请描述的多个实施例提供了嵌入式视觉系统内的实时人脸检测、人脸跟踪和人脸姿态选择子系统的多个示例。一方面,公开了一种对视频中获取的人执行实时人脸姿态评估和最佳姿态选择的过程。该过程包括如下步骤:在视频的一序列视频帧中接收视频图像;在该视频图像上执行人脸检测操作,以在该视频图像中检测一组人脸;基于该组检测人脸检测是否有新人进入到该视频内;通过检测该新人在后续的视频图像中的一序列人脸图像,在该视频中的后续视频图像中跟踪该新人;并且对于每一张包含该被跟踪新人的检测人脸的后续视频图像:估计与该检测人脸关联的姿态,并基于该估计姿态更新该新人的最佳姿态。一旦检测到该新人已从该视频中消失,该过程将该新人对应于当前最佳姿态的检测人脸发送至服务器,其中仅传送该检测人脸序列中具有最佳姿态的检测人脸可以降低网络带宽并提高存储效率。
[0007] 在一些实施例中,在更新该最佳姿态之后,该过程还包括如下步骤:将该已更新最佳姿态与阈值进行比较,其中该阈值表示人脸姿态足够良好以执行人脸识别;如果该已更新最佳姿态满足阈值条件,则无需等待该新人从该视频中消失,直接将该新人的对应于已更新最佳姿态的检测人脸传送至该服务器。
[0008] 在一些实施方式中,在将新人的对应于已更新最佳姿态的检测人脸传送至该服务器之前,该过程还包括:确定已被认定足够好的该新人的检测人脸是否在先前已被传至服务器;如果先前已传至该服务器,则不再将该新人的对应于已更新最佳姿态的检测人脸传送至该服务器。
[0009] 在一些实施方式中,该过程通过如下方式检测该新人是已从视频中消失:确定该新人在最新处理的视频图像中不再具有对应的检测人脸图像;检测在该最新处理的视频图像中对应于该新人在先前视频帧中检测人脸图像的位置处是否具有该新人的对应人脸图像;如果具有该新人的对应人脸图像,则确定该新人处于静止状态;否则,确定该新人已经从该视频中消失。
[0010] 在一些实施方式中,一旦确定该新人处于静止状态,则该过程在后续的视频图像中继续监测该新人,直至该新人再次开始移动为止。
[0011] 在一些实施方式中,在该视频图像上执行人脸检测操作,以在该视频图像中检测一组人脸具体包括:在该视频图像中识别一组移动区域,并针对该组已识别移动区域中的每一个移动区域,将基于神经网络的人脸检测技术应用于该移动区域,以检测该移动区域内的一张或多张人脸。
[0012] 在一些实施方式中,基于该组检测人脸检测是否有新人已经进入到该视频内具体包括:对第一已处理视频图像的一组标注检测人脸和紧接该第一已处理视频图像之后的第二已处理视频图像中的一组未标注检测人脸执行人脸关联操作;并且将不与该组已标注检测人脸中的任一图像关联的该组未标记检测人脸中的每一张检测人脸识别为新人。
[0013] 在一些实施方式中,该过程通过对第一已处理视频图像中该新人的已标记检测人脸和第一已处理视频图像之后的第二已处理视频图像中该新人的一组未标注检测人脸之间执行直接人脸关联操作,在后续视频图像中跟踪该新人。
[0014] 在一些实施方式中,由于该新人的移动,该新人在该第一已处理视频图像中的已标记检测人脸的第一位置不同于该新人在该第二已处理视频图像中未标记检测人脸的第二位置。
[0015] 在一些实施方式中,该新人在该第一已处理视频图像中的已标记检测人脸的边界框和该新人在该第二已处理视频图像中的未标记检测人脸的边界框互相交叠。
[0016] 在一些实施方式中,在该视频中的后续视频图像中跟踪该新人具体包括:将该新人在该已处理视频图像中的检测人脸的边界框定位并作为参考框,并将该边界框内的检测人脸图像定位为搜索块;具有预定义尺寸的搜索窗放置在该已处理视频帧之后的未处理视频帧中的该边界框的位置附近,其中该该搜索窗具有多个搜索位置;对于该搜索窗内的多个搜索位置中的每一处位置:将该参考框放置在该搜索位置处;并将该搜索块与该参考框内的图像块进行比较。
[0017] 在一些实施方式中,在该视频中的后续视频图像中跟踪该新人具体包括:定位该已处理视频图像中该新人的检测人脸的边界框,并将该边界框作为参考框,将该边界框内的检测人脸图像作为搜索块;基于该检测人脸在该已处理视频图像中的边界框的位置以及该新人的预测移动轨迹,对该新人在该已处理视频图像之后的未处理视频图像中的人脸位置进行预测;在该未处理视频帧中的预测位置周围放置具有预定义尺寸的搜索窗,其中该搜索窗包含大量的搜索位置;并且对于该搜索窗内的多个搜索位置中的每一个搜索位置:将该参考框放置在该搜索位置;并且将该搜索块与该参考框内的图像块进行比较。
[0018] 在一些实施方式中,利用该未处理视频帧之前的两个或多个已处理视频帧中该新人的两个或多个检测人脸的两个或多个检测位置,确定该新人的预测移动。
[0019] 在一些实施方式中,利用线性预测或者利用基于卡尔曼滤波器的非线性预测预测该新人的移动。
[0020] 在一些实施方式中,基于卷积神经网络(CNN)对后续每张视频图像联合执行人脸检测和姿态评估,估计与该检测人脸相关联的姿态。
[0021] 在一些实施方式中,与该检测人脸关联的姿态评估包括与该检测人脸关联的三个头部姿态角。
[0022] 在一些实施方式中,该新人的最佳姿态为相对于正面方向具有最小整体旋转角度的人脸姿态。
[0023] 另一方面,公开了一种对视频中获取的人执行实时人脸姿态评估和最佳姿态选择的嵌入式系统。该嵌入式系统包括:处理器;与该处理器连接的存储器;与该处理器和该存储器连接,用于获取视频的图像获取装置;用于从视频中一序列视频帧中接收视频图像的接收模块;用于对该视频图像执行人脸检测操作,从而在该视频图像中检测一组人脸并基于该组检测人脸检测进入该视频的新人的人脸检测模块;通过在后续视频图像中检测该新人的一序列人脸图像,在该视频的后续视频图像中跟踪该新人的人脸跟踪模块;以及人脸姿态选择模块;该人脸姿态选择模块用于:对于每一张包含该被跟踪的新人的检测人脸的后续视频图像:估计与该检测人脸关联的姿态,并基于该估计姿态更新该新人的最佳姿态;并且一旦检测到该新人已从该视频中消失,将所述新人对应于当前最佳姿态的检测人脸发送至服务器,其中仅传送该检测人脸序列中具有最佳姿态的检测人脸可以降低网络带宽并提高存储效率。

附图说明

[0024] 通过阅读下文详细描述和各个附图,可以理解本申请的结构和操作,在附图中,相同的附图标记表示相同的部件,其中:
[0025] 图1所示为根据本申请一些实施例中包括实时人脸检测、人脸姿态评估和人脸跟踪功能的示例性嵌入式视觉系统;
[0026] 图2所示为根据本申请一些实施例中的位于图1所示嵌入式视觉系统内的人脸检测和跟踪子系统的示例性实施方式的框图;
[0027] 图3所示为根据本申请一些实施例中的嵌入式视觉系统内的实时人脸检测人脸姿态评估和人脸跟踪的示例性过程的流程图;
[0028] 图4所示为根据本申请一些实施例中的用于检测一被跟踪的人是否已从视频中消失的流程图;
[0029] 图5所示为根据本申请一些实施例中的已获取视频帧序列和该已处理视频帧的对应子集;
[0030] 图6所示为根据本申请一些实施例中的基于已处理视频帧执行未处理视频帧的人脸检测和跟踪的示例性过程的流程图;
[0031] 图7所示为根据本申请一些实施例中的为实现本申请公开的嵌入式视觉系统的示例客户端‑服务器网络环境。

具体实施方式

[0032] 下文的详细描述旨在作为主题技术的各种配置的描述,并不旨在表示可以实施主题技术的唯一配置。附图包含在本文中,并构成详细描述的一部分。详细描述包括用于旨在全面理解主题技术的具体细节。然而,主题技术不仅限于本文所阐述的具体细节,没有这些具体细节也有可能实施。在某些情况下,结构和组件以框图的形式示出,以避免使主题技术的概念变得模糊。
[0033] 除非上下文有其他明确说明,说明书通篇采用的下列术语均以此处定义为准。术语“头部姿态”、“人脸姿态”和“姿态”可以互相置换,均表示人的头部在图像中的具体方位。“被跟踪的人”和“已跟踪的人”可置换,均表示由视频系统捕捉到,并在随后会被该视觉系统检测并跟踪的人。
[0034] 嵌入式视频系统
[0035] 图1示出了示例性嵌入式视觉系统,根据本文所描述的一些实施例,该嵌入式视觉系统可以实现实时人脸检测、人脸姿态评估和人脸跟踪功能。嵌入式视觉系统100可整合或实现为监控摄像头系统、机器视觉系统、无人机系统、机器人系统、自动驾驶汽车系统或者移动装置。在图1中可以看出,嵌入式视觉系统100可包括总线102、处理器104、存储器106、存储装置108、摄像头子系统110、人脸检测和跟踪子系统112、输出装置接口120,以及网络接口122。在一些实施例中,嵌入式视觉系统100为低成本嵌入式系统。
[0036] 总线102集中表示可连接嵌入式视觉系统100的各种组件的所有系统、外围装置以及芯片组总线。例如,总线102可将处理器104与存储器106、存储装置108、摄像头系统110、人脸检测和跟踪系统112、输出装置接口120,以及网络接口122通信连接。
[0037] 处理器104从存储器106取回指令予以执行并取回数据予以处理,以便控制嵌入式视觉系统100的各种组件。处理器104可以包括任何类型的处理器,包括但不仅限于微处理器、大规模计算机、数字信号处理器(DSP)、个人备忘记事簿、装置控制器和电器内的计算引擎,以及现在已知或以后开发的任何其他处理器。进一步地,处理器104可包括一个或多个核。处理器104本身可包括存储代码以及数据供处理器104执行的高速缓存。
[0038] 存储器106可包括任何类型的可以存储代码以及数据以供处理器104执行的存储器。这包括但不仅限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、只读存储器(ROM),以及现在已知或以后开发的任何其他类型的存储器。
[0039] 存储装置108可包括任何类型的可以与嵌入式视觉系统100集成的非易失性存储器装置。这包括但不限于磁性、光学,以及磁光存储装置,以及基于闪存和/或带蓄电池后备电源的存储器的存储装置。
[0040] 总线102还连接到摄像头子系统110。摄像头子系统110被配置成以预定的分辨率采集静止图像和/或视频图像,并通过总线102,将采集到的图像或视频数据传送到嵌入式视觉系统100内的各种组件,诸如连接到存储器106供缓冲,并连接到人脸检测和跟踪子系统112以进行人脸检测、人脸姿态评估、人脸跟踪以及最佳姿态选择。摄像头子系统110可以包括一个或多个数字摄像头。在一些实施例中,摄像头子系统110包括一个或多个配备有广角镜头的数字摄像头。由摄像头子系统110采集到的图像或视频可以具有不同的分辨率,包括高分辨率,诸如1280×720p,1920×1080p或其他高分辨率。
[0041] 在一些实施例中,人脸检测和跟踪子系统112还包括人脸跟踪模块114、人脸检测和人脸姿态评估模块116和最佳姿态选择模块118。在一些实施例中,人脸检测和跟踪子系统112用于接收捕捉的视频图像,如通过总线102捕捉的高分辨率视频图像,并利用人脸检测和人脸姿态评估模块116在接收到的视频图像中执行基于CNN的人脸检测和人脸姿态评估操作,从而在每个视频图像内检测人脸,并对每一个检测人脸生成人脸姿态评估;利用人脸跟踪模块114在一序列视频图像中跟踪每一个检测的人脸,并利用最佳姿态选择模块118确定每个被跟踪人脸的最佳姿态。人脸检测和人脸姿态评估模块116可在一个或多个硬件CNN模块内实现。如果嵌入式视觉系统100为低成本嵌入式系统,则人脸检测和人脸姿态评估模块116可以在一个或多个低成本硬件CNN模块内实现,例如,Hi3519片上系统(SoC)内的内嵌CNN模块。
[0042] 输出装置接口120也连接到总线102,所述输出装置接口120例如可以显示由人脸检测和跟踪子系统112所生成的结果。与输出装置接口120一起使用的输出装置例如包括打印机和显示装置,诸如阴极射线管显示器(CRT)、发光二极管显示器(LED)、液晶显示器(LCD),有机发光二极管显示器(OLED)、等离子体显示器,或电子纸。
[0043] 最后,如图1所示,总线102还通过网络接口122将嵌入式视觉系统100连接到网络(未示出)。如此,嵌入式视觉系统100可以是网络(诸如局域网(“LAN”)、广域网(“WAN”),或内联网,或网络的网络,诸如因特网)的一部分。在一些实施例中,人脸检测和跟踪子系统112将一特定人的多个检测的人脸中具有最佳姿态的检测人脸通过网络接口122和网络传送至控制中心或者主服务器。嵌入式视觉系统100的任何或所有组件都可以与本公开主题结合使用。
[0044] 人脸检测和跟踪结构
[0045] 图2示出了根据本申请描述的一些实施例中的嵌入式视觉系统100内的人脸检测和跟踪子系统112的示例性实施方式200的框图。如图2所示,人脸检测和跟踪子系统200从已捕捉视频中接收一序列视频图像202,将该序列视频图像作为输入,并为该视频图像202中每个独立的检测人脸/人生成最佳姿态人脸图像220,并将该最佳姿态人脸图像220作为输出。需要说明,该人脸检测和跟踪子系统200至少包括运动检测模块204、人脸检测模块206、人脸姿态评估模块208、最佳姿态选择模块210以及人脸跟踪模块212。人脸检测和跟踪子系统200还可以包括图2中未示出的其他模块。下面将对该人脸检测和跟踪子系统200的每个部分进行更加详细的描述。
[0046] 运动检测
[0047] 从图中可以看出,首先,运动检测模块204接收已捕捉视频的给定视频图像202。在一些实施例中,假定视频图像202中捕捉的人脸是运动相关的,该运动从一个人开始进入摄像头视野开始,一直到该人离开该摄像头的视野为止。因此,为了降低人脸检测和跟踪子系统200的计算复杂度,该运动检测模块204可以预处理每个视频帧,从而定位和识别在每个视频帧内与运动相关的那些区域,即移动区域。通过这种方式,人脸检测模块206只需要对那些检测到的移动区域进行操作,从而检测人脸图像;与之相对,忽略该视频图像内与运动不相关的剩余区域(换言之,该人脸检测和跟踪子系统200不再进一步处理该剩余区域),从而整体提高了系统效率和图像处理速度。然而,也存在这样一种情形,即人进入视频范围内,然后停止移动。在这种情形下,起始移动的人脸变成了静止的人脸。下文我们将提供一些可以检测和处理此类静止人脸的技术。
[0048] 在一些实施例中,运动检测模块204通过直接计算一序列视频帧中的当前视频图像和先前视频图像之间的差值图像,检测最新接收到的视频图像内的移动区域。在一实施例中,当前视频图像与该视频序列帧中相对于该当前视频图像的紧接的前一个视频图像进行比较。在一些嵌入式系统中,可以利用嵌入式运动检测硬件,如DSP来实现该运动检测模块204。例如,当采用Hi3519片上系统实现人脸检测和跟踪子系统200时,可以利用Hi3519 SoC内的DSP中的内嵌运动检测功能实现该运动检测模块204。该运动检测模块204的输出包括可具有许多不同尺寸的一组已识别移动区域214。需要说明,对于检测的移动人体对象,与该人体对象相关的移动区域包括人脸和人体,并且还可以包括不止一张人脸。因此,每一个已识别移动区域会被发送至后续的人脸检测模块206中,以检测每个检测移动区域内的绝大多数或者所有人脸。
[0049] 美国专利申请15/657,109(申请日:2017年7月21日;发明名称:采用嵌入式系统中的小规模卷积神经网络模块的人脸检测)对该运动检测模块204进行了更加详细地说明,其内容以引用形式并入本申请。在该被引用的申请中,以金字塔式图像分辨率处理输入图像的由粗至细的多级CNN结构实现该运动检测模块204和人脸检测模块206。
[0050] 人脸检测和人脸姿态评估
[0051] 对于由运动检测模块204生成的每个检测移动区域214,基于CNN的人脸检测模块206均可用于检测该检测移动区域内的一些或所有人脸。可以采用很多不同的技术实现该人脸检测模块206。例如,可以采用方向梯度直方图(HOG)技术结合支撑矢量机(SVM)分类器实现该人脸检测模块206。在一些实施例中,如美国专利申请15/657,109(申请日:2017年7月21日;发明名称:采用嵌入式系统中的小规模卷积神经网络模块的人脸检测)所描述的,可利用由粗至细多级CNN结构实现用于人脸检测的人脸检测模块206,该专利申请的内容以引用形式并入本申请。然而,还可以采用其他已知或者未来开发的基于CNN的人脸检测结构和技术实现该人脸检测模块206,均不会超出本申请的保护范围。人脸检测模块206生成一组检测人脸216以及对应的边界框位置。需要说明,人脸跟踪模块212可基于该人脸检测模块206的当前输出,跟踪已处理视频图像中先前检测到的人脸,其中该当前输出与最新处理的视频图像相关联。
[0052] 当一个人进入视频范围,该人的头/脸可具有不同的方向,即在不同的视频图像中具有不同的姿态。评估每个检测人脸的姿态有利于保持跟踪序列视频帧中每张人脸的姿态变化,并将对应于“最佳姿态”的人脸图像发送到主服务器,用于人脸识别,其中该“最佳姿态”的人脸图像即最接近于每个检测人脸的正视图(具有最小的旋转角度)的人脸图像。人脸检测和跟踪子系统200采用人脸姿态评估模块208评估由人脸检测模块206输出的每个检测人脸的姿态,并生成人脸姿态评估218。最佳姿态选择模块210利用该人脸最佳姿态评估模块208的输出,当人们在一序列视频帧中移动的情况下更新每个被跟踪的人的最佳姿态。
[0053] 在一技术中,基于一些人脸关键点的位置,通过计算这些人脸关键点与正视图中对应关键点的距离确定该人脸关键点的位置,并基于该位置评估人脸姿态,该人脸关键点例如为眼、鼻、嘴。另一技术利用三个欧拉角表示该头部姿态,该欧拉角为俯仰角、偏航角以及翻转角,并利用这三个欧拉角直接评估该姿态。该基于角度的姿态评估方法通常比该基于关键点的方法具有更低的复杂度,这是由于基于角度的方法仅需要三个值,而基于关键点的方法在其评估过程中通常需要不止三个关键点坐标。此外,该基于角度的姿态评估方法还可以通过采用该三个姿态角的绝对值的和来执行简单的最佳姿态评估。
[0054] 上述两种人脸姿态评估技术均可利用传统方法,而不采用深度神经网络实现;或者利用如CNN的深度神经网络实现。当由CNN实现时,可以将人脸检测模块206和人脸姿态评估模块208作为单个神经网络联合实现。美国专利申请15/789,957(申请日2017年10月20日,发明名称:基于嵌入式系统小规模卷积神经网络模块的人脸检测和头部姿态角评估)描述了该基于CNN的联合人脸检测和头部姿态角评估系统和技术,该申请的内容以引用形式被并入本申请。
[0055] 在人脸检测和跟踪子系统200中,人脸姿态评估模块208后接最佳姿态选择模块210,该最佳姿态选择模块210用于在一序列视频帧中被跟踪的人的一序列检测人脸相关的一序列姿态评估中确定每个被跟踪的人的“最佳姿态”,并更新该“最佳姿态”。在一些实施例中,该“最佳姿态”被定义为最接近于正视图的人脸姿态(换言之,具有最小的整体头部旋转角度)。从图2中可以看出,该最佳姿态选择模块210可与人脸跟踪模块212连接,以接收人脸跟踪信息。由于人脸姿态评估模块208连续评估该人的姿态,并且最佳姿态选择模块210不断地更新该人的最佳姿态,因此,最佳姿态选择模块210可以保持跟踪每个被跟踪的人。
在一些实施例中,当人脸跟踪模块212确定一个被跟踪的人已经从视频中消失,最佳姿态选择模块210会将对应于该被跟踪的人的当前最佳姿态对应的检测人脸图像(即最佳姿态人脸图像220)传送到控制中心或者主服务器,用于人脸识别任务。
[0056] 人脸跟踪模块212可实现用于确定一个被跟踪的人是否已经从该视频中消失的多项技术。例如,一项技术保持跟踪每个人的最新计算的人脸边界框。假定不存在极端移动的情况下,该被跟踪的人的最近计算的边界框与该被跟踪的人的紧接之前的边界框之间应该具有一定程度的重叠。因此,当人脸跟踪模块212确定该被跟踪的人的最近计算的边界框与该被跟踪的人的紧接之前的边界框之间不具有不具有重叠时,该人脸跟踪模块212确定该被跟踪的人已经从该视频中消失。在另一项技术中,该人脸跟踪模块212可以保持跟踪所有检测人脸的指定标注(即一组唯一的标注与对应检测人脸之间的人脸联想)。接下来,如果在先前分配给先前处理的视频图像中的一个被跟踪的人的给定标注未被分配给当前处理视频图像中的任一检测人脸,则可以认为与该给定标注相关联的被跟踪的人已经从视频中消失。
[0057] 在一些场景中,在视频中逗留很久的人会导致该人的最佳姿态迟迟无法被传送至该控制中心或者主服务器。为了解决这一问题,一些实施例提供了一种早期姿态提交技术。在一具体实施例中,该早期姿态提交技术在处理一序列视频图像期间,如果被跟踪的人的评估人脸姿态在其中一个视频帧中已经足够好(例如,当与阈值相比该人脸姿态已经足够好),则可以将对应于该“足够好的人脸姿态”的检测人脸图像立即传送至服务器,而不需要等待该被跟踪的人离开该视频的视野。更具体地,如果该神经网络结合检测的人脸图像生成了人脸关键点,则该被确定的关键点相对于全正面人脸姿态相关的基准人脸关键点的距离可以与阈值距离进行比较。或者,如果该神经网络结合检测的人脸图像生成了姿态角,则该评估姿态角的绝对值的和可以与该阈值角进行比较。在这两种情况下,当最近计算的姿态度量值低于对应的阈值的情况下,最近计算的该被跟踪的人的姿态度量值可以被认为是“足够好”,并且该被跟踪的人的对应人脸图像可以被传送至该服务器。在这些实施例中,为了避免同一个人的人脸被重复传送,在确定该被跟踪的人脸已经从视频中消失之后,仅当“足够好”的人脸图像未被提交到控制中心或者服务器时,才将该人的已确定的最佳姿态传送至该控制中心或服务器。
[0058] 人脸跟踪
[0059] 在人脸检测和跟踪子系统200中,为了找到每个被跟踪人的最佳姿态,有必要从该人一开始被检测到进入视频起,一直到确定该人已经从视频中消失的整个过程中,跟踪该已捕捉视频中每一帧中该被跟踪的人的位置。
[0060] 在一些实施例中,将该基于CNN的人脸检测模块206和人脸姿态评估模块208应用于该已捕捉视频202中的每一帧。换言之,该子系统200中的运动检测模块204的输入包括该已捕捉视频202的每一帧。这对于高性能嵌入式视觉系统100或者当该已捕捉视频帧速率非常低的情况下是可行的。在这些实施例中,该人脸检测和跟踪子系统200针对该已捕捉视频202的每一帧,生成一组检测人脸以及对应的边界框坐标。利用来自于该序列视频帧的人脸检测信息,人脸跟踪模块212可以执行单人脸跟踪或者顺序地执行多脸跟踪。例如,已捕捉视频202仅包括单个人,则基于该已处理视频帧的人脸跟踪仅涉及确定该被跟踪人脸何时从该视频中消失。
[0061] 如果已捕捉视频202包括多个人,则该人脸跟踪模块212需要执行多脸跟踪,同时跟踪该多个人。在一实施例中,起初可以单个视频帧内检测多个人。在另一实施例中,由于多个人在不同的时间点进入该视频,因此可以在多个视频帧中分别检测该多个人。在一些实施例中,在对多个人进行检测和标注之后,该人脸跟踪模块212执行多脸跟踪,从而通过将先前视频帧中的一组标注边界框与最近处理的视频帧中识别的边界框进行匹配,进而跟踪检测到的该多个人。在一实施例中,可以利用匈牙利算法将该先前视频帧中的一组标注边界框与该最近处理的视频帧中识别的边界框进行关联。例如,可以构建先前视频帧中的边界框与最新处理视频帧中边界框之间的相似矩阵,其中每个矩阵元素用于衡量先前视频帧中的给定边界框与最新处理视频帧中边界框之间的匹配分数。可以采用不同的参数计算该匹配分数,其中一种参数为一对边界框之间的交并比。为了将两个连续的视频帧的边界框关联起来,可以采用其他数据关联的技术替代该匈牙利算法,并且生成的用于数据关联的CNN特征也可以采用边界框之外的特征。例如,为了提高人脸关联性能,可以考虑一些低成本人脸特征,例如人脸尺寸、纵横比、LBP、HOG、颜色直方图等。
[0062] 图3显示了根据本申请一些实施,在嵌入式视觉系统内执行实时人脸检测、人脸姿态评估和人脸跟踪的示例性过程300的流程图。该过程300一开始在已捕捉视频的一序列视频帧中接收视频图像(步骤302)。在一些实施例中,该嵌入式视觉系统包括监控摄像系统、机器视觉系统、自驾车和移动手机。接下来,该过程300在该视频图像上执行人脸检测操作,以在该视频图像中检测一组人脸(步骤304)。在一些实施例中,步骤304包括:采用上文描述的运动检测模块在该视频图像中识别一组移动区域,并针对该组已识别移动区域中的每一个移动区域,应用基于CNN人脸检测技术以检测该移动区域是否包括人脸。在一些实施例中,该原始视频图像内的边界框用来限定每一个检测人脸图像。
[0063] 接下来,过程300基于该检测人脸确定新人已经进入到该视频内(步骤306)。例如,该过程300可以对紧接的先前视频图像的一组标注检测人脸和当前视频图像中的一组未标注检测人脸执行人脸关联操作。该过程随后将未与先前检测人脸相关联的每个检测人脸确定为新人。接下来,过程300在该已捕捉视频中的后续视频图像中跟踪该新人(步骤308)。例如,过程300可以检测该新人在后续的视频图像中的一序列新位置。对于包含该新人的后续所有新位置的视频图像中,过程300均计算在该新位置,该新人的检测人脸的人脸姿态;并且上传该新人的最佳姿态。
[0064] 接下来,过程300检测该被跟踪新人是否已经从该视频中消失(步骤310)。图4显示了根据本申请一些实施例,用于检测被跟踪的人是否已经从视频中消失的示例性过程400的流程图。该过程一开始确定该检测的人在当前视频帧中不具有对应的检测人脸(步骤402)。在一些实施例中,步骤402包括:在当前视频帧的预测新位置及其周围未检测到该被跟踪的人。接下来,该过程检测在当前视频帧对应位置处是否具有与该被跟踪的人对应的人脸,其中该对应位置为当前视频帧的前一个视频帧中该被跟踪的人的检测人脸的位置(步骤404)。如果具有,则该过程确定该被跟踪的人未移动并且具有一张静止的人脸(步骤
406)。否则,该过程确定该被跟踪的人脸的确已从该视频中消失(步骤408)。
[0065] 回到图3,如果在步骤310中确定该被跟踪的新人已经从该视频中消失,则过程300随后将该被跟踪的新人对应于已确定最佳姿态的检测人脸图像发送至服务器(步骤312)。需要说明,不需要发送所有的被跟踪人脸,而只需要传送对应于该最佳姿态的人脸图像,这显著降低了对网络带宽和存储空间的要求。否则,如果该被跟踪新人依然在该视频中,则过程300在后续视频图像中继续跟踪该人,并且更新该人的最佳姿态(步骤314)。
[0066] 上文讨论的假定前提是该基于CNN的人脸检测模块206和人脸姿态评估模块208可应用于该已捕捉视频202的每个视频帧。然而,由于该嵌入式系统的资源和性能限制,在一些实施例中,该嵌入式视觉系统100采用CNN模块处理每个视频帧是不现实的。此外,为了降低计算复杂度并提高实时视频处理速度,该基于CNN的人脸检测模块206和人脸姿态评估模块208不一定要应用到每个视频帧。在一些实施例中,运动检测模块204仅接收该已捕捉视频帧的子集,例如每N个视频帧接收一个视频帧;同样地,基于CNN的人脸检测模块206和人脸姿态评估模块208可仅应用于视频帧的子集。图5显示了根据本申请一些实施例,已捕捉的视频帧序列502及对应的已处理视频帧子集504。在图中所示的实施例中,每4个视频帧中仅1个视频帧用于处理人脸检测和人脸姿态评估(N=4)。因此,每两个被处理视频帧中间的那些视频帧不具有与其相关的跟踪信息。
[0067] 然而,有必要对该CNN模块未处理的“中间”视频帧执行人脸检测和人脸跟踪。例如,在被跟踪人脸的边界框被连续地显示在监控器的应用中,需要为这些中间帧生成边界框,否则该边界框的显示会一直闪烁。此外,当N很大时,由于多个被跟踪的人会发生非常大量的移动,因此采用该人脸相关技术从一个被处理的视频帧504到下一个被处理的视频帧504中跟踪多个人变得更加困难。在这种情形下,会再需要对这些“中间”视频帧执行人脸跟踪。
[0068] 在一些实施例中,人脸跟踪模块212可用于定位和标注该中间视频帧内的被跟踪人脸,而无需应用人脸检测模块206。在一些实施例中,人脸跟踪模块212用于基于该被跟踪人脸在该已处理帧(例如帧1)的确定位置,确定在紧跟该已处理帧504(例如帧1)之后的未处理视频帧(例如帧2)内的每个被跟踪人脸的位置。例如,图6显示了根据本申请一些实施例,基于已处理视频帧执行未处理视频帧的人脸检测和跟踪的示例性过程600的流程图。在一些实施例中,示例性过程600在人脸跟踪模块212上实现。
[0069] 对于已处理视频帧中的每个检测人脸,过程600将该检测人脸的对应边界框定位为参考框,并将该边界框内的检测人脸图像定位为搜索块(步骤602)。接下来,在后续的未处理视频帧中,过程600在该未处理视频帧中以该参考框的同一位置为中心的具有预定义尺寸的搜索窗内进行检测(步骤604)。更具体地,可以在该该搜索窗内对多个具有参考框尺寸的多个位置(例如64个不同的位置)进行搜索。在该搜索窗内的每个搜索位置处,将该搜索块与该参考框内的图像块进行比较(步骤606)。因此,过程600在该搜索块和对应图像块最佳匹配的搜索位置处,确定该未处理视频帧中相同的检测人脸(步骤608)。需要说明,只要该未处理视频帧内的搜索窗足够大并且两个连续帧(假定无极限移动)之间中该检测人脸的位置不产生较大的变化,则直接搜索技术足以精确地定位该检测人脸在该未处理视频帧的位置,而无需采用神经网络,无论该检测人脸的移动是线性的或者非线性的。接下来,过程600可以将对应的边界框置入被确定为最佳匹配的搜索位置,从而在该未处理视频帧中确定该检测人脸的新位置(步骤610)。需要说明,在将过程600应用于一给定未处理视频帧(例如图5中的帧2)之后,可以基于最新已处理视频帧(例如帧2)内的检测人脸,对紧接该最新已处理视频帧之后的其他未处理视频帧(例如图5中的帧3‑4)重复执行过程600。
[0070] 在一项实施例中,过程600通过计算该该搜索块和该被比较的图像块之间的相似度分数将该搜索块与该搜索窗内给定搜索位置处的图像块进行比较。在一些实施例中,该搜索块与该图像块之间的相似度可以简单计算为该搜索块和该图像块之间的差值。
[0071] 在一些实施例中,为了加快上文描述的搜索过程,人脸跟踪模块212基于采用该已处理视频图像中的参考位置和该检测人脸的预测运动,预测每个检测人脸在未处理视频帧中的新位置。更具体地,对于已处理视频帧(如图5中的帧#5)中的每个检测人脸,人脸跟踪模块212首先预测该检测人脸在该未处理视频帧(例如图5中的帧#6)中的估计位置。在这些实施例中,首先基于该检测人脸在先前已处理视频帧内的多个人脸位置预测该检测人脸的移动(例如轨迹和速度)。例如,在图5所描述的已获取视频帧502中,在帧#1和帧#5中的检测人脸位置可用于预测帧#6‑帧#8中该检测人脸的新位置。需要说明,该移动的预测可包括线性预测和非线性的预测。在线性预测中,可以预测该移动的轨迹和速度。对于非线性预测,可以采用卡尔曼滤波器方法。
[0072] 接下来,对于该已处理视频帧中的每个检测人脸,人脸跟踪模块212采用对应的搜索块在该未处理视频帧中搜索该检测人脸的估计新位置(即该搜索位置)。需要说明,由于该估计位置的精确度提高,因此人脸跟踪模块212不需要在该估计位置附近的很多位置进行搜索。对于以该估计位置为中心的每个搜索位置,将该搜索块与该搜索块内的图像块进行比较。因此,在该搜索块和对应图像块最佳匹配的搜索位置处,确定该未处理视频帧中相同的检测人脸。作为上述过程的变型,人脸跟踪模块212可直接将先前帧中检测人脸的边界框用来估计该未处理视频帧的估计位置,并将该边界框内估计位置处的图像块作为该未处理视频帧内的检测人脸的图像块。
[0073] 为了进一步降低计算复杂度并加快人脸跟踪过程,可以采用运动检测模块204对降采样/低分辨率版本的该序列帧进行运动检测,这可以通过很多标准人脸检测方案实现。其中一个用于生成降采样版本的输入视频帧并在该图像内执行人脸检测的方法在美国专利申请15/657,109(申请日2017年7月21日,发明名称:采用嵌入式系统中的小规模卷积神经网络模块的人脸检测)中有所描述,其内容以引用形式被并入本申请。
[0074] 低帧处理率下的人脸跟踪
[0075] 如上所述,由于多级CNN操作,将人脸检测模块206和人脸姿态评估模块208应用于每个输入视频帧将需要大量的计算。对于以高帧率捕捉图像的嵌入式系统,在已捕捉视频图像中执行实时人脸检测和人脸姿态评估将变得相当困难。当捕捉到新的视频帧时,一些低端嵌入式视频系统如果处理速度不能满足该高输入帧率,就不可以处理输入视频帧。在这些情况下,一些嵌入式系统只能对视频帧的子集执行基于CNN的人脸检测和人脸姿态评估,例如,每N个输入视频帧中选取一个输入视频帧(例如N=4)。因此,未对这些未处理或者“中间”视频帧进行人脸检测和人脸姿态评估。在该系统中,人脸跟踪性能比较差并且被跟踪的人脸容易丢失。
[0076] 为了解决这一问题,一种方法是利用前两个或多个已处理视频帧中确定的人脸位置预测紧接该两个或多个已处理视频帧中最后一个视频帧之后的未处理帧的人脸位置,从而实现该预测。例如,在图5所描述的示例中,已处理的帧1和5可用于预测帧6‑8的人脸位置。在另一实例中,已处理帧1、5和9可用于预测帧10‑12的人脸位置。在一些实施例中,用于未处理帧的人脸位置预测可以包括采用线性预测或者是如卡尔曼滤波器方法的更复杂的方案。
[0077] 另一种解决该低帧处理率问题的方法采用运动估计,在一个或多个后续的未处理视频帧中搜索先前的已处理帧中每个检测人脸的新位置。再次以图5为例,假定将基于CNN的人脸检测模块206和人脸姿态评估模块208应用于帧1和帧5,由于这两个帧之间具有较大的间隔,直接将帧1中的标注与帧5中的检测人脸进行关联是比较困难的。在一些实施例中,上文结合图6描述的搜索和标注过程可以递归应用于帧1直至帧5。更具体地,利用帧1检测并标注的人脸,在帧2中中搜索对应的人脸,并且将帧2中重复出现的人脸进行标注。接下来,以帧2中检测并标注的人脸为参考,对帧3中的人脸进行搜索和标注,以此往复。最终,基于来自帧1的初始人脸检测信息,对帧4中的人脸进行搜索和标注。接下来,采用其中一项人脸关联技术,利用帧4中已经标注的人脸对帧5中先前检测人脸进行标注。
[0078] 在一特定的例子中,该基于CNN的人脸检测模块206和人脸姿态评估模块208可以每隔一个的方式应用于视频帧中,例如帧1、帧3、帧5、帧7等(即,N=2)。可利用其中一项人脸关联技术对该CNN处理过的帧进行标注,该人脸关联技术例如为上文提到的交并比(IoU)技术。接下来,对于每一个未被处理的中间视频帧(例如帧2),可以通过在紧接之前和紧接之后的已处理视频帧(帧1和帧3)中插入被跟踪人脸的对应位置,简单地确定每个被跟踪人脸的位置。需要说明,上述技术可以很容易地被扩展到基于CNN的人脸检测模块206和人脸姿态评估模块208应用于三视频帧选一帧(即N=3)的场景中去。
[0079] 静止人脸的检测
[0080] 如上文所描述的,如果假定在已捕捉视频中检测的人是一直移动的,并且移动检测操作仅通过对移动区域进行提取和处理的方式对该视频帧进行预处理,则当该人在该视频图像中的某一点停止时,该人的脸无法在后续的视频帧中被检测到。需要说明,如果将该运动检测模块204从人脸检测和跟踪子系统200中除去,并且整个输入视频图像均由后续模块处理,则该问题不再存在。上文已结合图4对停止移动的人的检测技术进行了描述。只要该人继续保持静止,该技术还用于在该人再次开始移动之前继续在更多视频帧中监控该停止移动的人。然后,可以将上文描述的人脸跟踪技术再次应用于运动中的人。
[0081] 显示高帧率
[0082] 很多监控系统包括视频预览特征,该特征可使控制中心对每个摄像头捕捉的视频进行实时预览。然而,由于一些在嵌入式视觉系统100中实现的低成本的基于CNN的人脸检测模块206不能够以高帧率(例如每秒30帧(30fps)的视频捕捉率)运行,由于帧率的明显降低,仅显示已处理帧及相关检测人脸边界框的子集会导致视觉质量非常不佳。
[0083] 在一些实施例中,为了提高预览模式的视觉质量,本申请公开的技术通过在显示中引入延迟生成高帧率显示。再次以图5为例,每4个帧对该输入视频序列处理一次。为了显示该已捕捉视频,该显示首先延迟4帧,显示第一个已处理帧,然后显示下面三个未被处理的帧2‑4。接下来,显示已处理帧5,然后显示下面三个未被处理的帧6‑8,并且该过程以此往复。虽然并非所有显示的帧都显示该检测人脸的边界框,但是显示视频可以以初始帧率播放,并且可以与初始视频一样流畅。需要说明,上文描述的4帧的延迟506仅为示例性的。可以基于所需处理时间确定延迟506,并且该延迟被设定为大于确定的处理延迟。
[0084] 图7示出了根据本申请一些实施例中,用于实现本申请公开的嵌入式视觉系统的示例性客户‑服务器网络环境。网络环境700包括数个通过网络708通信连接至服务器710的嵌入式视觉系统702、704和706。一个或多个远程服务器720与该服务器710和/或一个或多个嵌入式视觉系统702、704和706连接。
[0085] 在一些示例性实施例中,嵌入式视觉系统702、704和706可包括监控摄像头系统、机器视觉系统、无人机、机器人、无人驾驶车、智能手机、PDA、便携式媒体播放器、笔记本电脑或其他与一个或多个数字摄像头集成的嵌入式系统。在一个示例中,每一个嵌入式视觉系统702、704和706均包括一个或多个摄像头、CPU、DSP以及一个或多个小规模CNN模块。
[0086] 服务器710包括处理装置712和人脸数据库714。处理装置712用于执行程序,从而基于人脸数据库714中存储的人脸信息对从该嵌入式视觉系统702、704和706接收到人脸图像进行人脸分析。处理装置712还用于将已处理的人脸图像存储入人脸数据库714。
[0087] 在一些示例中,服务器710可以是单个计算装置,如计算机服务器。在其他实施例中,服务器710可以表示不止一个协同工作的计算装置,该计算装置执行服务器计算机的行为(例如云计算)。该服务器710可运行网络服务器,其中该网络服务器通过网络708与客户端装置(例如嵌入式视觉系统702、704和706)中的浏览器通信连接。在其中一个示例中,该服务器710可运行客户端应用程序,从而在服务调度过程中调度客户器提供者和客户端之间的客户启动服务以及服务器提供者启动服务。服务器710还可以通过网络708或者其他网络或通信途经与一个或多个远程服务器720建立通信。
[0088] 该一个或多个远程服务器720可单独或者结合服务器710实现该服务器710的上述多种功能以及/或者存储容量。该一个或多个远程服务器720中的每个服务器可以发起多项服务。例如,远程服务器720发起的服务包括:提供与一个或多个建议位置相关的信息,该信息例如为与建议位置相关的网页界面或网站;确定一个或多个用户或企业的位置、用户查询识别搜索引擎、一个或多个用户评论或者查询服务;或者提供关于一个或多个企业、消费者以及/或者关于该企业的查询或反馈的一个或多个其他服务。
[0089] 服务器710还可以维护架设在一个或多个远程服务器上的社交网络服务,或者与该社交网络服务建立通信。该一个或多个社交网络服务可提供多项服务,并且可使用户创建文件并将其自身与该远程社交网络服务内的其他用户发生关联。该服务器710以及/或者该一个或多个远程服务器720还可以协助生成并维护社交图谱,该社交图谱包括用户创建的关联。该社交图谱例如可包括该远程社交网络服务的所有用户的列表,以及每个用户与该该远程社交网络服务中其他用户的关联。
[0090] 该一个或多个远程服务器720中的每个服务器可以是单个计算装置,如计算机服务器,或者可以表示不止一个协同工作的计算装置,该计算装置执行服务器计算机的行为(例如云计算)。在一实施例中,服务器710和该一个或多个远程服务器720可以由单个服务器实现,或者由多个服务器合作实现。在一示例中,该服务器710和该一个或多个远程服务器720可通过网络708并经由该客户端装置(例如嵌入式视觉系统702、704和706)处的用户代理建立通信。
[0091] 利用安装在该嵌入式视觉系统702、704和706中的客户应用程序,嵌入式视觉系统702、704和706的用户可与架设在服务器710中的系统以及/或者架设在远程服务器720中的一个或多个服务进行交互。或者,用户可以通过该嵌入式视觉系统702、704和706中的基于网络的浏览器应用程序与该系统和该一个或多个社交网络服务进行交互。可通过网络(例如网络708)改进嵌入式视觉系统702、704和706与该系统和/或一个或多个服务之间的通信。
[0092] 可以通过多种通信协议促进嵌入式视觉系统702、704和706和服务器710和/或一个或多个远程服务器720之间的通信。从一些方面,嵌入式视觉系统702、704和706和服务器710和/或一个或多个远程服务器720之间的通信可以通过通信接口(未示出)建立无线通信,如果必要,该通信接口包括数字信号处理电路。该通信接口可提供多种模式或协议下的通信,包括全球系统移动通信(GSM)语音电话、短讯服务(SMS)、增强型消息业务(EMS),或多媒体消息业务(MMS)发送、码分多址(CDMA)、时分多址(TDMA)、个人数字蜂窝(PDC)、宽带码分多址(WCDMA)、CDMA2000,或者通用分组无线业务(GPRS)等。例如,可通过射频收发器(未示出)实现通信。此外,可采用蓝牙、WiFi或者其他收发器实现短距离通信。
[0093] 网络708例如可包括个人局域网络(PAN)、本地局域网(LAN)、校域网(CAN)、城域网(MAN)、广域网(WAN)、宽带网络(BNN)、因特网等。此外,该网络708包括但不限于下述网络拓扑结构中的一项或多项:总线网络、星形网络、环形网络、网状网络、星形总线网络、树状或分级网络等。
[0094] 这里所公开的各实施例所描述的各种说明性逻辑块、模块,电路、以及算法步骤,可以作为电子硬件、计算机软件或两者的组合来实现。为清楚地显示硬件和软件的此互换性,上文已经一般就其功能而言描述了各种说明性组件、单元、模块、电路,以及步骤。此类功能集是被实现为硬件还是软件取决于具体应用和整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能集,但此类设计决策不应被解释为能够脱离本公开的范围。
[0095] 用于实现与本文所公开的各方面一起所描述的各种说明性逻辑、逻辑块、模块、以及电路的硬件可以与通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)或其他可编程逻辑器件,单独的栅极或晶体管逻辑、单独的硬件组件,或被设计为执行本文所描述的功能的其任何组合,来实现或执行。通用处理器可以是微处理器,但是在备选方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以作为接收器装置的组合来实现,例如,DSP和微处理器的组合、多个微处理器、和DSP核一起的一个或多个微处理器,或任何其他这样的配置。可另选地,一些步骤或方法可以由给定功能特定的电路来执行。
[0096] 在一个或更多示例性方面,所描述的功能可以以硬件、软件、固件,或其任何组合来实现。如果以软件来实现,则功能可以作为一个或多个指令或代码存储在非暂态的计算机可读取的存储介质上或非暂态的处理器可读取的存储介质上。本文所公开的方法或算法的步骤可以以能够驻留在非暂态的计算机可读取的或处理器可读取的存储介质上的处理器可执行指令来具体化。非暂态的计算机可读取的或处理器可读取的存储介质可以是能够被计算机或处理器访问的任何存储介质。作为示例但不作为限制,这样的非暂态的计算机可读取的或处理器可读取的存储介质可包括RAM、ROM、EEPROM、闪存、CD‑ROM或其他光盘存储器、磁盘存储器或其他磁存储装置,或可以用来存储指令或数据结构形式的所需要的程序代码并可以被计算机访问的任何其他介质。如本文所使用的磁盘和光盘包括压缩光盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘,以及蓝光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述各项的组合也包括在非暂态的计算机可读取的和处理器可读取的介质的范围内。另外,方法或算法的操作可以作为一个代码和/或指令或代码和/或指令的任何组合或组,驻留在非暂态的处理器可读取的存储介质和/或计算机可读取的存储介质上,存储介质可以被包括到计算机程序产品中。
[0097] 尽管本专利文件包含许多细节,但是,这些不应该被解释为对任何所公开的技术的或要求保护的东西的范围的限制,而是作为对特定的技术的特定实施例的特定的特征的描述。在本专利文件中在单独的实施例的上下文中所描述的某些特征也可以在单一实施例中组合地实现。相反,在单一实施例的上下文中所描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,虽然特征在上文可以被描述为以某些组合地起作用,甚至最初要求如此,来自要求保护的组合的一个或多个特征可以在某些情况下从组合中删除,要求保护的组合可以被定向到子组合或子组合的变体。
[0098] 类似地,尽管操作在附图中是按特定顺序描绘的,但是,这不应该被理解为要求这样的操作以所示出的特定顺序或按先后顺序执行,或所有所示出的操作都被执行,以实现所需要的结果。此外,在本专利文件中所描述的各实施例中的各种系统组件的分离不应该被理解为在所有实施例中都要求这样的分离。
[0099] 本专利文件只描述了几个实现和示例,可以基于在本专利文件中所描述的和示出的内容作出其他实现、增强和变化。