1.本发明一般地涉及眼底相机领域。更具体地,本发明涉及一种用于对眼底相机中的马达进行控制的方法、设备、眼底相机和计算机可读存储介质。
背景技术:2.眼底相机由主摄像头、两个副摄像头和马达等核心部件组成。通过两个副摄像头构成的双目系统获取人眼瞳孔的位置信息,控制马达的移动,将主摄像头移动到合适的工作距离的位置,完成眼底图像的采集。为了便于理解,下面将结合图1和图2对该图像采集操作进行简要描述。
3.图1示出了前述主摄像头和副摄像头布置的简化框图。如图中所示,副摄像头1和副摄像头2布置于主摄像头的两侧(三者通过刚性固定件来固定),从而构成用于确定瞳孔中心位置的双目系统。参见图2,在操作中,可以先对前述的双目系统进行标定,从而根据瞳孔在两个副摄像头图像坐标系的位置计算出瞳孔在三维空间世界坐标系下的位置,例如图2中201所示出的瞳孔位置。接着,可以利用该三维位置坐标与预先设计的工作距离(如图2中203所示出的)进行比较,从而获取空间位置差异,并且将该空间位置差异转化为马达的移动。由此,通过马达的移动量(例如分别对应于x轴、y轴和z轴的dx、dy和dz距离)来将主摄像头(连同两个副摄像头)相对于瞳孔的当前位置(如202所示出)移动一定的量,从而令主摄像头位于工作距离位置处,即主摄像头的位置与工作距离对齐。
4.上述的工作距离对齐方式要求双目坐标系(也即上文的图像坐标系)与马达坐标系(也即上文的三维空间世界坐标系)三轴平行,或者在出厂时对双目坐标系与马达坐标系进行标定。然而,双目系统和主摄像头之间存在安装公差并且眼底相机在使用过程中受运输、震动和设备老化等因素的影响,因此标定的误差会逐渐增大,从而导致工作距离对齐的过程受到显著影响。因此,现有技术中需要一种改进当前工作距离对齐的方案,以便以最优的马达移动方式将主摄像头移动至工作距离位置处。
技术实现要素:5.为了解决上述的技术问题,本发明提供了一种眼底相机工作距离对齐过程中的马达移动控制自学习方案。由此,可以实现在一台眼底相机上通过对历史工作距离对齐数据的分析学习,自动优化相关参数来控制马达移动量,从而不断提升工作距离对齐的效果。为此,本发明在如下的多个方面提供解决方案。
6.在第一方面中,本发明提供一种用于对眼底相机中的马达进行控制的方法,其中所述眼底相机包括主摄像头、副摄像头和马达,所述方法包括:获取所述副摄像头所确定的瞳孔中心的位置数据;以及将所述位置数据输入至马达控制模型中,以得到将所述主摄像头移动至工作距离位置处的马达移动量,其中所述马达控制模型经由关于位置数据和马达移动量的训练数据训练而获得。
7.在一个实施例中,所述马达控制模型是基于深度学习的神经网络模型,所述方法
还包括:获取所述瞳孔中心的位置数据和将主摄像头移动至所述工作距离位置处的对应马达移动量,以作为训练数据;以及利用所述训练数据来对所述神经网络模型进行训练,以获得所述马达控制模型。
8.在一个实施例中,所述主摄像头经所述马达的多次移动而移动至所述工作距离位置处,并且采集瞳孔中心的位置数据和对应的马达移动量以作为训练数据包括采集每次移动前的所述位置数据和所述主摄像头在所述位置数据下移动至所述工作距离位置处的对应马达移动量,以作为部分所述训练数据。
9.在一个实施例中,获取所述瞳孔中心的位置数据和对应马达移动量包括在所述眼底相机的使用过程中,采集所述瞳孔中心的位置数据和所述对应马达移动量,所述方法还包括:在所述眼底相机的使用过程中,利用采集到的位置数据和对应马达移动量对所述神经网络模型进行训练和/或优化。
10.在一个实施例中,两个所述副摄像头构成双目系统,并且所述位置数据包括所述瞳孔中心在所述双目系统下的图像坐标系中的坐标。
11.在一个实施例中,还包括根据所述马达移动量来移动所述马达,以便将所述主摄像头移动至所述工作距离位置处。
12.在一个实施例中,所述马达包括针对于多个移动方向的多个步进马达,并且所述马达移动量为所述步进马达的移动步数。
13.在第二方面中,本发明提供一种用于对眼底相机中的马达进行控制的设备,其中所述眼底相机包括主摄像头、副摄像头和马达,所述设备包括:处理器;以及存储器,其存储有计算机程序指令,当所述计算机程序指令由处理器执行时,实现根据第一方面及其多个实施例所述的方法。
14.在第三方面中,本发明提供一种眼底相机,包括:主摄像头、副摄像头和马达;以及根据第二方面所述的设备,以便将所述主摄像头移动至所述工作距离位置处。
15.在第四方面中,本发明提供一种计算机可读存储介质,其存储有用于对眼底相机中的马达进行控制的计算机程序指令,当所述计算机程序指令由处理器执行时,实现根据第一方面及其多个实施例所述的方法。
16.利用上述多个方面及其实施例所描述的方案,本发明可以通过马达控制模型这样的自学习系统来获取马达的最佳移动方式,从而显著提高工作距离对齐的准确性和效率。另外,通过采集工作距离对齐过程中的马达移动等数据,并且通过模式识别的方法来利用模型直接学习最佳马达移动方式,从而简化和减小马达的移动量并且加速主摄像机有效地移动至预设的工作距离。由此,也显著地提升了眼底相机的工作性能和效率。
附图说明
17.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:图1是示出关于眼底相机中主摄像头和副摄像头布置的简化框图;图2是示出图1中所示主摄像头和副摄像头往工作距离位置移动过程的示意图;图3是示出根据本发明实施例的用于对眼底相机中的马达进行控制的方法的简化
流程图;图4是示出根据本发明实施例的用于对眼底相机中的马达进行控制的方法的详细流程图;图5是示出根据本发明实施例的工作距离对齐中马达移动过程与所需学习量的示意图;图6是示出根据本发明实施例的工作距离对齐中马达移动过程与所需学习量的又一示意图;图7是示出根据本发明实施例的马达控制模型的结构示意图;以及图8是示出根据本发明实施例的用于对眼底相机中的马达进行控制的系统的框图。
具体实施方式
18.现在将参考附图描述本发明的多个方面及其对应的实施例。应当理解的是,为了表述的简单和清楚,在合适的情况下,可以在附图中重复附图标记以指示对应或类似的元件。另外,本发明阐述了许多具体细节以便提供对本文所述实施例的透彻理解。然而,基于本发明的公开和教导,本领域普通技术人员也可以在没有这些具体细节的情况下实践本文描述的实施例。在其他情况下,对于公知的方法、过程和组件,本发明将不再描述以免模糊本发明旨在保护的方案。另外,本发明的下文描述旨在对本发明的方案进行全面和示例性的描述,而该描述也不应被视为限制本文描述的实施例的范围。
19.如在背景技术部分结合图1和图2所描述的,设备(如眼底相机)在出厂时设定有一组默认的参数。在这组参数的引导下,用于控制主摄像头移动的马达经过若干步的移动后,可以将主摄像头移动到工作距离位置处。根据眼底相机的光学设计,在该工作距离位置处,主摄像头将能采集到清晰或高质量的眼底图像。如前所述,由于设备的组装存在差异并且设备在使用过程中会产生震动、摩擦和老化等问题,从而造成这组参数的适用性变差,其表现为需要多次的调整才可以将主镜头移动到工作距离位置处。
20.鉴于上述情形,本发明在设备端提供一套自学习系统(包括本发明的马达控制模型)。基于此,通过采集工作距离对齐过程中的马达移动等数据,并通过模式识别的方法来直接学习最佳马达移动方式。进一步,通过使用经学习训练后的马达控制模型,可以直接得到马达的最佳移动方式(也即本发明上下文的马达移动量),从而可以最小的移动代价将主摄像头移动到工作距离位置处。由此,本发明的方案显著地提升工作距离对齐的效率和准确性,并有利地简化工作距离对齐的操作。
21.下面将结合附图对本发明的方案进行详细地描述。
22.图3是示出根据本发明实施例的用于对眼底相机中的马达进行控制的方法300的简化流程图。可以理解的是,此处的眼底相机可以包括主摄像头和由两个副摄像头构成的双目系统,如前结合图1和图2所描述的双目系统。在一个应用场景中,前述的眼底相机可以是通过双目系统来确定瞳孔位置的全自动智能眼底相机。进一步,此处的马达可以是各自独立并且分别驱动和控制主摄像机沿x轴、y轴和z轴移动的三个马达(也称为电机),简称为x马达、y马达和z马达。
23.如图3所示,在步骤s302处,获取副摄像头所确定的瞳孔中心的位置数据。在一个
实施场景中,前述的位置数据包括瞳孔中心在由两个副摄像头所构成的双目系统下的图像坐标系中的坐标。作为示例,瞳孔中心在双目系统构成的图像坐标系下的坐标可以表示为,其中)表示瞳孔中心在相对于主摄像头的左副摄像头的左图像坐标系下的位置,而()表示瞳孔中心在相对于主摄像头的右副摄像头的右图像坐标下的位置。换句话说,左图像坐标系和右图像坐标系构成本发明的双目系统的图像坐标系。以位置(100,200)作为左或右图像坐标系下的坐标为例,其表示在由左或右副摄像头所拍摄的图像像素中的第200行和第100列的位置。
24.接着,在步骤s304处,将所述位置数据输入至马达控制模型中,以得到将所述主摄像头移动至工作距离处的马达移动量。在一个实施场景中,此处的马达可以是步进电机,其每一步的运动步长是确定的。进一步,此处的马达移动量可以是x步进电机、y步进电机和z步进电机分别针对于x轴、y轴和z轴方向上的移动步数。作为示例,在开始工作距离对齐时(也即针对工作距离位置开始移动主摄像头时),马达的位置坐标可以表示为,并且在完成工作距离对齐时马达的移动量可以表示为。
25.在一个实施例中,上述的马达控制模型可以基于机器学习来构建。作为示例,可以利用具有多层结构的深度学习神经网络(如图7中示意性示出的网络结构)来构建本发明的马达控制模型。基于此,本发明的方案可以通过数据采集、参数建模和模型训练来获得可以执行推断的神经网络模型,而该模型的推断结果也即马达的移动量。如前所述,在工作距离对齐操作中,本发明只需要将副摄像头中瞳孔中心在图像坐标系下的位置数据(如上文所述的坐标)输入至马达控制模型中,从而可以直接获得将主摄像头移动至工作距离位置处的最佳马达移动方式。例如,当马达控制模型的输出结果为如前所述的x步进马达、y步进马达和z步进马达的步数时,则眼底相机中例如包括处理器的控制单元可以根据前述步数来控制前述各马达的移动,从而将受马达驱动的主摄像头(连同与其固定连接的副摄像头)沿x轴、y轴和z轴移动与各马达的步数相对应的距离,由此直接到达预设的工作距离位置处。
26.图4是示出根据本发明实施例的用于对眼底相机中的马达进行控制的方法400的详细流程图。基于下文的描述,本领域技术人员可以理解的是方法400可以视为结合图3所描述方法300的一种实施方式,因此前文对方法300的描述同样适用于下文对方法400的描述。为了清楚简明的目的,相同的内容将不再赘述。另外,关于上文的马达控制模型,其在方法400中可以具体实施为上文所述的基于深度学习的神经网络模型。
27.如图4所示,在步骤s402处,在眼底相机的使用过程中,采集主摄像头移动至工作距离位置处的瞳孔中心的位置数据和对应的马达移动量,以作为训练数据。关于具体的采集过程,稍后将结合图5和图6来详细地描述。在一个实施场景中,主摄像头经所述马达的多次(步进式)移动而移动至所述工作距离位置处。在该情形下,采集瞳孔中心的位置数据和对应的马达移动量以作为训练数据可以包括采集每次移动前的位置数据(如图像坐标系下的坐标)和主摄像头在该位置数据下移动至工作距离位置处的对应马达移动量,以作为部分训练数据。通过这样的训练数据采集方式,可以在一次工作距离对齐过程中获得多个的训练数据,从而可以实现高效的训练数据采集。
28.在获得上述的训练数据后,在步骤s404处,利用该训练数据来对神经网络模型进行训练,以获得马达控制模型。如本领域技术人员所知,此处的神经网络模型的训练可以包
括前向训练(或传播)和反向训练(或传播),其中反向训练可以借助于损失函数并利用例如梯度下降算法来调整神经网络模型中的各类参数,例如权重或偏置。经过前述的多轮前向训练和反向训练,并且可选地通过验证集进行验证,最终可以得到经训练后的神经网络模型,也即本发明可以操作于推断出将主摄像头移动到工作距离位置处的马达移动量(也即马达的最优移动方式)的马达控制模型。
29.在得到上述的马达控制模型后,在步骤s406处,可以获取副摄像头所确定的瞳孔中心的位置数据。如前所述,此处的位置数据可以是左副摄像头和右副摄像头所分别采集的瞳孔中心在图像坐标系下的坐标。接着,不同于现有技术,例如将图像坐标系下的位置映射到三维空间世界坐标系下以及与预设的工作距离进行比较来反复调整马达的移动,在步骤s408处,将前述的位置数据直接输入至本发明经训练的马达控制模型中,从而利用马达控制模型的输出来得到将主摄像头移动至工作距离位置处的马达移动量。
30.在步骤s410处,根据马达移动量来移动马达,以便将主摄像头移动至工作距离位置处。在一个实施场景中,上述获得的马达移动量可以传输至眼底相机中的控制单元或驱动单元。在一个实施场景中,当马达是针对于x轴方向、y轴方向和z轴方向的三个步进马达时,前述的马达移动量可以是各个马达的移动步数。在该情形下,当接收到该移动步数时,眼底相机中的控制单元可以以前述的移动步数来控制马达以步进方式驱动主摄像头(连同例如固定连接的两个副摄像头)沿例如x、y和z轴移动,从而直接将主摄像头移动到工作距离位置处。
31.通过结合图4对方法400的描述,可以理解的是本发明的训练数据的采集和/或马达控制模型的训练可以在眼底相机的前端完成。附加地或可选地,本发明的训练数据的采集和/或马达控制模型的优化也可以在眼底相机的使用过程中完成,从而可以提升工作距离对齐过程中马达的移动效率,由此提升工作距离对齐的速度和精度。另外,由于采集和优化都可以在眼底相机设备端处自动实现,因此本发明的方案实际上也提供了自学习和自适应的马达控制模型,从而实现高效的马达移动,有效地减小移动步数。
32.图5和图6是示出根据本发明实施例的工作距离对齐中马达移动过程与所需学习量的示意图,其中图5示出经4次的马达移动量将主摄像头从初始位置移动到工作距离位置处,而图6示出经3次的马达移动量将主摄像头从初始位置移动到工作距离位置处。
33.如前文所述,眼底相机在出厂时设置有一组默认的参数,包括内参和外参。一般来说,眼底相机的内参可以包括焦距、主点、径向畸变和/或切向畸变,而外参可以包括两个副摄像头之间的旋转矩阵和平移向量。在该组参数的引导下,马达经如图5或图6所示出的若干次移动量的移动后,可以将主摄像头经多次的位置调整后移动到工作距离位置处。
34.以图5或图6的调整方式为例,本发明可以在眼底相机的使用过程中执行下述的训练数据采集过程:首先,在开始工作距离对齐时,记录马达的坐标(也即图5和图6中起始位置的坐标)、瞳孔中心在图像坐标系中的坐标和马达需要移动的量。接下来,在工作距离对齐完成之前,记录每一次马达移动后(如图5和图6中每次马达移动量后)的坐标、瞳孔中心在图像坐标系的坐标
和马达需要移动的量 。
35.假设一次工作距离对齐需要移动马达次,就可以得到如下的一系列数据:
…………
其中代表某种对应关系,也即本发明专用于各个眼底相机的参数模型。
36.通过在设备使用中,将一次工作距离对齐过程中的如上数据记录下来,从而可以高效地获取大量的训练数据,以用于对本发明上下文中的马达控制模型进行训练。
37.图7是示出根据本发明实施例的马达控制模型的结构示意图。如前所述,本发明的马达控制模型可以是基于深度学习所构建的神经网络模型。该神经网络模型可以包括输入层和输入层,以及位于输入层和输出层之间的一个或多个隐藏层。具体到图7,其输入层(“input”)接收瞳孔中心在图像坐标系中的坐标(x
l
,y
l
,xr,yr) ,而输出层输出将主摄像机移动到工作距离位置处的马达移动量(δx, δy, δz)。作为示例,图中还示出位于输入层和输出层之间作为隐藏层的两个全连接层(fc1和fc1)。如前所述,通过对神经网络模型执行多轮的前向传播和反向传播,从而可以获得能够执行推断的神经网络模型作为本发明的马达控制模型。可以理解的是,图7所示模型结构仅仅是示例性的而非限制性的,本发明的神经网络模型可以使用pytorch、tensorflow、caffe或mnn等来完成训练过程,本发明在此方面不再任何限制。
38.图8是示出根据本发明实施例的用于对眼底相机中的马达进行控制的系统800的框图。如图中所示,该系统800可以包括根据本发明实施例的设备801以及其外围设备和外部网络,其中设备801可以用于执行结合图3-图7所讨论的本发明的方案,包括但不限于获取本发明的用于训练目的训练数据、对神经网络模型进行训练以及利用得到的马达控制模型执行推断等操作。
39.如图8中所示,设备801可以包括cpu 811,其可以是通用cpu、专用cpu或者其他信息处理以及程序运行的执行单元。在一个实施例中,该cpu 811可以用于控制和驱动马达802。进一步,设备801还可以包括大容量存储器812和只读存储器rom 813,其中大容量存储器812可以配置用于存储各类数据,包括训练数据、中间数据、训练结果以及运行神经网络模型所需要的各种程序,rom 813可以配置成存储对于设备801的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统所需的数据。
40.进一步,设备801还可以包括其他的硬件平台或组件,例如示出的张量处理单元(tpu) 814、图形处理单元(gpu)815、现场可编程门阵列(fpga)816和机器学习单元(mlu)817。可以理解的是,尽管在设备801中示出了多种硬件平台或组件,但这里仅仅是示例性的而非限制性的,本领域技术人员可以根据实际需要增加或移除相应的硬件。例如,设备801
可以仅包括cpu,以用于执行相应的模型训练、优化和推断操作。
41.为了实现信息的传递,本发明的设备801还包括通信接口818,从而可以通过其连接到局域网/无线局域网(lan/wlan)805,进而可以通过lan/wlan连接到本地服务器806或连接到因特网(“internet”)807。替代地或附加地,本发明的设备801还可以通过通信接口818基于无线通信技术直接连接到因特网或蜂窝网络,例如基于第三代(“3g”)、第四代(“4g”)或第5代(“5g”)的无线通信技术。在一些应用场景中,本发明的设备801还可以根据需要访问外部网络的服务器808以及可能的数据库809,以便获得各种已知的神经网络模型、数据和模块,并且可以远程地存储训练和推断中使用或产生的各种数据。
42.附加地或可选地,本发明的设备801的外围设备可以包括多个马达802、成像装置803和输入/显示装置804。在一个实施例中,马达802可以是如前文所述的三个步进马达,而成像装置包括主摄像头和与主摄像头固定连接的双目系统,其是两个副摄像头构成。在一个实施例中,输入/显示装置804中的输入装置包括例如键盘、鼠标、麦克风,或其他输入按钮或控件,其配置用于接收用户指令,而显示装置例如可以包括一个或多个扬声器和/或一个或多个视觉显示器或触敏显示器,其配置用于对训练结果或者推断结果进行语音提示和/或视觉显示。
43.本发明的设备801的上述cpu 811、大容量存储器812、rom 813、tpu 814、gpu 815、fpga 816、mlu 817和通信接口818可以通过总线819相互连接,并且通过该总线与外围设备实现数据交互。在一个实施例中,通过该总线819,cpu811可以控制设备801中的其他硬件组件及其外围设备。当本发明的设备包括上述的马达和成像装置时,其可以实现为对眼底图像进行拍照的眼底相机。
44.还应当理解,当本发明的方案还可以借助于计算机指令来实现,该计算机指令可以存储于计算机可读介质中。根据不同的实现方式,该计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的)和/或不可移动的)例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。
45.基于上文,本发明还公开了一种计算机可读存储介质,其中存储有程序指令,所述程序指令适于由处理器加载并执行:获取所述副摄像头所确定的瞳孔中心的位置数据;以及将所述位置数据输入至马达控制模型中,以得到将所述主摄像头移动至工作距离位置处的马达移动量,其中所述马达控制模型经由关于位置数据和马达移动量的训练数据训练而获得。在一些实施例中,该计算机可读存储介质还包括用于执行训练数据采集和模型训练的程序指令以及用于控制主摄像头移到工作距离位置处的程序指令。换句话说,该程序指令的执行可以实现结合图1-图7所描述的本发明的方案。
46.上述的计算机可读存储介质可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器rram(resistive random access memory)、动态随机存取存储器dram(dynamic random access memory)、静态随机存取存储器sram(static random-access memory)、增强动态随机存取存储器edram(enhanced dynamic random access memory)、高带宽内存hbm(high-bandwidth memory)、混合存储立方hmc(hybrid memory cube)等等,或者可以用于存储所需信息并且可以由应用程序、模块或两者访问的任何其他介质。任何这样的计算机存储介质可以是本发明的设备的一部分或可访问或可连接到设备。本发明描述
的任何应用或模块可以使用可以由这样的计算机可读介质存储或以其他方式保持的计算机可读/可执行指令来实现。
47.应当理解,本发明披露的权利要求、说明书及附图中的可能术语“第一”或“第二”等是用于区别不同对象,而不是用于描述特定顺序。本发明披露的说明书和权利要求书中使用的术语“包括”和
ꢀ“
包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
48.还应当理解,在此本发明披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明披露。如在本发明披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明披露说明书和权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
49.虽然本发明的实施方式如上,但所述内容只是为便于理解本发明而采用的实施例,并非用以限定本发明的范围和应用场景。任何本发明所述技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。