一种视力检测方法、装置、视力检测仪及计算机存储介质与流程

文档序号:18456882发布日期:2019-08-17 01:41阅读:154来源:国知局
一种视力检测方法、装置、视力检测仪及计算机存储介质与流程

本发明实施例涉及视力检测技术领域,具体涉及一种视力检测方法、装置、视力检测仪及计算机存储介质。



背景技术:

传统的视力测试方法是指:医生需要指示视标,被测试者口答或使用手势指出医生指示的视标方向,医生根据被测试者指示的视标方向记录被测试者的测试结果,并根据该测试结果确定下一个指示的视标。但是,传统的视力测试方法虽然简单,但在测试过程中需要医生长时间陪伴,在被测试人群较为集中的场景中,需要耗费大量的人力资源和时间成本,

本发明的发明人在实现本发明的过程中,目前,没有自动化视力测试的技术方案。



技术实现要素:

鉴于上述问题,本发明实施例提供了一种视力检测方法、装置、视力检测仪及计算机存储介质,克服了上述问题或者至少部分地解决了上述问题。

根据本发明实施例的一个方面,提供了一种视力检测方法,应用于视力检测仪,所述方法包括:获取所述视力检测仪前方的环境图像;判断所述环境图像中是否包含有用户;若包含,则确定所述用户与所述视力检测仪之间的距离;结合所述距离,控制所述视力检测仪显示视标,并且基于所述用户的判断结果,确定所述用户的视力等级。

在一种可选的方式中,在所述确定所述用户与所述视力检测仪之间的距离的步骤之前,所述方法进一步包括:从所述环境图像中提取所述用户的脸部特征;根据所述脸部特征,对所述用户进行身份验证;在通过所述身份验证时,执行所述确定所述用户与所述视力检测仪之间的距离的步骤;在没有通过所述身份验证时,输出作弊告警提示。

在一种可选的方式中,所述根据所述脸部特征,对所述用户进行身份验证包括:判断所述脸部特征与当前指定的待测者的脸部特征是否匹配,若匹配,则确定所述用户通过身份验证,若不匹配,则确定所述用户不通过身份验证,或者,判断所述脸部特征是否与预设待测者库中的用户的脸部特征相匹配,若是,则确定所述用户通过身份验证,若否,则确定所述用户不通过身份验证。

在一种可选的方式中,所述从所述环境图像中提取所述用户的脸部特征,进一步包括:识别所述用户在所述环境图像中的脸部是否正脸;若不为正脸,则根据预设正脸矫正算法,将所述用户的脸部矫正为正脸;从矫正后的环境图像中提取所述用户的脸部特征;若是正脸,则直接从所述环境图像提取所述用户的脸部特征。

在一种可选的方式中,所述结合所述距离,控制所述视力检测仪显示视标,包括:获取所述视力检测仪当前选定的视力检查模式,以及,所述视力检查模式对应的标准距离;判断所述距离与所述标准距离是否相同;若相同,则从预设标准视力表中提取视标,并且控制所述视力检测仪显示所提取的视标;若不相同,则输出提示所述用户调整位置的提示信息,直至所述用户与所述视力检测仪的距离等于标准距离,或者,计算所述距离与所述标准距离的比例,根据所述比例,对从所述预设标准视力表提取到的视标进行缩放处理,并且控制所述视力检测仪显示缩放处理后的视标。

在一种可选的方式中,在所述获取所述用户针对所述视标的判断结果之前,所述方法还包括:识别所述用户是否具有作弊动作;若具有,则输出作弊告警提示,重新提取视标,返回执行控制所述视力检测仪显示所述视标的步骤;若不具有,则执行所述获取所述用户针对所述视标的判断结果的步骤。

在一种可选的方式中,所述作弊动作包括:用户上身前倾,在当前的视力检查模式为裸眼视力检测模式时用户配带眼镜,所述用户不遮挡眼睛,和/或,用户遮挡的眼睛与当前待测眼睛相同。

在一种可选的方式中,所述控制所述视力检测仪显示视标,并且获取所述用户针对所述视标的判断结果,并且基于所述用户针对视标的判断结果,确定所述用户的视力等级包括:控制所述视力检测仪显示视标;获取所述用户对当前视标的判断结果;判断所述用户对当前视标的判断结果与用户对先前所有视标的判断结果是否均一致,若均一致,则调整预设步长;若调整后的所述预设步长大于或者等于所述预设步长阈值,则根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标;若不均一致,则保持所述预设步长不变,并且执行所述根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标的步骤;判断更新后的视标所属的视力等级是否超出预设视力等级范围;若超出,则将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级。

在一种可选的方式中,在调整后的所述预设步长小于所述预设步长阈值时,将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级。

在一种可选的方式中,所述方法还包括:记录用户对所述预估等级对应的视标列表中的至少一个视标的判断结果;当所述判断结果满足视力等级测试条件时,则获取用户在更高视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果不满足视力等级测试条件;将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级;当所述判断结果不满足视力等级测试条件时,获取用户在更低视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果满足视力等级测试条件;将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级。

根据本发明实施例的另一方面,提供了视力检测装置,包括:获取模块,用于获取所述视力检测仪前方的环境图像;判断模块,用于判断所述环境图像中是否包含有用户;第一确定模块,用于若包含,则确定所述用户与所述视力检测仪之间的距离;控制模块,用于结合所述距离,控制所述视力检测仪显示视标,并且获取所述用户的判断结果;第二确定模块,用于基于所述用户的判断结果,确定所述用户的视力等级。

根据本发明实施例的另一方面,提供了视力检测仪,包括:摄像头、显示器、处理器、存储器、通信接口和通信总线,所述摄像头、显示器、处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述摄像头用于采集视力检测仪前方的环境图像;所述显示器用于显示视标;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的视力检测方法的步骤。

根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述的视力检测方法的步骤。

在本发明实施例中,当确定视力检测仪前方的环境图像包含有用户时,确定所述用户与所述视力检测仪之间的距离,并且结合所述距离,控制所述视力检测仪显示视标,对用户执行视力检测,实现视力检测的自动启动,并且整个视力检测过程全部自助执行,无需辅助人员从旁操作,节省人力成本。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明视力检测的方法运行环境的示意图;

图2示出了本发明视力检测仪的示意图;

图3示出了本发明视力检测的方法实施例的流程图;

图4示出了本发明视力检测的方法实施例中控制显示视标的流程图;

图5示出了本发明视力检测的方法实施例中运动直线与轴线的夹角的示意图;

图6示出了本发明视力检测的方法实施例中手势形状的示意图;

图7示出了本发明视力检测的方法实施例中先确定预估等级,再根据预估等级确定视力等级的流程图;

图8示出了本发明视力检测的方法另一实施例的流程图;

图9示出了本发明视力检测的方法另一实施例中验证环境图像中用户脸部是否为正脸的流程图;

图10示出了本发明视力检测的方法又一实施例的流程图;

图11示出了本发明视力检测的装置实施例的示意图;

图12示出了本发明视力检测仪实施例的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

请参阅图1,本发明视力检测的方法运行环境的示意图,运行环境10包括视力检测仪11、云端服务器12和智能终端13;

视力检测仪11包括通信模块111、摄像头112、显示器113和控制器114,通信模块111、摄像头112和显示器113均与控制器114连接。

显示器113提供用户交互软件界面,以显示在视力检查过程中的视标以及检测结果等。可选的,显示器113为触摸式显示设备。

摄像头112用于采集显示器113前方的环境图像。当用户需要进行视力检测时,用户需要站在显示器113前,并且正对显示器113,则摄像头112所拍摄的环境图像中就会包含该用户。可选的,摄像头112为带usb摄像头、网格式摄像头或者深度摄像头等等。

控制器114属于控制中心,控制器114根据摄像头112所采集的环境图像确定到存在用户时,启动视力检测,采集用户的判断结果,然后基于用户的判断结果得到用户的视力等级。而在得到用户的视力等级之后,控制器114可控制显示器显示视力等级,以向用户通知视力检测结果。当然,在另一些实施例中,视力检测仪11还可以包括与通信总线连接的喇叭,控制器114控制喇叭广播用户的视力等级。在得到用户的视力等级之后,控制器114也可将视力等级与用户的身份进行绑定,再通过通信模块111上传至云端服务器12进行保存。当然,也可以采集用户的视力检测过程的过程视频,并且将过程视频和视力检测结果一同上传至云端服务器12,由云端服务器12进行存储,以方便以后对用户的视力检测过程进行追踪回溯。当用户需要查询自己的视力等级时,可通过智能终端13访问云端服务器12,从云端服务器12提取自身的视力等级。其中,通信模块111可选为无线通信器,例如:5g无线通信器、wifi无线通信器、zigbee无线通信器等等,而无线通信器可以减少走线的麻烦。

进一步的,还可以在云端服务器12部署数据分析程序,以对某一用户、某一群体进行视力数据进行分析,例如:数据分析程序结合历史数据,发现某一班级的平均视力等级呈下降,则通知对应班级的负责人,又或者,数据分析程序发现某一用户的视力等级呈下降时,向该用户对应的智能终端13发送提醒,以提醒用户关注自身的视力。

可以理解的是:在另一些实施例中,控制器114也可以将用户的视力等级和/或用户的在视力检测过程中的过程视频存储于本地的存储器中,用户通过读取本地的存储器得到自身的视力等级和过程视频。

请参阅图3,图3是本发明视力检测的方法实施例的流程图,该方法应用于上述运行环境10中的视力检测仪11,具体的,方法包括:

步骤201:获取所述视力检测仪前方的环境图像;

视力检测仪前方的环境图像是指视力检测仪的显示器所示的视标位置前方的图像。通常情况下,视力检测仪的摄像头是预先固定好的,并且摄像头的取景镜头正对显示器所显示的视标的前方,当用户站到视标的前方,用户就会进入视力检测仪的摄像头的取景范围内。

步骤202:判断所述环境图像中是否包含有用户,若包含,则执行步骤203,否则返回执行步骤201;

从环境图像识别用户的识别算法可采用现有技术实现,此处不作限定。

通过判断环境图像中是否包含用户来确定是否启动视力检测,可以实现视力检测的自动启动,也无需要辅助人员参与操作,节省人力成本。

当然,在一些实施例中,当确定环境图像没有包含有用户,并且持续时间大于预设时间时,还可以控制视力检测仪中除控制器和摄像头之外的元件进入待机或者关闭状态,以节省视力检测仪所耗费的电量,当确定环境图像包含有用户之后,再启动这些元件,执行后续的视力检测。

步骤203:确定所述用户与所述视力检测仪之间的距离;

用户与所述视力检测仪之间的距离是指用户与视力检测仪所显示的视标的位置之间的距离。对于用户与所述视力检测仪之间的距离可以通过在视力检测仪上配置的距离传感器检测得到,又或者,预先获取摄像头的坐标以及视标所在位置的坐标,在摄像头拍摄得到的环境图像时,根据用户在环境图像中的位置、摄像头的焦距和摄像头的坐标,计算用户的坐标,再根据用户的坐标与视标所在位置的坐标,计算用户与所述视力检测仪之间的距离。

步骤204:结合所述距离,控制所述视力检测仪显示视标;

由于不同视力检测模式,用户与视力检测仪之间的距离要求是不相同的,为了保证视力检测的准确性,在正式显示视标之前,可以先验证用户与视力检测仪的距离是否正确,具体的,如图4所示,步骤204又可以包括:

步骤2041:获取所述视力检测仪当前选定的视力检查模式;

视力检查模式包括裸眼视力检则模式和矫正视力检测模式,其中,裸眼视力检则模式是指用户在没有佩戴任何视力矫正工具的前提下所进行的视力检测,矫正视力检则模式是指用户在佩戴视力矫正工具的前提所进行的视力检测。

步骤2042:获取所述视力检查模式对应的标准距离;

步骤2043:判断所述距离与所述标准距离是否相同,若相同,则执行步骤2044,否则执行步骤2045;

步骤2044:从预设标准视力表中提取视标,并且控制所述视力检测仪显示所提取的视标;

步骤2405:输出提示所述用户调整位置的提示信息,直至所述用户与所述视力检测仪的距离等于标准距离;

当然,为了更清楚地提醒用户的移动方向,还可判断用户与视力检测仪之间的距离与标准距离之间的大小关系,并且根据该大小关系,在输出的提示信息中携带移动方向,例如:当用户与视力检测仪之间的距离比标准距离大3米,则输出“向前移动3米”的提示信息,当用户与视力检测仪之间的距离比标准距离小1米,则输出“向后移动1米”的提示信息。

在一些实施例中,还可以预先根据各视力检测模式对应的标准距离,在视力检测仪的前方标记对应的检测区域,在确定视力检测仪的视力检查模式之后,识别用户是否位于对应的检测区域内,当用户不在对应的检测区域内时,提示用户进入对应的检测区域,例如:在视力检测仪的前方设置圆形的检测区域1和检测区域2,检测区域1对应裸眼视力检测模式,检测区域2对应矫正视力检测模式,若选定的视力检测模式为裸眼视力检测模式,但是用户没有在检测区域1,则提醒用户进入检测区域1。

可以理解的是:在另一些实施例中,当用户与视力检测仪之间的距离不等于对应的标准距离时,也可以不提示用户移动,而计算所述距离与所述标准距离的比例,根据所述比例,对从所述预设标准视力表提取到的视标进行缩放处理,并且控制所述视力检测仪显示缩放处理后的视标,从而保证视力检测的准确性。

步骤205:获取所述用户的判断结果;

用户的判断结果是指用户对所显示的视标给出的指示,在一些实施例中,用户可以通过肢体动作给出判断结果,则可以通过采集该用户的用户图像,并且根据用户图像确定用户的肢体动作,进而识别到用户的判断结果,以下给出了几种通过用户的肢体动作确定用户的判断结果的方式:

(1)从用户图像中识别用户的手部的运动轨迹,然后将该运动轨迹拟合成运动直线,确定运动直线分别与预设的左向轴线、右向轴线、上向轴线和下向轴线的夹角。获取夹角小于第一预设值的轴线,并且将获取到的轴线对应的方向作为手部的指示方向。如图5所示,左向轴线、右向轴线、上向轴线和下向轴线的指示方向分别为向左、右向、向上和向下,运动直线与右向轴线、上向轴线、向右轴线、向下轴线的夹角分别为a1、a2、a3和a4,其中,a1小于45度,a2、a3和a4均大于45度,因此,右向轴线为选定的轴线。

(2)从用户图像中识别用户的手势形状,并且将所述手势形状所指示的方向作为所述用户的指示动作的指示方向。如图6所示,当拇指指向左时,则用户的指示方向为向左,当拇指指向右时,则用户的指示方向为向右,当拇指指向上时,则用户的指示方向为向上,当拇指指向下时,则用户的指示方向为向下。

可以理解的是:在其它实施例中,也可以以用户其它手指的指示方向代表用户的指示方向,例如:食指、中指等等;又或者,预先定义代表向上、向下、向左和向右的四种预定手势形状,当识别到用户的手势形状时,寻找与该手势形状匹配的预定手势形状,所匹配的预定手势形状代表的方向作为用户的指示方向。

(3)在用户图像中构建四个虚拟框,其中,四个虚拟框分别在四个方位上,并且呈上下对称、左右对称,一个虚拟框对应一个方向。识别用户的手部所在的虚拟框,将用户的手部所在的虚拟框对应的方向作为用户的手部的指示方向。

步骤206:基于所述用户的判断结果,确定所述用户的视力等级。

视力等级代表视力值,例如:视力等级为1.0,则用户的视力值为1.0,当视力等级为5.0,则用户的视力值为5.0。

进一步的,在确定用户的视力等级之后,可通过声音或者图像的形式向用户通告该视力等级,以用户获取视力检测结果。当然,也可以直接将用户的视力等级与用户进行关联,例如:若用户进行体验测试时,可直接在用户的电子体验表上填上用户的视力等级。关联后的数据可上传云端服务器进行存储备份,也可以存储于视力检测仪本地的存储器中。

为了提高视力检测的效率,还可以先对用户进行视力粗测得到预估等级,再从预估等级起进行视力精测,得到最终的视力等级,具体的,如图7所示,控制所述视力检测仪显示视标,并且获取所述用户针对所述视标的判断结果,并且基于所述用户针对视标的判断结果,确定所述用户的视力等级包括:

步骤2061:控制所述视力检测仪显示视标;

当存储有该用户的历史视力数据时,对于视力检测仪所显示的第一个视标可根据该用户的历史视力数据进行选取,以使视标所属的等级更接近用户当前的视力等级,提高检测效率。当没有存储该用户的历史视力数据时,则第一个视标可随机选取,或者,结合大数据分析技术估计该用户的视力等级,再从估计的视力等级中随机选择视标。

步骤2062:获取所述用户对当前视标的判断结果;

当前视标是指视力检测仪当前所显示的视标。

步骤2063:判断所述用户对当前视标的判断结果与用户对先前所有视标的判断结果是否均一致,若均一致,则执行步骤2064,否则执行2067;

先前所有视标是指视力检测仪先前所显示的所有视标。

步骤2064:调整预设步长;

步骤2065:判断调整后的所述预设步长是否大于或者等于所述预设步长阈值,若调整后的所述预设步长大于或者等于所述预设步长阈值,执行步骤2066,若否,则执行步骤2069;

需要说明的是:每次进行视力检测之前都需要给预设步长赋予固定值,以保证在每次视力检测的过程中预设步长的起始值均相同。当然,在另一些实施例中,也可以在每次视力检测结束时,对预设步长赋予该固定值,以使下次执行视力检测时,该预设步长的起始值为该固定值,从而保证在每次视力检测的过程中,预设步长的起始值均相同。

步骤2066:根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标;

步骤2067:保持所述预设步长不变,并且执行步骤2066;

步骤2068:判断更新后的视标所属的视力等级是否超出预设视力等级范围,若超出,执行步骤2069,若不超出,则执行步骤2061;

步骤2069:将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级。

步骤2160:记录用户对所述预估等级对应的视标列表中的至少一个视标的判断结果;

步骤2161:判断该判断结果是否满足视力等级测试条件;

步骤2162:当所述判断结果满足视力等级测试条件时,则获取用户在更高视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果不满足视力等级测试条件;

步骤2163:当所述判断结果不满足视力等级测试条件时,获取用户在更低视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果满足视力等级测试条件;

步骤2164:将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级;

可以理解的是:在另一些实施例中,当不需要对用户的视力进行精确检测时,也可以不执行步骤2160至步骤2165,而是直接将预估等级作为用户的视力等级。

在一些实施例中,为了提高对用户视力检测的准确性,在确定用户的判断结果与视标是否相匹配时,还可以增加时间限制,限定用户必须在预设时长内给出判断结果,若用户在预设时长内没有给出判断结果,则确定所述用户的识别结果不正确,此如,可以很好地避免用户通过长时间迷眼观察视标才给判断结果,造成视力检测不准确的情况。

在本发明实施例中,当确定视力检测仪前方的环境图像包含有用户时,确定所述用户与所述视力检测仪之间的距离,并且结合所述距离,控制所述视力检测仪显示视标,对用户执行视力检测,实现视力检测的自动启动,并且整个视力检测过程全部自助执行,无需辅助人员从旁操作,节省人力成本。

请参阅图8,图8是本发明视力检测的方法另一实施例的流程图,该方法包括:

步骤201:获取所述视力检测仪前方的环境图像;

步骤202:判断所述环境图像中是否包含有用户,若包含,则执行步骤207,否则返回执行步骤201;

步骤207:从所述环境图像中提取所述用户的脸部特征;

脸部特征包括用户的脸部器官的形状、位置等特征。

为了提高从环境图像中提取所述用户的脸部特征的准确性,可以对环境图像中用户的脸部进行正脸矫正,再从矫正之后的环境图像中提取用户的脸部特征,具体的,如图9所示,步骤207包括:

步骤2071:识别所述用户在所述环境图像中的脸部是否为正脸,若否,执行步骤2072,若是,执行步骤2074;

具体的,识别用户在所述环境图像中的脸部是否为正脸,包括:先识别环境图像中用户的脸部部位的特征信息,再根据脸部部位的特征信息,计算脸部的偏脸角度、转脸系数和抬脸系数,然后判断偏脸角度是否位于预设正脸偏脸角度范围、转脸系数是否位于预设正脸转脸系数范围以及抬脸系数是否位于预设正脸抬脸系数范围,若均是,确定环境图像中脸部为正脸,否则,确定环境图像中脸部不为正脸。

偏脸角度用于表示用户脸部偏转的角度。根据脸部部位的特征信息,计算脸部的偏脸角度,具体包括:先构建环境图像的图像中轴线,再根据脸部部位的特征信息,构建脸部的脸部中轴线,计算脸部中轴线与图像中轴线之间的夹角,并且将夹角作为偏脸角度。

转脸系数用于表示用户脸部转动的角度。根据脸部部位的特征信息,计算脸部的转脸系数,又具体包括:根据脸部部位的特征信息,构建脸部的脸部中轴线;基于脸部中轴线,将环境图像中脸部分为左脸区域和右脸区域,根据左脸区域的左宽度和右脸区域的右宽度,或者,根据左脸区域的左面积和右脸区域的右面积,或者,根据同一种脸部部位在左脸区域中的左宽度以及在右脸区域中的右宽度,计算转头系数,计算公式如下:

cp为转脸系数,el和er可分别为左脸区域的左宽度和右脸区域的右宽度,或者为左脸区域的左面积和右脸区域的右面积,或者,又或者为同一种脸部部位在左脸区域中的左宽度以及在右脸区域中的右宽度。

抬脸系数用于表示用户脸部抬起或者低下的角度。根据脸部部位的特征信息,计算脸部的抬脸系数,具体包括:先确定第一部位与第二部位的第一距离,再确定第二部位与第三部位的第二距离,根据第一距离和第二距离,计算抬脸系数,计算公式如下:

cr为抬脸系数,h1为第一距离,h2为第二距离。其中,第一部位、第二部位和第三部位均位于脸部,属于脸部部位,第一部位位于第二部位的上方,第二部位位于第三部位的上方,例如:第一部位为眼睛,第二部位为鼻子,第三部位为下颌,则第一距离为沿脸部中轴线,鼻尖到左眼和右眼连线的距离,第二距离为沿脸部中轴线从鼻尖到下颌最低点之间的距离。

步骤2072:根据预设正脸矫正算法,将所述用户的脸部矫正为正脸;

在一些实施例中,根据预设正脸矫正算法,将所述用户的脸部矫正为正脸包括:定位环境图像中脸部的至少三个第一关键点,然后根据至少三个第一关键点的坐标,以及,第一关键点在预设标准正脸图像中对应的第二关键点的坐标,计算仿射变换矩阵的仿射变换参数,最后根据仿射变换参数和仿射变换矩阵,对脸部图像中每一像素点进行坐标变换,从而将脸部图像中脸部矫正为正脸。

第一关键点是指用户脸部的像素点,对于第一关键点具体位置不作限定。第二关键点是预设标准正脸图像的像素点。脸部图像中脸部的第一关键点与标准正脸图像中脸部的第二关键点一一对应。根据至少三个第一关键点的坐标及标准正脸图像中对应的第二关键点的坐标,并且结合计算公式,可计算仿射变换参数,计算公式具体如下:

其中,(x1,y1)、(x2,y2)、(xn,yn)分别是标准正脸图像的n个第二关键点坐标,(x1',y1')、(x2',y2')、(xn',yn')分别是脸部图像中脸部的n个第一关键点的坐标,其中,n大于等于3,a1、b1、a2、b2、c1、c2是仿射变换参数。

步骤2073:从矫正后的环境图像中提取所述用户的脸部特征;

步骤2074:直接从所述环境图像提取所述用户的脸部特征。

步骤208:根据所述脸部特征,对所述用户进行身份验证,在通过所述身份验证时,执行步骤203,否则执行步骤209;

通过对用户执行身份验证,不仅可以很好地避免用户冒名顶替的情况,又可以对用户的身份进行确认,避免出现检测结果与用户不对应的情况。

在一些实施例中,对所述用户进行身份验证,包括:判断所述脸部特征与当前指定的待测者的脸部特征是否匹配,若匹配,则确定所述用户通过身份验证,若不匹配,则确定所述用户不通过身份验证。当前指定的待测者是指视力检测仪当前选择的用户,类似于医院叫号,视力检测仪指定待测者,指定的待测者到视力检测仪前执行视力检测,得到的视力检测结果记录到该待测者的名下。

在一些实施例中,对所述用户进行身份验证又可包括:判断所述脸部特征是否与预设待测者库中的用户的脸部特征相匹配,若是,则确定所述用户通过身份验证,若否,则确定所述用户不通过身份验证。在本实施例中,视力检测仪不采用医院叫号的方法,而是采用随到随测的方法,但是在随到随测的方式中,只有用户是预设待测者库中的用户才是合法,否则认为是非法用户。

进一步的,为了避免他人利用真实用户的图片进行身份欺骗,在对用户进行身份验证之前,还可先验证位于视力检测仪前方的用户是否为活体,只有是活体才执行后续的身份验证,否则确定该用户具有作弊行为。对活体的检测不作限定,可以通过配置多光谱摄像头,由多光谱摄像头拍摄多光谱图像,并且根据多光谱图像确定用户是否活体,又或者,由视力检测仪输出运动指令,当用户做出运动指令对应的动作时,则确定该用户为活体,例如:视力检测仪输出“抬起右手臂”运动指令,如果检测到用户抬起右手臂,则确定该用户为活体,否则确定该用户不为活体。

步骤209:输出作弊告警提示;

作弊告警提示用于对用户进行警告,并且提示该用户离开视力检测仪。

步骤203:确定所述用户与所述视力检测仪之间的距离;

步骤204:结合所述距离,控制所述视力检测仪显示视标;

步骤205:获取所述用户的判断结果;

步骤206:基于所述用户的判断结果,确定所述用户的视力等级。

在得到用户的视力等级之后,可以直接将该视力等级与用户进行绑定并保存,又或者,将视力等级和之前身份验证得到的用户身份一起发送至云端服务器,由云端服务器进行绑定,当需要用户查询视力等级时,直接访问云端服务器即可。

当然,若对用户的身份不敏感,则可以不对用户进行身份验证,而在确定用户的视力等级之后,由用户在视力检测仪上输入用户的身份信息,视力检测仪将身份信息和视力等级发送到云端服务器进行绑定,又或者,由视力检测仪将视力等级传到云端服务器,然后再出示包含该视力等级的标识的二维码,用户使用自身智能终端扫描二维码获取到上述标识后,发送在智能终端输入的用户身份信息和标识到云端服务器,则云端服务器将该用户身份信息与视力等级结果进行绑定。

在本发明实施例中,在检测到视力检测仪的前方存在用户时,先对用户进行身份验证,在用户通过身份验证之后才执行后续的视力检测流程,通过对用户进行身份验证,不仅可以避免用户进行身份作弊,又可以对用户进行确认,避免检测结果与用户不相匹配的问题。

请参阅图,图10是本发明视力检测的方法第三实施例的流程图,方法还包括:

步骤201:获取所述视力检测仪前方的环境图像;

步骤202:判断所述环境图像中是否包含有用户,若包含,则执行步骤203,否则返回执行步骤201;

步骤203:确定所述用户与所述视力检测仪之间的距离;

步骤204:结合所述距离,控制所述视力检测仪显示视标;

步骤210:识别所述用户是否具有作弊动作,若不具有,执行步骤205,否则执行步骤211;

若用户在视力检测的过程中进行作弊,则检测到的视力结果不是准确的,因此,在执行视力检测的过程,需要时刻关注用户是否存在作弊行为,例如:用户上身前倾、在当前的视力检查模式为裸眼视力检测模式时用户配带眼镜、所述用户不遮挡眼睛、和/或用户遮挡的眼睛与当前待测眼睛相同等等。对于用户的作弊行为也可以通过视力检测仪上的摄像头采集到用户的图像,并且根据图像进行识别得到的。而从图像中识别用户的作弊行为的识别算法可以采用神经网络算法。

步骤211:输出作弊告警提示,重新提取视标,返回步骤204;

步骤205:获取所述用户的判断结果;

步骤206:基于所述用户的判断结果,确定所述用户的视力等级。

在本发明实施例中,在对用户进行视力检测的过程中,当用户存在作弊行为时,则不记录用户的判断结果,并且输出作弊告警提示,以使用户修正自身的动作,从而保证视力检测的准确性。

本发明又提供视力检测的装置实施例。如图11所示,视力检测的装置30包括获取模块301、判断模块302、第一确定模块303、控制模块304和第二确定模块305。

获取模块301用于获取所述视力检测仪前方的环境图像。判断模块302用于判断所述环境图像中是否包含有用户。第一确定模块303用于若包含,则确定所述用户与所述视力检测仪之间的距离。控制模块304用于结合所述距离,控制所述视力检测仪显示视标,并且获取所述用户的判断结果。第二确定模块305用于基于所述用户的判断结果,确定所述用户的视力等级。

在一些实施例中,控制模块304又具体用于:获取所述视力检测仪当前选定的视力检查模式,以及,所述视力检查模式对应的标准距离;判断所述距离与所述标准距离是否相同;若相同,则从预设标准视力表中提取视标,并且控制所述视力检测仪显示所提取的视标;若不相同,则输出提示所述用户调整位置的提示信息,直至所述用户与所述视力检测仪的距离等于标准距离或者,计算所述距离与所述标准距离的比例,根据所述比例,对从所述预设标准视力表提取到的视标进行缩放处理,并且控制所述视力检测仪显示缩放处理后的视标。

在一些实施例中,第二确定模块305具体为:获取所述用户对当前视标的判断结果;判断所述用户对当前视标的判断结果与用户对先前所有视标的判断结果是否均一致,若均一致,则调整预设步长;若调整后的所述预设步长大于或者等于所述预设步长阈值,则根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标;若不均一致,则保持所述预设步长不变,并且执行所述根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标的步骤;判断更新后的视标所属的视力等级是否超出预设视力等级范围;若超出,则将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级;在调整后的所述预设步长小于所述预设步长阈值时,将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级;记录用户对所述预估等级对应的视标列表中的至少一个视标的判断结果;当所述判断结果满足视力等级测试条件时,则获取用户在更高视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果不满足视力等级测试条件;将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级;当所述判断结果不满足视力等级测试条件时,获取用户在更低视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果满足视力等级测试条件;将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级。

视力检测的装置30还可包括第一识别模块306、矫正模块307、提取模块308、验证模块309和第一输出模块310。

第一识别模块306用于识别所述用户在所述环境图像中的脸部是否正脸。矫正模块307用于若不为正脸,则根据预设正脸矫正算法,将所述用户的脸部矫正为正脸。提取模块308用于在第一识别模块306识别到环境图像中的脸部不为正脸时,从矫正后的环境图像中提取所述用户的脸部特征,在第一识别模块306识别到环境图像中的脸部为正脸时,直接从所述环境图像提取所述用户的脸部特征。验证模块309,用于根据所述脸部特征,对所述用户进行身份验证,在通过所述身份验证时,执行第一确定模块303。第一输出模块310,用于在没有通过所述身份验证时,输出作弊告警提示。

在一些实施例中,验证模块309又具体用于判断所述脸部特征与当前指定的待测者的脸部特征是否匹配,若匹配,则确定所述用户通过身份验证,若不匹配,则确定所述用户不通过身份验证,或者,判断所述脸部特征是否与预设待测者库中的用户的脸部特征相匹配,若是,则确定所述用户通过身份验证,若否,则确定所述用户不通过身份验证。

进一步,视力检测的装置30还包括第二识别模块311和第二输出模块312。

第二识别模块311用于识别所述用户是否具有作弊动作。第二输出模块312用于若具有,则输出作弊告警提示,重新提取视标,返回执行控制模块304。若不具有,则执行第二确定模块305。在一些实施例中,作弊动作包括:用户上身前倾,在当前的视力检查模式为裸眼视力检测模式时用户配带眼镜,所述用户不遮挡眼睛,和/或,用户遮挡的眼睛与当前待测眼睛相同。

在本发明实施例中,当判断模块302确定到视力检测仪前方的环境图像包含有用户时,第一确定模块303确定所述用户与所述视力检测仪之间的距离,并且控制模块304结合所述距离,控制所述视力检测仪显示视标,对用户执行视力检测,实现视力检测的自动启动,并且整个视力检测过程全部自助执行,也无需要辅助人员从旁操作,节省人力成本。

本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的视力检测的方法。

图12示出了本发明视力检测仪实施例的结构示意图,本发明具体实施例并不对视力检测仪的具体实现做限定。

如图12所示,该视力检测仪可以包括:处理器(processor)402、通信接口(communicationsinterface)404、存储器(memory)406、通信总线408、摄像头409、显示器410和通信模块411。

其中:处理器402、通信接口404、存储器406、摄像头409、显示器410和通信模块411通过通信总线408完成相互间的通信。其中,处理器402、通信接口404、存储器406和通信接口404构成图2所示的控制器,摄像头409、显示器410和通信模块411与图2所示摄像头、显示器和通信模块均相同。

通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于视力检测仪的图形绘制方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。视力检测仪包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行以下操作:

获取所述视力检测仪前方的环境图像;

判断所述环境图像中是否包含有用户;

若包含,则确定所述用户与所述视力检测仪之间的距离;

结合所述距离,控制所述视力检测仪显示视标,并且基于所述用户的判断结果,确定所述用户的视力等级。

在一种可选的方式中,所述程序410使所述处理器执行在所述确定所述用户与所述视力检测仪之间的距离的步骤之前,进一步执行以下操作:

从所述环境图像中提取所述用户的脸部特征;

根据所述脸部特征,对所述用户进行身份验证;

在通过所述身份验证时,执行所述确定所述用户与所述视力检测仪之间的距离的步骤;

在没有通过所述身份验证时,输出作弊告警提示。

在一种可选的方式中,程序410使所述处理器执行根据所述脸部特征,对所述用户进行身份验证的操作包括:

判断所述脸部特征与当前指定的待测者的脸部特征是否匹配,若匹配,则确定所述用户通过身份验证,若不匹配,则确定所述用户不通过身份验证,

或者,

判断所述脸部特征是否与预设待测者库中的用户的脸部特征相匹配,若是,则确定所述用户通过身份验证,若否,则确定所述用户不通过身份验证。

在一种可选的方式中,程序410使所述处理器执行从所述环境图像中提取所述用户的脸部特征的操作包括:

识别所述用户在所述环境图像中的脸部是否正脸;

若不为正脸,则根据预设正脸矫正算法,将所述用户的脸部矫正为正脸;

从矫正后的环境图像中提取所述用户的脸部特征;

若是正脸,则直接从所述环境图像提取所述用户的脸部特征。

在一种可选的方式中,程序410使所述处理器执行所述结合所述距离,控制所述视力检测仪显示视标的操作包括:

获取所述视力检测仪当前选定的视力检查模式,以及,所述视力检查模式对应的标准距离;

判断所述距离与所述标准距离是否相同;

若相同,则从预设标准视力表中提取视标,并且控制所述视力检测仪显示所提取的视标;

若不相同,则输出提示所述用户调整位置的提示信息,直至所述用户与所述视力检测仪的距离等于标准距离,或者,计算所述距离与所述标准距离的比例,根据所述比例,对从所述预设标准视力表提取到的视标进行缩放处理,并且控制所述视力检测仪显示缩放处理后的视标。

在一种可选的方式中,程序410使所述处理器执行在所述获取所述用户针对所述视标的判断结果之前,还执行以下操作:

识别所述用户是否具有作弊动作;

若具有,则输出作弊告警提示,重新提取视标,返回执行控制所述视力检测仪显示所述视标的步骤;

若不具有,则执行所述获取所述用户针对所述视标的判断结果的步骤。

在一种可选的方式中,所述作弊动作包括:用户上身前倾,在当前的视力检查模式为裸眼视力检测模式时用户配带眼镜,所述用户不遮挡眼睛,和/或,用户遮挡的眼睛与当前待测眼睛相同。

在一种可选的方式中,程序410使所述处理器执行:控制所述视力检测仪显示视标,并且获取所述用户针对所述视标的判断结果,并且基于所述用户针对视标的判断结果,确定所述用户的视力等级的操作包括:

控制所述视力检测仪显示视标;

获取所述用户对当前视标的判断结果;

判断所述用户对当前视标的判断结果与用户对先前所有视标的判断结果是否均一致,若均一致,则调整预设步长;

若调整后的所述预设步长大于或者等于所述预设步长阈值,则根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标;

若不均一致,则保持所述预设步长不变,并且执行所述根据所述用户对当前视标的判断结果、所述当前视标所属的视力等级和所述预设步长,更新视标的步骤;

判断更新后的视标所属的视力等级是否超出预设视力等级范围;

若超出,则将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级;

在调整后的所述预设步长小于所述预设步长阈值时,将所述用户最后一个判断结果正确的视标所属的视力等级作为用户的预估等级;

记录用户对所述预估等级对应的视标列表中的至少一个视标的判断结果;

当所述判断结果满足视力等级测试条件时,则获取用户在更高视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果不满足视力等级测试条件;

将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级;

当所述判断结果不满足视力等级测试条件时,获取用户在更低视力等级对应的视标列表中的至少一个视标的判断结果,直至判断结果满足视力等级测试条件;

将最后满足视力等级测试条件的判断结果对应的视力等级,作为所述用户的视力等级。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

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