本发明涉及检测领域,具体涉及一种视功能自测方法。
背景技术:
目前的视力测试主要采用视力测试表,被检者的视线要与1.0的一行平行,距离视力表5米,视力表与被检查者的距离必须正确固定,患者距表为5米。如室内距离不够5米长时,则应在2.5米处放置平面镜来反射视力表。进行检测先遮盖一眼,单眼自上而下辨认“e”字缺口方向,直到不能辨认为止,记录下来即可。正常视力应在1.0以上。若被测试者0.1也看不到时,要向前移动,直到能看到0.1为止,其视力则是“0.1×距离/5=视力”;若在半米内仍看不到0.1,可令被测试者辨认指数,测手动、光感等。按检查情况记录视力。近视力多用“j”近视力表,同样方法辨认“e”字缺口方向,直到不能辨认为止,近距离可自行调整,正常近视力在30厘米处看清1.0一行即可,近视力检查有助于屈光不正的诊断。
对比敏感度(contrastsensitivity,cs)定义为视觉系统能觉察的对比度阈值的倒数。对比敏感度=1/对比度阈值。对比度阈值低,则对比敏感度高。在某一空间频率,视觉系统有一定的对比敏感度;反之,在同一对比度时,视觉系统有一定的空间频率分辨力。
立体视觉是双眼观察景物能分辨物体远近形态的感觉。立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息。临床上,立体视觉的丧失是许多病人无法自行感知到的,也难以描述。
视功能分为,光觉、色觉、形觉(视力)、动觉(立体视觉)和对比觉(对比敏感度),目前视功能测试要在专业人员指导下才能完成准确的检测,不能够独自进行视功能测试,视功能测试不方便,视功能测试过程较复杂且人工成本高,而已不够方便,不能在需要的时候就进行检测。
技术实现要素:
本发明的目的在于实现随时随地的视功能自测。
为了实现以上目的,本发明提供一种视功能自测方法,利用带有3d结构光和摄像头的手机进行视功能的自测。
优选的,利用摄像头检测眼部到屏幕的距离,根据距离的不同在屏幕上显示出合适大小的视标,并监测测试过程中的距离,当距离发生变化时进行提醒或重启自测。
优选的,距离的检测是基于scenekit和arkit提供的坐标信息矩阵,获取到眼睛的三维世界坐标信息保存到三维向量scnvector3中,再用三维坐标系中两点间的距离计算方法计算得出眼睛与屏幕间的距离。
优选的,所述的视标采用三划等长的正方形的“e”形视标。
优选的,所述的视标采用最小分辨视角进行每行之间的显示。
优选的,利用3d结构光和摄像头进行眼动追踪,利用眼动追踪检测眼球运动,利用眼球的运动进行自测的应答。
优选的,所述的眼动追踪是借助arkit构建的脸部锚点arfaceanchor实现。
优选的,所述的视功能为视力、对比敏感度或立体视。
优选的,包括以下步骤:
s1.待测试人信息输入,
s2.测距调试,注视方向测试和距离测试,
s3.视功能测试,
s4.查看结果。
优选的,所述的视功能测试采用眼动应答或手动应答。
优选的,所述的查看结果为查看本次测试结构和查看历史测试结果。
为便于理解,本发明对以下进行名词进行解释。
3d结构光:
基于3d结构光的应用,iphonex及之后的系列手机用faceid取代touchid作为登录解锁,开启了人脸认证的时代。faceid实现的人脸认证通过3万个红外光点感知被测者的面部特征,获取被测者脸部的控件信息。
arkit是苹果官方推出的增强现实(augmentedreality,ar)相关的框架,主要有两大功能,一是通过前置摄像头结合3d结构光技术实现脸部追踪(facetracking);二是通过后置摄像头,结合单目摄像机和imu传感器等硬件实现的世界追踪(worldtracking)。
本发明具有如下有益效果:
1.本发明利用手机上的3d结构光和摄像头组件,再结合scenekit和arkit实现了视功能的自测。
2.本发明结合最小分辨视角与实际眼部到屏幕的距离,调整视标大小,从而实现视功能的自测,并自动显示测试结果。
3.本发明将人脸识别技术、眼球追踪和自动测距所获得数据,再结合实际眼部到屏幕的距离换算视标大小,从而实现了眼部视功能的自我检测,并且和人工检测相比,自我检测的速度更快,测试结果更加精准。
附图说明
图1为步骤s1的界面交互图;
图2为步骤s2的界面交互图;
图3为步骤s3的界面交互图;
图4为步骤s4的界面交互图;
图5为步骤s3的e字视标示意图;
图6为视觉刺激设计示意图;
图7为注视方向测试示意图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所述的实施例只是本发明的部分具有代表性的实施例,而不是全部实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的其他所有实施例都属于本发明的保护范围。
实施例1视力测试
步骤1.待测试人信息输入
图1所示,s1的信息填写界面。
此界面包含姓名、年龄、联系方式输入框,被测者以正确格式输入信息后将保存被测者信息并跳转至测距调试界面。
步骤2.距离测试和注视方向测试
距离测试:
实际距离是结合scenekit和arkit两个框架中的接口获取的。
scenekit将根据iphonex的前置摄像头获取用户脸部信息,根据摄像头实时获取的信息构建场景、建立坐标系。scenekit建立的世界坐标系是以iphonex的前置摄像头为原点,垂直于手机屏幕的方向为z轴,平行于手机上下方向为y轴,平行于手机左右方向为x轴的三维坐标系。arkit则根据scenekit搭建的坐标系,建立脸部锚点arfaceanchor[18]用以对脸部的方位、特征和表情等进行追踪,并将具体的坐标信息保存在一个4×4的矩阵当中。
本应用的测距是基于scenekit和arkit提供的坐标信息矩阵,获取到眼睛的三维世界坐标信息保存到三维向量scnvector3中,再用三维坐标系中两点间的距离计算方法计算得出眼睛与屏幕间的距离。
以上是以左眼到手机屏幕的距离为例,展示了测距的计算方法。
注视方向测试:
眼睛注视方向获取的功能主要是借arkit构建的脸部锚点arfaceanchor实现的。arfaceanchor中有个命名为lookatpont的属性,它保存了眼部实时运动趋势的三维坐标信息。眼部的三维坐标信息中的z轴指向了眼睛后方,x轴为左右方向,y轴为上下方向。因此,lookatpont保存的眼部运动趋势信息中,与眼睛注视方向有关的主要为x值和y值,当x大于0时,眼睛有向右运动的趋势;当x小于0时,眼睛有向左运动的趋势;当y大于0时,眼睛有向上运动的趋势;当y小于0时,眼睛有向下运动的趋势。因此,在获取眼睛注视方向时,只需要关注x和y的取值。
如图7所示,由斜率k=1和k=-1的两条直线划分成的四个区域,即为上、下、左、右四个注视方向所在的区域。又因为眼睛注视中间时,不属于向上、下、左、右任一方向运动,所以要将以原点为圆心,r为半径的一小块原型区域作为眼睛无运动的区域。由此,可以得出:
a)当k≤-1或k≥1,x2 y2>r2,且y>0时,眼睛注视方向为上面。
b)当k≤-1或k≥1,x2 y2>r2,且y<0时,眼睛注视方向为下面。
c)当-1<k<1,x2 y2>r2,且x<0时,眼睛注视方向为左边。
d)当-1<k<1,x2 y2>r2,且x>0时,眼睛注视方向为右边。
e)当x=0,即k不存在时,若y>r,眼睛注视方向为上面;若y<-r,眼睛注视方向为下面。
根据上述原理,可构造函数,实现用户眼睛注视方向获取的功能。
步骤3.视力测试
(1)视标的设计
如图5所示,采用三划等长的正方形“e”形视标,其每一笔划或空隙均为正方形边长的1/5。
在进行视力测试时,屏幕展示的视标将基于针孔相机模型,根据标准视力表和测距自动调整大小,动态保持当前行数应有的尺寸,以确保测试结果准确。为防止视标调整过于敏感,本系统将测距取整,在测距波动较小时(<2cm)不调整视标尺寸。
(2)视力测试规则
视标按照单个视力显示,但是以行视力测试规则进行结果的计算,即同等大小的视标单个显示5次视为1行:被测者被要求识别每一行的每一个字母,直到错误地识别一整行的4个字母或视力表最后一行的视标被正确识别≥4个,此时测试终止,并计算出视力结果。
评分规则:按个数评分——视力表每行之间相差0.1logmar(logarithmofminimumangleofresolution,最小分辨角对数),每行5个视标,因此每个视标平均占0.02logmar。因此,视力得分使用以下公式计算:
va=1.1-n*0.02
(其中,n表示读对的视标数。)
因此,分数越低,视力越好。当用户读对全部70个视标时,视力测试结果为va=1.1-70×0.02=-0.3;当用户用户读对25个视标时,视力测试结果为va=1.1-25×0.02=0.6,其余结果以此类推。
如图3所示的视力测试界面,
此界面将由被测者自行选择测试程序:眼动应答程序或触屏应答程序。应答程序选择完毕后,进入视力测试程序:屏幕显示被测者与手机屏幕的实时距离和适当的“e”形视标。
若选择眼动应答程序,则视标出现后,被测者须在5秒内以转动眼球的方式作出“e”形坐标的开口方向判断,如观察到e字视标开口向右,则眼球向右转动并保持2s作为应答;观察到e字视标开口向左,则眼球向左转动并保持2s作为应答,其余方向以此类推。若无法分辨视标开口方向,则继续平视手机屏幕超过2秒将,视为放弃作答。
若选择触屏应答程序,则视标出现后,被测者须在5秒内以手指触点屏幕上显示的上、下、左、右方向键的方式作出“e”形坐标的开口方向判断,如观察到e字视标开口向右,则点击“→”键作为应答;观察到e字视标开口向左,则点击“←”键作为应答,其余方向以此类推。若无法分辨视标开口方向,则不触碰任何按钮,超过2秒将视为放弃作答。
测试距离的监控:若检查期间头位变化较大,导致测试距离变动值超过2cm,则测试暂停,重新调试眼位(屏幕提示“请稍靠近屏幕”或“请稍远离屏幕”),5s内若能调试至最初检查距离(±1cm)则检查接上一级视标大小继续进行。若检查距离无法在5s内调试至最初检查距离,则以目前的测试距离进行新一轮的视力检查。
根据快速行视力测试规则分别测试完右眼与左眼后,将跳转至视力测试结果界面。
步骤4.查看结果,
如图4所示,此界面显示被测者的姓名、年龄、联系方式和视力测试结果,被测者在此页面查看此次视力测试结果(含实际测试距离平均值±标准差)。
实施例2对比敏感度测试
测试步骤与实施例1的视力测试步骤相同,采用的测试内容不同。
1.测试环境与视觉刺激设计
1)测试环境
使用者将手机横屏放置,暗室环境下,模拟与50cm等同的视标大小进行测试(采用的模拟方式与实施例1相同)。先测试右眼,后测试左眼。非测试眼用眼罩或手掌完全遮挡。
2)视觉刺激设计
视觉刺激包括竖直或水平的光栅(gabor)。在不同的试次中,光栅的空间频率和对比度值基于受检者之前试次测试结果自动生成。
2.测试流程及阈值设置
1)练习并熟悉测试流程:被试者在正式测试前将完成3个回合的预测试,以熟悉整个测试流程。
2)进入测试:在每一次试次中,屏幕中心首先呈现一个约2mm半径大小的注视圆点,注视点在屏幕上呈现2s后消失,接着呈现光栅刺激。1s后屏幕上的刺激消失,被试者要求回答光栅刺激的方位是水平的还是垂直的。若为水平的,则在屏幕上划自左向右划横线,若为垂直的,则在屏幕上自上而下划横线。程序基于被试者回答情况予以反馈:屏幕中心闪现绿色圆点1s则为正确,闪现红色圆点1s则为错误。下一个试次在被试者点触中心圆点后立即开始。
实施例3立体视觉测试
测试步骤与实施例1的视力测试步骤相同,采用的测试内容不同。
1.测试环境与视觉刺激设计
1)环境要求
使用者将手机横屏放置,通过红绿立体镜片,自然光线下,模拟与50cm等同的视标大小进行测试(采用的模拟方式与实施例1相同)。
2)视觉刺激设计
刺激是在黑暗背景下并排放置的两个圆盘形状的静态随机点,圆盘边缘用了高斯模糊处理,以免边缘效应引起视差。每个圆盘包含随机定位的红点和绿点,它们之间存在一定的偏移量来产生深度感,如图6。
利用opengles提供的混合函数,将重叠的红绿点(或由点的大小决定的重叠部分)混合成橙色,提供亚像素分辨率。
红绿点之间的偏移量在两个视觉刺激圆盘上相等且相反的;因此,两个圆盘中的一个将被视为屏幕平面前面的视觉刺激平面,另一个将被视为屏幕平面后面的视觉刺激平面。在每一项试验中,观察者的任务是轻拍被认为在屏幕平面后面的视觉刺激平面(圆盘)。没有作答时间限制,下一关测试出现在被试者作答后。
2.测试流程及阈值设置
1)练习并熟悉测试流程:被试者在正式测试前将完成10个回合的预测试,以熟悉整个测试流程。
2)进入测试:测试总耗时约5min,包括两个独立的测试以估计被试者立体视阈值。每次测试都是一个阶梯程序,其中红点与绿点之间的初始偏移量为40像素(对应于21.79弧分的立体视锐度),之后以2下1上规律进阶。初始步长为50%,在第一次逆转后步长变为10%。
3)终点计算:阶梯程序在第4个换向点终止。然后根据两次测试运行中最后三个反转计算立体阈值及其se和sd(即,共6次反转平均值)。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
1.一种视功能自测方法,其特征在于,利用带有3d结构光和摄像头的手机进行视功能的自测。
2.根据权利要求1所述的视功能自测方法,其特征在于,利用摄像头检测眼部到屏幕的距离,根据距离的不同在屏幕上显示出合适大小的视标,并监测测试过程中的距离,当距离发生变化时进行提醒或重启自测。
3.根据权利要求2所述的视功能自测方法,其特征在于,距离的检测是基于scenekit和arkit提供的坐标信息矩阵,获取到眼睛的三维世界坐标信息保存到三维向量scnvector3中,再用三维坐标系中两点间的距离计算方法计算得出眼睛与屏幕间的距离。
4.根据权利要求2所述的视功能自测方法,其特征在于,所述的视标采用三划等长的正方形的“e”形视标。
5.根据权利要求4所述的视功能自测方法,其特征在于,所述的视标采用最小分辨视角进行每行之间的显示。
6.根据权利要求1所述的视功能自测方法,其特征在于,利用3d结构光和摄像头进行眼动追踪,利用眼动追踪检测眼球运动,利用眼球的运动进行自测的应答。
7.根据权利要求6所述的视功能自测方法,其特征在于,所述的眼动追踪是借助arkit构建的脸部锚点arfaceanchor实现。
8.根据权利要求1所述的视功能自测方法,其特征在于,所述的视功能为视力、对比敏感度或立体视觉。
9.根据权利要求1-8任一所述的视功能自测方法,其特征在于,包括以下步骤:
s1.待测试人信息输入,
s2.测距调试,注视方向测试和距离测试,
s3.视功能测试,
s4.查看结果。
10.根据权利你要求8所述的视功能自测方法,其特征在于,所述的视功能测试采用眼动应答或手动应答,所述的查看结果为查看本次测试结构和查看历史测试结果。
技术总结