面部检测方法、目标检测方法和装置
技术领域
本申请涉及视频处理领域,具体涉及一种面部检测方法、目标检测方法和装置。
背景技术
随着图像和视频技术的发展,面部检测开始应用到各个领域中。可以采用面部检测技术,去获取面部图像,实时的检测各个环境中是否出现运动目标。
然而,在面部图像为非正面的面部图像的时候,无法准确的确定出运动目标;进而,如何对非正面和正面的面部图像进行检测,是一个尚需要解决的问题。
发明内容
本申请提供一种面部检测方法、目标检测方法和装置,用以解决如何识别非正面和正面的面部图像的问题。
本申请的第一方面是提供一种面部检测方法,包括:
获取面部图像,并确定所述面部图像中的面部器官定位信息,其中,所述面部器官定位信息表征了所述面部图像中的多个面部器官在面部图像上的位置信息;
根据所述面部器官定位信息,确定检测结果,其中,所述检测结果表征所述面部图像为正面的面部图像、或者所述面部图像为非正面的面部图像;
在所述检测结果表征所述面部图像为正面的面部图像时,生成并显示第一提示信息。
进一步地,在根据所述面部器官定位信息,确定检测结果之前,还包括:
显示所述面部器官定位信息。
进一步地,所述面部器官定位信息包括以下的至少一种:左眼位置信息、右眼位置信息、鼻子位置信息、嘴巴的左端点位置信息、嘴巴的右端点位置信息。
进一步地,若面部器官定位信息包括鼻子位置信息、右眼位置信息和嘴巴的右端点位置信息,则所述鼻子位置信息为鼻子的x轴坐标值,所述右眼位置信息为右眼的x轴坐标值,所述嘴巴的右端点位置信息为右端点的x轴坐标值;
根据所述面部器官定位信息,确定检测结果,包括:
若所述鼻子的x轴坐标值大于所述右眼的x轴坐标值,且所述鼻子的x轴坐标值大于所述右端点的x轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向右偏转。
进一步地,若面部器官定位信息包括鼻子位置信息、左眼位置信息和嘴巴的左端点位置信息,则所述鼻子位置信息为鼻子的x轴坐标值,所述左眼位置信息为左眼的x轴坐标值,所述嘴巴的左端点位置信息为左端点的x轴坐标值;
根据所述面部器官定位信息,确定检测结果,包括:
若所述鼻子的x轴坐标值小于所述左眼的x轴坐标值,且所述鼻子的x轴坐标值小于所述左端点的x轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向左偏转。
进一步地,若面部器官定位信息包括鼻子位置信息、嘴巴的左端点位置信息和嘴巴的右端点位置信息,则所述鼻子位置信息为鼻子的y轴坐标值,所述嘴巴的左端点位置信息为左端点的y轴坐标值,所述嘴巴的右端点位置信息为右端点的y轴坐标值;
根据所述面部器官定位信息,确定检测结果,包括:
若所述鼻子的y轴坐标值大于所述左端点的y轴坐标值,且所述鼻子的y轴坐标值大于所述右端点的y轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向下低头。
进一步地,若面部器官定位信息包括鼻子位置信息、左眼位置信息和右眼位置信息,则所述鼻子位置信息为鼻子的y轴坐标值,所述左眼位置信息为左眼的y轴坐标值,所述右眼位置信息为右眼的y轴坐标值;
根据所述面部器官定位信息,确定检测结果,包括:
若所述鼻子的y轴坐标值小于所述左眼的y轴坐标值,且所述鼻子的y轴坐标值小于所述右眼的y轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向上仰头。
进一步地,所述面部检测方法,还包括:
对所述面部图像进行清晰度计算,得到并显示所述面部图像的清晰度评分;
若所述清晰度评分小于预设阈值,则确定所述面部图像为面部模糊的面部图像;
若所述清晰度评分大于等于预设阈值,则确定所述面部图像为面部清楚的面部图像。
进一步地,在确定所述面部图像为面部模糊的面部图像之后,还包括:
生成并显示第二提示消息,其中,所述第二提示消息用于指示所述面部图像为面部模糊的面部图像;
在确定所述面部图像为面部清楚的面部图像之后,还包括:
生成并显示第三提示消息,其中,所述第三提示消息用于指示所述面部图像为面部清楚的面部图像。
进一步地,所述清晰度评分为
其中,x为所述面部图像的像素点的x轴坐标,y为所述面部图像的像素点的y轴坐标,f(x,y)为像素点(x,y)的灰度值,x、y、M、N都是整数,x∈[1,M],y∈[1,N]。
进一步地,所述面部检测方法,还包括:
采用预设的第一神经网络模型对所述面部图像进行检测,以确定所述面部图像是否为被遮挡的面部图像;
生成并显示第四提示消息,其中,所述第四提示消息用于指示所述面部图像是否为被遮挡的面部图像。
进一步地,在根据所述面部器官定位信息,确定检测结果之后,还包括:
在确定所述面部图像不是非正面的面部图像时,确定所述面部图像为正面的面部图像;
对所述正面的面部图像进行清晰度计算,得到所述正面的面部图像的清晰度评分;
若所述清晰度评分大于等于预设阈值,则确定所述正面的面部图像为面部清楚的面部图像;
采用预设的第一神经网络模型对所述面部清楚的面部图像进行遮挡检测,以确定所述面部清楚的面部图像是否为被遮挡的面部图像;
若所述面部清楚的面部图像不是被遮挡的面部图像,则确定所述面部清楚的面部图像为清晰正面的面部图像。
进一步地,所述获取面部图像,包括:
获取待处理的第一图像集合,其中,所述第一图像集合中包括至少一个图像;
采用预设的第二神经网络模型对所述第一图像集合中的图像进行检测,得到所述面部图像。
进一步地,所述采用预设的第二神经网络模型对所述第一图像集合中的图像进行检测,得到所述面部图像,包括:
对所述第一图像集合中的每一个图像进行缩放处理,得到第二图像集合,其中,所述第二图像集合中包括所述每一个图像在不同比例下的图像;
采用所述第二神经网络模型中的第一处理模型对所述第二图像集合中的图像进行处理,以确定是否得到候选窗体;
若确定得到P个候选窗体,其中,P为大于等于1的正整数,P个候选窗体中的一个或多个候选窗体中包括多个候选面部,则采用所述第二神经网络模型中的第二处理模型对所述P个候选窗体进行筛选处理,以去除不包括候选面部的候选窗体,得到包括候选面部的候选窗体;采用所述第二神经网络模型中的第三处理模型对所述包括候选面部的候选窗体进行识别处理,以得到所述面部图像;
若确定没有得到候选窗体,则确定没有检测到面部图像。
本申请的第二方面是提供一种目标检测方法,包括:
获取当前视频流,并采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测;
若侦测到所述当前视频流中有移动发生,则采用如上任一项所述面部检测方法,对所述当前视频流进行目标检测。
进一步地,所述采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测,包括:
通过相邻帧图像差分方式,侦测所述当前视频流的监控区域中是否有移动发生。
进一步地,对所述当前视频流进行目标检测,包括:
确定是否在所述当前视频流中检测到目标图像;
若检测到目标图像,则对所述目标图像进行处理;
若在预设时间段内没有检测到目标图像,则执行获取当前视频流,并采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测。
本申请的第三方面是提供一种面部检测装置,包括:
获取单元,用于获取面部图像,并确定所述面部图像中的面部器官定位信息,其中,所述面部器官定位信息表征了所述面部图像中的多个面部器官在面部图像上的位置信息;
第一确定单元,用于根据所述面部器官定位信息,确定检测结果,其中,所述检测结果表征所述面部图像为正面的面部图像、或者所述面部图像为非正面的面部图像;
第一生成单元,用于在所述检测结果表征所述面部图像为正面的面部图像时,生成第一提示信息;
第一显示单元,用于显示所述第一提示信息。
进一步地,所述面部检测装置,还包括:
第二显示单元,用于在所述第一确定单元根据所述面部器官定位信息,确定检测结果之前,显示所述面部器官定位信息。
进一步地,所述面部器官定位信息包括以下的至少一种:左眼位置信息、右眼位置信息、鼻子位置信息、嘴巴的左端点位置信息、嘴巴的右端点位置信息。
进一步地,若面部器官定位信息包括鼻子位置信息、右眼位置信息和嘴巴的右端点位置信息,则所述鼻子位置信息为鼻子的x轴坐标值,所述右眼位置信息为右眼的x轴坐标值,所述嘴巴的右端点位置信息为右端点的x轴坐标值;
所述第一确定单元,具体用于:
若所述鼻子的x轴坐标值大于所述右眼的x轴坐标值,且所述鼻子的x轴坐标值大于所述右端点的x轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向右偏转。
进一步地,若面部器官定位信息包括鼻子位置信息、左眼位置信息和嘴巴的左端点位置信息,则所述鼻子位置信息为鼻子的x轴坐标值,所述左眼位置信息为左眼的x轴坐标值,所述嘴巴的左端点位置信息为左端点的x轴坐标值;
所述第一确定单元,具体用于:
若所述鼻子的x轴坐标值小于所述左眼的x轴坐标值,且所述鼻子的x轴坐标值小于所述左端点的x轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向左偏转。
进一步地,若面部器官定位信息包括鼻子位置信息、嘴巴的左端点位置信息和嘴巴的右端点位置信息,则所述鼻子位置信息为鼻子的y轴坐标值,所述嘴巴的左端点位置信息为左端点的y轴坐标值,所述嘴巴的右端点位置信息为右端点的y轴坐标值;
所述第一确定单元,具体用于:
若所述鼻子的y轴坐标值大于所述左端点的y轴坐标值,且所述鼻子的y轴坐标值大于所述右端点的y轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向下低头。
进一步地,若面部器官定位信息包括鼻子位置信息、左眼位置信息和右眼位置信息,则所述鼻子位置信息为鼻子的y轴坐标值,所述左眼位置信息为左眼的y轴坐标值,所述右眼位置信息为右眼的y轴坐标值;
所述第一确定单元,具体用于:
若所述鼻子的y轴坐标值小于所述左眼的y轴坐标值,且所述鼻子的y轴坐标值小于所述右眼的y轴坐标值,则确定所述检测结果为所述面部图像为非正面的面部图像,其中,所述面部图像中的面部向上仰头。
进一步地,所述面部检测装置,还包括:
第一计算单元,用于对所述面部图像进行清晰度计算,得到所述面部图像的清晰度评分;
第三显示单元,用于显示所述面部图像的清晰度评分;
第二确定单元,用于若所述清晰度评分小于预设阈值,则确定所述面部图像为面部模糊的面部图像;
第三确定单元,用于若所述清晰度评分大于等于预设阈值,则确定所述面部图像为面部清楚的面部图像。
进一步地,所述面部检测装置,还包括:
第二生成单元,用于在所述第二确定单元确定所述面部图像为面部模糊的面部图像之后,生成第二提示消息,其中,所述第二提示消息用于指示所述面部图像为面部模糊的面部图像;
第四显示单元,用于显示所述第二提示消息;
所述面部检测装置,还包括:
第三生成单元,用于在所述第三确定单元确定所述面部图像为面部清楚的面部图像之后,生成第三提示消息,其中,所述第三提示消息用于指示所述面部图像为面部清楚的面部图像;
第五显示单元,用于显示所述第三提示消息。
进一步地,所述清晰度评分为
其中,x为所述面部图像的像素点的x轴坐标,y为所述面部图像的像素点的y轴坐标,f(x,y)为像素点(x,y)的灰度值,x、y、M、N都是整数,x∈[1,M],y∈[1,N]。
进一步地,所述面部检测装置,还包括:
第一检测单元,用于采用预设的第一神经网络模型对所述面部图像进行检测,以确定所述面部图像是否为被遮挡的面部图像;
第四生成单元,用于生成第四提示消息,其中,所述第四提示消息用于指示所述面部图像是否为被遮挡的面部图像;
第六显示单元,用于显示所述第四提示消息。
进一步地,所述面部检测装置,还包括:
第四确定单元,用于在所述第一确定单元根据所述面部器官定位信息,确定检测结果之后,在确定所述面部图像不是非正面的面部图像时,确定所述面部图像为正面的面部图像;
第二计算单元,用于对所述正面的面部图像进行清晰度计算,得到所述正面的面部图像的清晰度评分;
第五确定单元,用于若所述清晰度评分大于等于预设阈值,则确定所述正面的面部图像为面部清楚的面部图像;
第二检测单元,用于采用预设的第一神经网络模型对所述面部清楚的面部图像进行遮挡检测,以确定所述面部清楚的面部图像是否为被遮挡的面部图像;
第六确定单元,用于若所述面部清楚的面部图像不是被遮挡的面部图像,则确定所述面部清楚的面部图像为清晰正面的面部图像。
进一步地,所述获取单元,包括:
获取模块,用于获取待处理的第一图像集合,其中,所述第一图像集合中包括至少一个图像;
检测模块,用于采用预设的第二神经网络模型对所述第一图像集合中的图像进行检测,得到所述面部图像。
进一步地,所述检测模块,具体用于:
对所述第一图像集合中的每一个图像进行缩放处理,得到第二图像集合,其中,所述第二图像集合中包括所述每一个图像在不同比例下的图像;
采用所述第二神经网络模型中的第一处理模型对所述第二图像集合中的图像进行处理,以确定是否得到候选窗体;
若确定得到P个候选窗体,其中,P为大于等于1的正整数,P个候选窗体中的一个或多个候选窗体中包括多个候选面部,则采用所述第二神经网络模型中的第二处理模型对所述P个候选窗体进行筛选处理,以去除不包括候选面部的候选窗体,得到包括候选面部的候选窗体;采用所述第二神经网络模型中的第三处理模型对所述包括候选面部的候选窗体进行识别处理,以得到所述面部图像;
若确定没有得到候选窗体,则确定没有检测到面部图像。
本申请的第四方面是提供一种目标检测装置,包括:
获取单元,用于获取当前视频流;
侦测单元,用于采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测;
检测单元,用于若所述侦测单元侦测到所述当前视频流中有移动发生,则采用如上任一项所述面部检测装置,对所述当前视频流进行目标检测。
进一步地,所述侦测单元,具体用于:
通过相邻帧图像差分方式,侦测所述当前视频流的监控区域中是否有移动发生。
进一步地,所述检测单元,具体用于:
确定是否在所述当前视频流中检测到目标图像;
若检测到目标图像,则对所述目标图像进行处理;
若在预设时间段内没有检测到目标图像,则确定执行所述获取单元和所述侦测单元。
本申请的第五方面是提供一种计算机,包含第二方面任一实现方式提供的面部检测装置。
本申请的第六方面是提供一种计算机,包含第四方面任一实现方式提供的目标检测装置。
本申请的第七方面是提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器执行第一方面任一实现方式提供的面部检测方法。
本申请的第八方面是提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器执行第二方面任一实现方式提供的目标检测方法。
本申请的第九方面是提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行第一方面任一实现方式提供的面部检测方法。
本申请的第十方面是提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行第二方面任一实现方式提供的目标检测方法。
本申请的第十一方面是提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行第一方面任一实现方式提供的面部检测方法。
本申请的第十二方面是提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行第一方面任一实现方式提供的目标检测方法。
本申请,通过获取面部图像,并确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息;根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像;在检测结果表征面部图像为正面的面部图像时,生成并显示第一提示信息。提供了一种通过面部器官定位信息,识别出面部图为非正面或正面的面部图像的方法;由于面部器官定位信息表征了面部器官在面部图像上的位置信息,进而对面部器官定位信息进行分析,可以确定出面部图像是正面的面部图像还是非正面的面部图像;从而,可以准确的确定出正面的面部图像,识别方法准确,便于对正面的面部图像进行分析;并且可以生成并显示第一提示信息,以提示用户检测到了正面的面部图像。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1为本申请提供的应用场景示意图一;
图2为本申请提供的应用场景示意图二;
图3为本申请实施例提供的一种面部检测方法的流程示意图;
图4为本申请实施例提供的另一种面部检测方法的流程示意图;
图5为本申请实施例提供的又一种面部检测方法的流程示意图;
图6为本申请实施例提供的一种目标检测方法的流程示意图;
图7为本申请实施例提供的另一种目标检测方法的流程示意图;
图8为本申请实施例提供的一种面部检测装置的结构示意图;
图9为本申请实施例提供的另一种面部检测装置的结构示意图;
图10为本申请实施例提供的又一种面部检测装置的结构示意图;
图11为本申请实施例提供的一种目标检测装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图;
图13为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
在进行面部检测时候,可以在设备中配置面部检测模型,其中,面部检测模型例如有Adaboost模型、卷积神经网络模型等;在设备在开启面部检测功能开启后,设备会实时的采用面部检测模型对图像进行面部检测。对于面部的偏转角度过大的图像,尚没有一种可以良好的识别方法,从而在面部图像为非正面的面部图像的时候,无法准确的确定出运动目标;进而,如何对非正面和正面的面部图像进行检测,是一个尚需要解决的问题。
图1为本申请提供的应用场景示意图一,如图1所示,可以对人的面部进行检测,获取人的面部图像,以确定该面部图像是正面的面部图像,还是非正面的面部图像。
图2为本申请提供的应用场景示意图二,如图2所示,可以对动物的面部进行检测,获取动物的面部图像,以确定该面部图像是正面的面部图像,还是非正面的面部图像。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图3为本申请实施例提供的一种面部检测方法的流程示意图。如图1所示,该方法包括:
步骤101、获取面部图像,并确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息。
可选的,面部器官定位信息包括以下的至少一种:左眼位置信息、右眼位置信息、鼻子位置信息、嘴巴的左端点位置信息、嘴巴的右端点位置信息。
在本实施例中,具体的,在本实施例中,具体的,本实施例的执行主体为处理器、或者控制器、或者面部检测装置、或者其他可以执行本实施例方法的装置或设备。本实施例以执行主体为处理器进行说明。
处理器与摄像头连接。摄像头可以获取图像和视频。处理器为一种类型为Hi3516AV200的芯片。其中,Hi3516AV200的芯片是主频1.25GHz的Cortex-A17和800兆赫(MHz)的Cortex-A17。
首先,处理器获取摄像头所采集到的视频流或图像,处理器可以采用面部检测算法对视频流或图像进行面部检测,然后得到面部图像。其中,面部图像中包括了面部器官的位置信息,即处理器可以获取到面部器官定位信息。
其中,面部器官定位信息包括了或者指示出了多个面部器官在面部图像上的位置信息。面部器官定位信息包括以下的至少一种:左眼位置信息、右眼位置信息、鼻子位置信息、嘴巴的左端点位置信息、嘴巴的右端点位置信息。其中,左眼位置信息为左眼的x轴坐标值和y轴坐标值,右眼位置信息为右眼的x轴坐标值和y轴坐标值,鼻子位置信息为鼻子的x轴坐标值和y轴坐标值,嘴巴的左端点位置信息为嘴巴左端点的x轴坐标值和y轴坐标值,嘴巴的右端点位置信息为嘴巴右端点的x轴坐标值和y轴坐标值。上述坐标值所在的坐标系可以是物理坐标系,或者是面部图像的坐标系。
举例来说,在图1所示的场景中,可以获取到人脸的面部图像,可以根据现有的面部检测算法确定出人脸的面部图像中的眼睛、鼻子、嘴巴在面部图像上的位置信息。再举例来说,在图2所示的场景中,还可以获取到动物的面部图像,可以根据现有的面部检测算法确定出动物的面部图像中的眼睛、鼻子、嘴巴在面部图像上的位置信息。
其中,面部检测算法例如有Adaboost模型、多任务级联卷积神经网络(Multi-taskCascaded Convolutional Networks,简称MTCNN)模型、卷积神经网络(ConvolutionalNeural Network,简称CNN)模型、支持向量机分类器等等。
步骤102、根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像。
在本实施例中,具体的,处理器根据面部器官定位信息,对面部图像进行分析,进而确定出面部图像是否发生了偏转;若确定面部图像发生了偏转,则确定面部图像为非正面的面部图像;若确定面部图像没有发生偏转,则确定面部图像为正面的面部图像。
举例来说,在图1所示的场景下,处理器在得到人脸的面部器官定位信息,处理器确定若缺失了左眼位置信息,则处理器确定面部向左偏转,进而确定面部图像为非正面的面部图像;或者,处理器确定若缺失了右眼位置信息,则处理器确定面部向右偏转,进而确定面部图像为非正面的面部图像;或者,处理器确定若缺失了鼻子位置信息,则处理器确定面部向右偏转或向左偏转,进而确定面部图像为非正面的面部图像。在图2所示的场景下,也可以参见上述过程。
步骤103、在检测结果表征面部图像为正面的面部图像时,生成并显示第一提示信息。
在本实施例中,具体的,处理器在确定出面部图像为正面的面部图像的时候,可以生成第一提示信息,第一提示信息可以是以下信息中一种或多种:文字信息、语音信息、图像信息、震动信息、灯光信息、框选信息、突出显示信息。然后,处理器显示上述第一提示信息。显示第一提示信息的方式可以是以下的一种或多种:文字显示、语音播放、图像显示、震动、灯光提示、对面部图像进行框选、突出显示面部图像。
本实施例,通过获取面部图像,并确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息;根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像;在检测结果表征面部图像为正面的面部图像时,生成并显示第一提示信息。提供了一种通过面部器官定位信息,识别出面部图为非正面或正面的面部图像的方法;由于面部器官定位信息表征了面部器官在面部图像上的位置信息,进而对面部器官定位信息进行分析,可以确定出面部图像是正面的面部图像还是非正面的面部图像;从而,可以准确的确定出正面的面部图像,识别方法准确,便于对正面的面部图像进行分析;并且可以生成并显示第一提示信息,以提示用户检测到了正面的面部图像。
图4为本申请实施例提供的另一种面部检测方法的流程示意图。如图4所示,该方法包括:
步骤201、获取待处理的第一图像集合,其中,第一图像集合中包括至少一个图像。
在本实施例中,具体的,在本实施例中,具体的,本实施例的执行主体为处理器、或者控制器、或者面部检测装置、或者其他可以执行本实施例方法的装置或设备。本实施例以执行主体为处理器进行说明。
处理器与摄像头连接。摄像头可以获取视频流,视频流包括多帧图像,多帧图像构成一个第一图像集合。
步骤202、采用预设的第二神经网络模型对第一图像集合中的图像进行检测,得到面部图像。
可选的,步骤202具体包括以下步骤:
第一步骤、对第一图像集合中的每一个图像进行缩放处理,得到第二图像集合,其中,第二图像集合中包括每一个图像在不同比例下的图像。
第二步骤、采用第二神经网络模型中的第一处理模型对第二图像集合中的图像进行处理,以确定是否得到候选窗体。
第三步骤、若确定得到P个候选窗体,其中,P为大于等于1的正整数,P个候选窗体中的一个或多个候选窗体中包括多个候选面部,则采用第二神经网络模型中的第二处理模型对P个候选窗体进行筛选处理,以去除不包括候选面部的候选窗体,得到包括候选面部的候选窗体;采用第二神经网络模型中的第三处理模型对包括候选面部的候选窗体进行识别处理,以得到面部图像。
第四步骤、若确定没有得到候选窗体,则确定没有检测到面部图像。
在本实施例中,具体的,处理器可以采用面部检测算法对第一图像集合中的每一个图像进行面部检测,得到面部图像。在本步骤中,面部检测算法可以是第二神经网络模型,例如,第二神经网络模型为MTCNN模型。
具体来说,第二神经网络模型采用三级级联网络,分别是第一处理模型、第二处理模型和第三处理模型。例如,若第二神经网络模型为MTCNN模型,则第一处理模型为Proposal Net(P-Net),第二处理模型为Refine Net(R-Net),第三处理模型为Output Net(O-Net)。首先,对第一图像集合中的每一个图像依据不同的比例进行缩放处理,进而得到每一个图像在不同比例下的图像,得到的图像组合成一个第二图像集合;然后,采用第二处理模型对第二图像集合中的图像进行处理,以确定是否可以得到候选窗体;然后可以确定得到了P个候选窗体,其中,P候选窗体中的部分候选窗体中具有一个或多个候选面部,剩余部分的候选窗体不具有候选面部;然后,可以采用第二处理模块对所得到的P个候选窗体进行识别处理,将不具有候选面部的候选窗体进行剔除,从而只得到具有候选面部的候选窗体;然后,再采用第三处理模型对具有候选面部的候选窗体进行识别处理,进而得到候选窗体中的面部图像。
其中,通过上述第二神经网络模型,可以输出面部框,还会得到没有给面部图像的左眼位置信息、右眼位置信息、鼻子位置信息、嘴巴的左端点位置信息、嘴巴的右端点位置信息,即得到以上5个点的位置信息。将以上5个点的位置信息,作为面部器官定位信息。
上述第二神经网络模型可以采用MTCNN模型,MTCNN模型具有无第三方库依赖、内存管理精细、计算快速等优点。通过实验发现,采用MTCNN模型进行面部检测,处理时间不超过100毫秒/帧;面部检测的召回率大于98%,面部检测的准确率大于98%。
步骤203、确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息。
在本实施例中,具体的,本步骤可以参见图3所示的步骤101,不再赘述。
步骤204、显示面部器官定位信息。
在本实施例中,具体的,处理器在确定得到面部器官定位信息之后,可以通过显示屏或者其他设备显示所得到的面部器官定位信息。其中,显示面部器官定位信息的方式可以采用以下的一种或多种:文字显示、语音播放、图像显示、震动、灯光提示、对面部图像进行框选、突出显示面部图像。
步骤205、根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像。
可选的,步骤205包括以下几种实施方式:
步骤205的第一种实施方式:若面部器官定位信息包括鼻子位置信息、右眼位置信息和嘴巴的右端点位置信息,则鼻子位置信息为鼻子的x轴坐标值,右眼位置信息为右眼的x轴坐标值,嘴巴的右端点位置信息为右端点的x轴坐标值;若鼻子的x轴坐标值大于右眼的x轴坐标值,且鼻子的x轴坐标值大于右端点的x轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向右偏转。
步骤205的第二种实施方式:若面部器官定位信息包括鼻子位置信息、左眼位置信息和嘴巴的左端点位置信息,则鼻子位置信息为鼻子的x轴坐标值,左眼位置信息为左眼的x轴坐标值,嘴巴的左端点位置信息为左端点的x轴坐标值;若鼻子的x轴坐标值小于左眼的x轴坐标值,且鼻子的x轴坐标值小于左端点的x轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向左偏转。
步骤205的第三种实施方式:若面部器官定位信息包括鼻子位置信息、嘴巴的左端点位置信息和嘴巴的右端点位置信息,则鼻子位置信息为鼻子的y轴坐标值,嘴巴的左端点位置信息为左端点的y轴坐标值,嘴巴的右端点位置信息为右端点的y轴坐标值;若鼻子的y轴坐标值大于左端点的y轴坐标值,且鼻子的y轴坐标值大于右端点的y轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向下低头。
步骤205的第四种实施方式:若面部器官定位信息包括鼻子位置信息、左眼位置信息和右眼位置信息,则鼻子位置信息为鼻子的y轴坐标值,左眼位置信息为左眼的y轴坐标值,右眼位置信息为右眼的y轴坐标值;若鼻子的y轴坐标值小于左眼的y轴坐标值,且鼻子的y轴坐标值小于右眼的y轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向上仰头。
在本实施例中,具体的,如果面部图像中的面部偏转角度过大,会缺失很多的特征点,无法采用面部偏转角度过大的面部图像实现面部识别;例如,在图1所示的场景下,容易将同一个判断成不同的两个人;从而需要判断出面部偏转角度过大的面部图像,即判断出非正面的面部图像。
对于判断出非正面的面部图像,本步骤提供以下几种实施方式。
首先,左眼位置信息为(left_eye_x,left_eye_y),其中,left_eye_x为左眼的x轴坐标值,left_eye_y为左眼的y轴坐标值。右眼位置信息为(right_eye_x,right_eye_y),right_eye_x为右眼的x轴坐标值。right_eye_y为右眼的y轴坐标值;鼻子位置信息为(nose_x,nose_y),nose_x为鼻子的x轴坐标值,nose_y为鼻子的y轴坐标值。嘴巴的左端点位置信息为(left_mouth_x,left_mouth_y),left_mouth_x为左端点的x轴坐标值,left_mouth_y为左端点的y轴坐标值。嘴巴的右端点位置信息为(right_mouth_x,right_mouth_y),right_mouth_x为右端点的x轴坐标值,right_mouth_y为右端点的y轴坐标值。
第一种实施方式:可以采用鼻子位置信息、右眼位置信息和嘴巴的右端点位置信息对面部进行分析;例如,处理器若确定(nose_x>right_eye_x),并且(nose_x>right_mouth_x),即确定鼻子的x轴坐标值大于右眼的x轴坐标值,且鼻子的x轴坐标值大于右端点的x轴坐标值,那么处理器确定面部图像中的面部向右偏转很大角度,面部图像为非正面的面部图像。
第二种实施方式:可以采用鼻子位置信息、左眼位置信息和嘴巴的左端点位置信息对面部进行分析;例如,处理器若确定(nose_x<left_eye_x),并且(nose_x<left_mouth_x),即确定鼻子的x轴坐标值小于左眼的x轴坐标值,且鼻子的x轴坐标值小于左端点的x轴坐标值,那么处理器确定面部图像中的面部向左偏转很大角度,面部图像为非正面的面部图像。
第三种实施方式:可以采用鼻子位置信息、嘴巴的左端点位置信息和嘴巴的右端点位置信息对面部进行分析;例如,处理器若确定(nose_y>left_mouth_y),并且(nose_y>right_mouth_y),即确定鼻子的y轴坐标值大于左端点的y轴坐标值,且鼻子的y轴坐标值大于右端点的y轴坐标值,那么处理器确定面部图像中的面部向下低头角度过大,面部图像为非正面的面部图像。
第四种实施方式:可以采用鼻子位置信息、左眼位置信息和右眼位置信息对面部进行分析;例如,处理器若确定(nose_y<left_eye_y),并且(nose_y<right_eye_y),即确定鼻子的y轴坐标值小于左眼的y轴坐标值,且鼻子的y轴坐标值小于右眼的y轴坐标值,那么处理器确定面部图像中的面部向上仰头角度过大,面部图像为非正面的面部图像。
第五种实施方式:可以采用左眼位置信息对面部进行分析;例如,处理器若确定不存在left_eye_x和/或left_eye_y,那么处理器确定面部图像中的面部向左偏转很大角度,面部图像为非正面的面部图像。
第六种实施方式:可以采用右眼位置信息对面部进行分析;例如,处理器若确定不存在right_eye_x和/或right_eye_y,那么处理器确定面部图像中的面部向右偏转很大角度,面部图像为非正面的面部图像。
第七种实施方式:可以采用嘴巴的左端点位置信息和嘴巴的右端点位置信息对面部进行分析;例如,处理器若确定不存在(left_mouth_x,left_mouth_y)和(right_mouth_x,right_mouth_y),那么处理器确定面部图像中的面部向下低头角度过大,或面部向上仰头角度过大,面部图像为非正面的面部图像。
步骤206、在检测结果表征面部图像为正面的面部图像时,生成并显示第一提示信息。
在本实施例中,具体的,本步骤可以参见图3所示的步骤103,不再赘述。
本实施例,通过获取面部图像,并确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息;根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像;在检测结果表征面部图像为正面的面部图像时,生成并显示第一提示信息。提供了一种通过面部器官定位信息,识别出面部图为非正面或正面的面部图像的方法;由于面部器官定位信息表征了面部器官在面部图像上的位置信息,进而对面部器官定位信息进行分析,可以确定出面部图像是正面的面部图像还是非正面的面部图像;从而,可以准确的确定出正面的面部图像,识别方法准确,便于对正面的面部图像进行分析;并且可以生成并显示第一提示信息,以提示用户检测到了正面的面部图像。并且给出了获取面部图像的具体方式;可以根据鼻子、眼睛、嘴巴的位置信息,确定出面部图像是非正面的面部图像,还是正面的面部图像。
在上述实施例的基础上,在上述实施例的任一步骤之前或之后,还可以执行以下步骤:
第一步骤、对面部图像进行清晰度计算,得到并显示面部图像的清晰度评分。
可选的,清晰度评分为 其中,x为面部图像的像素点的x轴坐标,y为面部图像的像素点的y轴坐标,f(x,y)为像素点(x,y)的灰度值,x、y、M、N都是整数,x∈[1,M],y∈[1,N]。
在本实施例中,具体的,由于采用摄像头实时的拍摄图像以获取到面部图像;拍摄过程中,图像会出现动态模糊或者对焦模糊的情况;进而,造成得到的面部图像不清晰,不清晰的面部图像也不能很好地实现面部识别,例如,出现面部识别和面部比对错误的情况。从而,需要识别出面部模糊的面部图像。
处理器可以采用预设的图像清晰度评价函数,对面部图像进行清晰度计算,得到面部图像的清晰度评分。举例来说,图像清晰度评价函数可以为以下的至少一种:Brenner函数、Laplacian函数、SMD函数、SMD2函数、等等。
举例来说,处理器可以采用SMD2函数对面部图像进行清晰度计算;处理器获取面部图像中每一个像素点的灰度值f(x,y),然后,处理器根据每一个像素点的灰度值f(x,y),计算出清晰度评分
第二步骤、若清晰度评分小于预设阈值,则确定面部图像为面部模糊的面部图像。
在本实施例中,具体的,处理器预先设置了一个阈值,处理器若确定清晰度评分小于预设阈值,则可以确定面部图像为面部模糊的面部图像。
对于不同的图像清晰度评价函数,图像清晰度评价函数对应的阈值可以不同。
第三步骤、生成并显示第二提示消息,其中,第二提示消息用于指示面部图像为面部模糊的面部图像。
在本实施例中,具体的,在第二步骤之后,处理器可以生成第二提示消息,用于提示给用户,当前的面部图像为面部模糊的面部图像。其中,显示第二提示消息的方式可以采用以下的一种或多种:文字显示、语音播放、图像显示、震动、灯光提示、对面部图像进行框选、突出显示面部图像。
第四步骤、若清晰度评分大于等于预设阈值,则确定面部图像为面部清楚的面部图像。
在本实施例中,具体的,处理器若确定清晰度评分大于等于预设阈值,则可以确定面部图像为面部清楚的面部图像。
第五步骤、生成并显示第三提示消息,其中,第三提示消息用于指示面部图像为面部清楚的面部图像。
在本实施例中,具体的,在第四步骤之后,处理器可以生成第三提示消息,用于提示给用户,当前的面部图像为面部清楚的面部图像。其中,显示第三提示消息的方式可以采用以下的一种或多种:文字显示、语音播放、图像显示、震动、灯光提示、对面部图像进行框选、突出显示面部图像。
上述各步骤,可以在图3或图4中的任意步骤之前或之后执行。
通过上述步骤,可以对面部图像的清楚度进行分析,并且可以生成并显示提示信息。
在上述实施例和实施方式的基础上,在上述实施例和实施例方式的任一步骤之前或之后,还可以执行以下步骤:
第一步骤、采用预设的第一神经网络模型对面部图像进行检测,以确定面部图像是否为被遮挡的面部图像。
在本实施例中,具体的,由于采用摄像头实时的拍摄图像以获取到面部图像;拍摄过程中,面部图像会出现被遮挡情况;被遮挡的面部图像也无法进行面部识别。从而,需要识别出被遮挡的面部图像。
处理器可以获取待训练的面部图像,待训练的面部图像中包括被遮挡的面部图像、没有被遮挡的面部图像、以及其他不合格的面部图像,其中,其他不合格的面部图像可以为前面未被识别出的偏转过大或不够清晰的图像;处理器获取待训练的面部图像,对待训练的面部图像进行大小修改,例如,将图像大小由227x227像素修改成113x113像素;然后,处理器将待训练的面部图像,输入到预设的第一神经网络模型中进行训练,得到训练成熟的第一神经网络模型;然后,处理器将待识别的面部图像,输入到训练成熟的第一神经网络模型中,得到被遮挡的面部图像和没有被遮挡的面部图像。
其中,第一神经网络模型可以为轻量化的CNN模型,例如,轻量化的CNN模型可以SqueezeNet模型、MobileNet模型、ShuffleNet模型。
第二步骤、生成并显示第四提示消息,其中,第四提示消息用于指示面部图像是否为被遮挡的面部图像。
在本实施例中,具体的,处理器可以生成第四提示消息,用于提示给用户,当前的面部图像是否为被遮挡的面部图像。其中,显示第四提示消息的方式可以采用以下的一种或多种:文字显示、语音播放、图像显示、震动、灯光提示、对面部图像进行框选、突出显示面部图像。
上述各步骤,可以在图3或图4中的任意步骤之前或之后执行。
通过上述步骤,可以对面部图像是否为被遮挡的图像进行分析,并且可以生成并显示提示信息。
图5为本申请实施例提供的又一种面部检测方法的流程示意图。如图5所示,该方法包括:
步骤301、获取待处理的第一图像集合,其中,第一图像集合中包括至少一个图像。
在本实施例中,具体的,在本实施例中,具体的,本实施例的执行主体为处理器、或者控制器、或者面部检测装置、或者其他可以执行本实施例方法的装置或设备。本实施例以执行主体为处理器进行说明。
本步骤可以参见图4所示的步骤201,不再赘述。
步骤302、采用预设的第二神经网络模型对第一图像集合中的图像进行检测,得到面部图像。
在本实施例中,具体的,本步骤可以参见图4所示的步骤202,不再赘述。
步骤303、确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息。
在本实施例中,具体的,本步骤可以参见图4所示的步骤203,不再赘述。
步骤304、显示面部器官定位信息。
在本实施例中,具体的,本步骤可以参见图4所示的步骤204,不再赘述。
步骤305、根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像。
在本实施例中,具体的,本步骤可以参见图4所示的步骤205,不再赘述。
步骤306、在确定面部图像不是非正面的面部图像时,确定面部图像为正面的面部图像。
在本实施例中,具体的,在步骤305之后,处理器可以直接确定面部图像是非正面的面部图像,还是正面的面部图像。
步骤307、对正面的面部图像进行清晰度计算,得到正面的面部图像的清晰度评分。
在本实施例中,具体的,处理器在得到正面的面部图像之后,还可以对正面的面部图像进行清晰度计算,这是由于采用摄像头实时的拍摄图像以获取到面部图像;拍摄过程中,图像会出现动态模糊或者对焦模糊的情况;进而,造成得到的面部图像不清晰,不清晰的面部图像也不能很好地实现面部识别,例如,出现面部识别和面部比对错误的情况。从而,需要识别出面部模糊的面部图像。
处理器可以采用预设的图像清晰度评价函数,对面部图像进行清晰度计算,得到面部图像的清晰度评分。举例来说,图像清晰度评价函数可以为以下的至少一种:Brenner函数、Laplacian函数、SMD函数、SMD2函数、等等。
举例来说,处理器可以采用SMD2函数对面部图像进行清晰度计算;处理器获取面部图像中每一个像素点的灰度值f(x,y),然后,处理器根据每一个像素点的灰度值f(x,y),计算出清晰度评分
步骤308、若清晰度评分大于等于预设阈值,则确定正面的面部图像为面部清楚的面部图像。
在本实施例中,具体的,在步骤307之后,处理器预先设置了一个阈值,处理器若确定清晰度评分大于等于预设阈值,则可以确定面部图像为面部清楚的面部图像。并且,处理器可以生成提示消息,用于提示给用户,当前的面部图像为面部清楚的面部图像。
对于不同的图像清晰度评价函数,图像清晰度评价函数对应的阈值可以不同。
步骤309、采用预设的第一神经网络模型对面部清楚的面部图像进行遮挡检测,以确定面部清楚的面部图像是否为被遮挡的面部图像。
在本实施例中,具体的,步骤308之后,由于采用摄像头实时的拍摄图像以获取到面部图像;拍摄过程中,面部图像会出现被遮挡情况;被遮挡的面部图像也无法进行面部识别。从而,需要识别出被遮挡的面部图像。
此时,处理器将待训练的面部图像,输入到预设的第一神经网络模型中进行训练,得到训练成熟的第一神经网络模型;然后,处理器将待识别的面部图像,输入到训练成熟的第一神经网络模型中,得到被遮挡的面部图像和没有被遮挡的面部图像。其中,第一神经网络模型可以为轻量化的CNN模型,
步骤310、若面部清楚的面部图像不是被遮挡的面部图像,则确定面部清楚的面部图像为清晰正面的面部图像。
在本实施例中,具体的,步骤309之后,终端设备在确定面部清楚的面部图像不是被遮挡的面部图像之后,可以确定得到了清晰正面的面部图像;并且,处理器可以生成提示消息,用于提示给用户,当前的面部图像为清晰正面的面部图像。
步骤311、在检测结果表征面部图像为正面的面部图像时,生成并显示第一提示信息。
在本实施例中,具体的,本步骤可以参见图4所示的步骤206,不再赘述。
本实施例中,首先过滤掉偏转过大的面部图像,即过滤掉非正面的面部图像,然后过滤掉面部模糊的面部图像,然后取出被遮挡的面部图像;经过试验验证,通过以上方法进行面部检测,平均每个面部的判断时间小于50毫秒(ms)。进而得到正面的、清晰的、不被遮挡的面部图像;提供的面部检测方法快速、便捷,可以较快的识别出正面的、清晰的、不被遮挡的面部图像。
图6为本申请实施例提供的一种目标检测方法的流程示意图。如图6所示,该方法包括:
步骤401、获取当前视频流,并采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测。
可选的,步骤S401具体包括:通过相邻帧图像差分方式,侦测当前视频流的监控区域中是否有移动发生。
在本实施例中,具体的,将处理器与摄像头连接,处理器可以选取现在技术所提供的任意主流摄像头处理器。摄像头可以获取视频流。本实施例的处理器为一种芯片,该芯片是主频1.25GHz的Cortex-A17和800兆赫(MHz)的Cortex-A17;同时,芯片提供了智能分析加速引擎(Intelligence Video Engine,简称IVE)移动侦测方式;其中,IVE移动侦测方式,指的是将一些常用的图像处理和分析函数固化到芯片上,从而芯片具有运动目标检测的功能。
在本实施例中,本申请实施例所提供的移动侦测算法,被写入到智能分析加速引擎中,进而本申请实施例所提供的移动侦测过程由IVE进行执行。其中,IVE是固化到芯片上的硬件处理单元。
由于观察到与处理器连接的摄像头所采集的视频流的背景几乎没有变化,本实施例在进行目标检测的时候,分为IVE移动侦测和目标检测两种工作模式。
首先,处理器获取摄像头所采集到的视频流;处理器将视频流,传输给IVE;IVE实时的采用IVE移动侦测方式对当前视频流进行移动侦测,IVE采用相邻帧图像差分方式,去侦测当前视频流中是否有移动发生。即,IVE通过移动侦测方式,可以在确定视频流的画面有变化,则确认有移动发生。
其中,相邻帧图像差分方式,是一种移动侦测算法,原理为对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓,进而可以侦测到是否有移动发生。举例来说,IVE对当前视频流进行侦测,当前视频流中包括了多帧图像;对于相邻的两帧图像,IVE对相邻的两帧图像的像素点进行差分运算,以确定相邻的两帧图像的像素点的像素信息是否相同;IVE若确定相邻的两帧图像的像素信息不同,或者,IVE若确定相邻的两帧图像的像素信息差值不在预设范围之内,则确定有移动发生;IVE若确定相邻的两帧图像的像素信息相同,或者,IVE若确定相邻的两帧图像的像素信息差值在预设范围之内,则确定没有移动发生。
举例来说,在图1所示的场景下,处理器获取摄像头所采集到的视频流;处理器将视频流,传输给IVE;IVE实时的采用IVE移动侦测方式对当前视频流进行移动侦测,IVE采用相邻帧图像差分方式,根据当前视频流中的人是否移动,侦测当前视频流中是否有移动发生。
再举例来说,在图2所示的场景下,处理器获取摄像头所采集到的视频流;处理器将视频流,传输给IVE;IVE实时的采用IVE移动侦测方式对当前视频流进行移动侦测,IVE采用相邻帧图像差分方式,根据当前视频流中的动物是否移动,侦测当前视频流中是否有移动发生。
步骤402、若侦测到当前视频流中有移动发生,则采用上述示例提供的面部检测方法,对当前视频流进行目标检测。
在本实施例中,具体的,IVE若侦测到当前视频流中有移动发生,此时,需要处理器进入目标检测的工作模式;此时,处理器就可以采用目标检测算法对当前视频流进行目标检测。
并且,IVE一旦检测到当前视频流中有移动发生,IVE可以向终端发送预警信息;或者,IVE一旦检测到当前视频流中有移动发生,IVE可以向处理器发生通知消息,处理器向终端发送预警信息。其中,预警信息包括以下至少一种:文字信息、语音信息、图像信息。从而,终端可以显示预警信息;相关人员可以获知移动侦测的情况,以便于相关人员进行安全处理。
其中,目标检测算法例如有Adaboost模型、MTCNN模型、CNN模型、支持向量机分类器等等。
本实施例提供的方法,可以用于进行各个类型的目标的检测。
本实施例提供的方法,可以应用到面部检测中,例如,应用到面部对比、面部识别的场景中。目标检测设备的硬件在工作的时候,被分为IVE移动侦测和目标检测两种工作模式;IVE可以实时的对视频流进行处理,采用IVE移动侦测方式对当前视频流进行移动侦测;IVE在侦测到有移动发生时,IVE与处理器进行交互,使得处理器进入目标检测的工作模式,处理器根据上述实施例提供的面部检测方法,对当前视频流进行目标检测;IVE在没有侦测到移动发生时,IVE一直在IVE移动侦测的工作模式下进行移动侦测,不会触发处理器进行面部检测。
本实施例通过获取当前视频流,并采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测;若侦测到当前视频流中有移动发生,则采用上述实施例提供的面部检测方法,对当前视频流进行目标检测。目标检测设备的硬件在工作的时候,被分为IVE移动侦测和目标检测两种工作模式;IVE可以实时的对视频流进行处理,采用IVE移动侦测方式对当前视频流进行移动侦测;IVE在侦测到有移动发生时,IVE与处理器进行交互,使得处理器进入目标检测的工作模式,处理器采用上述实施例提供的面部检测方法对当前视频流进行目标检测;IVE在没有侦测到移动发生时,IVE一直在IVE移动侦测的工作模式下进行移动侦测,不会触发处理器进行目标检测。在现有技术中,在设备开启目标检测功能后,设备会一直运行目标检测算法的模型,进而目标检测算法的实时运算会占用设备的CPU的大量资源。但是,本申请提供的方案,由于移动侦测的过程由IVE执行,从而在移动侦测的过程中不需要处理器资源,只有在IVE侦测到移动发生时,IVE触发处理器进行目标检测;从而由于IVE执行了移动侦测的过程,可以减少处理器的资源占用,减少设备的功耗。
图7为本申请实施例提供的另一种目标检测方法的流程示意图。如图7所示,该方法包括:
步骤501、获取当前视频流,并采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测。
在本实施例中,具体的,本步骤可以参见图6提供的步骤401,不再赘述。
步骤502、若侦测到当前视频流中有移动发生,则采用上述实施例提供的面部检测方法,确定是否在当前视频流中检测到目标图像。
在本实施例中,具体的,IVE在侦测到有移动发生时,IVE与处理器进行交互,使得处理器进入目标检测的工作模式,处理器根据上述实施例提供的面部检测方法,对当前视频流进行目标检测。此时,处理器可以采用上述实施例和实施方式提供的面部检测方法,确定是否检测到目标图像。其中,目标图像为面部图像。
步骤503、若检测到目标图像,则对目标图像进行处理。
在本实施例中,具体的,处理器若确定检测到了目标图像,即,检测到了面部图像,则可以采用上述实施例和实施方式提供的面部检测方法,对面部图像进行分析和处理。
步骤504、若在预设时间段内没有检测到目标图像,则执行获取当前视频流,并采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测。
在本实施例中,具体的,处理器若在预设时间段内没有检测到目标图像,即,没有检测到面部图像,例如在30秒内都没有检测到面部图像,则处理器需要跳转工作模式;此时,处理器停止目标检测的工作模式,IVE进入IVE移动侦测的工作模式;从而IVE对新获取到的视频流,采用IVE移动侦测方式进行移动侦测;然后,重复步骤501-步骤504的过程。
本实施例,通过IVE实时的对视频流进行处理,IVE可以采用IVE移动侦测方式对当前视频流进行移动侦测;IVE在侦测到当前视频流中有移动发生时,触发处理器进入目标检测的工作模式,处理器对运动目标进行目标检测;在进行目标检测的过程中,处理器若检测到目标图像,则采用上述实施例和实施方式提供的面部检测方法,对面部图像进行分析和处理,处理器若在一段持续的时间段内没有检测到目标图像,则处理器停止面部检测,触发IVE进入IVE移动侦测的工作模式下进行移动侦测;IVE在侦测到当前视频流中没有移动发生时,IVE一直在IVE移动侦测的工作模式下进行移动侦测。通过采用IVE移动侦测的工作模式与目标检测的工作模式的相互迁移的方式,可以在确定有移动发生时,触发处理器进行目标检测和识别;在没有移动发生时,或者,处理器检测不到目标,IVE依然进行移动侦测。由于移动侦测的过程由IVE执行,从而在移动侦测的过程中不需要处理器资源,只有在IVE侦测到移动发生时,IVE触发处理器进行目标检测;从而由于IVE执行了移动侦测的过程,可以减少处理器的资源占用,减少设备的功耗。
图8为本申请实施例提供的一种面部检测装置的结构示意图,如图8所示,本实施例提供的面部检测装置,包括:
获取单元31,用于获取面部图像,并确定面部图像中的面部器官定位信息,其中,面部器官定位信息表征了面部图像中的多个面部器官在面部图像上的位置信息。
第一确定单元32,用于根据面部器官定位信息,确定检测结果,其中,检测结果表征面部图像为正面的面部图像、或者面部图像为非正面的面部图像。
第一生成单元33,用于在检测结果表征面部图像为正面的面部图像时,生成第一提示信息。
第一显示单元34,用于显示第一提示信息。
本实施例提供的面部检测装置,同于实现前述任一实施例和实施例方式所提供的面部检测方法中的技术方案,其实现原理和技术效果类似,不再赘述。
图9为本申请实施例提供的另一种面部检测装置的结构示意图,在图8所示实施例的基础上,如图9所示,本实施例提供的面部检测装置中,获取单元31,包括:
获取模块311,用于获取待处理的第一图像集合,其中,第一图像集合中包括至少一个图像。
检测模块312,用于采用预设的第二神经网络模型对第一图像集合中的图像进行检测,得到面部图像。
检测模块312,具体用于:对第一图像集合中的每一个图像进行缩放处理,得到第二图像集合,其中,第二图像集合中包括每一个图像在不同比例下的图像;采用第二神经网络模型中的第一处理模型对第二图像集合中的图像进行处理,以确定是否得到候选窗体;若确定得到P个候选窗体,其中,P为大于等于1的正整数,P个候选窗体中的一个或多个候选窗体中包括多个候选面部,则采用第二神经网络模型中的第二处理模型对P个候选窗体进行筛选处理,以去除不包括候选面部的候选窗体,得到包括候选面部的候选窗体;采用第二神经网络模型中的第三处理模型对包括候选面部的候选窗体进行识别处理,以得到面部图像;若确定没有得到候选窗体,则确定没有检测到面部图像。
本实施例提供的面部检测装置,还包括:
第二显示单元41,用于在第一确定单元32根据面部器官定位信息,确定检测结果之前,显示面部器官定位信息。
面部器官定位信息包括以下的至少一种:左眼位置信息、右眼位置信息、鼻子位置信息、嘴巴的左端点位置信息、嘴巴的右端点位置信息。
若面部器官定位信息包括鼻子位置信息、右眼位置信息和嘴巴的右端点位置信息,则鼻子位置信息为鼻子的x轴坐标值,右眼位置信息为右眼的x轴坐标值,嘴巴的右端点位置信息为右端点的x轴坐标值;第一确定单元32,具体用于:
若鼻子的x轴坐标值大于右眼的x轴坐标值,且鼻子的x轴坐标值大于右端点的x轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向右偏转。
若面部器官定位信息包括鼻子位置信息、左眼位置信息和嘴巴的左端点位置信息,则鼻子位置信息为鼻子的x轴坐标值,左眼位置信息为左眼的x轴坐标值,嘴巴的左端点位置信息为左端点的x轴坐标值;第一确定单元32,具体用于:
若鼻子的x轴坐标值小于左眼的x轴坐标值,且鼻子的x轴坐标值小于左端点的x轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向左偏转。
若面部器官定位信息包括鼻子位置信息、嘴巴的左端点位置信息和嘴巴的右端点位置信息,则鼻子位置信息为鼻子的y轴坐标值,嘴巴的左端点位置信息为左端点的y轴坐标值,嘴巴的右端点位置信息为右端点的y轴坐标值;第一确定单元32,具体用于:
若鼻子的y轴坐标值大于左端点的y轴坐标值,且鼻子的y轴坐标值大于右端点的y轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向下低头。
若面部器官定位信息包括鼻子位置信息、左眼位置信息和右眼位置信息,则鼻子位置信息为鼻子的y轴坐标值,左眼位置信息为左眼的y轴坐标值,右眼位置信息为右眼的y轴坐标值;第一确定单元32,具体用于:
若鼻子的y轴坐标值小于左眼的y轴坐标值,且鼻子的y轴坐标值小于右眼的y轴坐标值,则确定检测结果为面部图像为非正面的面部图像,其中,面部图像中的面部向上仰头。
本实施例提供的面部检测装置,同于实现前述任一实施例和实施例方式所提供的面部检测方法中的技术方案,其实现原理和技术效果类似,不再赘述。
进一步的,在上述面部检测装置的基础上,面部检测装置,还包括:
第一计算单元,用于对面部图像进行清晰度计算,得到面部图像的清晰度评分。
第三显示单元,用于显示面部图像的清晰度评分。
第二确定单元,用于若清晰度评分小于预设阈值,则确定面部图像为面部模糊的面部图像。
第三确定单元,用于若清晰度评分大于等于预设阈值,则确定面部图像为面部清楚的面部图像。
面部检测装置,还包括:
第二生成单元,用于在第二确定单元确定面部图像为面部模糊的面部图像之后,生成第二提示消息,其中,第二提示消息用于指示面部图像为面部模糊的面部图像。
第四显示单元,用于显示第二提示消息。
面部检测装置,还包括:
第三生成单元,用于在第三确定单元确定面部图像为面部清楚的面部图像之后,生成第三提示消息,其中,第三提示消息用于指示面部图像为面部清楚的面部图像。
第五显示单元,用于显示第三提示消息。
清晰度评分为 其中,x为面部图像的像素点的x轴坐标,y为面部图像的像素点的y轴坐标,f(x,y)为像素点(x,y)的灰度值,x、y、M、N都是整数,x∈[1,M],y∈[1,N]。
进一步的,在上述面部检测装置的基础上,面部检测装置,还包括:
第一检测单元,用于采用预设的第一神经网络模型对面部图像进行检测,以确定面部图像是否为被遮挡的面部图像。
第四生成单元,用于生成第四提示消息,其中,第四提示消息用于指示面部图像是否为被遮挡的面部图像。
第六显示单元,用于显示第四提示消息。
图10为本申请实施例提供的又一种面部检测装置的结构示意图,在图9所示实施例的基础上,如图10所示,本实施例提供的面部检测装置,还包括:
第四确定单元42,用于在第一确定单元32根据面部器官定位信息,确定检测结果之后,在确定面部图像不是非正面的面部图像时,确定面部图像为正面的面部图像。
第二计算单元43,用于对正面的面部图像进行清晰度计算,得到正面的面部图像的清晰度评分。
第五确定单元44,用于若清晰度评分大于等于预设阈值,则确定正面的面部图像为面部清楚的面部图像。
第二检测单元45,用于采用预设的第一神经网络模型对面部清楚的面部图像进行遮挡检测,以确定面部清楚的面部图像是否为被遮挡的面部图像。
第六确定单元46,用于若面部清楚的面部图像不是被遮挡的面部图像,则确定面部清楚的面部图像为清晰正面的面部图像。
本实施例提供的面部检测装置,同于实现前述任一实施例和实施例方式提供的面部检测方法中的技术方案,其实现原理和技术效果类似,不再赘述。
图11为本申请实施例提供的一种目标检测装置的结构示意图,如图11所示,本实施例提供的目标检测装置,还包括:
获取单元51,用于获取当前视频流。
侦测单元52,用于采用智能分析加速引擎移动侦测方式对当前视频流进行移动侦测。
检测单元53,用于若侦测单元侦测到当前视频流中有移动发生,则采用如上述实施例和实施例方式提供的面部检测装置,对当前视频流进行目标检测。
可选的,侦测单元52,具体用于:通过相邻帧图像差分方式,侦测当前视频流的监控区域中是否有移动发生。
可选的,检测单元53,具体用于:
确定是否在当前视频流中检测到目标图像;若检测到目标图像,则对目标图像进行处理;若在预设时间段内没有检测到目标图像,则确定执行获取单元51和侦测单元52。
本实施例提供的目标检测装置,同于实现前述任一实施例提供的目标检测方法中的技术方案,其实现原理和技术效果类似,不再赘述。
本申请实施例还提供了一种计算机(或手机等设备),包含上述的面部检测装置。
本申请实施例还提供了一种计算机(或手机等设备),包含上述的目标检测装置。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行上述面部检测方法。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行上述目标检测方法。
本申请实施例还提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述面部检测方法。
本申请实施例还提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述目标检测方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本申请实施例还提供了一种电子设备,其结构如图12所示,该电子设备包括:
至少一个处理器(processor)120,图12中以一个处理器120为例;和存储器(memory)121,还可以包括通信接口(Communication Interface)122和总线123。其中,处理器120、通信接口122、存储器121可以通过总线123完成相互间的通信。通信接口122可以用于信息传输。处理器120可以调用存储器121中的逻辑指令,以执行上述实施例的面部检测方法。
此外,上述的存储器121中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器121作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器120通过运行存储在存储器121中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的面部检测方法。
存储器121可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请实施例还提供了另一种电子设备,其结构如图13所示,该电子设备包括:
至少一个处理器(processor)131,图13中以一个处理器131为例;电子设备还包括了和智能分析加速引擎(Intelligence Video Engine,简称IVE)132和存储器(memory)133;还可以包括通信接口(Communication Interface)134和总线133。其中,处理器131、IVE132通信接口134、存储器133可以通过总线133完成相互间的通信。通信接口134可以用于信息传输。处理器131可以调用存储器133中的逻辑指令,以执行上述实施例的目标检测方法中的目标检测。IVE132可以调用存储器133中的逻辑指令,以执行上述实施例的目标检测方法中的IVE移动侦测。
此外,上述的存储器133中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器133作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器131通过运行存储在存储器133中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的目标检测方法。
存储器133可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器133可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
当用于本申请中时,虽然术语“第一”、“第二”等可能会在本申请中使用以描述各元件,但这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区别开。比如,在不改变描述的含义的情况下,第一元件可以叫做第二元件,并且同样第,第二元件可以叫做第一元件,只要所有出现的“第一元件”一致重命名并且所有出现的“第二元件”一致重命名即可。第一元件和第二元件都是元件,但可以不是相同的元件。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机***读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带以及光数据存储装置等。计算机可读介质还可以分布于通过网络联接的计算机***中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本申请的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。