瞳距测量方法、装置、终端设备及存储介质与流程

文档序号:18303137发布日期:2019-07-31 10:27阅读:407来源:国知局
瞳距测量方法、装置、终端设备及存储介质与流程

本申请属于图像处理技术领域,尤其涉及一种瞳距测量方法、装置、终端设备及存储介质。



背景技术:

随着当前人们生活方式和工作方式的改变,用眼的强度越来越大,配镜不再只是为了满足看清物体,更需要舒适地佩戴和持久地用眼。在眼镜加工过程中,需要根据眼镜处方的双眼瞳距和镜片中心加工眼镜。如果眼镜的光学中心点与瞳孔中心点有误差,将致使视轴偏离镜片中心,引起“三棱镜效应”。戴镜者为努力看清目标,只能大大增加眼睛调节机能的负担,时间一长就会出现视力疲劳,产生头晕眼花、头痛、眼痛与不能久视等症状。

传统的双眼瞳距测量依靠刻度尺,直接由人工进行测量,存在测量精度较低的问题。



技术实现要素:

有鉴于此,本申请实施例提供了一种瞳距测量方法、装置、终端设备及存储介质,以解决目前双眼瞳距测量中存在的测量精度较低的问题。

根据第一方面,本申请实施例提供了一种瞳距测量方法,包括:获取图像;所述图像为包括双眼的图像;根据所述图像分别提取所述双眼的瞳孔中心图像坐标;根据所述瞳孔中心图像坐标,计算所述双眼的瞳距。

本申请实施例提供的瞳距测量方法,利用数字图像处理技术提取双眼图像中双眼的瞳孔中心图像坐标,进而计算得到双眼的瞳距,相较于传统的刻度尺直接测量瞳距的方式,大幅提高了瞳距测量的精度,能够将瞳距测量的精度提升至像素水平,即微米数量级,解决了目前双眼瞳距测量中存在的测量精度较低的问题。

结合第一方面,在本申请的一些实施例中,所述根据所述图像分别提取所述双眼的瞳孔中心图像坐标,包括:根据所述图像、预设的目标函数以及等式约束,计算系数向量;根据所述系数向量计算所述瞳孔中心图像坐标。

本申请实施例提供的瞳距测量方法,利用最小二乘椭圆拟合的算法对图像中每一目的轮廓进行曲线拟合,并构建对应的目标函数以及等式约束,从而计算得到每一目所对应的椭圆的系数向量,进而计算的对对应的瞳孔中心图像坐标;改变了现有技术依靠人工直接对瞳孔中心进行判断的方式,从而有利于提高双眼瞳距测量的精度。

结合第一方面,在本申请的一些实施例中,所述目标函数为:

其中,f(xi,yi)为椭圆的二次曲线方程,f(xi,yi)=ctxi,c为所述系数向量,c=[a,b,c,d,e,f]t;d为设计矩阵,其大小为n×6;

所述等式约束为:

4ac-b2=1

其中,a、b和c构成为所述系数向量c,c=[a,b,c,d,e,f]t

本申请实施例提供的瞳距测量方法,给出了用于计算瞳孔中心图像坐标的目标函数的公式,以及对应的等式约束公式,使用户能够根据公式方便快捷地针对眼睛轮廓的拟合椭圆曲线,完成对应的椭圆系数向量的计算。

结合第一方面,在本申请的一些实施例中,通过

计算所述瞳孔中心图像坐标;其中,为所述瞳孔中心图像坐标;a、b和c构成为所述系数向量c,c=[a,b,c,d,e,f]t

本申请实施例提供的瞳距测量方法,给出了用于计算瞳孔中心图像坐标的公式,使用户能够根据公式方便快捷地完成针对瞳孔中心图像坐标的计算。

结合第一方面,在本申请的一些实施例中,所述根据所述瞳孔中心图像坐标,计算所述双眼的瞳距,包括:根据所述瞳孔中心图像坐标计算所述双眼之间的像素数量;根据所述像素数量计算所述双眼的瞳距。

本申请实施例提供的瞳距测量方法,通过统计双眼对应的两个瞳孔中心图像坐标之间的像素数量,并经换算,得到双眼之间的瞳距,将瞳距测量的精度提升至像素水平,即微米数量级,解决了目前双眼瞳距测量中存在的测量精度较低的问题。

结合第一方面,在本申请的一些实施例中,所述根据所述瞳孔中心图像坐标,计算所述双眼的瞳距,包括:将所述瞳孔中心图像坐标转换为对应的世界坐标;根据所述世界坐标,计算所述双眼对应的瞳距。

本申请实施例提供的瞳距测量方法,通过将双眼对应的两个瞳孔中心图像坐标转换为对应的世界坐标,计算得到双眼之间的瞳距。由于瞳孔中心图像坐标的精度已升至像素水平,即微米数量级,使得根据瞳孔中心图像坐标计算得到的瞳距的精度也提升至像素水平,解决了目前双眼瞳距测量中存在的测量精度较低的问题。

结合第一方面,在本申请的一些实施例中,通过

pc=r*pw+t

将所述瞳孔中心图像坐标转换为对应的世界坐标;其中,pc(xcyczc)为所述瞳孔中心图像坐标;为所述瞳孔中心图像坐标对应的世界坐标;r为从所述世界坐标对应的世界坐标系到所述瞳孔中心图像坐标对应的图像坐标系的旋转矩阵;t为从所述世界坐标对应的世界坐标系到所述瞳孔中心图像坐标对应的图像坐标系的平移矩阵。

本申请实施例提供的瞳距测量方法,给出了用于坐标转换的公式,使用户能够根据公式方便快捷地完成从图像坐标到世界坐标之间的转换。

根据第二方面,本申请实施例提供了一种瞳距测量装置,包括:外壳,相机,设置所述外壳上,用于获取图像;所述图像为包括双眼的图像;控制器,用于根据所述图像分别提取所述双眼的瞳孔中心图像坐标,并根据所述瞳孔中心图像坐标,计算所述双眼的瞳距。

根据第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面任一实施方式所述方法的步骤。

根据第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一实施方式所述方法的步骤。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的瞳距测量方法的一个具体示例的实现流程示意图;

图2是本申请实施例提供的瞳距测量方法的另一个具体示例的实现流程示意图;

图3是本申请实施例提供的瞳距测量方法的第三个具体示例的实现流程示意图;

图4是本申请实施例提供的瞳距测量装置的一个具体示例的结构示意图;

图5是本申请实施例提供的终端设备的一个具体示例的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。

本申请实施例提供了一种瞳距测量方法,如图1所示,该瞳距测量方法可以包括以下步骤:

步骤s101:获取图像。具体的,可以通过相机获取包括被测试者双眼的图像。为了使双眼的图像清晰,在一具体实施方式中,可以将被测试者的脸部与相机之间的距离,设置为相机光心到相机测量平面的距离,该距离为一固定值,由所选用的相机的参数决定。

为了方便后续步骤的计算,还可以在步骤s101中采集所选用的相机的其他参数。具体的,需要采集的相机参数主要有:相机焦距f、单个像素的宽sx、单个像素的高sy、图像宽和图像高、径向畸变系数k1、径向畸变系数k2、径向畸变系数k3、切向畸变系数p1、切向畸变系数p2、相机主点(cx,cy),同时,标定世界坐标系到相机所采集的图像的图像坐标系的变换矩阵,生成世界坐标系到图像坐标系的旋转矩阵r和平移矩阵t。

步骤s102:根据图像分别提取双眼的瞳孔中心图像坐标。

在实际应用中,可以在采集图像完成后,将图像进行二值化,提取图像上瞳孔区域,之后采用最小二乘法椭圆拟合孔中心定位算法提取瞳孔区域的中心图像坐标,该中心图像坐标即瞳孔中心图像坐标。

具体的,设原始图像为fi(x,y),设定分割阈值为t,将图像分割为两个部分,分割后的图像表达式为:

在一具体实施方式中,如图2所示,可以通过以下几个子步骤实现步骤s102的过程:

步骤s1021:根据图像、预设的目标函数以及等式约束,计算系数向量。

具体的,在对图像二值化处理后,得到瞳孔在图像中的分割区域,进而基于瞳孔分割区域,可以提取每一目对应的边缘轮廓像素。

公式(2)为椭圆的二次曲线方程:

f(x,y)=ax2+bxy+cy2+dx+ey+f=0(2)

对于椭圆上任何一点pi(xi,yi),均存在向量与之对应,若定义椭圆的系数向量c=[a,b,c,d,e,f]t,则公式(2)可转化为:

f(xi,yi)=ctxi(3)

其中,f(xi,yi)为点pi(xi,yi)到指定椭圆c的代数距离,瞳孔边缘轮廓像素二维点集p={pi:i=1......n}i,通过最小化点到曲线的距离平方和来求解最优椭圆的系数向量c,建立如下目标函数:

其中,f(xi,yi)为椭圆的二次曲线方程,f(xi,yi)=ctxi,c为所述系数向量,c=[a,b,c,d,e,f]t;d为设计矩阵,其大小为n×6。

可以采用ls方法对公式(4)进行求解,同时,引入椭圆的等式约束:

4ac-b2=1(5)

其中,a、b和c构成为所述系数向量c,c=[a,b,c,d,e,f]t

基于公式(5)可以对椭圆系数向量c进行适当的尺度变换,进而公式(5)可变换为:

ctrc=1(6)

式中,r约束矩阵,可以得到椭圆拟合的数学模型为:

引入拉格朗日算子λ,公式(7)可变化为:

对公式(8)进行偏导求解,解算公式(8),如下式(9)所示:

展开公式(9)可以得到公式(10):

sc=λrc(10)

公式(10)中,s=dtd,s为离散矩阵,结合公式(7)和(10)可以得到面向椭圆拟合的最小二乘优化模型为:

求解公式(11),得到待拟合椭圆的系数向量c=[a,b,c,d,e,f]t

步骤s1022:根据系数向量计算瞳孔中心图像坐标。在求解公式(11),并计算得到待拟合椭圆的系数向量c=[a,b,c,d,e,f]t后,可以通过公式(12)计算出椭圆的集合中心坐标,即每一目的瞳孔中心图像坐标:

其中,为所述瞳孔中心图像坐标;a、b和c构成为所述系数向量c,c=[a,b,c,d,e,f]t

本申请实施例提供的瞳距测量方法,利用最小二乘椭圆拟合的算法对图像中每一目的轮廓进行曲线拟合,并构建对应的目标函数以及等式约束,从而计算得到每一目所对应的椭圆的系数向量,进而计算的对对应的瞳孔中心图像坐标;改变了现有技术依靠人工直接对瞳孔中心进行判断的方式,从而有利于提高双眼瞳距测量的精度。

步骤s103:根据瞳孔中心图像坐标,计算双眼的瞳距。

在一具体实施方式中,如图2所示,可以通过以下几个子步骤实现步骤s103的过程:

步骤s1031:根据瞳孔中心图像坐标计算双眼之间的像素数量;

步骤s1032:根据像素数量计算双眼的瞳距。本申请实施例提供的瞳距测量方法,通过统计双眼对应的两个瞳孔中心图像坐标之间的像素数量,并经换算,得到双眼之间的瞳距,将瞳距测量的精度提升至像素水平,即微米数量级,解决了目前双眼瞳距测量中存在的测量精度较低的问题。

在另一具体实施方式中,如图3所示,可以通过以下几个子步骤实现步骤s103的过程:

步骤s1031’:将瞳孔中心图像坐标转换为对应的世界坐标。

由于图像坐标系与世界坐标系之间存在固定的对应关系,因此,选定图像中的任一一点,均能够根据上述固定的对应关系,计算得到该图像点的世界坐标。

具体的,对于图像坐标系中的一点pc(xcyczc),基于旋转变换r和平移变换矩阵t,存在下面对应关系:

pc=r*pw+t

根据相机内参数可以得到内参矩阵mi,得到图像坐标pi=(uv1)t和世界坐标的对应关系:

根据上述图像坐标和世界坐标的对应关系,可以将步骤s102计算得到的分别与双眼相对应的两个瞳孔中心图像坐标转换为对应的世界坐标。

步骤s1032’:根据世界坐标,计算双眼对应的瞳距。

当计算得到的与双眼相对应的两个瞳孔中心图像坐标分别为pl(ul,ul)和pr(ur,ur)时,基于单目视觉相机的标定参数,可以计算出世界坐标系下左眼和右眼瞳孔的中心坐标pwl(xwl,ywl,zwl)、pwr(xwr,ywr,zwr),进而可以根据公式(13)计算瞳距pd:

本申请实施例提供的瞳距测量方法,通过将双眼对应的两个瞳孔中心图像坐标转换为对应的世界坐标,计算得到双眼之间的瞳距。由于瞳孔中心图像坐标的精度已升至像素水平,即微米数量级,使得根据瞳孔中心图像坐标计算得到的瞳距的精度也提升至像素水平,解决了目前双眼瞳距测量中存在的测量精度较低的问题。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本申请实施例还提供了一种瞳距测量装置,如图4所示,该瞳距测量装置可以包括:外壳100、相机200和控制器300。

具体的,外壳100可以为中空的箱体结构,其中侧面为可开关的外壳门101;外壳100的正面设有三个矩形孔102,用于放置被测人员的双眼和口鼻。通过矩形孔102,可以在图像处理时自动过滤出双眼和口鼻。具体的,还可以在外壳100的内部放置光源103,用于照亮瞳距测量装置的内部。

相机200可以设置在三个矩形孔102的对侧,用于获取图像;其具体的工作过程可参见上述方法实施例中步骤s101所述。具体的,图像为包括被测人员的双眼的图像。

优选的,相机200的光心到外壳100前外端面(即设置有三个矩形孔102的端面)的距离,等于相机200的光心到相机测量平面的距离,并且该距离为一固定值。

控制器300设置在外壳100上,并与相机200通信连接,用于根据图像分别提取双眼的瞳孔中心图像坐标,并根据瞳孔中心图像坐标,计算双眼的瞳距;其具体的工作过程可参见上述方法实施例中步骤s102至步骤s103所述。

可选的,还可以在外壳100上设置显示屏400。具体的,显示屏400与控制器300通信连接,用于显示计算得到的瞳距信息。

图5是本申请一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备500包括:处理器501、存储器502以及存储在所述存储器502中并可在所述处理器501上运行的计算机程序503,例如瞳孔测距程序。所述处理器501执行所述计算机程序503时实现上述各个瞳孔测距方法实施例中的步骤,例如图1所示的步骤s101至步骤s103。或者,所述处理器501执行所述计算机程序503时实现上述各装置实施例中各模块/单元的功能。

所述计算机程序503可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器502中,并由所述处理器501执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序503在所述终端设备500中的执行过程。例如,所述计算机程序503可以被分割成同步模块、汇总模块、获取模块、返回模块(虚拟装置中的模块)。

所述终端设备500可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器501、存储器502。本领域技术人员可以理解,图5仅仅是终端设备500的示例,并不构成对终端设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器501可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器502可以是所述终端设备500的内部存储单元,例如终端设备500的硬盘或内存。所述存储器502也可以是所述终端设备500的外部存储设备,例如所述终端设备500上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器502还可以既包括所述终端设备500的内部存储单元也包括外部存储设备。所述存储器502用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器502还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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