一种人眼瞳孔距离的测量方法与流程

文档序号:15518602发布日期:2018-09-25 18:53阅读:1713来源:国知局

本发明属于瞳距测量检测技术领域,尤其是一种人眼瞳孔距离的测量方法。



背景技术:

眼睛包括眼球壁、眼内腔和内容物,眼球壁的外层为纤维膜,中层为色素膜,内层为视网膜,纤维膜又可分为角膜、巩膜和角巩膜缘,具有保护眼球、维持眼球形状的作用,色素膜又叫葡萄膜,分为虹膜、睫状体和脉络膜,具有营养眼内组织及遮光的作用,其中虹膜的中间为瞳孔。两个瞳孔间的距离为瞳距,对于近视眼或者远视眼患者,配眼镜时,需要考虑这个参数,即两块镜片中心的距离应当与患者的瞳距相配合,否则,即使度数正确,患者戴上眼镜后也会有不适的感觉,并且影响视力。

比如:申请号为2015107700624、名称为瞳距测量方法、装置及终端的中国专利,其公开了一种获取面部图像、确定反光点、再确定瞳距的方法,该方案中存在以下问题:1、需要额外增加获取图像界面;2、获取图像界面中的直线和指定框用于限定人面部的鼻梁和眼睛,由于人面部的鼻梁和眼睛的尺寸和特征差异非常大,以此为参照会产生非常大的测量误差;同时,以此方法将鼻梁和眼睛放在指定框中的吻合度也是由于人面部的鼻梁和眼睛的尺寸和特征差异非常大的原因而造成的吻合度不高,这样流程所产生的比例尺的精确度非常低。

再比如:申请号为2014108442999,名称为一种基于终端的瞳距测量方法、瞳距测量装置、服务器及其系统,其公开了一种获取面部图像、发送至服务器、服务器计算并获取瞳距、下传并展现结果。该方案中存在以下问题:1、需要将获取到的面部图像发送到服务器,所述的服务器就是第三方的人脸识别公司的算法后台。2利用面部识别api接口获取面部图像的左眼和右眼坐标,并根据坐标插值计算得到的瞳距计算结果是图像上的瞳距值,与实际的瞳距值是有巨大差别的,不是一个结果。3、通过分析说明得出的结论是采用这种方法无法完整的计算出瞳距真实值。

综上所述,现有技术存在很多操作、准确等方面的问题,急需一种操作简便、计算结果准确,适合各种瞳距测量的方法。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供操作简便、拍摄距离不限、计算结果准确的一种人眼瞳孔距离的测量方法。

本发明采取的技术方案是:

一种人眼瞳孔距离的测量方法,其特征在于:包括以下步骤:

⑴使用设备获取人的面部图像,并对面部图像进行颜色空间转换处理,获得灰度图像;

⑵对步骤⑴的结果进行直方图均衡化处理;

⑶对步骤⑵的结果进行人眼区域的分类器定位;

⑷对步骤⑶的结果进行二值化处理;

⑸对步骤⑷的结果进行霍夫圆变换处理,得出虹膜中心及虹膜的像上直径;

⑹根据虹膜的像上直径计算比例数值;

⑺根据两只眼睛的虹膜中心计算出虹膜的像上距离;

⑻瞳距为步骤⑹结果与步骤⑺结果的乘积。

而且,步骤⑴所述的设备是照相机、摄像头或手持终端中的任意一种。

而且,步骤⑹所述的比例数值等于虹膜直径的经验值除以虹膜的像上直径。

而且,所述虹膜直径的经验值为11.79±9.41毫米。

本发明的优点和积极效果是:

本发明中,使用照相机、摄像头、手持终端等获取人的脸部图像,无需红外、激光、超声波等外部测量设备,而且对于测量环境要求很低,只要有足够的光照即可,即用户可在户外、室内、晴天、阴天等不同场所、不同时间进行测量,借助人类虹膜一致性与稳定性等特点,先计算出比例数值,然后根据像上尺寸与比例数值的乘积计算出实际数值,为眼镜的配制提供了基础数据,可以完全抛开验光仪以及其他设备,避免了现有技术中测量方法、装置存在的各种问题,是一种操作简便、将人眼识别、虹膜识别集成在一起且计算结果准确的方法。

附图说明

图1是图像中的虹膜的像上直径d、虹膜中心点距离r的示意图;

图2(a)是近视屈光度测量中的终端由远及近靠近消费者的面部的示意图;

图2(b)是近视屈光度测量中的终端由近及远远离消费者的面部的示意图;

图3是近视屈光度测量中的测量的像上直径对应视距的样本表;

图4是近视屈光度测量中的曲线查值法生成的图表;

图5是近视屈光度测量中的公式计算法生产的图表;

图6是近视屈光度测量中的视标的示意图。

具体实施方式

下面结合实施例,对本发明进一步说明,下述实施例是说明性的,不是限定性的,不能以下述实施例来限定本发明的保护范围。

一种人眼瞳孔距离的测量方法,本发明的创新在于:包括以下步骤:

⑴使用设备获取人的面部图像,并对面部图像进行颜色空间转换处理,获得灰度图像;

⑵对步骤⑴的结果进行直方图均衡化处理;

⑶对步骤⑵的结果进行人眼区域的分类器定位;

⑷对步骤⑶的结果进行二值化处理;

⑸对步骤⑷的结果进行霍夫圆变换处理,得出虹膜中心及虹膜的像上直径;

⑹根据虹膜的像上直径计算比例数值;

⑺根据两只眼睛的虹膜中心计算出虹膜的像上距离;

⑻瞳距为步骤⑹结果与步骤⑺结果的乘积。

更优选的方案是:步骤⑴所述的设备是照相机、摄像头或手持终端中的任意一种。步骤⑹所述的比例数值等于虹膜直径的经验值除以虹膜的像上直径。

虹膜直径的经验值(见参考文献1和参考文献2)d=11.79±0.41,单位为毫米,d为虹膜的像上直径,单位为像素,比例数值记为s,s=d/d(mm/px)。

参考文献1.matsudalm,woldorffcl,kamert,hayashidajk.clinicalcomparisonofcornealdiameterandcurvatureinasianeyeswiththoseofcaucasianeyes.[j].optometryandvisionscience:officialpublicationoftheamericanacademyofoptometry,1992,69(1):.

参考文献2.martindk,holdenba.anewmethodformeasuringthediameteroftheinviiohumancornea.amjoptomphysiolopt1982;59:436-41.

根据两只眼睛的虹膜中心计算出虹膜的像上距离r,左右眼虹膜中心的坐标(x1,y1)与(x2,y2)代入两点距离公式:

r的单位为像素。

实际瞳距ed=r×s

上述脸部图像获取之前,先遮挡一只眼,被遮挡的眼保持睁开状态。比如左眼测量,遮挡右眼,但右眼仍然保持睁开状态,两只眼都不要佩戴眼镜、美瞳。

设备可以是智能手机、平板电脑,甚至可以是照相机或普通摄像头,智能手机、平板电脑将设备的摄像头朝向消费者的脸部,设备与人眼之间的距离任意,消费者可以点击屏幕上的按钮、快捷拍照键、语音命令等方式进行面部图像的获取。另外,在单眼测量时,单眼要基本正视屏幕,当然有一定的水平、竖直的偏移也不会影响测量结果。

屈光度、瞳距、视距不受年龄的限制,适用于2周岁以上所有人群。

由于人类虹膜在出生18个月以后形态上就会稳定,并且人与人之间实际虹膜直径的公差范围很小(±0.5mm),所以基于虹膜直径求出的视距与屈光度适用于几乎所有的年龄段人群。所以本方法具有普遍的适用性。

上述面部图像的处理过程包括以下步骤:

⑴对面部图像进行颜色空间转换处理,获得灰度图像;颜色空间转换用于将获取的圆点棉布图像和近点面部图像进行处理,将其转换为灰度图像,比如:使用opencv里的颜色空间转换函数voidcvcvtcolor(constcvarr*src,cvarr*dst,intcode),可以实现rgb颜色向hsv,hsi等颜色空间的转换,也可以转换为灰度图像。

参数说明:

src输入的8-比特单信道图像;

dst输出的图像与输入图像大小与数据类型相同;

code:色彩空间转换的模式,该code来实现不同类型的颜色空间转换。

⑵对步骤⑴的结果进行直方图均衡化处理;直方图均衡化则通过使用累积函数对灰度值进行调整以实现对比度的增强,比如:使用opencv里的直方图均衡化函数voidcvequalizehist(constcvarr*src,cvarr*dst)。

参数说明:

src输入的8-比特单信道图像;

dst输出的图像与输入图像大小与数据类型相同。

⑶对步骤⑵的结果进行人眼区域的分类器定位;利用已经训练好的眼睛分类器定位到人眼区域,获取单个眼睛的区域图像。比如:使用opencv里的应用于眼睛的分类器“haarcascade_mcs_eyepair_big.xml”,“haarcascade_mcs_eyepair_small.xml”,“haarcascade_mcs_lefteye.xml”,“haarcascade_mcs_righteye.xml”。

双眼调用库1和库2,单眼图像调用库3和库4,实例化分类器类cascadeclassifier后调用cascadeclassifier下的voidload(stringfilename)。

detectmultiscale函数参数说明:

objects—检测得到的矩形;

rejectlevels—如果不符合特征的矩形,返回级联分类器中符合的强分类器数;

levelweights—滑动窗口每次移动的距离。它必须是块移动的整数倍;

scalefactor—图像缩放因子;

minneighbors—表示构成检测目标的相邻矩形的最小个数;

flags—阈值,即校正系数;

minobjectsize和maxobjectsize—最小和最大检测窗口大小,minsize和maxsize用来限制得到的目标区域的范围。

load函数参数说明:

stringfilename:haarcascade_mcs_eyepair_big.xml等库的路径。

⑷对步骤⑶中的单个眼睛的区域图像进行二值化处理;将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果,标记出虹膜的大致轮廓。比如:使用opencv里的cvthreshold函数对单通道数组应用固定阈值操作,即对灰度图像进行阈值操作得到二值图像,或者是去掉噪声,例如过滤很小或很大像素值的图像点。

本函数支持的对图像取阈值的方法由threshold_type确定。

voidcvthreshold(constcvarr*src,cvarr*dst,doublethreshold,doublemax_value,intthreshold_type)

参数说明:

src:单信道图像;

dst:输出数组,必须与src的类型一致,单信道图像;

threshold:阈值;

max_value:使用cv_thresh_binary和cv_thresh_binary_inv的最大值;

threshold_type:阈值类型。

⑸对步骤⑷的单个眼睛的区域图像进行霍夫圆变换处理,得出虹膜中心及虹膜的像上直径。在眼睛区域匹配出最佳圆,圆的直径就是虹膜像上直径,圆心即为虹膜中心(瞳孔中心)。

比如:使用opencv里的cvhoughcircles函数,

cvseq*cvhoughcircles(cvarr*image,void*circle_storage,intmethod,doubledp,doublemin_dist,doubleparam1,doubleparam2,intmin_radius,intmax_radius)

参数说明:

image:输入8bit(灰度)图像,其内容可被函数所改变;

circle_storage:检测到的圆存储仓,可以是内存存储仓;

method:hough变换方式;

dp:寻找圆弧圆心的累计分辨率;

min_dist:该参数是让算法能明显区分的两个不同圆之间的最小距离;

param1:用于canny的边缘阀值上限,下限被置为上限的一半;

param2:累加器的阀值;

min_radius:最小圆半径;

max_radius:最大圆半径。

opencv的全称是:opensourcecomputervisionlibrary,opencv是一个基于(开源)发行的跨平台计算机视觉库,可以运行在linux、windows和macos操作系统上,具有轻量级且高效的优点,其由一系列c函数和少量c++类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。当然,除了opencv以外,还可以使用类似的具有相同功能的函数、库、开发包等实现功能。

实施例1

某人男38岁,在室内自然光下进行瞳距测量,左手持手机在一臂范围内右手触发瞳距测量操作,拍照并存储后。手机图像像素大小为1944*2562。

对当前图像使用opencv进行计算:

⑴对面部图像进行颜色空间转换处理,获得灰度图像;

⑵对步骤⑴的结果进行直方图均衡化处理;

⑶对步骤⑵的结果进行人眼区域的分类器定位;

⑷对步骤⑶的两眼图像区域分别进行二值化处理;

⑸对步骤⑷的两眼图像区域分别进行霍夫圆变换处理,得出两眼瞳孔中心及虹膜的像上直径的像素值。

得出:

左眼瞳孔(相对于测试人)中心坐标(694,1421);左眼虹膜直径152px

右眼瞳孔(相对于测试人)中心坐标(1530,1424);右眼虹膜直径153px使用左眼虹膜直径计算出图像比例尺:

像上瞳距值:

实际近用瞳距为:

ed=s*r=64.8mm

实施例2

某女18岁,在户外树阴下进行瞳距测量,右手持手机左手触发瞳距测量操作,拍照并存储后。手机像素为1920*2560。

左眼瞳孔(相对于测试人)中心坐标(694,1421);左眼虹膜直径58px

右眼瞳孔(相对于测试人)中心坐标(1530,1424);右眼虹膜直径57px使用右眼虹膜直径计算出图像比例尺:

像上瞳距值:

实际单眼瞳距为:

ed=s*r/2=32mm

实施例3

某男53岁,在室内进行瞳距测量,右手持手机左手触发瞳距测量操作,操作过程中本人尽量正视手机摄像头。拍照并存储后。手机像素为960*1280。

左眼瞳孔(相对于测试人)中心坐标(321,1011);左眼虹膜直径55px

右眼瞳孔(相对于测试人)中心坐标(619,1016);右眼虹膜直径56px

使用右眼虹膜直径计算出图像比例尺:

像上瞳距值:

实际瞳距为:

ed=s*r=63.9mm

在本人实际的配镜过程中,验光师给出的两眼125度远视眼镜光学中心的距离为65mm,在国标《gb13511.1-2011》的瞳距精度以内。

上述三个实施例计算出来的瞳距均为近用瞳距,当配镜时,在近用瞳距的基础上增加3毫米,即为配镜时使用的远用瞳距。

下面以近视眼镜配制为例进行说明:

一种近视屈光度的测量方法,原理如图2(a)所示,包括以下步骤:

⑴使带有摄像头的终端移动并由远及近靠近消费者的面部,消费者单眼裸眼观察终端设置的视标,当消费者刚刚看到清晰的视标时,摄像头获取消费者远点面部图像;

⑵计算出远点面部图像中虹膜的像上直径;

⑶根据虹膜的像上直径计算出人眼至屏幕的视距;

⑷根据远点面部图像对应的视距计算出近视屈光度。

更进一步的是:首先在步骤⑴和⑵之间加入眼睛类型的判断,眼睛类型的判断包括:近点面部图像的获取、计算出近点面部图像中虹膜的像上直径、根据近点面部图像对应的视距计算出调整屈光度和根据调整屈光度与调节幅度的关系判断眼睛状态。

近点面部图像的获取的原理如图2(b)所示:使带有摄像头的终端移动并由近及远远离消费者的面部,消费者用裸眼观察终端设置的视标,当消费者刚刚看到清晰的视标时,摄像头获取消费者近点面部图像。

根据调整屈光度与调节幅度的关系判断眼睛状态;

调整屈光度的计算方法是:调整屈光度=-(1/近点面部图像对应的视距)。

hofstetter(霍夫斯蒂特)提出的年龄与调节幅度关系的经验公式:

调节幅度=15-0.25×年龄

眼睛状态的屈光度=调整屈光度+调节幅度

当调整屈光度和调节幅度之和为零时,眼睛为正视眼;当调整屈光度和调节幅度之和大于零时,眼睛为远视眼或老花眼;当调整屈光度和调节幅度之和小于零时,眼睛为近视眼,继续计算近视屈光度。

远点面部图像对应的视距以及近点面部图像对应的视距均为消费者单眼的虹膜中心到视标的垂直距离,均可以通过曲线查值法或公式计算法得到。无论是曲线查值法,还是公式计算法,图3的样本表均为随机测量的数值,即视距y可能是远点的视距、近点的视距或任意位置的视距。

曲线查值法是:

预先拍摄各距离下面部图像、计算出虹膜的像上直径,然后使用激光、红外等测距设备进行实地测量,取得每个像上直径对应的视距,见图3中的样本表,表中的视距y由10~55厘米,对应的像上直径d为291~52,该像上直径为像素值,面部图像的像素统一为1944*2592,前者为宽度w,后者为高度h,比例尺为r=d/w。

如果样本足够多,可以根据表中的y、r进行曲线的绘制,得出的结果见图4,横坐标为视距y,纵坐标为比例尺r。

公式计算法是:

以表3的样本表为数据源,绘制的曲线见图5,横坐标为视距y,纵坐标为像上直径d,根据y与d的曲线进行公式拟合,得到

y为视距,k取值为1.5±0.2,w为面部图像宽度的像素值,d为虹膜的像上直径。

无论通过上述哪种方法获取远点面部图像的视距后,进行近视屈光度的计算,近视屈光度的计算公式是:

近视屈光度=-(1/远点面部图像对应的视距)公式②

其中远点面部图像对应的视距单位为米。

测试过程中,通过红外、激光、超声波等多种外部设备进行视距尺寸验证,误差很小,基本在1~2%,可见,本发明计算出的视距已经很准确,尽管存在误差,但对于后续的屈光度计算时,完全可以忽略不计。

应用实施例

某消费者38岁,身高174厘米,男性,处在商场的正常灯光的照明环境中,使用手机为小米note2,站在灯管下方,遮挡右眼,手持手机由远及近进行左眼的近视屈光度的测量,移动过程中大致保持手机匀速,左眼观察的视线大致和屏幕垂直。

在手机屏幕靠近摄像头的位置处为图6所示的近视测量的视标,消费者由远及近的移动手机,当消费者刚刚看清晰e标时,按下拍照键获取远点面部图像,消费者点击存储键后,再点击计算按键。

使用opencv进行计算:

⑴对面部图像进行颜色空间转换处理,获得灰度图像;

⑵对步骤⑴的结果进行直方图均衡化处理;

⑶对步骤⑵的结果进行人眼区域的分类器定位;

⑷对步骤⑶的结果进行二值化处理;

⑸对步骤⑷的结果进行霍夫圆变换处理,得出远点虹膜的像上直径的像素值为157;近点虹膜的像上直径的像素值为322。

近点测得面部图像的像素为1944*2592,比例尺为157/1944=0.166,根据图3曲线查值得到视距y=8.5厘米,得出调整屈光度为-11.8d;调节幅度=15-0.25*38=5.5d

调整屈光度+调节幅度=-6.2d<0故得出此消费者患有近视。

远点面部图像的像素为1944*2592,比例尺为157/1944=0.093,根据图3进行曲线查值得到视距y=15.5厘米,代入公式②计算近视屈光度:近视屈光度=-6.45d≈-6.5d(行业为-0.25d一个档)

电脑验光仪给出的验光单中,左眼的近视屈光度为-6.75d。配制眼镜时,验光师给出消费者主观观察环境的眼镜左眼球镜度数为-6.5d。

同样的过程测量另一只眼睛的屈光度,获得合适的度数。

采用实施例1的瞳距变换的远视瞳距以及应用实施例1的近视度数进行近视眼镜的配制,计算结果准确、用户配戴感受舒适,可见计算出来的瞳距为适合该消费者当前状态的数值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1