一种人脸检测的方法与设备转让专利

申请号 : CN202010314652.8

文献号 : CN111209903B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李生金侯晓辉

申请人 : 亮风台(上海)信息科技有限公司

摘要 :

本申请的目的是提供一种人脸检测的方法与设备,根据本申请的方案,通过对于每个特征提取层对应的特征图中的每个锚点,判断该锚点在所述目标图像中对应的多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定的匹配度阈值的预设框,能够过滤不需要检测区域,例如已检测或跟踪到的人脸框,使得不需要检测区域不参与人脸检测的运算,避免重复计算,降低计算量;进一步地,本申请在较靠前的特征提取层对应的特征图上采集小尺度的预设框,因而可以检测到更小的人脸,增加小人脸检测的敏感性和准确性。

权利要求 :

1.一种人脸检测的方法,其中,所述方法包括:

确定目标图像的感兴趣区域;

将所述目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;

所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与所述感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点,放弃该锚点的所有进一步检测操作;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;

所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。

2.根据权利要求1所述的方法,其中,所述方法还包括:

将多个训练样本及对应的标签信息输入待训练的人脸检测网络进行迭代训练,其中,所述待训练的人脸检测网络包括待训练的主干网络及多任务损失层,所述多任务损失层包括分类损失函数和回归损失函数。

3.根据权利要求2所述的方法,其中,将多个训练样本及对应的标签信息输入待训练的人脸检测网络进行迭代训练,包括:对于每个训练样本,所述待训练的主干网络获取该训练样本在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述主干网络对该锚点执行卷积核大小为1*1的卷积运算,获得该锚点对应的一个或多个人脸框偏移量;

所述多任务损失层基于该一个或多个人脸框偏移量、该训练样本对应的标签信息进行迭代训练。

4.根据权利要求1至3中任一项所述的方法,其中,所述一个或多个特征提取层中包括位于所述多个卷积模块中的预定层级之前的至少一个卷积模块。

5.根据权利要求1所述的方法,其中,所述确定所述目标图像的感兴趣区域,包括:对所述目标图像对应的视频帧执行跟踪算法,获得所述目标图像对应的跟踪结果,并将所述跟踪结果在所述目标图像中对应的区域确定为所述目标图像的感兴趣区域。

6.根据权利要求1所述的方法,其中,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框,还包括:对于该锚点在所述目标图像中的一个或多个预设框,所述筛选层获得该预设框与感兴趣区域之间的重叠度和/或相似度,根据所述重叠度和/或相似度确定该预设框与感兴趣区域之间的匹配度。

7.根据权利要求1所述的方法,其中,所述主干网络获得该锚点对应的一个或多个人脸框偏移量,包括:所述主干网络对该锚点执行卷积核大小为1*1的卷积运算,获得该锚点对应的一个或多个人脸框偏移量。

8.根据权利要求1所述的方法,其中,所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,包括:对于每个剩余锚点,所述检测层在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,并对所述目标人脸框偏移量和该剩余锚点在目标图像上的预设框位置执行转化操作,获得该剩余锚点在所述目标图像中对应的人脸框。

9.根据权利要求8所述的方法,其中,所述检测层在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,包括:所述检测层在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,其中,所述目标人脸框偏移量对应的置信度大于或等于其它人脸框偏移量对应的置信度。

10.根据权利要求1所述的方法,其中,所述根据所获得的所有人脸框确定所述目标图像中的目标人脸框,包括:对所获得的所有人脸框执行非极大值抑制,确定所述目标图像中的目标人脸框。

11.一种人脸检测的计算机设备,其中,所述计算机设备包括:

一四模块,用于确定目标图像的感兴趣区域;

一一模块,用于将所述目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;

一二模块,用于所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与所述感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点,放弃该锚点的所有进一步检测操作;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;

一三模块,用于所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。

12.一种人脸检测的设备,其中,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至10中任一项所述的方法。

13.一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如权利要求1至10中任一项所述方法的操作。

说明书 :

一种人脸检测的方法与设备

技术领域

[0001] 本申请涉及通信领域,尤其涉及一种用于人脸检测的技术。

背景技术

[0002] 人脸检测是在公共安全领域中的基础需求,而现有的人脸检测算法主要包括传统的人脸检测方法和基于深度学习的人脸检测方法。传统的人脸检测方法准确率和算法的适应能力比基于深度神经网络的人脸检测方法差,而基于深度学习的人脸检测方法,一般堆叠多个卷积模块,导致计算量大,无法检测到小目标,且很难在资源受限的嵌入式设备上实现实时的人脸检测。

发明内容

[0003] 本申请的一个目的是提供一种人脸检测的方法与设备。
[0004] 根据本申请的一个方面,提供了一种人脸检测的方法,该方法包括:
[0005] 将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;
[0006] 所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;
[0007] 所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0008] 根据本申请的一个方面,提供了一种人脸检测的计算机设备,该计算机设备包括:
[0009] 一一模块,用于将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;
[0010] 一二模块,用于所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;
[0011] 一三模块,用于所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0012] 根据本申请的一个方面,提供了一种人脸检测的设备,其中,该设备包括:
[0013] 处理器;以及
[0014] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如下操作:
[0015] 将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;
[0016] 所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;
[0017] 所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0018] 根据本申请的一个方面,提供了一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如下操作:
[0019] 将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;
[0020] 所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;
[0021] 所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0022] 与现有技术相比,本申请提供一种用于人脸检测的轻量级深度神经网络,通过对于每个特征提取层对应的特征图中的每个锚点,判断该锚点在所述目标图像中对应的多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定的匹配度阈值的预设框,能够过滤不需要检测区域,例如已检测或跟踪到的人脸框,使得不需要检测区域不参与人脸检测的运算,避免重复计算,降低计算量;进一步地,本申请在较靠前的特征提取层对应的特征图上采集小尺度的预设框,因而可以检测到更小的人脸,增加小人脸检测的敏感性和准确性。

附图说明

[0023] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0024] 图1示出根据本申请一个实施例的一种人脸检测的方法流程图;
[0025] 图2示出根据本申请一个示例的人脸检测网络的结构示意图;
[0026] 图3示出模块(block)的一个单元结构图;
[0027] 图4示出模块(block)的另一个单元结构图;
[0028] 图5示出根据本申请一个实施例的一种人脸检测的计算机设备结构图;
[0029] 图6示出可被用于实施本申请中所述的各个实施例的示例性系统;
[0030] 图7示出根据本申请一个示例的人脸检测网络中的主干网络对应的各项参数图。

具体实施方式

[0031] 下面结合附图对本申请作进一步详细描述。
[0032]  在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(Central Processing Unit,CPU))、输入/输出接口、网络接口和内存。
[0033] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(Random Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash Memory)。内存是计算机可读介质的示例。
[0034]  计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PCM)、可编程随机存取存储器(ProgrammableRandom Access Memory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器 (Dynamic Random Access Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (Electrically-Erasable Programmable Read-Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc  ,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0035]  本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如Android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
[0036] 当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0037] 在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
[0038] 图1示出了根据本申请一个实施例的一种人脸检测的方法流程图,该方法包括步骤S11、步骤S12和步骤S13。在步骤S11中,将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;在步骤S12中,所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;在步骤S13中,所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0039]  在步骤S11中,将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层。在一些实施例中,人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果含有人脸则返回人脸在图像中的位置。在一些实施例中,卷积模块可以是只包括一种类型的一个处理层,例如,只包括一个卷积层或一个池化层或一个全连接层或其它操作层;又如,卷积模块可以是包括一种类型的多个处理层,例如,包括多个卷积层或多个池化层或多个全连接层或多个其它操作层;还如,卷积模块也可以是包括多种类型的多个处理层,即包括两个及以上不同类型的处理层堆叠而成,如,一个或多个卷积层和一个或多个池化层堆叠而成,又如,一个或多个卷积层和一个或多个全连接层堆叠而成,又如,一个或多个卷积层和一个或多个池化层和一个或多个其它操作层等堆叠而成,等等。在一些实施例中,可选地,卷积模块中的卷积层可以是普通的卷积操作层,也可以是膨胀/空洞卷积层(dilated convolution),用于对目标图像进行0填充,从而在不通过池化的前提下获得较大的视野,并减小信息损失,让每个卷积层的输出都包含较大范围的信息。在一些实施例中,多个卷积模块中至少包括一个特征提取层,其中,特征提取层可以是卷积模块中的任意一个处理层,如可以是卷积层,或池化层,或全连接层,或其它操作层等等,特征提取层用于获取目标图像在每个特征提取层输出的特征图。
[0040]  在步骤S12中,所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量。在一些实施例中,目标图像在特征提取层对应输出的特征图中的每个特征点对应的位置(x,y)记为锚点,即锚点与特征点对应。在一些实施例中,目标图像在特征提取层对应输出的特征图中的每个特征点记为锚点。本领域技术人员能够理解,当特征提取层对应输出的特征图为多个时,则锚点可以对应多个特征图中的特征向量,其中,特征向量由多个特征图中同一位置的特征点组成。通过设定锚点对应的预设框的纵横比和尺度来确定特征图上锚点对应到目标图像的预设框。需要注意的是,上述两种锚点的定义均表示锚点与特征点/特征向量对应,下文侧重于以第二种解释进行介绍,但本领域技术人员应当理解,同样适用于第一种解释。如果某个锚点在目标图像中对应的一个或多个不同大小和纵横比的预设框中只要存在一个与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框,就在特征图上去除该锚点,即放弃特征图上该特征点上的所有进一步检测操作,该特征点不参与后续的检测计算。其中,可以根据预设框与感兴趣区域的重叠度(例如,Intersection over Union(IOU))或相似度(例如,向量相似度)来确定预设框与感兴趣区域的匹配度。在一些实施例中,感兴趣区域可以是用户指定的目标图像中的任意区域,例如,通过固定摄像头拍摄的目标图像,只有一部分画面是可能会出现人脸,拍摄的另一部分画面不会出现人脸,所以可以将不会出现人脸的那部分区域作为感兴趣区域。在一些实施例中,感兴趣区域还可以是对目标图像所对应的视频帧执行跟踪算法的结果,例如可以将目标图像上跟踪结果的对应区域作为感兴趣区域。在一些实施例中,锚点在所述目标图像中对应的一个或多个预设框中存在与感兴趣区域的匹配度大于或等于预定的匹配度阈值的预设框,则不参与后续人脸检测的运算,这种方法能够过滤不需要检测区域,例如已检测或跟踪到的人脸框,使得不需要检测区域不参与人脸检测的运算,可以避免重复计算,从而降低计算量。在一些实施例中,预设特征图上每个锚点对应目标图像中一个或多个不同大小和纵横比的预设框,当特征图和预设框的大小、纵横比确定之后,特征图上每个锚点在目标图像中的预设框即可确定下来,具体地,锚点对应的特征点映射回目标图像对应一个区域,根据该区域的中心和预设大小和纵横比,来确定目标图像中的预设框。优选地,由于人脸的特性,可以将预设框设为大小不同的正方形,即不同大小的预设框的纵横(长宽)比例均为1:1,不存在其它纵横比例的预设框,因此对人脸检测更具针对性,然后通过加强对特征图的采样密度,从而增加对小人脸检测的准确性。在一些实施例中,经筛选层判断在所述目标图像中对应的一个或多个预设框中不存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框的特征提取层的锚点称为剩余锚点,对于特征图上的剩余锚点,主干网络获得该锚点对应的一个或多个人脸框偏移量,其中,获取人脸框偏移量的具体方式可以是针对每个剩余锚点执行卷积运算,得到该剩余锚点在目标图像上对应的一个或多个人脸框偏移量以及每个人脸框偏移量对应的置信度,其中,所述针对每个剩余锚点执行卷积运算,包括两种含义:当剩余锚点为特征图上的特征点时,则表示该特征点进行卷积运算,当剩余锚点为特征图上的特征点对应的位置(x,y)时,则表示该位置(x,y)对应的特征点进行卷积运算,下文不再赘述。其中,所述针对每个剩余锚点执行卷积运算,可以采用任意大小的卷积核,例如X×X,或者,X×Y此处不作限定。优选地,在一些实施例中,对于每个剩余锚点,使用1×1大小的卷积核对该锚点进行卷积,获取该剩余锚点在目标图像中对应的一个或多个人脸框偏移量,这是因为1×1大小的卷积可以降低计算量,同时在抛弃不符合条件的锚点时,不用考虑该锚点所在特征图的X×Y或者X×X邻域信息,从而可以简化计算。在一些实施例中,人脸框偏移量包括X方向的偏移量,Y方向的偏移量,宽度和高度的偏移量,可以记为l=(lcx,lcy,lw,lh)。
[0041] 在步骤S13中,所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。在一些实施例中,检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,以及该剩余锚点在目标图像中的预设框位置,可以获得该剩余锚点在所述目标图像中对应的一个或多个人脸框,并进一步根据所有剩余锚点所获得的所有人脸框确定所述目标图像中的目标人脸框。在一些实施例中,所述根据所获得的所有人脸框确定所述目标图像中的目标人脸框,可以通过非极大值抑制的方法,非极大值抑制可以消除多余(交叉重复)的人脸框,找到最佳的人脸框,对于有相交的就选取其中置信度最高的一个人脸框作为目标人脸框,对于没相交的就直接保留下来,作为目标人脸框。还可以通过其它方法,例如,选取该若干个人脸框的交集,即公共区域作为最后的目标人脸框。又例如,还可以选取好多人脸框的并集,即所有人脸框的最小外截矩作为目标人脸框,需要说明的是,这里也不是只要相交就直接取并集,需要相交的人脸框满足交集占其中最小框的面积达到一定比例阈值才合并。这是因为,对于所有剩余锚点对应的目标图像上的所有人脸框是可能存在重叠的人脸框,因此需要进一步处理,去除重复的人脸框,最终得到目标图像上的含有人脸的一个或多个目标人脸框的位置。在一些实施例中,在每个剩余锚点对应的一个或多个人脸框偏移量中确定目标人脸框偏移量(例如,挑选置信度最大的人脸框偏移量作为目标人脸框偏移量),有利于减少计算量。然后对目标人脸框偏移量和该目标人脸框偏移量对应的剩余锚点在目标图像上的预设框位置执行转化操作,获得该锚点在目标图像中对应的一个人脸框,然后根据所有剩余锚点所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0042] 在一些实施例中,所述方法还包括:将多个训练样本及对应的标签信息输入待训练的人脸检测网络进行迭代训练,其中,所述待训练的人脸检测网络包括待训练的主干网络及多任务损失层,所述多任务损失层包括分类损失函数和回归损失函数。在一些实施例中,训练样本对应的标签信息包括但不限于训练样本中人脸框的真实位置、与人脸框相关的偏移量等。在一些实施例中,通过将多个训练样本及每个训练样本对应的标签信息输入到待训练的人脸检测网络中,进行迭代训练,得到主干网络对应的参数,如卷积核对应的参数以及偏置参数等,以获得训练好的主干网络。在一些实施例中,多任务损失层包括分类损失函数(例如,softmax)和回归损失函数(例如,smoothL1),在训练阶段,将特征提取层对应的特征图上的每个锚点在训练样本中对应的一个或多个人脸框偏移量前向传递到多任务损失层,根据训练样本对应的标签信息计算误差,再将误差反向传递回来,进行迭代训练,以获得最终的主干网络参数,其中,误差是基于标签信息和锚点对应的人脸框偏移量计算获得的。需要说明的是,停止迭代判定可以是到达预定的迭代次数后不进行迭代,也可以是网络收敛后就停止迭代。需要说明的是,上述分类损失函数为softmax,回归损失函数为smoothL1,仅为举例,其它现有的或可能出现的功能函数如果能实现上述功能,也同样适用,在此不进行限定。
[0043] 在一些实施例中,所述将多个训练样本及对应的标签信息输入待训练的人脸检测网络进行迭代训练,包括:对于每个训练样本,所述待训练的主干网络获取该训练样本在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述主干网络对该锚点执行卷积核大小为1×1的卷积运算,获得该锚点对应的一个或多个人脸框偏移量;所述多任务损失层基于该一个或多个人脸框偏移量和该训练样本对应的标签信息进行迭代训练。在一些实施例中,所述对于该特征图中的每个锚点,所述主干网络对该锚点执行卷积核大小为1×1的卷积运算,包括两种含义:当锚点为特征图上的特征点时,则表示该特征点进行卷积核大小为1×1的卷积运算,当锚点为特征图上的特征点对应的位置(x,y)时,则表示该位置(x,y)对应的特征点进行卷积核大小为1x1的卷积运算,下文不再赘述。在一些实施例中,对于训练样本在每个特征提取层对应的特征图中的每个锚点,使用1×1的卷积核对该锚点进行卷积,获取该锚点在训练样本中对应的一个或多个人脸框偏移量,其中使用1×1的卷积核可以降低计算量。所述多任务损失层基于该一个或多个人脸框偏移量和该训练样本对应的标签信息进行迭代训练,在一些实施例中,多任务损失层通过2个偏移量计算误差,然后反向传递迭代训练,获得训练完成的主干网络,其中,2个偏移量是指主干网络中特征图上的每个锚点进行1×1卷积后获得的人脸框偏移量以及训练样本对应的标签信息与该锚点在训练样本中的预设框位置确定的偏移量。在另一些实施例中,多任务损失层通过2个位置框信息计算误差,然后反向传递迭代训练,获得训练完成的主干网络,其中,2个位置框信息是指主干网络中特征图上的每个锚点进行1×1卷积后获得的人脸框偏移量与该锚点在训练样本中的预设框位置确定的位置框以及训练样本对应的标签信息。
[0044] 在一些实施例中,所述一个或多个特征提取层中包括位于所述多个卷积模块中的预定层级之前的至少一个卷积模块。在一些实施例中,层级较靠前的特征提取层输出的特征图中的锚点在目标图像或训练样本中对应较小的位置框,可以用来检测小物体(例如,小人脸),层级较靠后的特征提取层输出的特征图中的锚点在目标图像或训练样本中对应较大的位置框,可以用来检测大物体。在一些实施例中,预定层级可以是多个卷积模块中的靠前的层级,例如,预定层级为第2层,可以增加对小人脸的敏感性和位置的准确性。在一些实施例中,越靠前的特征提取层对应越大的计算量以及越高的误检率(因为,卷积次数越少,经过卷积得到的特征图的特征提取越不充分,所以误检率高)。例如,目标图像大小是512×512,经过第一个卷积模块后,特征图大小为256×256,经过第二个卷积模块后,特征图大小为128×128,那么对于第一个特征图来说,其上一个特征点对应目标图像中的一个2×2大小的区域,那么该特征图上的锚点在目标图像中对应的预设框的尺度不能小于2×2,也即最小能检测2×2的人脸框;对于第二个特征图来说,其上一个特征点对应目标图像中的一个4×4大小的区域,那么该特征图上的锚点在目标图像中对应的预设框的尺度不能小于4×4,也即最小能检测4×4的人脸框。在一些实施例中,预定层级可以设定为3,将主干网络中位于该预定层级3之前的卷积模块(例如,第2层的卷积模块)作为特征提取层,具体地,若卷积模块只包括一种类型的一个处理层,例如,只包括一个卷积层或一个池化层或一个全连接层或其它操作层,则可以将该处理层作为特征提取层;若卷积模块包括一种类型的多个处理层,例如,包括多个卷积层或多个池化层或多个全连接层或多个其它操作层,则可以将其中任一个处理层作为特征提取层,进一步地,例如,将最后一个处理层作为特征提取层;若卷积模块包括多种类型的多个处理层,例如,包括两个及以上不同类型的处理层堆叠而成,例如,一个或多个卷积层和一个或多个池化层堆叠而成,又如,一个或多个卷积层和一个或多个全连接层堆叠而成,又如,一个或多个卷积层和一个或多个池化层和一个或多个其它操作层等堆叠而成,等等,则可以将其中任一个处理层作为特征提取层,进一步地,例如,将最后一个处理层作为特征提取层,等等。
[0045] 在一些实施例中,所述方法还包括步骤S14(未示出)。在步骤S14中,确定所述目标图像的感兴趣区域。在一些实施例中,感兴趣区域可以是用户指定的目标图像中的任意区域,例如,通过固定摄像头拍摄的目标图像,只有一部分画面是可能会出现人脸,拍摄的另一部分画面不会出现人脸,所以可以将不会出现人脸的那部分区域作为感兴趣区域。在一些实施例中,感兴趣区域还可以是对目标图像所对应的视频帧执行跟踪算法的结果,例如,将目标图像上该跟踪结果的对应区域作为感兴趣区域。
[0046] 在一些实施例中,所述步骤S14包括:对所述目标图像对应的视频帧执行跟踪算法,获得所述目标图像对应的跟踪结果,并将所述跟踪结果在所述目标图像中对应的区域确定为所述目标图像的感兴趣区域。在一些实施例中,通过对目标图像对应的视频帧执行跟踪算法,可以获得所述目标图像对应的跟踪结果,并将目标图像中该跟踪结果对应的区域作为感兴趣区域,这块区域不进行检测。在一些实施例中,检测算法计算量大,跟踪算法计算量小,可以将检测的结果发送给跟踪算法进行跟踪,跟踪到的区域尽量不再做检测,跟踪算法一般每帧都进行,而检测算法是隔帧进行的,用计算量小的跟踪算法来减少检测的频次,以此达到低功耗和高实时的目的。
[0047]  在一些实施例中,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框,还包括:对于该锚点在所述目标图像中的一个或多个预设框,所述筛选层获得该预设框与感兴趣区域之间的重叠度和/或相似度,根据所述重叠度和/或相似度确定该预设框与感兴趣区域之间的匹配度。在一些实施例中,预设特征图上每个锚点对应目标图像中一个或多个不同大小和纵横比的预设框,当特征图和预设框的大小、纵横比确定之后,特征图上每个锚点在目标图像中的预设框即可确定下来。在一些实施例中,可以通过预设框与感兴趣区域之间的重叠度(例如,Intersection over Union(IOU))和/或相似度(例如,向量相似度),来确定该预设框与感兴趣区域之间的匹配度,预设框与感兴趣区域之间的重叠度和/或相似度越高,该预设框与感兴趣区域之间的匹配度也越大。其中相似度的计算方法包括但不限于欧氏距离和余弦距离,重叠度的计算方法包括但不限于IOU,此处仅为举例,其它向量相似度的计算方法和重叠度的计算方法也可以包括与此。
[0048] 在一些实施例中,所述主干网络获得该锚点对应的一个或多个人脸框偏移量,包括:所述主干网络对该锚点执行卷积核大小为1×1的卷积运算,获得该锚点对应的一个或多个人脸框偏移量。在一些实施例中,所述主干网络对该锚点执行卷积核大小为1×1的卷积运算,包括两种含义:当锚点为特征图上的特征点时,则表示该特征点进行卷积核大小为1×1的卷积运算,当锚点为特征图上的特征点对应的位置(x,y)时,则表示该位置(x,y)对应的特征点进行卷积核大小为1×1的卷积运算,下文不再赘述。在一些实施例中,人脸框偏移量包括X方向的偏移量,Y方向的偏移量,宽度和高度的偏移量,可以记为l=(lcx,lcy,lw,lh)。在一些实施例中,由于人脸的特性,可以设定特征图上锚点对应目标图像上的预设框的纵横比为1:1,则对于每个剩余锚点执行卷积核大小为1×1的卷积运算,并基于该锚点在目标图像上对应的预设框位置,从而可以获得该锚点在目标图像中对应的多个中心点相同、尺度不同的正方形,这些正方形存在重叠区域。在一些实施例中,对于每个剩余锚点,分别进行一组或多组卷积,可以得到一个或多个人脸框偏移量,其中每组卷积包括多个1×1的卷积,例如包括6个1×1卷积,其中2个卷积结果代表有人脸、无人脸两个类别的置信度或者评分,其余4个卷积结果代表获得的人脸框偏移量(x方向的偏移量,Y方向的偏移量,宽度和高度的偏移量)。在一些实施例中,所述对于每个剩余锚点,分别进行一组或多组卷积,包括两种含义:当剩余锚点为特征图上的特征点时,则表示该特征点进行一组或多组卷积运算,当剩余锚点为特征图上的特征点对应的位置(x,y)时,则表示该位置(x,y)对应的特征点进行一组或多组卷积运算,下文不再赘述。在一些实施例中,使用1×1的卷积核对该锚点进行卷积运算,获取该锚点在目标图像中对应的一个或多个人脸框偏移量,可以降低计算量,并且在抛弃不符合条件的锚点时,不用考虑该锚点所在特征图的X×Y或者X×X邻域信息,从而可以简化计算。
[0049]  在一些实施例中,所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,包括:对于每个剩余锚点,所述检测层在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,并对所述目标人脸框偏移量和该剩余锚点在目标图像上的预设框位置执行转化操作,获得该剩余锚点在所述目标图像中对应的人脸框。在一些实施例中,从每个剩余锚点对应的一个或多个人脸框偏移量中挑选出一个目标人脸框偏移量(例如,挑选置信度最大的人脸框偏移量作为目标人脸框偏移量,其中置信度最大是指对每个剩余锚点进行一组或多组1×1卷积后,得到一组或多组卷积结果,其中某组卷积结果中有人脸类别的置信度最大),即该剩余锚点最合适的人脸框偏移量,这是因为,由于人脸的特性,预先设定特征图上锚点对应目标图像上的预设框的纵横比为1:1、尺度为多个时,剩余锚点映射回目标图像中的人脸框为中心点相同、纵横比相同、尺度不同的正方形,按照置信度最高选择最终的目标人脸框偏移量,从而可以在不可能去除更为合适的人脸框偏移量的前提下,减少计算量。在一些实施例中,所述对于每个剩余锚点,在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,包括:如果剩余锚点对应1个人脸框偏移量,则将该人脸偏移量作为目标人脸偏移量,如果剩余锚点对应多个人脸框偏移量,则从多个人脸框偏移量中确定目标人脸框偏移量。在一些实施例中,根据每个剩余锚点对应的目标人脸框偏移量 (lcx,lcy,lw,lh)和每个剩余锚点在目标图像中的预设框位置(dcx,dcy,dw,dh))执行转化操作,得到目标图像上的若干个可能存在重叠的人脸框。在一些实施例中,根据某个剩余锚点对应的目标人脸框偏移量(lcx,lcy,lw,lh)和该剩余锚点在目标图像中的预设框位置(dcx,dcy,dw,dh),获得目标图像上对应的人脸框的位置(bcx,bcy,bw,bh),转化方法可以为:bcx = dw×lcx + dcx, bcy = dh×lcy + dcy,bw = dw×exp(lw), bh = dh×exp(lh),其中,exp是e为底的指数函数。
[0050] 在一些实施例中,所述在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,包括:在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,其中,所述目标人脸框偏移量对应的置信度大于或等于其它人脸框偏移量对应的置信度。在一些实施例中,对每个剩余锚点进行一组或多组1×1卷积后,得到一组或多组卷积结果,其中每组卷积结果包括有人脸、无人脸两个类别的置信度,以及人脸框偏移量,每组卷积结果中有人脸类别的置信度即为该组卷积结果中人脸框偏移量对应的置信度。对每个剩余锚点进行一组或多组1×1卷积后,得到一组或多组卷积结果,其中若某组卷积结果对应的人脸框偏移量对应的置信度最大,则选择该人脸框偏移量作为目标人脸框偏移量,即该剩余锚点最合适的人脸框偏移量。在一些实施例中,所述在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,包括:如果剩余锚点仅进行一组1×1卷积得到1个人脸框偏移量,则将该人脸偏移量作为目标人脸偏移量,如果剩余锚点进行多组1×1卷积得到多个人脸框偏移量,则从多个人脸框偏移量中确定目标人脸框偏移量。在一些实施例中,对每个剩余锚点进行一组或多组1×1卷积后,得到一组或多组卷积结果,包括两种含义:当剩余锚点为特征图上的特征点时,则表示该特征点进行一组或多组卷积核大小为1×1的卷积运算,当剩余锚点为特征图上的特征点对应的位置(x,y)时,则表示该位置(x,y)对应的特征点进行一组或多组卷积核大小为1×1的卷积运算。
[0051] 在一些实施例中,所述根据所获得的所有人脸框确定所述目标图像中的目标人脸框,包括:对所获得的所有人脸框执行非极大值抑制,确定所述目标图像中的目标人脸框。在一些实施例中,对所有剩余锚点所获得的目标图像上的若干个可能存在重叠的人脸框,执行非极大值抑制,去除重复的框,最终得到目标图像上含有人脸的目标人脸框的位置,对于有相交的就选取其中置信度最高的一个人脸框作为目标人脸框,对于没相交的就直接保留下来,作为目标人脸框。在一些实施例中,非极大值抑制的输入是目标图像中的若干个人脸框以及每个人脸框对应的置信度,输出是含有人脸的目标人脸框。
[0052] 图2示出了本申请一个示例的人脸检测网络的结构示意图。
[0053] 如图2所示,该人脸检测网络包括待训练的主干网络及多任务损失层(Multi-task Loss),该待训练的主干网络包括依次连接的5个卷积模块(Conv1(卷积层)+MaxPooling(池化层)、Conv2(卷积层)+MaxPooling(池化层)、Stage3(主要使用block单元构成)、Stage4(主要使用block单元构成)、Conv5(卷积层)),该多任务损失层包括分类损失函数(Softmaxloss)和回归损失函数(SmoothL1Loss);其中,第2、4、5个卷积模块中的最后一个处理层作为特征提取层,对于第1、2、3个特征提取层(即第2、4、5个卷积模块中的最后一个处理层)上的每个锚点,分别预设4(16×16(说明本示例最小能检测到16×16大小的人脸)、24×24、32×32、48×48)、3(48×48、64×64、128×128)、3(96×96、128×128、256×256)个不同尺度、相同比例的预设框,此处的这些预设框大小分别是指对应到原图中的人脸框大小,特征图确定之后,锚点对应到原图上的框即可确定。通过加强对第1个特征提取层对应的特征图的人脸框采样密度,能够增加小人脸检测的敏感性和准确性。在训练阶段,针对每个特征提取层,将该特征提取层中的每个锚点在训练样本中对应的一个或多个人脸框偏移量前向传递到多任务损失层,根据训练样本对应的标签信息计算误差,进行迭代训练,以获得最终的主干网络参数,其中,误差是基于标签信息和锚点对应的人脸偏移量计算获得的。
如图2所示,输入图像(Input)为3×512×512,其中,“3”表示维度(channel),“512×512”表示输入图像的大小,输入图像经过第1个卷积模块Conv1+MaxPooling之后输出为“24×128×128”(也即维度为“24”,大小为“128×128”),再经过第2个卷积模块Conv2+MaxPooling之后输出为“48×32×32”(也即维度为“48”,大小为“32×32”),再经过第3个卷积模块Stage3之后输出为“96×16×16”(也即维度为“96”,大小为“16×16”),再经过第4个卷积模块Stage4之后输出为“192×8×8”(也即维度为“192”,大小为“8×8”),再经过第5个卷积模块Conv5之后输出为“256×4×4”(也即维度为“256”,大小为“4×4”);其中,“1×1×(2+4) ×
4”表示如下含义:“1×1”表示1×1大小的卷积核,“ (2+4) ×4”代表1×1卷积核的个数,其中“4”对应了第1个特征提取层(MaxPooling层)中每个锚点映射到原图中的4个不同大小的人脸框,“ (2+4)”中的2代表有人脸、无人脸两个类别的置信度或者评分,“ (2+4)”中的4是代表获得的人脸框相对于先验框的偏移量(x方向的偏移量,Y方向的偏移量,宽度和高度的偏移量),即前两个值与有无人脸有关,后面4个值与人脸框位置有关,图2中的“1×1×(2+
4) ×3”和“1×1×(2+4) ×3”的含义与“1×1×(2+4) ×4”类似。需要说明的是,也可以在其它卷积模块中选取特征提取层以提取锚点,例如,想要检测更小的人脸框,则可以在第1个卷积模块中确定特征提取层,例如在第1个卷积模块的最后一个处理层(MaxPooling层)上提取锚点,对应的预设框大小可以为8×8、4×4等,只是计算量相比本示例会增加(因为MaxPooling输出特征图上有128×128个锚点,后续就会至少对应128×128个人脸框待处理),同时,误检率相比本示例也会增高(因为,卷积次数越少,经过卷积得到的特征图的特征提取越不充分,所以误检率高),在实际应用场景中,可基于实际需求来进行设计。需要说明的是,在选取的特征提取层中,每个锚点对应的预设框尺度和数量的具体值仅为举例,可以在灵活调整,此处不作限定。
[0054] 图7示出了根据本申请一个示例的人脸检测网络中的主干网络对应的各项参数图,其中,Layer表示卷积模块中的处理层, Image表示输入图像,Output Size表示输出尺寸,KSize 表示卷积核大小,Stride表示步长,Repeat是指重复执行的次数,Repeat为1则表示该模块只执行一次,Repeat为2则表示该模块执行两次,Output channels表示输出通道数。由图7可见,该主干网络依次包括如下五层卷积模块:第一层的卷积模块进一步包括Conv1(卷积层)和MaxPooling(池化层),其中,Conv1是膨胀卷积,膨胀率为1,以增加卷积的感受野,Conv1对应的激活函数为crelu,其使用较小的卷积核获得2倍的channels数;第二层的卷积模块进一步包括Conv2(卷积层)和MaxPooling(池化层),其中,Conv2是普通的卷积处理;第三层的卷积模块包括Stage3(Stage3主要使用block单元构成),在Stage3中,Stride=1,对应使用的是图3所示block,Stride=2,表示对应使用的是图4所示block,Stage3中的Repeat分别为1和3,代表一个图4所示block的输出,后面连接了3个图3所示block;第四层的卷积模块包括Stage4(Stage4主要使用block单元构成),在Stage4中,Stride=2,表示对应使用的是图4所示block,Stride=1,对应使用的是图3所示block,Stage4中的Repeat分别为1和7,代表一个图4所示block的输出,后面连接了7个图3所示block;第五层的卷积模块包括Conv5(卷积层),其中,Conv5是普通的卷积处理。其中,图3所示block的输出大小与输入大小一致,图4所示block的输出大小是输入的1/2。需要说明的是,该主干网络中,除了Conv1外,其他层卷积核由于没有crelu(concatenated rectified linear units,级联整流线性单元),因此卷积核的个数对应输出的个数。需要说明的是,上述输入图像大小、卷积核大小、步长、重复执行的次数、激活函数、卷积模块包含的处理层等具体值均为举例,可以根据灵活改变,此处不作限定。
[0055] 图3示出模块(block)的一个单元结构图。
[0056] 如图3所示,首先进行通道分离(channel split)操作,将输入特征的通道分成两个分支c-c’和c’;其中,左边的分支不做任何操作,右边的分支包含了3个卷积操作。右边分支的特征图先进行1x1卷积(Conv),然后进行批量归一化(BN:Batch Normalization)操作,并利用修正线性单元(Relu:Rectified Linear Unit)这个激活函数进行处理;然后进行3x3的深度可分离卷积(DWConv:Depthwise Separable Convolution),主要是为了降低计算量,然后进行批量归一化(BN:Batch Normalization)操作;紧接着是进行1x1卷积,然后进行批量归一化(BN:Batch Normalization)操作,并利用修正线性单元(Relu:Rectified Linear Unit)这个激活函数进行处理;然后是将右边分支得到的特征图与channel split操作得到的左边分支的特征图在通道(channel)维度上进行拼接(Concat),降低计算量;最后是进行通道混合(channel shuffle)操作,对组卷积后的特征图在通道(channel)维度上进行“重组”,这样可以使信息在不同组之间流转,提高网络特征提取能力。
[0057] 图4示出模块(block)的另一个单元结构图。
[0058]  如图4所示,对左边通道先采用步长stride=2的3x3 深度可分离卷积(DWConv:Depthwise Separable Convolution),然后进行批量归一化(BN:Batch Normalization)操作;然后进行1x1卷积(Conv),然后进行批量归一化(BN:Batch Normalization)操作,并利用修正线性单元(Relu:Rectified Linear Unit)这个激活函数进行处理;对右边通道采用先进行1x1卷积(Conv),然后进行批量归一化(BN:Batch Normalization)操作,并利用修正线性单元(Relu:Rectified Linear Unit)这个激活函数进行处理;然后采用步长stride=2的3x3深度可分离卷积(DWConv:Depthwise Separable Convolution),然后进行批量归一化(BN:Batch Normalization)操作;然后进行1x1卷积(Conv),然后进行批量归一化(BN:
Batch Normalization)操作,并利用修正线性单元(Relu:Rectified Linear Unit)这个激活函数进行处理;将左右两个分支的输出在通道(channel)维度上进行拼接(Concat)降低计算量并增加通道数;最后是进行通道混合(channel shuffle),对组卷积后的特征图在通道(channel)维度上进行“重组”,这样可以使信息在不同组之间流转,提高网络特征提取能力。
[0059] 图5示出了根据本申请一个实施例的一种人脸检测的计算机设备结构图,该设备包括一一模块11、一二模块12和一三模块13。一一模块11,用于将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层;一二模块12,用于所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量;一三模块13,用于所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0060]  一一模块11,用于将目标图像输入人脸检测网络,其中,所述人脸检测网络包括已训练的主干网络、筛选层及检测层,所述主干网络包括依次连接的多个卷积模块,所述多个卷积模块中包括一个或多个特征提取层。在一些实施例中,人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果含有人脸则返回人脸在图像中的位置。在一些实施例中,卷积模块可以是只包括一种类型的一个处理层,例如,只包括一个卷积层或一个池化层或一个全连接层或其它操作层;又如,卷积模块可以是包括一种类型的多个处理层,例如,包括多个卷积层或多个池化层或多个全连接层或多个其它操作层;还如,卷积模块也可以是包括多种类型的多个处理层,即包括两个及以上不同类型的处理层堆叠而成,如,一个或多个卷积层和一个或多个池化层堆叠而成,又如,一个或多个卷积层和一个或多个全连接层堆叠而成,又如,一个或多个卷积层和一个或多个池化层和一个或多个其它操作层等堆叠而成,等等。在一些实施例中,可选地,卷积模块中的卷积层可以是普通的卷积操作层,也可以是膨胀/空洞卷积层(dilated convolution),用于对目标图像进行0填充,从而在不通过池化的前提下获得较大的视野,并减小信息损失,让每个卷积层的输出都包含较大范围的信息。在一些实施例中,多个卷积模块中至少包括一个特征提取层,其中,特征提取层可以是卷积模块中的任意一个处理层,如可以是卷积层,或池化层,或全连接层,或其它操作层等等,特征提取层用于获取目标图像在每个特征提取层输出的特征图。
[0061]  一二模块12,用于所述主干网络获取所述目标图像在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框;若存在,则去除该特征图上的该锚点;否则,所述主干网络获得该锚点对应的一个或多个人脸框偏移量。在一些实施例中,目标图像在特征提取层对应输出的特征图中的每个特征点对应的位置(x,y)记为锚点,即锚点与特征点对应。在一些实施例中,目标图像在特征提取层对应输出的特征图中的每个特征点记为锚点。本领域技术人员能够理解,当特征提取层对应输出的特征图为多个时,则锚点可以对应多个特征图中的特征向量,其中,特征向量由多个特征图中同一位置的特征点组成。通过设定锚点对应的预设框的纵横比和尺度来确定特征图上锚点对应到目标图像的预设框。需要注意的是,上述两种锚点的定义均表示锚点与特征点/特征向量对应,下文侧重于以第二种解释进行介绍,但本领域技术人员应当理解,同样适用于第一种解释。如果某个锚点在目标图像中对应的一个或多个不同大小和纵横比的预设框中只要存在一个与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框,就在特征图上去除该锚点,即放弃特征图上该特征点上的所有进一步检测操作,该特征点不参与后续的检测计算。其中,可以根据预设框与感兴趣区域的重叠度(例如,Intersection over Union(IOU))或相似度(例如,向量相似度)来确定预设框与感兴趣区域的匹配度。在一些实施例中,感兴趣区域可以是用户指定的目标图像中的任意区域,例如,通过固定摄像头拍摄的目标图像,只有一部分画面是可能会出现人脸,拍摄的另一部分画面不会出现人脸,所以可以将不会出现人脸的那部分区域作为感兴趣区域。在一些实施例中,感兴趣区域还可以是对目标图像所对应的视频帧执行跟踪算法的结果,例如可以将目标图像上跟踪结果的对应区域作为感兴趣区域。在一些实施例中,锚点在所述目标图像中对应的一个或多个预设框中存在与感兴趣区域的匹配度大于或等于预定的匹配度阈值的预设框,则不参与后续人脸检测的运算,这种方法能够过滤不需要检测区域,例如已检测或跟踪到的人脸框,使得不需要检测区域不参与人脸检测的运算,可以避免重复计算,从而降低计算量。在一些实施例中,预设特征图上每个锚点对应目标图像中一个或多个不同大小和纵横比的预设框,当特征图和预设框的大小、纵横比确定之后,特征图上每个锚点在目标图像中的预设框即可确定下来,具体地,锚点对应的特征点映射回目标图像对应一个区域,根据该区域的中心和预设大小和纵横比,来确定目标图像中的预设框。优选地,由于人脸的特性,可以将预设框设为大小不同的正方形,即不同大小的预设框的纵横(长宽)比例均为1:1,不存在其它纵横比例的预设框,因此对人脸检测更具针对性,然后通过加强对特征图的采样密度,从而增加对小人脸检测的准确性。在一些实施例中,经筛选层判断在所述目标图像中对应的一个或多个预设框中不存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框的特征提取层的锚点称为剩余锚点,对于特征图上的剩余锚点,主干网络获得该锚点对应的一个或多个人脸框偏移量,其中,获取人脸框偏移量的具体方式可以是针对每个剩余锚点执行卷积运算,得到该剩余锚点在目标图像上对应的一个或多个人脸框偏移量以及每个人脸框偏移量对应的置信度,其中,所述针对每个剩余锚点执行卷积运算,包括两种含义:当剩余锚点为特征图上的特征点时,则表示该特征点进行卷积运算,当剩余锚点为特征图上的特征点对应的位置(x,y)时,则表示该位置(x,y)对应的特征点进行卷积运算,下文不再赘述。其中,所述针对每个剩余锚点执行卷积运算,可以采用任意大小的卷积核,例如X×X,或者,X×Y此处不作限定。优选地,在一些实施例中,对于每个剩余锚点,使用1×1大小的卷积核对该锚点进行卷积,获取该剩余锚点在目标图像中对应的一个或多个人脸框偏移量,这是因为1×1大小的卷积可以降低计算量,同时在抛弃不符合条件的锚点时,不用考虑该锚点所在特征图的X×Y或者X×X邻域信息,从而可以简化计算。在一些实施例中,人脸框偏移量包括X方向的偏移量,Y方向的偏移量,宽度和高度的偏移量,可以记为l=(lcx,lcy,lw,lh)。
[0062] 一三模块13,用于所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,并根据所获得的所有人脸框确定所述目标图像中的目标人脸框。在一些实施例中,检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,以及该剩余锚点在目标图像中的预设框位置,可以获得该剩余锚点在所述目标图像中对应的一个或多个人脸框,并进一步根据所有剩余锚点所获得的所有人脸框确定所述目标图像中的目标人脸框。在一些实施例中,所述根据所获得的所有人脸框确定所述目标图像中的目标人脸框,可以通过非极大值抑制的方法,非极大值抑制可以消除多余(交叉重复)的人脸框,找到最佳的人脸框,对于有相交的就选取其中置信度最高的一个人脸框作为目标人脸框,对于没相交的就直接保留下来,作为目标人脸框。还可以通过其它方法,例如,选取该若干个人脸框的交集,即公共区域作为最后的目标人脸框。又例如,还可以选取好多人脸框的并集,即所有人脸框的最小外截矩作为目标人脸框,需要说明的是,这里也不是只要相交就直接取并集,需要相交的人脸框满足交集占其中最小框的面积达到一定比例阈值才合并。这是因为,对于所有剩余锚点对应的目标图像上的所有人脸框是可能存在重叠的人脸框,因此需要进一步处理,去除重复的人脸框,最终得到目标图像上的含有人脸的一个或多个目标人脸框的位置。在一些实施例中,在每个剩余锚点对应的一个或多个人脸框偏移量中确定目标人脸框偏移量(例如,挑选置信度最大的人脸框偏移量作为目标人脸框偏移量),有利于减少计算量。然后对目标人脸框偏移量和该目标人脸框偏移量对应的剩余锚点在目标图像上的预设框位置执行转化操作,获得该锚点在目标图像中对应的一个人脸框,然后根据所有剩余锚点所获得的所有人脸框确定所述目标图像中的目标人脸框。
[0063] 在一些实施例中,所述设备还用于:将多个训练样本及对应的标签信息输入待训练的人脸检测网络进行迭代训练,其中,所述待训练的人脸检测网络包括待训练的主干网络及多任务损失层,所述多任务损失层包括分类损失函数和回归损失函数。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0064] 在一些实施例中,所述将多个训练样本及对应的标签信息输入待训练的人脸检测网络进行迭代训练,包括:对于每个训练样本,所述待训练的主干网络获取该训练样本在每个特征提取层对应的特征图,对于该特征图中的每个锚点,所述主干网络对该锚点执行卷积核大小为1×1的卷积运算,获得该锚点对应的一个或多个人脸框偏移量;所述多任务损失层基于该一个或多个人脸框偏移量和该训练样本对应的标签信息进行迭代训练。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0065] 在一些实施例中,所述一个或多个特征提取层中包括位于所述多个卷积模块中的预定层级之前的至少一个卷积模块。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0066] 在一些实施例中,所述设备还包括一四模块14(未示出)。一四模块14,用于确定所述目标图像的感兴趣区域。在此,一四模块14的具体实现方式与图1中有关步骤S14的实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0067] 在一些实施例中,所述一四模块14用于:对所述目标图像对应的视频帧执行跟踪算法,获得所述目标图像对应的跟踪结果,并将所述跟踪结果在所述目标图像中对应的区域确定为所述目标图像的感兴趣区域。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0068] 在一些实施例中,所述筛选层判断该锚点在所述目标图像中对应的一个或多个预设框中是否存在与感兴趣区域的匹配度大于或等于预定匹配度阈值的预设框,还包括:对于该锚点在所述目标图像中的一个或多个预设框,所述筛选层获得该预设框与感兴趣区域之间的重叠度和/或相似度,根据所述重叠度和/或相似度确定该预设框与感兴趣区域之间的匹配度。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0069] 在一些实施例中,所述主干网络获得该锚点对应的一个或多个人脸框偏移量,包括:所述主干网络对该锚点执行卷积核大小为1×1的卷积运算,获得该锚点对应的一个或多个人脸框偏移量。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0070] 在一些实施例中,所述检测层根据每个剩余锚点对应的一个或多个人脸框偏移量,获得在所述目标图像中对应的人脸框,包括:对于每个剩余锚点,所述检测层在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,并对所述目标人脸框偏移量和该剩余锚点在目标图像上的预设框位置执行转化操作,获得该剩余锚点在所述目标图像中对应的人脸框。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0071] 在一些实施例中,所述在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,包括:在所述一个或多个人脸框偏移量中确定目标人脸框偏移量,其中,所述目标人脸框偏移量对应的置信度大于或等于其它人脸框偏移量对应的置信度。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0072] 在一些实施例中,所述根据所获得的所有人脸框确定所述目标图像中的目标人脸框,包括:对所获得的所有人脸框执行非极大值抑制,确定所述目标图像中的目标人脸框。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0073] 图6示出了可被用于实施本申请中所述的各个实施例的示例性系统。
[0074] 如图6所示在一些实施例中,系统300能够作为各所述实施例中的任意一个设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器
305)。
[0075] 对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
[0076]  系统控制模块310可包括存储器控制器模块330,以向系统存储器 315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
[0077] 系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
[0078] 对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
[0079] 例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
[0080]  NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
[0081]  (一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
[0082] 对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例你如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
[0083] 在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、持有计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
[0084] 本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
[0085] 本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
[0086] 本申请还提供了一种计算机设备,所述计算机设备包括:
[0087] 一个或多个处理器;
[0088] 存储器,用于存储一个或多个计算机程序;
[0089] 当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
[0090] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0091] 另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
[0092] 通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
[0093] 作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
[0094] 在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
[0095] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。