本发明涉及瞳孔定位技术领域,特别地是一种基于眼部关键点识别实现瞳孔定位的方法。
背景技术:
人脸关键点定位也称为人脸五官定位,是指从人脸图像中识别出诸如眼睛、眉毛、鼻子、嘴巴等关键点的位置。人脸关键点定位技术是美颜化妆、人脸装扮、人脸特效、人脸ar(augmentedreality,增强现实)等软件的基础技术。
传统的人脸关键点定位技术是基于一些图像处理算法来实现的,如sdm(superviseddescentmethod,监督下降法)。通过提取人脸图像中的特征,如lbp(localbinarypattern,局部二值模式)、hog(histogramoforientedgradient,方向梯度直方图)等特征,根据上述特征确定出人脸图像中的人脸关键点的位置。
现有的瞳孔定位方式一般是配合红外线硬件设备来实现。瞳孔定位有助于实现美瞳等ar领域的试戴体验;现有的瞳孔定位搭载硬件产品使用的话,存在成本高、操作步骤多的问题;现有的人脸关键点检测大部分只包含眼部边缘的关键点检测,缺少对于瞳孔的定位。需要提供一种通过眼部边缘的关键点来推算出瞳孔的位置信息的方法。
技术实现要素:
本发明的目的在于提供一种能够简洁快速地实现瞳孔位置信息的推算,减少计算量所带来的时间损耗,适用于快速移植到不同的平台上的基于眼部关键点识别实现瞳孔定位的方法。
本发明通过以下技术方案实现的:
一种基于眼部关键点识别实现瞳孔定位的方法,包括以下步骤:
s1、利用深度学习框架以及开源的人脸数据库训练出关键点检测模型;
s2、启动关键点检测模型进行人脸关键点检测,选取眼部边缘的关键点数据,截取眼珠四周的关键点,假设分别为a坐标为(xa,ya)、b坐标为(xb,yb)、c坐标为(xc,yc)、d坐标为(xd,yd);
s3、将步骤s2中得到的a和c坐标,ac的中点坐标通过中点坐标公式((xa xc)/2,(ya yc)/2)可以求得;ac的中点坐标即为推算出的瞳孔的位置。
进一步地,所述步骤s2中,所述a坐标为眼珠左上角关键点;所述c坐标为眼珠左下角关键点。
进一步地,所述步骤s2中,所述b坐标为眼珠右上角关键点;所述d坐标为眼珠右下角关键点。
进一步地,所述步骤s3中,将步骤s2中得到的b和d坐标,bd的中点坐标通过中点坐标公式((xb xd)/2,(yb yd)/2)可以求得;bd的中点坐标即为推算出的瞳孔的位置。
进一步地,所述步骤s1中,所述深度学习框架采用mobilenet或shufflenet的网格结构。
本发明的有益效果:
本发明通过深度学习框架以及开源的人脸数据库训练出关键点检测模型,再通过启动关键点检测模型进行人脸关键点检测;选取眼部边缘的关键点数据a(xa,ya)和c(xc,yc);根据ac的中点坐标通过中点坐标公式((xa xc)/2,(ya yc)/2)可以求得;ac的中点坐标即为推算出的瞳孔的位置;本发明能够简洁快速地实现瞳孔位置信息的推算,减少计算量所带来的时间损耗,有效提高了工作效率,适用于快速移植到不同的平台上,适用范围广。
附图说明
图1为本发明实施例的步骤流程框图。
具体实施方式
下面将结合附图以及具体实施例来详细说明本发明,在此以本发明的示意下面将结合附图以及具体实施例来详细说明本发明,在此以本发明的示意性实施例及说明用来解释本发明,但并不作为对本发明的限定。
需要说明,在本发明中如涉及“第一”、“第二”的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在本发明中,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
一种基于眼部关键点识别实现瞳孔定位的方法,包括以下步骤:
s1、利用深度学习框架以及开源的人脸数据库训练出关键点检测模型;
s2、启动关键点检测模型进行人脸关键点检测,选取眼部边缘的关键点数据,截取眼珠四周的关键点,假设分别为a坐标为(xa,ya)、b坐标为(xb,yb)、c坐标为(xc,yc)、d坐标为(xd,yd);
s3、将步骤s2中得到的a和c坐标,ac的中点坐标通过中点坐标公式((xa xc)/2,(ya yc)/2)可以求得;ac的中点坐标即为推算出的瞳孔的位置。
需要说明的是,深度学习框架的出现降低了入门的门槛,用户不需要从复杂的神经网络开始编代码,用户可以根据需要选择已有的模型,通过训练得到模型参数,用户也可以在已有模型的基础上增加自己的layer,或者是在顶端选择自己需要的分类器和优化算法。不同的框架适用的领域不完全一致。总的来说深度学习框架提供了一些列的深度学习的组件,当需要使用新的算法的时候就需要用户自己去定义,然后调用深度学习框架的函数接口使用用户自定义的新算法。
具体的,本实施例方案中,所述步骤s2中,所述a坐标为眼珠左上角关键点;所述c坐标为眼珠左下角关键点。
具体的,本实施例方案中,所述步骤s2中,所述b坐标为眼珠右上角关键点;所述d坐标为眼珠右下角关键点。
具体的,本实施例方案中,所述步骤s3中,将步骤s2中得到的b和d坐标,bd的中点坐标通过中点坐标公式((xb xd)/2,(yb yd)/2)可以求得;bd的中点坐标即为推算出的瞳孔的位置。
具体的,本实施例方案中,所述步骤s1中,所述深度学习框架采用mobilenet或shufflenet的网格结构。
具体的,参照图1,首先,通过深度学习框架以及开源的人脸数据库训练出关键点检测模型,再通过启动关键点检测模型进行人脸关键点检测;选取眼部边缘的关键点数据a(xa,ya)和c(xc,yc);根据ac的中点坐标通过中点坐标公式((xa xc)/2,(ya yc)/2)可以求得;ac的中点坐标即为推算出的瞳孔的位置;本发明能够简洁快速地实现瞳孔位置信息的推算,减少计算量所带来的时间损耗,有效提高了工作效率,适用于快速移植到不同的平台上,适用范围广。
以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在具体实施方式以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
1.一种基于眼部关键点识别实现瞳孔定位的方法,其特征在于,包括以下步骤:
s1、利用深度学习框架以及开源的人脸数据库训练出关键点检测模型;
s2、启动关键点检测模型进行人脸关键点检测,选取眼部边缘的关键点数据,截取眼珠四周的关键点,假设分别为a坐标为(xa,ya)、b坐标为(xb,yb)、c坐标为(xc,yc)、d坐标为(xd,yd);
s3、将步骤s2中得到的a和c坐标,ac的中点坐标通过中点坐标公式((xa xc)/2,(ya yc)/2)可以求得;ac的中点坐标即为推算出的瞳孔的位置。
2.根据权利要求1所述的一种基于眼部关键点识别实现瞳孔定位的方法,其特征在于:所述步骤s2中,所述a坐标为眼珠左上角关键点;所述c坐标为眼珠左下角关键点。
3.根据权利要求1所述的一种基于眼部关键点识别实现瞳孔定位的方法,其特征在于:所述步骤s2中,所述b坐标为眼珠右上角关键点;所述d坐标为眼珠右下角关键点。
4.根据权利要求1所述的一种基于眼部关键点识别实现瞳孔定位的方法,其特征在于:所述步骤s3中,将步骤s2中得到的b和d坐标,bd的中点坐标通过中点坐标公式((xb xd)/2,(yb yd)/2)可以求得;bd的中点坐标即为推算出的瞳孔的位置。
5.根据权利要求1所述的一种基于眼部关键点识别实现瞳孔定位的方法,其特征在于:所述步骤s1中,所述深度学习框架采用mobilenet或shufflenet的网格结构。
技术总结