本发明属于图像处理技术领域,更具体地,涉及一种基于mtcnn的多方位人脸检测方法及系统。
背景技术:
人脸检测是检测出图像中人脸所在位置的一项技术,目前比较常见的方法都是基于神经网络技术(mtcnn)来进行人脸检测。mtcnn主要分为三个步骤:首先,对图像进行多尺度变换,获取图像金字塔,获取图像多尺度信息;其次,将获取的候选区域进行细化处理,排除掉不符合要求的候选区域;最后,输出人脸脸部特征,主要是脸部五点特征位置。
人脸检测技术在检测图像中人脸正面肖像的运用中比较成熟,但是在图片中人脸偏转角度很大的情况下,会发生检测不到的情况,检测准确度下降。
公开号cn107977628a的发明公开了一种神经网络训练方法、人脸检测方法及人脸检测装置,涉及图像处理技术领域,以缓解现有技术中存在的上下文信息的定义误差较大,影响人脸检测精度的问题,能够结合人脸检测自身特征进行自适应的定义上下文信息,减少了人为先验对上下文定义的偏差,提高了对人脸检测精度。该神经网络训练方法,包括:对人脸图像的特征图进行感兴趣区域处理,获得人脸初步区域;利用神经网络对人脸初步区域进行上下文信息估计,获得人脸上下文区域;通过池化算子对人脸上下文区域的坐标求导,更新人脸上下文区域;根据更新后的人脸上下文区域,对神经网络进行反传损失,更新神经网络的参数。该方法在图片中人脸偏转角度很大的情况下,会发生检测不到的情况,人脸检测的精确度较低。
与现有技术相比,本发明在mtcnn的基础上,检测人脸的双眼及鼻尖,根据人脸中双眼及鼻尖的位置特征点计算出人脸在二维平面的旋转角度,通过计算出的旋转角度将人脸转正,检测多角度人脸,提高了人脸检测的准确度。
技术实现要素:
针对现有技术的以上缺陷及改进需求,本发明提供一种基于mtcnn的多方位人脸检测方法及系统,其目的在于提供一种准确度更高的人脸检测方法及系统,由此解决现有技术存在的在人脸偏转角度较大的情况下检测准确度较低的技术问题。
为实现上述目的,本发明提供一种基于mtcnn的多方位人脸检测方法,包括步骤:
s1.获取待测图像,对待测图像中的双眼和鼻尖进行检测,并将包含双眼及鼻尖的特征框同比例放大一倍,获取特征框所选定的人脸;
s2.根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度,并根据旋转角度将人脸转正;
s3.采用mtcnn方法对所述人脸转正后的待测图像进行检测,获取不同角度的人脸。
进一步的,在步骤s3之后,还包括步骤:
采用mtcnn方法对所述获取的待测图像进行检测,获取待测图像中的人脸。
进一步的,还包括步骤:
对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集,以便获取待测图像中的所有人脸。
进一步的,在步骤s1之前,还包括步骤:
建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型。
进一步的,还包括步骤:
将获取的待测图像中的所有人脸进行反馈。
相应的,还提供一种基于mtcnn的多方位人脸检测系统,包括:
第一获取模块,用于获取待测图像;
检测模块,用于对待测图像中的双眼和鼻尖、人脸转正后的待测图像进行检测;
放大模块,用于将包含双眼及鼻尖的特征框同比例放大一倍;
第二获取模块,用于获取特征框所选定的人脸以及人脸转正后不同角度的人脸;
计算模块,用于根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度;
矫正模块,用于根据旋转角度将人脸转正。
进一步的,还包括:
检测模块,用于对所述获取的待测图像进行检测;
第二获取模块,用于获取待测图像中的人脸。
进一步的,还包括:
合并模块,用于对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集。
进一步的,还包括:
建模模块,用于建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型。
进一步的,还包括:
反馈模块,用于将获取的待测图像中的所有人脸进行反馈。
本发明与现有技术相比,有如下优点:
在传统mtcnn方法检测人脸的基础上,通过检测人脸的双眼及鼻尖,根据人脸中双眼及鼻尖的位置特征点计算出人脸在二维平面的旋转角度,通过计算出的旋转角度将人脸转正,再采用mtcnn方法对人脸转正后的图像进行检测,从而检测到多角度人脸,对传统mtcnn方法检测到的人脸进行补缺,在人脸偏转角度较大的情况下,也能检测到人脸,提高了人脸检测的准确度。
附图说明
图1是实施例一提供的一种基于mtcnn的多方位人脸检测方法流程图;
图2是实施例一提供的一种基于mtcnn的多方位人脸检测系统结构图;
图3是实施例二提供的一种基于mtcnn的多方位人脸检测方法流程图;
图4是实施例二提供的一种基于mtcnn的多方位人脸检测系统结构图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
实施例一
本实施例提供一种基于mtcnn的多方位人脸检测方法,如图1所示,包括步骤:
s11.获取待测图像,对待测图像中的双眼和鼻尖进行检测,并将包含双眼及鼻尖的特征框同比例放大一倍,获取特征框所选定的人脸;
s12.根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度,并根据旋转角度将人脸转正;
s13.采用mtcnn方法对所述人脸转正后的待测图像进行检测,获取不同角度的人脸。
在获取了待测图像后,对待测图像中的双眼及鼻尖进行检测,检测到的双眼及鼻尖会通过特征框框选出来,然后对检测到的双眼及鼻尖的特征框使用同一比例放大一倍,这样特征框就能完全框选住包含双眼及鼻尖的人脸,则可以获取到特征框所选定的人脸。当特征款框选住完整的人脸后,系统会自动将人脸中双眼及鼻尖的位置特征点显示出来,再根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度,计算出旋转角度后,则可根据人脸的旋转角度将人脸转正,最后采用传统的mtcnn方法对人脸转正后的待测图像进行检测,则可以获取到不同角度的人脸,即使有偏转角度较大的人脸,经过转正处理后,也能被检测到,人脸检测的准确度有了显著提高。
进一步的,在步骤s13之后,还包括步骤:
采用mtcnn方法对所述获取的待测图像进行检测,获取待测图像中的人脸。
这一步是为了确保人脸检测的准确度至少与传统mtcnn方法的人脸检测准确度持平,对获取的待测图像采用传统的mtcnn方法进行检测,获取待测图像中的人脸。
进一步的,还包括步骤:
对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集,以便获取待测图像中的所有人脸。
将前面步骤获取的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集,获取待测图像中的所有人脸,这是在传统mtcnn方法检测人脸的基础上,增加对人脸偏转角度较大情况下将人脸转正这一步骤,对人脸偏转角度较大而无法检测到人脸的情况进行补充,提高了人脸检测的准确度。
进一步的,在步骤s11之前,还包括步骤:
建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型。
传统的mtcnn方法通常是对人脸的双眼、鼻子及嘴巴进行检测,最终的出双眼、鼻尖及嘴巴两角一共五个特征点,但出于便利度与精确度的考虑,在人脸偏转较大的情况下,通过对双眼及鼻尖的检测获取双眼及鼻尖的特征点位置来计算人脸偏转的角度更为合适,因此,在传统mtcnn技术的基础上,需要先建立一个采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型,再对获取的待测图像及进行检测。
相应的,还提供一种基于mtcnn的多方位人脸检测系统,如图2所示,包括:
第一获取模块11,用于获取待测图像;
检测模块12,用于对待测图像中的双眼和鼻尖、人脸转正后的待测图像进行检测;
放大模块13,用于将包含双眼及鼻尖的特征框同比例放大一倍;
第二获取模块14,用于获取特征框所选定的人脸以及人脸转正后不同角度的人脸;
计算模块15,用于根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度;
矫正模块16,用于根据旋转角度将人脸转正。
第一获取模块11获取待测图像,再由检测模块12对待测图像中的双眼及鼻尖进行检测,当特征框框选住双眼及鼻尖后,由放大模块13将包含双眼及鼻尖的特征框同比例放大一倍,使特征框框选住完全的人脸,再由第二获取模块14获取特征框所选定的人脸。当检测模块12检测出待测图像中的双眼及鼻尖位置特征点后,由计算模块15根据获取的待测图像中的双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度,再由矫正模块16根据旋转角度将人脸转正,人脸转正后,由检测模块12对人脸转正后的待测图像进行检测,再由第二获取模块14获取人脸转正后不同角度的人脸。
进一步的,还包括:
检测模块12,用于对所述获取的待测图像进行检测;
第二获取模块14,用于获取待测图像中的人脸。
检测模块12对采用传统的mtcnn方法所述获取的待测图像进行检测,由第二获取模块12获取检测模块12检测出的待测图像中的人脸。
进一步的,还包括:
合并模块17,用于对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集。
由合并模块17将第二获取模块14获取的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集,以便获取待测图像中的所有人脸。
进一步的,还包括:
建模模块18,用于建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型。
建模模块18建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型后,再由第一获取模块11获取待测图像。
本实施例在传统mtcnn方法检测人脸的基础上,通过检测人脸的双眼及鼻尖,根据人脸中双眼及鼻尖的位置特征点计算出人脸在二维平面的旋转角度,通过计算出的旋转角度将人脸转正,再采用mtcnn方法对人脸转正后的图像进行检测,从而检测到多角度人脸,对传统mtcnn方法检测到的人脸进行补缺,在人脸偏转角度较大的情况下,也能检测到人脸,提高了人脸检测的准确度。
实施例二
本实施例提供一种基于mtcnn的多方位人脸检测方法,如图3所示,包括步骤:
s21.获取待测图像,对待测图像中的双眼和鼻尖进行检测,并将包含双眼及鼻尖的特征框同比例放大一倍,获取特征框所选定的人脸;
s22.根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度,并根据旋转角度将人脸转正;
s23.采用mtcnn方法对所述人脸转正后的待测图像进行检测,获取不同角度的人脸。
进一步的,在步骤s23之后,还包括步骤:
采用mtcnn方法对所述获取的待测图像进行检测,获取待测图像中的人脸。
进一步的,还包括步骤:
对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集,以便获取待测图像中的所有人脸。
进一步的,在步骤s21之前,还包括步骤:
建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型。
进一步的,还包括步骤:
将获取的待测图像中的所有人脸进行反馈。
与实施例一不同的是,还包括步骤:
将获取的待测图像中的所有人脸进行反馈。
在获取了待测图像中的所有人脸后,应当将获取的所有人脸进行反馈,以便用户知悉,也方便用户进行判断是否有遗漏的人脸。
相较于实施例一,其优点在于:
将获取的所有人脸进行反馈,以便用户知悉,提升了用户的体验。
相应的,还提供一种基于mtcnn的多方位人脸检测系统,如图4所示,包括:
第一获取模块21,用于获取待测图像;
检测模块22,用于对待测图像中的双眼和鼻尖、人脸转正后的待测图像进行检测;
放大模块23,用于将包含双眼及鼻尖的特征框同比例放大一倍;
第二获取模块24,用于获取特征框所选定的人脸以及人脸转正后不同角度的人脸;
计算模块25,用于根据所述获取的待测图像中双眼及鼻尖的位置特征点计算出人脸在二维平面中的旋转角度;
矫正模块26,用于根据旋转角度将人脸转正。
进一步的,还包括:
检测模块22,用于对所述获取的待测图像进行检测;
第二获取模块24,用于获取待测图像中的人脸。
进一步的,还包括:
合并模块27,用于对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集。
进一步的,还包括:
建模模块28,用于建立采用mtcnn方法只对待测图像中的双眼及鼻尖进行检测的模型。
进一步的,还包括:
反馈模块29,用于将所述获取的待测图像中的所有人脸进行反馈。
与实施例一不同的是,还包括反馈模块29。
反馈模块29,用于将所述获取的待测图像中的所有人脸进行反馈。
合并模块27对所述得到的特征框所选定的人脸、不同角度的人脸及待测图像中的人脸取并集后,由反馈模块29将获取的所有人脸进行反馈。
将获取的所有人脸进行反馈,以便用户知悉,提升了用户的体验。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。