发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种人脸图样检测方法、装置、设备及存储介质。
为实现以上目的,本发明采用如下技术方案:
根据本申请第一方面,提供一种人脸图样检测方法,包括:
获取视频;所述视频由连续的至少两帧图片构成;
抽取所述视频中的等帧数间隔的图片;
将抽取的图片输入人脸检测模块;若所述抽取的图片不存在人脸图样,则人脸检测模块没有输出;若所述抽取的图片存在人脸图样,则输出人脸图样信息;
将所述视频和所述人脸图样信息输入轨迹估计模块;
所述轨迹估计模块根据所述人脸图样信息,确定所述人脸图样的移动轨迹,根据所述移动轨迹确定各帧图片中的人脸图样信息,并输出。
可选的,所述抽取所述视频中的等帧数间隔的图片;包括:
获取所述视频中的每帧图片的帧数;
将所述帧数除以m,得到余数;其中,m为正整数。
余数为a的帧数对用的图片为被抽取的图片;其中,a为小于m的非负整数。
可选的,所述将抽取的图片输入人脸检测模块;若所述抽取的图片不存在人脸图样,则人脸检测模块没有输出;若所述抽取的图片存在人脸图样,则输出人脸图样信息,包括:
预处理所述抽取的图片;
进一步抽取所述抽取的图片中等帧数间隔的图片,得到二次抽取图片;未被进一步抽取的所述抽取的图片为未被抽取图片;
通过人脸检测模块确定所述二次抽取图片中的人脸框;
分别确定与每一帧未被抽取图片帧数最接近的二次抽取图片,将最接近的二次抽取图片对应的的人脸框扩大n倍,作为未被抽取图片对应的人脸框;其中n为大于1的正数;
根据人脸框截取所述抽取的图片,得到人脸图片;
通过人脸检测模块确定所述人脸图片中的精细人脸框,并确定所述精细在所述抽取的图片上的坐标信息;
根据所述坐标信息框截取所述抽取的图片,得到精细的人脸图片;
通过人脸检测模块,根据所述精细的人脸图片确定所述人脸图样信息。
可选的,所述通过人脸检测模块确定所述人脸图片中的精细人脸框之后,还包括:
对所述精细人脸框通过非极大值抑制的方式,进行去重合和去误报。
可选的,所述人脸图样信息包括:人脸轮廓位置。
可选的,所述所述轨迹估计模块根据所述人脸图样信息,确定所述人脸图样的移动轨迹,包括:
根据所述人脸图样信息和与所述人脸图样信息对应得图片,确定或修正所述人脸图样的移动轨迹;
若相邻的d帧图片都没有对应的人脸图样信息,则删除所述相邻的d帧图片对应的的轨迹信息;其中,d为正整数。
可选的,所述预处理所述抽取的图片包括:
对所述抽取的图片异步进行重构操作,对所述抽取的图片进行去平均值操作和归一化操作。
根据本申请第二方面,提供一种人脸图样检测装置法,包括:
获取模块,用于获取视频;所述视频由连续的至少两帧图片构成;
抽取模块,用于抽取所述视频中的等帧数间隔的图片;
第一输入模块,用于将抽取的图片输入人脸检测模块,获得人脸图样信息;若所述抽取的图片不存在人脸图样,则人脸检测模块没有输出;若所述抽取的图片存在人脸图样,则输出人脸图样信息;
第二输入模块,用于将所述视频和所述人脸图样信息输入轨迹估计模块;所述轨迹估计模块根据所述人脸图样信息,确定所述人脸图样的移动轨迹,根据所述移动轨迹确定各帧图片中的人脸图样信息,并输出。
根据本申请第三方面,提供一种人脸图样检测设备,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行本申请第一方面所述的人脸图样检测方法;
所述处理器用于调用并执行所述存储器中的所述计算机程序。
根据本申请第四方面,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如本申请第一方面所述的人脸图样检测方法中各个步骤。
本发明采用以上技术方案,抽取所述视频中的等帧数间隔的图片;对抽取的图片进行人脸检测得到人脸图样信息,根据抽取的图片和人脸图样信息确定未被抽取的图片上的人脸图样信息。本发明采用的技术方案与背景技术中的方案相比,减少了进行人脸检测的图片的数量,减少了运算的量,提高了识别的速度。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明实施例一提供的人脸图样检测方法,包括:
S101,获取视频;视频由连续的至少两帧图片构成;
其中,获取视频的方式可以是通过监控设备获取。
进一步的,获取视频可以为持续获取视频。即:在进行人脸检测的同时,不断获取新的视频。
S102,抽取视频中的等帧数间隔的图片;
具体的,参照图2,步骤S102,包括:
S201,获取视频中的每帧图片的帧数。
S202,将帧数除以m,得到余数;其中,m为正整数。
S203,余数为a的帧数对用的图片为被抽取的图片;其中,a为小于m的非负整数。
如此,可以在不断获取视频信息的同时完成对于图片的抽取。
进一步的m的取值范围可以为2-4。具体的m的取值可以为2。
进一步的a的取值可以为0。
例如:当m取值为2,n的取值为0时,抽取的效果为抽取偶数帧的图片。
S103,将抽取的图片输入人脸检测模块;若抽取的图片不存在人脸图样,则人脸检测模块没有输出;若抽取的图片存在人脸图样,则输出人脸图样信息;
S104,将视频和人脸图样信息输入轨迹估计模块;
其中,视频和人脸图样信息内包括:检测帧的时间戳,人脸图样总数,单个人脸图样的坐标、宽高信息。
S105,轨迹估计模块根据人脸图样信息,确定人脸图样的移动轨迹,根据移动轨迹确定各帧图片中的人脸图样信息,并输出。
其中,根据人脸图样信息和与人脸图样信息对应得图片,确定或修正人脸图样的移动轨迹;
若相邻的d帧图片都没有对应的人脸图样信息,则删除相邻的d帧图片对应的的轨迹信息;其中,d为正整数。
进一步的d的取值可以为7。如此,如果连续7帧图像都没有通过人脸检测模块获得人脸图样信息,则则删除相邻的7帧图片对应的的轨迹信息,如此设置可以避免轨迹提高轨迹的精确程度。
本发明采用以上步骤S101、S102、S103、S104和S105表述的技术方案,抽取视频中的等帧数间隔的图片;对抽取的图片进行人脸检测得到人脸图样信息,根据抽取的图片和人脸图样信息确定未被抽取的图片上的人脸图样信息。本发明采用的技术方案与背景技术中的方案相比,减少了进行人脸检测的图片的数量,减少了运算的量,提高了识别的速度。
进一步的,参照图3,步骤S103,“将抽取的图片输入人脸检测模块;若抽取的图片不存在人脸图样,则人脸检测模块没有输出;若抽取的图片存在人脸图样,则输出人脸图样信息;”包括:
S301,预处理抽取的图片;
其中,预处理抽取的图片包括:对抽取的图片异步进行重构操作,对抽取的图片进行去平均值操作和归一化操作。
其中,异步进行重构操作可以将数据由8bit数据转化为32bit数据。
其中平均值使用127(unsigned char)。
S302,进一步抽取抽取的图片中等帧数间隔的图片,得到二次抽取图片;未被进一步抽取的抽取的图片为未被抽取图片;
其中,S302中的进一步抽取抽取的图片中等帧数间隔的图片的方式可以为“步骤S201,步骤S202,步骤S203,”中方式:
获取抽取的图片中的每帧图片的帧数;
S202,将帧数除以m,得到余数;其中,m为正整数。
S203,余数为a的帧数对用的图片为被二次抽取图片;其中,a为小于m的非负整数。
如此,可以在不断获取抽取的图片同时完成对于抽取的图片的进一步抽取。
进一步的m的取值范围可以为2-4。具体的m的取值可以为3。
进一步的a的取值可以为0。
例如:当m取值为3,n的取值为0时,抽取的效果为抽取偶数帧的图片。
S303,通过人脸检测模块确定二次抽取图片中的人脸框;
其中,步骤S303的具体步骤如下:
输入N*M的原始图像,经过金字塔下采样到最小边为12的大小这样一组图像数据,然后输入运算层,滑窗取样转换成12*12*3的图像数据通过10个3*3*3的卷积核,2*2的最大池化(stride=2)操作,生成10个5*5的特征图。接着通过16个3*3*10的卷积核,生成16个3*3的特征图。接着通过32个3*3*16的卷积核,生成32个1*1的特征图。最后针对32个1*1的特征图,可以通过2个1*1*32的卷积核,生成2个1*1的特征图用于分类;4个1*1*32的卷积核,生成4个1*1的特征图用于回归框判断;10个1*1*32的卷积核,生成10个1*1的特征图用于人脸轮廓点的判断。
其中,原始图像指代二次抽取图片。
S304,分别确定与每一帧未被抽取图片帧数最接近的二次抽取图片,将最接近的二次抽取图片对应的的人脸框扩大n倍,作为未被抽取图片对应的人脸框;其中n为大于1的正数;
其中,n可以为1.2。
S305,根据人脸框截取抽取的图片,得到人脸图片;
S306,通过人脸检测模块确定人脸图片中的精细人脸框,并确定精细在抽取的图片上的坐标信息;
其中,步骤S306中“通过人脸检测模块确定人脸图片中的精细人脸框”的运算过程如下:
模型输入为24*24大小的图片,通过28个3*3*3的卷积核和3*3(stride=2)的maxpooling后生成28个11*11的特征图;通过48个3*3*28的卷积核和3*3(stride=2)的maxpooling后生成48个4*4的特征图;通过64个2*2*48的卷积核后,生成64个3*3的特征图;把3*3*64的特征图转换为128大小的全连接层;对回归框分类问题转换为大小为2的全连接层;对bounding box的位置回归问题,转换为大小为4的全连接层;对人脸轮廓关键点转换为大小为10的全连接层。
其中步骤S306还包括:
对于精细人脸框使用非极大值抑制的方法进行去重合去误报。
S307,根据坐标信息框截取抽取的图片,得到精细的人脸图片;
S308,通过人脸检测模块,根据精细的人脸图片确定人脸图样信息。
其中S308中的运算过程如下:模型输入是一个48*48*3大小的图片,通过32个3*3*3的卷积核和3*3(stride=2)的max pooling后转换为32个23*23的特征图;通过64个3*3*32的卷积核和3*3(stride=2)的max pooling后转换为64个10*10的特征图;通过64个3*3*64的卷积核和3*3(stride=2)的max pooling后转换为64个4*4的特征图;通过128个2*2*64的卷积核转换为128个3*3的特征图;通过全链接操作转换为256大小的全链接层;最后生成大小为2的回归框分类特征;大小为4的回归框位置的回归特征;大小为10的人脸轮廓位置回归特征。
进一步的,步骤S105,“轨迹估计模块根据人脸图样信息,确定人脸图样的移动轨迹,根据移动轨迹确定各帧图片中的人脸图样信息,并输出。”包括以下步骤:
分别判断各帧图片上的已确定的人脸图样的个数,个数大于0则进行跟踪,个数为0时则进行预测。
目标预测时,使用历史轨迹中的人脸图样位置,帧数信息信息,使用0.5HZ的低通滤波器进行速度滤波,然后使用一阶滞后滤波器进行位置预测
目标跟踪时,首先判断输入目标和历史轨迹中的目标位置距离(distanceRatio)是否小于目标的宽乘以高,如果在该距离范围内则计算目标和轨迹目标的交叠面积(overlapRatio),目标框大小比例(areaRatio),目标的运动速度预测(motionRatio),目标的分数信息,然后使用公式:tempRatioSum=DISTANCE*distanceRatio+AREA*areaRatio+MOTION*motionRatio+OVERLAP*overlapRatio+Score;
其中各个参数分别为:
#define DISTANCE 1
#define OVERLAP 150
#define AREA 100
#define MOTION 2
通过对所有可能的轨迹进行遍历,可以找到当前目标和历史轨迹最匹配的情况,即tempRatioSum为最小值得历史轨迹。然后将该目标加入该历史轨迹中
循环结束后,如果还有未加入历史轨迹的人脸图样,则认为是新的人脸图样出现了,就创建新的跟踪轨迹。
通过时间戳判断是否有历史轨迹没有更新,如果有历史轨迹没有更新,则进行人脸图样位置预测,并且进行目标离开计数,如果计数大于设置的阈值7,就删除轨迹信息。
如图4所示,本申请还提供了一种人脸图样检测装置法。参照图4,本申请提供的人脸图样检测装置法,包括:
获取模块401,用于获取视频;视频由连续的至少两帧图片构成;
抽取模块402,用于抽取视频中的等帧数间隔的图片;
第一输入模块403,用于将抽取的图片输入人脸检测模块,获得人脸图样信息;若抽取的图片不存在人脸图样,则人脸检测模块没有输出;若抽取的图片存在人脸图样,则输出人脸图样信息;
第二输入模块404,用于将视频和人脸图样信息输入轨迹估计模块;轨迹估计模块根据人脸图样信息,确定人脸图样的移动轨迹,根据移动轨迹确定各帧图片中的人脸图样信息,并输出。
如图5所示,本申请还提供了一种人脸图样检测设备。参照图5,本申请提供的人脸图样检测设备,包括:
处理器502,以及与处理器相连接的存储器501;
存储器501用于存储计算机程序,计算机程序至少用于执行上述的人脸图样检测方法;
处理器用于调用并执行存储器中的计算机程序。
本申请还提供了一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时,实现如上述的人脸图样检测方法中各个步骤。
关于上述实施例中的装置和设备,其中各个模块和部件执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行方法执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。