用于眼镜架的虚拟配适的方法、设备和计算机程序转让专利

申请号 : CN201880048493.2

文献号 : CN110892315B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : O.施瓦茨I.伊尔克

申请人 : 卡尔蔡司光学国际有限公司

摘要 :

公开了使用近似和精确调节用于眼镜的虚拟试戴过程的方法、计算机程序和设备。为此提供头部和眼镜架的3D模型以及基于头部的模型的头部元数据和基于镜架的模型的镜架元数据。该头部元数据包括放置信息、特别是放置点和/或放置区域,该放置点可以用于将眼镜架近似定位在头部上,该放置区域描述用于放置在头部的耳朵上的镜架镜腿的区域。借助于这种类型的元数据,可以实现眼镜架在头部上的快速且相对简单的计算定位以及使用随后精确调整的更准确定位。

权利要求 :

1.一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:基于头部的3D模型(30,31)的头部元数据和眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上,

随后基于该头部的3D模型(30,31)和该眼镜架的3D模型(40)对该眼镜架进行精细虚拟定位,

其特征在于,如果当保持该头部直立时将与处于主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对应的水平方向定义为x方向、如果当保持该头部直立时竖直方向被定义为y方向以及如果垂直于该x方向和该y方向的方向被定义为z方向,则在该精细虚拟定位过程中,

该眼镜架垂直于该z方向进行第一距离的第一位移,以及该眼镜架沿该z方向进行第二距离的第二位移,其中该第二距离不超过该第一距离的10%。

2.如权利要求1所述的方法,其特征在于,该近似虚拟定位确定该眼镜架在该z方向上的位置。

3.如权利要求1或2所述的方法,其特征在于,用于提供该镜架元数据的方法包括识别该眼镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点进行分类。

4.如权利要求3所述的方法,其特征在于该方法进一步包括基于所识别的突出点将坐标变换应用于以下组中的至少一个- 该眼镜架的3D模型

- 所识别的突出点

- 该镜架元数据。

5.一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:在精细虚拟定位之前,基于头部的3D模型(30,31)的头部元数据和眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上,基于该头部的3D模型(30,31)和该眼镜架的3D模型(40)对该眼镜架进行精细虚拟定位,其中用于提供该镜架元数据的方法包括识别该眼镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点进行分类,其中这些突出点是具有某些预定特性的点,这些特性是用所谓的3D特征描述符定义的,以及

其中对突出点进行分类包括分类为相关点和不相关点,其中相关点是用于表示元数据的点,并且其中不相关点是不表示元数据或者当表示元数据时冗余的点,其特征在于,如果当保持该头部直立时将与处于该头部的主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对应的水平方向定义为x方向、如果当保持该头部直立时竖直方向被定义为y方向以及如果垂直于该x方向和该y方向的方向被定义为z方向,则在该精细虚拟定位过程中,

该眼镜架垂直于该z方向进行第一距离的第一位移,以及该眼镜架沿该z方向进行第二距离的第二位移,其中该第二距离不超过该第一距离的10%。

6.如权利要求5所述的方法,其特征在于该方法进一步包括基于所识别的突出点将坐标变换应用于以下组中的至少一个- 该眼镜架的3D模型

- 所识别的突出点

- 该镜架元数据。

7.如权利要求5和6中任一项所述的方法,其特征在于,提供该镜架元数据将该眼镜架的3D模型分割为该眼镜架的多个部件,其中这些部件包括以下组中的至少一个部件- 镜腿部分

- 该眼镜架除了这些镜腿部分外的其余部分,和/或其中该头部元数据包括该头部的耳朵的搁置区域,这些区域是基于这些镜腿部分计算的。

8.如权利要求1至2、5至6中任一项所述的方法,其特征在于,该镜架元数据包括第一搁置信息项,这些第一搁置信息项定义了该眼镜架搁置在该头部上的、该眼镜架上的一个或多个位置,和/或该头部元数据包括第二搁置信息项,这些第二搁置信息项定义了该眼镜架搁置在该头部上的、该头部上的一个或多个位置。

9.如权利要求8所述的方法,其特征在于,这些第一搁置信息项包括与该眼镜架的鼻梁相关联的搁置点,并且其中这些第二信息项包括与该头部的3D模型的鼻梁相关联的放置点,以及该近似虚拟定位包括将该镜架元数据的搁置点与该头部元数据的放置点相对应的定位。

10.如权利要求9所述的方法,其特征在于,计算表征该头部的鼻梁的信息项并基于表征该鼻梁的这些信息项确定该放置点,其中表征该鼻梁的这些信息项是3D曲线。

11.如权利要求10所述的方法,其特征在于,如果当保持该头部直立时将与处于该头部的主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对应的水平方向被定义为x方向、如果竖直方向被定义为y方向以及如果垂直于该x方向和该y方向的方向被定义为z方向,则该3D曲线具有参数化,其中该参数化被定义为该y方向的坐标的函数。

12.如权利要求1至2、5至6中任一项所述的方法,其特征在于,该方法包括来自以下组的至少一个过程

- 自动确定该镜架元数据和/或该头部元数据的至少一部分,以及- 手动确定该镜架元数据和/或该头部元数据的至少一部分。

13.如权利要求12所述的方法,其特征在于,该自动确定包括机器学习。

14.如权利要求1至2、5至6中任一项所述的方法,其特征在于,该镜架元数据包括关于该眼镜架的柔韧性的弯曲信息项,并且该虚拟定位包括基于关于该柔韧性的这些信息项使该眼镜架弯曲。

15.如权利要求1至2、5至6中任一项所述的方法,其特征在于,该方法包括在显示之后改变该眼镜架在鼻子上的位置,其中将该眼镜架在鼻子上的改变后的位置被存储为盖头部元数据的新放置点。

16.如权利要求1至2、5至6中任一项所述的方法,其特征在于,该方法进一步包括基于图像记录来确定该头部的3D模型以及当记录这些图像时确定环境照明,并且显示该头部和定位在其上的该镜架包括具有基于所捕获的环境照明的虚拟照明的图像合成。

17.一种计算机可读的存储介质,在该存储介质上存储有计算机程序,该计算机程序包括程序代码,当该程序代码在处理器上被执行时,该程序代码实施如权利要求1至16中任一项所述的方法。

18.一种用于一副眼镜的虚拟配适的设备,该设备包括:处理器,以及

显示器,

其特征在于如权利要求17所述的计算机可读的存储介质。

说明书 :

用于眼镜架的虚拟配适的方法、设备和计算机程序

技术领域

[0001] 本申请涉及用于眼镜架的虚拟配适的方法、设备和计算机程序。在此,根据DIN EN ISO 7998:2006-01和DIN EN ISO 8624:2015-12,眼镜架应该理解为是指通过其可以将眼
镜镜片戴在头部上的镜架或保持器。特别地,本文所使用的术语还包含无框眼镜架。通俗地
说,所述眼镜架又被称为镜架。在本申请的范围内,虚拟戴上眼镜架表示在计算装置上使眼
镜架的模型配合头部的模型,通常和眼镜架与人的头部的配合在显示器(例如计算机监视
器)上的图形表示相结合。

背景技术

[0002] 例如,从US 2003/0123026 A1或US 2002/105530 A1中已知虚拟戴上眼镜架。在这些文件中,虚拟戴上眼镜架主要用于通过用户的头部的图形表示与眼镜架一起显示来帮助
用户在不同的眼镜架之间进行选择。
[0003] 对应于US 2016/0327811 A1,WO 2015/101738 A2公开了一种用于眼镜架与用户的虚拟配适的方法。在此,使用用户的头部的模型、特别是用户的鼻子的模型和两只耳朵的
模型。在此,眼镜架的模型在头部的模型上的叠加被用于通过最小化重叠区域来确定眼镜
架的必要变形,使得眼镜架配适在用户的头部上。这种变形可以通过机器或用手被施加到
对应的真实眼镜架。此外,在这个文件中可以自动优化镜架相对于鼻子的位置。这种优化需
要相对较高的计算支出,并且取决于优化的初始值,实际上不一定能保证理想的配适。
[0004] US 9,286,715 B2公开了一种用于虚拟试戴一副眼镜的方法。在此,在眼镜架和头部上都定义了多个点。通过使眼镜架上的选定点与头部上的选定点相对应,将眼镜架定位
在头部上。通过更改选定点来更改位置。这有助于以对于为了获得视觉印象而得以虚拟试
戴的US 9,286,715 B2的目的而言足够的准确度进行定位。在这种情况下不能实现准确的
配合,配镜师然后可以基于准确配适进行镜架的真实配适。
[0005] 截至2017年3月5日,Volumental公司已在“https://www.volumental.com/face-scanning/”提供了“Vacker”软件的演示视频,其中呈现了戴上一副眼镜的头部,并且这副
眼镜的参数可以通过滑块进行修改,例如这副眼镜在鼻梁上的座或者比如面部镜圈弧度和
“配戴”前倾角(参见DIN EN ISO)等其他参数。也可以选择眼镜架的颜色或眼镜架的铰链的
颜色。
[0006] 可在Alain Afflelou/Ditto的门户网站上找到显示虚拟眼镜配适的工作流程的视频,参见例如截至2017年3月5日的“https://www.youtube.com/watch v=awNs2cEoZ7Y”
或“https://www.youtube.com/watchv=ZsBV4FkcU8U”。在此,具有集成相机的计算机被用
作记录系统,并且可以选择镜架。在这个程序中,一副眼镜原样配合在通过相机记录的用户
的实时视频上。
[0007] 以上解释的现有技术允许虚拟戴上一副眼镜,并且例如在WO 2015/101738 A2的情况下,甚至允许眼镜与用户的一定程度配适,以便然后将这种配适转移到真实的眼镜上,
使得具有该眼镜架的一副眼镜可以随后以尽可能少的进一步配适被直接提供给用户。然
而,如所解释的,由于基于3D模型的叠加来实施优化,因此WO 2015/101738 A2中的方法需
要比较高的计算支出。而且,在这个文件的优化方法中,仍然不确定是否实际上找到了最优
值,或者优化方法是否“仍然停留”在要优化数量的局部最小值中。
[0008] FR 301 6051 A1和US 2013 088490 A1都公开了一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:基于头部的3D模型的头部元数据和眼镜架的3D模型的镜
架元数据,将该眼镜架近似虚拟定位在该头部上;随后基于该头部的3D模型和该眼镜架的
3D模型对该眼镜架进行精细虚拟定位,以及一种用于一副眼镜的虚拟配适的计算机实现的
方法,该方法包括:在精细虚拟定位之前,基于头部的3D模型的头部元数据和眼镜架的3D模
型的镜架元数据,将该眼镜架近似虚拟定位在该头部上;基于该头部的3D模型和该眼镜架
的3D模型对该眼镜架进行精细虚拟定位,其中用于提供该镜架元数据的方法包括识别该眼
镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点进行分类;其中这些突出
点是具有某些预定特性的点,这些特性是用所谓的3D特征描述符定义的,以及其中对突出
点进行分类包括分类为相关点和不相关点,其中相关点是用于表示元数据的点,并且其中
不相关点是不表示元数据或者当表示元数据时冗余的点。
[0009] ES 260 4806 A2公开了一种用于确定眼镜架的眼镜的参数以及用于订购因此确定的镜片的方法。所描述的方法包括:获得用户的头部的形态数据、确定镜片的最佳位置、
从眼镜架数据库的眼镜架中确定可能的眼镜架并排除不可能的眼镜架、为每个可能的眼镜
架计算一副可能的镜片并排除没有可用镜片的眼镜架、由用户从可实现的眼镜的数据库中
选择至少一个可实现的眼镜架、确认选择以及下订单。
[0010] WO 01/88654 A2公开了一种眼镜配适系统,该眼镜配适系统包括:有助于观看客户面部的成像系统、用于生成描述客户的物理特征的第一3D信息项的3D图像处理器、用于
接收客户面部的数字3D表示和眼镜架的数字3D表示以便将眼镜架虚拟放置在客户面部上
并生成描述镜架/脸部配适的第二3D信息项的虚拟试戴单元、以及被配置用于接收第一3D
信息项和第二3D信息项并由此生成用于特定客户的面部和镜架生产以及用于研磨镜片的
至少一个参数的镜片配适器。在这种背景下,WO 01/88654 A2公开了通过“3D面部提取器”
自动分配面部特征以及通过手动测量来手动确定头部元数据。
[0011] WO 2016 164859 A1公开了用于生产眼镜架和镜片几何结构的系统和方法,该镜片几何结构配适于用户的解剖学并且针对用户的折射率进行了优化。一种方法包括:接收
包括镜架部分和镜片部分的用户特定眼镜产品的可配置参数模型,其中该可配置参数模型
的几何参数是基于用户的解剖学的几何特征;接收用户的媒体数据,其中该媒体数据包含
用户对视觉线索的反应;从所接收的媒体数据中检测用户的眼睛的位置;基于所识别的用
户的眼睛的位置来确定用户的光学信息项;以及通过基于所确定的光学信息项而修改所接
收的可配置参数模型来生成更新后的可配置参数模型。在这种情况下,WO 2016 164859 A1
公开了用于检测面部特征的机器学习的用途、用于在头部的记录中照明的信息项的计算以
及具有适当适配的虚拟照明的眼镜架的虚拟表示。
[0012] 使用在FR 301 6051 A1中所描述的方法,可以虚拟戴上眼镜架,其中眼镜架通过近似定位和精细定位被定位在用户的头部上。

发明内容

[0013] 从FR 301 6051 A1出发,本申请的第一目的是提供一种使精细虚拟定位更快、更容易以及更可靠的方法。为此目的,根据本发明的第一方面,提供了一种用于一副眼镜的虚
拟配适的计算机实现的方法,该方法包括:基于头部的3D模型的头部元数据和眼镜架的3D
模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上;随后基于该头部的3D模型和该
眼镜架的3D模型对该眼镜架进行精细虚拟定位,其特征在于,如果当保持该头部直立时将
与处于主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对应的水平方向定义为x
方向、如果当保持该头部直立时竖直方向被定义为y方向以及如果垂直于该x方向和该y方
向的方向被定义为z方向,则在该精细虚拟定位过程中,该眼镜架垂直于该z方向进行第一
距离的第一位移,以及该眼镜架沿该z方向进行第二距离的第二位移,其中该第二距离不超
过该第一距离的10%。
[0014] 同样从FR 301 6051 A1出发,本申请的第二目的是减少用于执行该方法的计算需求。为此目的,根据本发明的第二方面,提供了一种用于一副眼镜的虚拟配适的计算机实现
的方法,该方法包括:在精细虚拟定位之前,基于头部的3D模型的头部元数据和眼镜架的3D
模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上;基于该头部的3D模型和该眼镜
架的3D模型对该眼镜架进行精细虚拟定位,其中用于提供该镜架元数据的方法包括识别该
眼镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点进行分类,其中这些突
出点是具有某些预定特性的点,这些特性是用所谓的3D特征描述符定义的,以及其中对突
出点进行分类包括分类为相关点和不相关点,其中相关点是用于表示元数据的点,并且其
中不相关点是不表示元数据或者当表示元数据时冗余的点,其特征在于,如果当保持该头
部直立时将与处于该头部的主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对
应的水平方向定义为x方向、如果当保持该头部直立时竖直方向被定义为y方向以及如果垂
直于该x方向和该y方向的方向被定义为z方向,则在该精细虚拟定位过程中,该眼镜架垂直
于该z方向进行第一距离的第一位移,以及该眼镜架沿该z方向进行第二距离的第二位移,
其中该第二距离不超过该第一距离的10%。
[0015] US 2013 088490 A1公开了将眼镜架的3D模型分割成眼镜架的多个部件。从US 2013 088490 A1出发,本申请的第三目的是使分割从计算的角度来看更容易实现。
[0016] 从US 2013 088490 A1出发,本申请的第四目的是使头部的耳朵的搁置区域的确定从计算的角度来看更容易实现。
[0017] 同样地从FR 301 6051 A1出发,本申请的第五目的是改善表征头部的鼻梁的信息项,以便改善眼镜配适方法的准确度并同时降低该方法的存储器要求。
[0018] 同样,针对本发明的所有方面,提供了根据本发明的计算机程序以及根据本发明的设备。
[0019] 下文简要讨论了本发明的方面。在这种简要讨论之后,定义所采用的术语。
[0020] 在本发明的第一方面,提供了一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:
[0021] 基于头部的3D模型(30,31)的头部元数据和眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上,
[0022] 随后基于头部的3D模型(30,31)和眼镜架的3D模型(40)对眼镜架进行精细虚拟定位。
[0023] 在此,例如近似虚拟定位可以确定眼镜架的初始位置和取向以便进行精细虚拟定位,其中可以从初始位置和取向出发执行精细虚拟定位。
[0024] 该方法的特征在于:如果当保持该头部直立时将与处于主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对应的水平方向定义为x方向、如果当保持该头部直立时
竖直方向被定义为y方向以及如果垂直于该x方向和该y方向的方向被定义为z方向,则在该
精细虚拟定位过程中,该眼镜架垂直于该z方向进行第一距离的第一位移,以及
[0025] 该眼镜架沿该z方向进行第二距离的第二位移,
[0026] 其中该第二距离不超过该第一距离的10%。
[0027] 与FR 301 6051 A1的方法相比,这种方法的优点在于:通过将精细定位基本上限制为在平面(x-y平面,即垂直于z方向)中进行定位并因此限制在精细定位期间的自由度,
使精细虚拟定位更快、更容易以及更可靠。
[0028] 在本发明的第二方面,提供了一种用于一副眼镜的的虚拟配适的计算机实现的方法,该方法包括:
[0029] 在该精细虚拟定位之前,基于头部的3D模型(30,31)的头部元数据和眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上,
[0030] 基于头部的3D模型(30,31)和眼镜架的3D模型(40)对眼镜架进行精细虚拟定位,其中用于提供镜架元数据的方法包括识别眼镜架的3D模型中的突出点和/或对眼镜架的3D
模型中的突出点进行分类。
[0031] 该方法的特征在于:对突出点进行分类包括分类为相关点和不相关点。
[0032] 与FR 301 6051 A1的方法相比,这种方法的优点在于:由于在实施该方法时只考虑了所确定点的子集、特别是相关点,因而减少了实施该方法的计算需求。
[0033] 在本发明的第三方面,提供了一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:
[0034] 基于头部的3D模型(30,31)和眼镜架的3D模型(40)对该眼镜架进行精细虚拟定位,
[0035] 在该精细虚拟定位之前,基于该头部的3D模型(30,31)的头部元数据和该眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上,
[0036] 其中提供该镜架元数据包括:将该眼镜架的3D模型分割为该眼镜架的多个部件,其中这些部件优选包括以下组中的至少一个部件
[0037] - 镜腿部分
[0038] - 该眼镜架除了这些镜腿部分外的其余部分,和/或
[0039] 其中该头部元数据包括该头部的耳朵的搁置区域,这些区域是基于这些镜腿部分计算的。
[0040] 该方法的特征在于:通过在空间中的相应剖面来实现将该眼镜架的3D模型分割为该眼镜架的多个部件,这些剖面将该3D模型的顶点或体素细分,其中通过相应参考点p和垂
直于空间中的相应剖面的相应法向量n来定义相应剖面,其中该眼镜架的3D模型的分割是
基于以下的比较来实现的
[0041] - 该眼镜架的3D模型的顶点或体素与该相应法向量n的纯量积
[0042] 与
[0043] - 该相应参考点p和该法向量n的纯量积。
[0044] 与从US 2013 088490 A1已知的用于将眼镜架的3D模型分割成眼镜架的多个部件的方法相比,根据本发明的第三方面的方法的优点在于:以计算上容易实现的方式提供分
割。
[0045] 根据本发明的第四方面,提供了一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:
[0046] 基于头部的3D模型(30,31)和眼镜架的3D模型(40)对眼镜架进行精细虚拟定位,
[0047] 在该精细虚拟定位之前,基于该头部的3D模型(30,31)的头部元数据和该眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上,
[0048] 其中提供该镜架元数据包括:将该眼镜架的3D模型分割为该眼镜架的多个部件,其中这些部件优选包括以下组中的至少一个部件
[0049] - 镜腿部分
[0050] - 该眼镜架除了这些镜腿部分外的其余部分,以及
[0051] 其中该头部元数据包括该头部的耳朵的搁置区域,这些区域是基于这些镜腿部分计算的。
[0052] 该方法的特征在于:通过用于这些镜腿部分的至少一个眼镜镜腿的方法来确定用于该头部的耳朵的所计算搁置区域中的至少一个搁置区域,其中该方法包括:
[0053] - 根据该眼镜镜腿确定该眼镜镜腿的起点a和终点b,
[0054] - 通过界定潜在耳朵搁置区域的平面的z成分来确定该潜在耳朵搁置区域,其中以下内容适用:
[0055] α < (vZ - az)/Iz < β,
[0056] 其中α和β是预定值,其中α介于0.3和0.6之间并且β介于0.6和0.9之间,并且其中az是点a的z成分,lz是该眼镜镜腿在该z方向上的长度,并且其中vz是该3D模型的顶点或体
素的z成分,
[0057] - 通过用增量位移窗口进行计算,从该潜在耳朵搁置区域中确定该搁置区域,其中针对该窗口的每个位置确定该潜在搁置区域的位于该窗口中的顶点或体素的集合以及
针对这些顶点或体素的集合中的每个集合来形成带有方向向量d的纯量积s = ,其中
v指定该顶点或体素的集合的相应顶点或体素的坐标,其中d是该相应眼镜镜腿的归一化固
定向量,以及相应地一个顶点或体素v̂是基于这些顶点或体素的纯量积s针对该相应窗口而
被确定的,以及
[0058] - 提供该至少一个搁置区域作为搁置点集合或作为搁置曲线,其中该搁置点集合或该搁置曲线包括这些顶点或体素v̂。
[0059] 与从US 2013 088490 A1已知的方法相比,根据本发明的第四方面的方法的优点在于:以计算上容易实现的方式提供确定头部的耳朵的搁置区域。
[0060] 根据本发明的第五方面,提供了一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:
[0061] 基于头部的3D模型(30,31)的头部元数据和眼镜架的3D模型的镜架元数据,将该眼镜架虚拟定位在该头部上,
[0062] 其中该镜架元数据包括第一搁置信息项,这些第一搁置信息项定义了该眼镜架搁置在该头部上的、该眼镜架上的一个或多个位置,并且该头部元数据包括第二搁置信息项,
这些第二搁置信息项定义了该眼镜架搁置在该头部上的、该头部上的一个或多个位置,并
且其中
[0063] 第二搁置信息项包括与头部的3D模型的鼻梁相关联的放置点。
[0064] 该方法的特征在于:该鼻梁的鼻梁区域作为3D曲线被提供。
[0065] 与FR 301 6051 A1的方法相比,这种的优点在于:由于不需要用三维网格(即完整的三维模型)来计算碰撞点,因此减少了执行该方法的计算要求;相反,可以通过仅使用曲
线确定点来确定近似定位。同时,由于3D曲线适合于使用比网格更少的数据来描述鼻子的
轮廓同时具有更高的准确度,因此改善了眼镜配适方法的准确度。
[0066] 近似定位被理解为是指基于信息项来确定初始位置。准确定位被理解为是指从近似定位出发,基于另外的数据实施更准确的位置确定。举例来说,在近似定位的范围内可以
沿z方向实施定位;以及在精细定位的范围内,随后可以基本上垂直于z方向实现定位。
[0067] 在此,可以基于关于鼻梁的信息项来实现近似定位:在此,镜架坐标系中的3D点(又称为锚定点)可以与鼻梁上的点一致。
[0068] 在一些示例性实施例中,相对于初始位置和取向,即通过近似定位确定的眼镜架的位置,精细定位可以使眼镜架移动小于20 mm、在一些示例性实施例中小于10 mm。
[0069] 在此,术语“近似定位”和“精细定位”应该彼此相对理解;即,精细定位使在近似定位期间初始确定的位置更加精确。
[0070] 这是通过近似定位确定用于随后精细定位的起点或初始位置和取向以及通过精细定位使在近似定位范围内初始确定的位置更加精确来实现的。
[0071] 因此,近似定位表示第一定位,并且精细定位表示随后定位。
[0072] 因此,近似定位是指眼镜架被初始定位在接近于精细定位后所达到的最终位置的位置,例如相对于头部的尺寸,接近这个最终位置到20 mm、10 mm或更小的范围内。然后,精
细定位改变这个位置以形成最终位置。在此,近似定位是基于元数据的,而模型本身用于精
细定位。
[0073] 通过使用用于近似定位的头部元数据和镜架元数据,可以快速实现近似定位并且计算支出比较少。而且,近似定位产生用于随后精细定位的起点或初始位置和取向;因为所
述精细定位是从眼镜架的已经近似正确的位置开始的,因此这可以加速精细定位。这降低
了在精细定位期间找到对应于期望最佳值的位置的风险。通过头部和镜架本身的3D模型用
于精细定位,这然后允许在精细定位期间实现高准确度,其中由于先前的近似定位,精细定
位总体上则需要较少的计算支出。
[0074] 在此,3D模型应当被理解为是指真实物体的三维表示,这些三维表示可以作为存储介质(例如计算机的存储器或数据介质)中的数据记录可供使用。举例来说,这种三维表
示可以是3D网,其由3D点(由被称为顶点)集和这些点之间的连接(这些连接又被称为边缘)
组成。在最简单的情况下,这些连接形成三角形网。这种作为3D网的表示仅描述物体的表面
而非体积。网不必一定是闭合的。因此,例如如果以网格的形式描述头部,则它看起来就像
是面具。关于这种3D模型的详细信息可以在以下文章中找到:Rau J-Y,Yeh P-C,“A Semi-
Automatic Image-Based Close Range 3D Modeling Pipeline Using a Multi-Camera 
Configuration [使用多相机配置的半自动基于图像的近距离3D建模管线]”,传感器
(Sensors)(瑞士巴塞尔),2012;12(8):11271-11293. doi:10.3390/s120811271(特别是第
11289页,附图“图16”)。
[0075] 表示体积型表示的体素网格是用于表示3D模型的另外的选项。在此,空间被分成小立方体或长方体,这些被称为体素。在最简单的情况下,要表示的物体的存在或不存在以
每个体素的二进制值(1或0)的形式被存储。在体素的边缘长度为1 mm且体积为300 mm × 
300 mm × 300 mm的情况下,其表示头部的典型体积,因此获得了总共2700万个这种体素。
在例如以下文章中描述了这种体素网格:M.Nießner,M.Zollhöfer,S.Izadi和
M.Stamminger“,Real-time 3D reconstruction at scale using voxel hashing [使用
体素哈希的大规模实时3D重建]”,ACM Trans,图32、6,第169条(2013年11月),DOI: 
https://doi.org/10.1145/2508363.2508374。
[0076] 3D模型表示的另外可能形式包括点云,例如没有关于点之间的连接的信息项(边缘,例如三角形网,参见上文)、在每个点处具有法向量的点云、以样条表面和比如球体、圆
柱体、平面等基本几何体的部分表面的形式表示。在此,所描述的方法可以独立于所选择的
3D模型表示形式。
[0077] 如https://en.wikipedia.org/w/index.phptitle=B-spline&oldid=840787047中所述,样条表面应理解为是指由一个或多个样条线描述的表面。
[0078] 如https://de.wikipedia.org/w/index.php title=K%C3%B6rper_(Geometrie)&oldid=177672595中所述,基本几何体应理解为是指由其表面描述的三维图。
[0079] 具有N个点的点云表示总共N个点,其中N个点中的每个点由三个坐标描述。
[0080] 法向量是与这种物体或这种物体的组合的直线、曲线、平面或(弯曲)表面正交(垂直)的向量。
[0081] 特别地,头部的3D模型和/或眼镜架的3D模型可以是具有纹理的3D模型。具有纹理的3D模型应理解为是指此外包含真实物体的表面点的颜色信息项的3D模型。使用具有纹理
的3D模型有助于头部和眼镜架的真彩色表示。
[0082] 在此,颜色信息项可以作为属性、例如作为RGB(红绿蓝)颜色值被直接包含在顶点中,或者一对纹理坐标被作为属性附到每个顶点上。然后,这些坐标应理解为是指附加纹理
图像中的图像坐标(像素位置)。然后,例如由纹理图像的像素通过内插法生成三角形网的
前述三角形的纹理。
[0083] 当被存储为体素网格时,颜色信息项可以被存储在体素本身中。然后,纹理的分辨率对应于体素表示中体素的大小。对于高分辨率纹理,体素网格必须被转换为描述表面的
网;这称为表面重建。(参见,例如Cignoni,Paolo等人,“Meshlab: an open-source mesh 
processing  tool  [Meshlab:开源网处理工具]”欧洲制图学会意大利分会会议
(Eurographics Italian Chapter Conference),第2008卷, 2008年)。
[0084] 元数据应理解为是指包含关于模型特征的信息项但不包含模型本身的数据。特别地,元数据可以为模型提供附加信息项和/或基于相应模型包含突出点或曲线。在截至2017
年3月5日的德语“Metadaten”维基百科文章中也对元数据进行了一般性解释。如果没有指
定其他内容,对维基百科的引用是指德语维基百科(de.Wikipedia.org)。
[0085] 作为使用这种可能已经被预先创建的元数据的结果,如上文所解释的,与使用典型地、基本上更全面的完整3D模型相比,可以以简单的方式将眼镜架快速定位在头部上以
及改变其位置。
[0086] 定位是“虚拟的”,因为该过程是在比如计算机等计算装置上实施的,而真实的眼镜架没有被放置在真实的头部上。
[0087] 优选地,特别是在本发明的第五方面中但不仅限于本发明的这一方面,在这种情况下镜架元数据包括定义了眼镜架搁置在头部上的、眼镜架上的一个或多个位置的第一搁
置信息项,和/或在这种情况下头部元数据包括定义了眼镜架搁置在头部上的、头部上的一
个或多个位置的第二搁置信息项。在此,点、点集、曲线或区域可以被称为位置。由于在配适
期间不需要为所有计算和步骤考虑眼镜架的整个3D模型,因此可以通过这种第一和/或第
二搁置信息项来加速眼镜架的虚拟配适。
[0088] 在位置被定义区域的情况下,可以相应地应用下文和上文所描述的用于点、点曲和曲线的方法。有关空间曲线的超球面近似可以近似部件部分、例如在接触区的区域中的
镜腿。然后,可以使用与搁置曲线相同的方法;然而,在该方法中,还可以通过数学方法要求
或强制距空间曲线固定的距离。
[0089] 优选地,特别是在本发明的第四和第五方面中但不仅限于本发明的这些方面,第一搁置信息项包括:搁置点,该搁置点表示眼镜架的鼻梁区域中、特别是眼镜架的鼻梁的中
心内的点;搁置区域,该搁置区域表示眼镜架的镜腿的区域。
[0090] 在此,术语“鼻梁”和“镜腿”的使用符合2015年12月发布的DIN EN ISO 8624:2015-12和2006年1月发布的DIN EN ISO 7998:2006-01中的术语。
[0091] 搁置点应理解为是指头部上定义了眼镜架与头部的接触点的点。
[0092] 搁置区域应理解为是指定义了眼镜架与头部的接触区的区域。举例来说,头部的耳朵的一个搁置区域或多个搁置区域可以用于耳朵。
[0093] 潜在搁置区域、例如潜在耳朵搁置区域应理解为是指原则上适合作为搁置区域的区域,例如眼镜架的被设置作为用于不同头部形状的搁置区域的区域。
[0094] 搁置点和搁置区域可以作为元数据被存储。
[0095] 将眼镜架近似定位在头部上可以通过这种搁置点来实现。特别地,即使由于镜腿的弯曲和/或位置变化而需要下述眼镜架的形状变化,也同样可以通过搁置区域来辅助近
似定位。在此,鼻梁和镜腿是眼镜架的部分,眼镜架典型地在鼻梁和镜腿处搁置在头部上,
并因此这种元数据的选择容易允许进行对应于真实情况的定位。
[0096] 在此,镜架元数据可以针对多个不同的眼镜架与眼镜架的3D模型一起被提前确定并且可以被存储在存储介质中,然后可以被调用以用于执行该方法。这样允许快速获得数
据。
[0097] 举例来说,可以通过立体图像记录来创建头部的3D模型。在这种立体图像记录中,从多个方向记录物体(在这种情况下是头部)并且记录位置是已知的。这可以通过相对于彼
此刚性设置的多个相机来实现。然后,通过识别所记录的图像中的彼此对应的特征,可以通
过考虑已知的记录位置来创建模型。关于这种3D模型确定的更多细节可以在例如以下文章
中找到:H.Hirschmüller,“Stereo Processing by Semiglobal Matching and Mutual 
Information [半整体匹配与互信息立体处理]”,电气电子工程师学会会刊模式分析和机
器智能学报(IEEE Transactions on Pattern Analysis and Machine Intelligence),第
30卷第2期,第328至第341页,2008年2月,doi:10.1109/TPAMI.2007.1166。
[0098] 举例来说,眼镜架的3D模型可以由制造商提供。
[0099] 存在用于确定镜架元数据的各种选项,其中各种选件也可以彼此组合。举例来说,可以使用不同的选项来确定镜架元数据的不同元数据。现在将说明这些选项。
[0100] 在一些实施例中,手动确定镜架元数据。这种手动确定允许在没有大量计算支出的情况下确定镜架元数据并为用户提供对镜架元数据的完全控制。为此,可以提供用户界
面,在所述用户界面的情况下基于模型在显示器上以图形方式表示眼镜架。然后,可以例如
通过使用鼠标以及对应表示的鼠标指针点击或者通过在触敏屏幕上直接标记来手动选择
眼镜架上的点和/或轮廓。在此,特别地,前述搁置点可以作为单个点被点击,并且搁置区域
可以作为轮廓线或轮廓多项式被选择。而且,眼镜架的铰链上的旋转轴线可以手动标记为
元数据。
[0101] 在另一个实施例中,例如通过图像识别算法将搁置区域自动确定为例如每个镜腿的下侧上的轮廓线。在这种情况下,无需用户输入。
[0102] 最后,在其他示例性实施例中提供镜架元数据的全自动确定。这是优选使用截至2017年3月8日的德国维基百科文章“Maschinelles Lernen”中所述的机器学习方法来实现
的。在此,手动或部分手动创建的上述多个眼镜架的元数据可以作为训练数据用于这种机
器学习。
[0103] 在优选的示例性实施例中,特别是在本发明的第二方面的情况下但不仅限于本发明的这一方面,确定镜架元数据包括:确定、特别是自动确定镜架的3D模型中的突出点。在
此,突出点是具有某些预定义特性的点,所述特性可以在所谓的3D特征描述符中定义。3D特
征描述符表示Rn中的向量,这些向量描述3D模型中的突出点的特性,使得可以基于这个特
性向量在类似的3D模型中检索这个点。可以在突出点的周围使用点集。举例来说,可以跨越
以该点为中心的、具有预定半径(例如10 mm)的球体,并且可以检查位于这个球体内的点
(即这个点云子集中的点)的特性。举例来说,可以在主分量分析的含义内实施特征值分析。
在此,极值本征值k1和k2然后可以作为元素被包含在元数据中,例如是特性向量的形式。在
此,特性向量应理解为是指元数据值的表示。此外或替代地,也可以确定点周围的表面的主
曲率。主曲率应理解为是指如文章https://de.wikipedia.org/w/index.phptitle=
Hauptkr%C3%BCmmung&oldid=172452500中所述的信息项。主曲率同样可以被包括在特性向
量中。替代地,可以由所有点形成直方图和/或可以确定球体的法向量。为此,可以将球体细
分为多个区域(多个体积),并可以为每个区域确定位于这个区域中的点(或法向量)的频
率。替代地,可以确定相对频率。关于这个频率的信息项(例如是直方图的形式)同样可以在
特性向量中被采用。
[0104] 在2018年5月25日检索的 http://pointclouds.org/documentation/tutorials/fpfh_estimation.php处描述了通过所谓的快速点特征直方图(FPFH)描述符的这种方法的
示例。
[0105] 特别地,可以在机器学习的辅助下确定这种特性向量:举例来说,人类专家可以例如通过在其上点击来预先确定3D模型中的突出点。举例来说,这种区域可以是眼镜架的3D
模型的镜架的铰链区域中的点,这些点可以在所有眼镜架中被唯一地确定;软件提取所点
击的点的周围的球体内的点集,用户所指定的点集和点的类型(也被称为数字标签)分别作
为训练数据被输入到机器学习方法中,例如神经网络。经过完全训练的网络随后能够确定
给定点云中相应点的相应标签,因此能够识别突出点和/或能够对点进行分类。举例来说,
不突出的点可以被分类为不相关的。
[0106] 这种突出点表示比较少量的数据,并且可以使用已建立的算法来确定这些突出点。关于这种通过3D特征描述符确定突出点的更多详细信息在例如以下文章中被描述:
Samuele Salti,Federico Tombari,Riccardo Spezialetti和Luigi Di Stefano,2015年,
“Learning a Descriptor-Specific 3D Keypoint Detector [学习描述符特定3D关键点
检测器]”,2015年IEEE计算机视觉国际会议(ICCV)会议记录(ICCV '15),IEEE计算机协会,
美国,华盛顿特,2318-2326,DOI=http://dx.doi.org/10.1109/ICCV.2015.267。这种预定
特性可以包含例如点附近的模型的曲率。3D特征描述符的示例是所谓的“快速点特征直方
图”(FPFH),如以下文章中所述:R.B.Ruso,“Semantic 3D Object Maps for Everyday 
Manipulation in Human Living Environments [人类生活环境中日常操纵的语义3D物体
图]”,慕尼黑工业大学,2009年,第57ff页。
[0107] 突出曲线也可以被相应地定义。突出曲线可以被定义为3D曲线。3D曲线是三维空间中的曲线的表示。3D曲线可以由3D点清单存储;替代地,在一些具有正交基(例如是勒让
德多项式基)示例性实施例中,3D曲线也可以由多项式曲线表示。在其他示例性实施例中,
曲线可以被表示为借助于https://de.wikipedia.org/w/index.phptitle=Legendre-
Polynom&oldid=172427311以及https://en.wikipedia.org/w/index.phptitle=B-
spline&oldid=840787047中所述的B样条基函数表示的样条曲线。
[0108] 举例来说,可以借助于这种突出曲线来描述镜腿的搁置区域;在此,曲线中的点可以与耳朵处的搁置点相对应。在这种示例性实施例中,曲线是镜架的元数据的一部分、并且
例如沿着镜腿的下侧延伸并且描述整个可能的搁置区域。
[0109] 根据本发明的第二方面,因此确定的突出点然后被分类为相关点和不相关点。相关点应理解为是指用于表示元数据的点。特别地,相关点可以表示所需的元数据,而没有冗
余或具有尽可能小的冗余。
[0110] 不相关点应理解为不表示元数据或具有较小相关性的点,例如因为由不相关点所表示的元信息项同样由其他点表示,即存在信息项的冗余。
[0111] 在手动方法中,用户可以确定相关点,而相关点的数量可以被预先确定为自动化方法中的目标;基于非学习的机器方法还可以为每个突出点确定这个点“显著性”的度量。
举例来说,如果主曲率被用作表面的特性,则两个主曲率的乘积可以被用作度量。基于学习
的机器方法可以模仿手动选择,其中相关点可以通过训练阶段预先确定。
[0112] 因此,以下步骤可以被限制于相关点,所以减少了要处理的数据量。这可以特别是使用截至2017年3月8日的德国维基百科文章“ÜberwachtesLernen”中所述的监督学习方法
来实现。在此,在确定突出点期间,所识别的点被显示在显示屏上,例如具有镜架的表示,然
后可以手动为相应点分配点类。然后可以将这些点类别与相应点的3D特征描述符关联。
[0113] 然后,这种关联可以作为每个镜架的数据记录、例如作为.XML文件被存储。点类指定由相应点指定的眼镜架的元件或指定相应点在眼镜架上的位置。点类的示例包括例如针
对位于左眼镜铰链外侧和顶部的点的“左铰链外侧,顶部”、针对位于底部的对应点的“左铰
链外侧,底部”、针对右铰链的对应类、针对鼻梁在前侧的中心的“梁中心,前部”、针对鼻梁
在后侧的点的“梁中心,后部”等。在此,前侧是眼镜架的、当戴上所述眼镜架时远离戴着眼
镜架的人的头部的侧面,后侧是眼镜架的、面向人的头部的侧面。
[0114] 在辅助学习的情况下,存在多种可能的算法用于将以这种方式针对突出点所学习的点类转换为模型,并用于应用这个模型以便然后在学习阶段之后自动确定使用3D特征描
述符所找到的点的相应点类。在这一方面,还请参见截至2017年3月8日的开源计算机视觉
(Open Source Computer Vision)的“Machine Learning Overview [机器学习概述]”,
Docs.opencv.org//3.1.0/dc/dd6/ml_intro.html。算法示例包括随机森林算法(参见
Breiman,Leo,“Random forests [随机森林]”,机器学习,45.1 (2001):5-32.),例如按软
件库“Open CV”中的类“cv::ml::RTrees”实现,所述软件库可以用于训练和分类;参见
“http://docs.opencv.org/3.1.0/d0/d65/classcv_1_1ml_1_1RTrees.html”。这是随机森
林方法的示例。另一种随机森林方法可以通过TreeBagger类被引入在Matlab中。
[0115] 另外的可能算法是使用在前述的Open CV软件库中同样所提供的所谓“支持向量机(SVM)”。
[0116] 然后可以通过这种算法自动识别突出点;由于在训练阶段之后不再需要用户输入来识别突出点,因此这简化了眼镜架的3D模型的处理。
[0117] 优选地,在突出点的识别和分类之后实施坐标变换。这种坐标变换允许针对不同的镜架将镜架元数据和/或镜架的3D模型变换到共同的坐标系中。由于可以针对每个眼镜
架采取相同的坐标系,因此这简化了随后处理。
[0118] 在一些示例性实施例中,通过对被分类为相关的突出点的集合的主成分分析来实施这种坐标变换。例如,在维基百科文章 https://de.wikipedia.org/wiki/
Hauptkomponentenanalyse和https://en.wikipedia.org/wiki/Principal_component_
analysis中描述了主成分分析(PCA)。在空间中的n个点的点集X的情况下,例如可以形成具
有n行和3列的矩阵X(针对相应n个点的x、y和z坐标)。然后,可以检查3 × 3矩阵Xt*X,并且
主成分可以被确定为这个矩阵的最大特征向量。
[0119] 主轴变换被理解为是指坐标变换到由主成分跨越的坐标系中。
[0120] 坐标变换的另一种选项是通过基于突出点的坐标原点和坐标轴方向的固定分配进行基于规则的坐标变换。基于规则的坐标变换被理解为是指用于定义目标坐标系(即进
行变换的坐标系)的基向量的突出点的线性组合。举例来说,前述“梁中心,前部”类的突出
点可以用作坐标原点,并且预定点之间的差异向量或这种差异向量的线性组合可以用作坐
标轴。因此,前述的“右铰链外侧,顶部”类的点与“左铰链外侧,顶部”类的点之间的差可以
用作坐标轴。在此,如果突出点以固定的顺序被唯一地确定和/或是可用的,则可能是有利
的。举例来说,在手动设定点(例如通过用户的选择来设定)的情况下可能是这种情况。
[0121] 在这种以鼻梁的中心作为原点的坐标系中,眼镜架的对称平面于是穿过这个原点。为了下文中的说明,假设:基本上沿z方向定向眼镜架的眼镜镜腿,眼镜架铰链之间的连
接线平行于x轴并且y方向垂直于该连接线。换句话说,与处于主注视方向上的头部的眼睛
之间、特别是头部的眼睛的瞳孔中心之间的连接线相对应的水平方向被定义为当头部保持
直立时的x方向,竖直方向被定义为y方向以及垂直于x和y方向的方向被定义为z方向。
[0122] 在不知道处于主注视方向上的头部的眼睛的瞳孔中心的位置的示例性实施例中,例如也可以基于3D模型的眼睛位置来不同地定义头部的眼睛的连接线。
[0123] 头部保持直立被理解为是指以如下方式保持头部,即眼睛的连接线位于平行于头部的冠状平面的平面中,并且竖直方向平行于冠状平面与矢状平面之间的相交线。头部的
3D模型可以以如下方式被设置,即头部的3D模型处于直立位置。
[0124] 在https://de.wikipedia.org/w/index.php title=Frontalebene&oldid=177246560和https://de.wikipedia.org/w/index.phptitle=Transversalebene&oldid=
177246519中定义了冠状平面和矢状平面。
[0125] 在一些示例中,坐标系可以固定地连接至头部,使得例如当头部倾斜时,坐标系与头部之间在位置和取向方面的关系保持不变,即例如x方向仍根据头部的眼睛之间的连接
线延伸。换句话说,头部可以以静止的方式设置在坐标系中。
[0126] 在此,参考头部保持直立,用于定义x方向、y方向和z方向的坐标系。在此,z轴通常平行于主注视方向延伸。
[0127] 于是,前述对称平面是y-z平面。然而,这个坐标系仅用作示例,轴线的其他布置也是可能的,如使用球面坐标而不是笛卡尔坐标一样。
[0128] 于是,在一个示例性实施例中对眼镜架的预定部件进行定位。特别地,可以确定眼镜架的鼻梁和铰链的位置。这可以基于所分类的突出点来实现,如上所说明的,可以如上所
述手动选择或者可以自动地确定这些突出点。举例来说,可以基于在铰链的外侧或内侧上
所确定的突出点、特别是按照比如如上所述的“左铰链外侧,顶部”和“左铰链外侧,底部”等
类的点来确定这副眼镜的铰链的位置。在一个示例性实施例中,铰链轴线点被计算为这些
突出点的平均值。特别地,左铰链轴线点可以根据如下方式计算:
[0129] 左铰链轴线点 = ¼*(左铰链外侧,顶部 + 左铰链外侧,底部 + 左铰链内侧,顶部 + 左铰链的内侧,底部),
[0130] 其中,左铰链轴线点表示铰链轴线点在眼镜架左侧上的位置,并且左铰链的外侧,顶部、左铰链的外侧,底部、左铰链的内侧,顶部和左铰链的内面,底部表示对应点类的突出
点;即,位于眼镜左铰链外侧左上方、左下方并且各自位于内侧和外侧(在眼镜架的内侧,即
朝向鼻梁,以及在眼镜架的外侧,即背离鼻梁)的点。通过将左侧的点替换为右侧的点,可以
将对应的公式用于右铰链轴线点。以此方式,可以基于从外侧可见的点来确定位于眼镜架
内部的铰链轴线上的铰链轴线点。
[0131] 如上所说明的,可以以与“梁中心,前部”和“梁中心,后部”类的点的交叉点相似的方式定义鼻梁。
[0132] 在一些示例性实施例中,特别是根据本发明的第四方面但不仅限于本发明的这一方面,为了确定镜架元数据,镜架的3D模型被分割成多个部件,其中这些部件可以包括特别
是用于眼镜镜腿的部件和描述除眼镜镜腿外的眼镜架的部件。分割3D模型被理解为是指将
信息项分成子集,例如将3D点云细分为3D点云的子集。
[0133] 这种分割允许为了确定镜架元数据而单独分析各个部件,由此减少了要处理的数据量。特别地,在此可以基于突出点和/或基于如上所说明的鼻梁和/或铰链的定位来实施
该分割。
[0134] 为此,可以在空间中定义剖面,所述剖面将3D模型的点(顶点)或体素分开。
[0135] 在此,剖面可以由相应参考点p和垂直于该平面的法向量n定义。在此,参考点p表示平面的支撑,其与法向量n一起唯一地表示平面相对于坐标系原点的位置和取向。参考点
可以用作向量。同样,坐标可以被表示为从坐标系原点到点坐标的向量。然后,针对3D模型
的顶点或体素,其位置由坐标v定义(对应于该点的笛卡尔坐标表示),适用以下内容:> ≤  或  > 。在此,<,>表示欧几里德纯量积。纯量积是指欧几里德
纯量积,但是也可以使用不同定义的纯量积。在此,将法向量n归一化成为1的长度,即> = 1。
[0136] 取决于适用两个关系中的哪一个,点v位于剖面的一侧或另一侧。这有助于根据本发明的第三方面简单地分割成部件,而不限于此。
[0137] 为了分割眼镜架,在这个程序中相应的铰链轴线点(可以如上所述被确定)可以用作为剖面的参考点。然后,坐标系的z轴、即眼镜镜腿延伸的方向可以用作前述坐标变换中
的剖面的法向量。然后, ≤  成立的顶点或体素定义相应的眼镜镜腿。
[0138] 以此方式,然后可以基于从眼镜架的3D模型中分割出的部件来计算另外的元数据。因此,可以基于从眼镜架的3D模型中分割出的眼镜镜腿来计算搁置信息项的前述搁置
区域。使用分割的部件意味着在确定元数据时必须使用的数据比使用完整3D模型的情况
少,因此可以加速计算。
[0139] 为了确定搁置区域,根据本发明的第四方面,以下方法可以用于从眼镜架的3D模型中分割出的眼镜镜腿中的每一个:
[0140] 初始,根据眼镜架的3D模型的相应分割的眼镜镜腿确定相应眼镜镜腿的起点a和终点b。在这种情况下,眼镜镜腿框架的起点和终点是指被设置作为耳朵搁置区域的区域的
起点和终点。在前述坐标系中,所分割的眼镜镜腿的、在z成分中具有最小值的点可以是起
点a并且在z成分中具有最大值的点可以是终点b。可以例如通过用户从3D模型中选择或者
以基于规则的方式(例如通过在两个方向上都需要距搁置点固定距离、或者作为相对于镜
腿端部的所需相对距离)来手动实现该确定。
[0141] 接下来确定潜在耳朵搁置区域。限制这个潜在耳朵搁置区域的平面的Z成分可以被用作相对于眼镜镜腿沿z方向的长度的预定比率α和β,所以以下内容适用:
[0142] α < (vZ - az)/Iz < β
[0143] 在此,α和β是预定值,这些预定值例如可以由制造商针对相应的眼镜架预先确定,或者可以被确定为来自许多眼镜架的经验值。α可以介于0.3和0.6之间,例如α = 0.47,β可
以介于0.6和0.9之间,例如β = 0.76。
[0144] az是点a的z成分,lz是眼镜镜腿在z方向上的长度,对应于bz-az,vz是3D模型的顶点或体素的z成分。对于顶点或体素,前述关系适用的z成分vz,属于潜在耳朵搁置区域;即,以
下内容适用于这些顶点或体素:
[0145] vz > α x Iz + az以及
[0146] vz < β x Iz + az
[0147] 然后可以通过用递增滑动窗口进行计算来将搁置区域确定为搁置点集或搁置曲线。搁置点集是指形成搁置区域的点集或其子集。
[0148] 搁置曲线是作为3D曲线的搁置点的表示。窗口是指考虑点的某个三维区域。为此,具有固定宽度(例如,z方向上的宽度在0.5 mm与3 mm之间,例如1 mm)和固定增量(例如,同
样在0.5 mm与3 mm之间,例如大约1 mm)的窗口在潜在耳朵搁置区域上沿z方向滑动。初始,
针对窗口的每个位置确定潜在搁置区域的位于窗口中的顶点或体素的集合。随后,针对这
些顶点或体素中的每一个形成具有方向向量d的纯量积s,s = ,其中v同样指定顶点
或体素的坐标。
[0149] 通常,将这些纯量积s中的最大ŝ被唯一地分配给具有坐标v的̂ 指定顶点或体素。如果在一个窗口中存在多个最大纯量积,则预定的顶点或体素、例如具有首先被计算出的最
大值的顶点或体素被视为这个窗口的顶点或体素v。̂ 针对所有窗口(例如,根据增加的z值排
序)所找到的坐标v的̂ 集合产生点的排列,这些点将根据本发明的第五方面但不限于此的搁
置区域表征为搁置曲线。在示例性实施例中,可以通过滤波器、例如通过高斯滤波器来使这
个曲线滑,或者可以使曲线与这些点拟合;举例来说,可以通过在截至2017年3月9日的德国
维基百科文章“Spline [样条]”中所述的B样条实施样条近似。
[0150] 归一化向量被假定为方向向量d,即 = 1。分别针对眼镜左镜腿和眼镜右镜腿,可以选择方向向量是固定的。固定方向向量的示例是以上定义的坐标系中的向量(0,-
1,0)。在这种情况下,搁置点将始终是眼镜镜腿的最低点。在向内指向的搁置曲线的情况
下,镜腿的位置和取向变得更加精确,即,例如,
[0151] 对于右镜腿,当σ = 30°时,d = (cos(σ), sin(σ), 0) 以及
[0152] 对于左镜腿,当σ = 30°时,d= (– cos(σ), sin(σ), 0)
[0153] 在一些示例性实施例中,头部元数据包含耳朵搁置点,例如通过手动选择模型的耳朵的表示上的点来选择耳朵搁置点。为了确定方向向量d,在这种情况下可以在头部的3D
模型中的这个耳朵搁置点的周围选择窗口,例如具有z值的所有顶点或体素,该值与这个耳
朵搁置点间隔不超过预定距离,例如不超过0.25 mm到1 mm、例如不超过0.5 mm。然后,确定
窗口的所有这些顶点的平均值,并且耳朵搁置点减去平均值的归一化差向量被定义为方向
向量d。
[0154] 以此方式,可以以相对简单的方式自动确定作为搁置区域的搁置曲线,然后这可以被用于将眼镜架定位在头部上的方法的进一步步骤中,如仍将在下文更详细地说明的。
[0155] 为了加速配适,镜架元数据而且可以包括眼镜镜腿上的预期耳朵搁置点,可以手动选择这些预期耳朵搁置点。这些预期耳朵搁置点然后可以用作用于虚拟定位这副眼镜的
起点;即,这副眼镜被初始放置在耳朵上的这些点处。这可以加速虚拟定位。
[0156] 而且,在包括鼻托的眼镜架的情况下,元数据可以包括表示这种鼻托的位置的点。这些点也可以被手动选择或通过机器学习确定。
[0157] 举例来说,用户点击的点可以被假定为鼻托的中心。可以在所述点的周围绘制具有预定半径(例如,具有6 mm的半径)的球体。然后,如上所述,可以通过主成分分析来分析
位于这个球体内的点。
[0158] 为了分析这种点云,特别是可以在分析之前从点云的坐标中减去球心,以便获得以原点为中心的点集。这可以简化随后的分析。
[0159] 而且,镜架元数据还可以包括关于镜架、特别是眼镜镜腿的柔韧性的弯曲信息项。使用这种信息项,然后可以在虚拟定位期间通过弯曲将眼镜虚拟配适在头部上,然后将这
些调整应用于对应的真实眼镜架。这种信息项的示例包括例如关于是否可以绕铰链轴线旋
转、以及如果可以的话绕铰链轴线旋转多远的信息项(例如,在具有装有弹簧的铰链的塑料
镜架的情况下)。眼镜铰链具有挡件,例如在180度的最大开度处。在一些铰链中,这个挡件
可以通过弹簧来实现,所以开度可能超过180度。在没有弹簧的实心挡件的情况下,当弯曲
打开时镜腿变形。因此,例如在信息项中编码了一种类型的铰链,即固定的或装有弹簧的。
此外,编码了镜腿的柔韧性;在此,在装有弹簧的铰链的情况下使用镜腿的刚性模型。另外
的示例涉及关于眼镜镜腿上可能的倾斜度调节的信息项;即,眼镜镜腿相对于眼镜架的其
余部分绕x轴旋转。在许多金属镜架中,这可以通过在铰链处向上或向下弯曲镜腿来实现。
[0160] 这个信息项还可以指定不可以调节倾斜度。举例来说,这个信息项可以用作是/否信息项(可以或不可以调节倾斜度),或者还可以用作可以改变倾斜度的角度范围。
[0161] 而且,例如通过弯曲函数可以定义眼镜镜腿本身的弯曲打开。举例来说,在z轴上的多元多项式以及在x和xy方向上的偏移可以描述这种弯曲函数。而且,还可以通过例如多
元多项式或多元样条函数来对眼镜架的镜架边缘的由弯曲打开镜腿引起的变形进行建模
(例如,B样条基的张量积;参见De Boor,Carl等人,“A practical guide to splines [样
条的实用指南]”,第27卷,纽约:Springer-Verlag,1978年,第XVII章)。
[0162] 这种弯曲是可能的,特别是在薄眼镜镜腿或非常有弹性的眼镜镜腿的情况下。
[0163] 前述信息项可以被提供用于在不同方向上、例如在根据前述坐标系的x方向和y方向上弯曲和配适眼镜镜腿。
[0164] 接下来讨论根据各种实施例的头部元数据的变型以及用于确定头部元数据的选项的方法。
[0165] 优选地,特别是在本发明的第一方面中但不仅限于本发明的这一方面,头部元数据包括眼睛的位置,眼睛的位置然后可以用于眼镜架的水平对准。举例来说,这些元数据指
定在主注视方向上(请参见DIN EN ISO 13666:2013-10, 5.33)眼睛的(例如瞳孔的、特别
是瞳孔中心的)位置作为点坐标。而且,头部元数据可以包括如上所述的耳朵放置点,这些
耳朵放置点指定了眼镜架在耳朵上的搁置点。指定眼镜架在头部上的搁置点的其他放置
点、例如在头部的鼻子上的放置点也是可能的。由于这些元数据,可以将眼镜镜腿简单地定
位在耳朵上。
[0166] 而且,头部元数据可以包括鼻梁的放置点和/或描述,例如是3D曲线的形式,其描述了鼻梁的区域,又称为鼻梁区域。这些元数据可以用于将眼镜架近似定位在头部上。在
此,放置点是头部的3D模型中的鼻子处或鼻子附近的点,该点可以特别是通过近似定位与
镜架元数据的前述搁置点相对应。
[0167] 如针对以上镜架元数据已经所讨论的,可以手动地、例如通过基于3D模型选择头部表示中的对应点或曲线来确定这种头部元数据。然而,也可以自动地、例如通过如上所讨
论的机器学习来确定全部或部分头部元数据。
[0168] 在其他实施例中,为了自动确定头部元数据,除了头部的3D模型之外还使用头部的二维图像数据。如果通过相机从多个校准位置记录头部来创建3D模型,则在任何情况下
都可以获得这种2D图像。校准位置意味着已知图像记录的位置,所以然后可以基于所记录
的图像和位置来确定3D模型。替代地,还可以通过图像合成(又被称为渲染)从由纹理的3D
模型生成2D图像。举例来说,这一方面的信息可以在截至2017年3月10日的德语维基百科的
“Bildsynthese”文章中找到。
[0169] 然后,可以通过图像识别方法(又被称为物体检测器)在这种2D图像中识别人的面部特征,比如眼睑、眉毛、鼻梁、眼睛等。举例来说,在截至2017年3月10日的“http://
blog.dlib.net/2014/08/real-time-face-pose-estimation.html”软件库“dlib”中提供
了为此目的的合适方法,或者在以下文章中描述了该方法:V.Kazemi等人,“One 
Millisecond Face Alignment with an Ensemble of Regression Trees [一毫秒面部与
回归树集合对齐]”;X.Zhu等人,“Face detection, pose estimation and landmark 
localization in the wild [野外人脸检测、姿态估计和地标定位]”,CVPR,2012年,其也
被呈现在第一作者截至2017年3月10日的主页“https://www.ics.uci.edu/ xzhu/face/”
~
上。
[0170] 如此识别的二维图像中的这些点或区域随后被投影到头部的3D模型(例如3D网)上,并因此可用作3D点形式的头部元数据。在优选实施例中,逆投影矩阵用于投影目的。在
此,投影矩阵由从(例如3D网的)模型的坐标系到所用相机的相机坐标系和相机矩阵的刚体
变换组成。如上所述,如果使用具有用于图像记录的校准位置的相机装置来记录3D模型和
2D图像,则在根据所记录的图像确定3D模型的范围内给出或确定这些矩阵(参见Richard 
Hartley和Andrew Zisserman,2000年,“Multiple View Geometry in Computer Vision 
[计算机视觉中的多视图几何]”,剑桥大学出版社(Cambridge University Press),美国纽
约,)
[0171] 以此方式,由于从3D模型的确定中已经知道所需的矩阵,因此可以快速实现投影。在替代实施例中,为了可以将2D图像呈现在显示器上,还可以手动标记2D图像中的面部特
征。混合形式也是可能的,其中如上所说明的自动确定面部特征,然后可以手动校正。
[0172] 前述鼻梁区域可以作为3D曲线被提供。为此,如以上已经描述的,可以使用与用于确定眼镜镜腿的搁置区域的方法相对应的方法。特别地,可以使用上述滑动窗口方法,其中
头部的方向(其例如可以是比如3D模型的z轴等坐标轴)可以用作前述公式中的方向向量d,
头部的方向沿头部方向朝后部定向。在确定头部时也可以确定这个方向。在这种情况下,方
向向量d对应于欧洲专利申请17153559.4中所述的头部旋转的方向或观看方向;可以通过
在欧洲专利申请17153556.0中公开的定心器具来确定所述方向;在此,窗口的位移方向是
头部的3D模型的y轴,即竖直轴线;使用头部的整个模型,或者通过瞳孔位置的平均值的Y坐
标和鼻尖的Y坐标确定一个区段–确定为v_max,其中纯量积s = ‹v, d›(如上)变为最大。
[0173] 在搁置区域的情况下,在此也可以例如通过高斯滤波器和/或样条近似法来执行滤波。
[0174] 在此,y轴上的间隔被用作鼻梁的曲线的参数化。因此,获得函数,所述函数为每个y值在鼻梁上提供相关联的3D点。
[0175] 特别是根据本发明的第五方面而不限于本发明的所述方面,然后可以基于用于鼻梁区域的这个3D曲线来确定前述放置点。为此,在一个实施例中,3D模型的眼睛位置的连接
线所在的且观看方向所在的平面与3D曲线(又被称为鼻梁曲线)相交,所述曲线用作用于确
定搁置点的起点s。然后,在这个点s的周围,例如在预定区域内(预定距离,例如± 3 mm、± 
2 mm等),确定鼻梁曲线在观看方向上具有最小值的点,即位于最后面的点(在3D模型的枕
骨部方向上)。在y方向上的固定偏移量仍然可以被添加到这个点的y值上,以便通过前述的
曲线参数化确定y值和放置点。这允许确定放置点,放置点能够与镜架元数据的搁置点一起
用于眼镜架的初始定位,所述初始定位相对接近最终位置,从而可能加速随后的优化。
[0176] 然后,头部元数据可以与头部的3D模型一起被存储,并因此可以用于不同的镜架。这节省了重新计算不同镜架的头部元数据。
[0177] 基于元数据的虚拟定位可以优选包括基于元数据的近似定位,以便为随后的进一步配适提供起点。在此,特别地,可以使鼻梁上的前述放置点与眼镜架的搁置点相对应。在
此,可以使镜架的z轴(即,眼镜镜腿的方向)与头部的3D模型的对应轴线一致,该对应轴线
表示观看位置。
[0178] 在近似定位的这一部分之后,在一个实施例中可以以如下方式绕x轴旋转镜架(即,可以改变镜架的配戴前倾角),即眼镜镜腿的搁置区域搁置在耳朵搁置点上。初始,这
是针对每个镜腿单独实施的。为此,在一个实施例中计算搁置区域与圆柱表面的交点,其中
圆柱表面的圆柱轴线对应于镜架的旋转轴线(前述坐标系中的x轴)。在此,旋转轴线延伸穿
过搁置点。圆柱的半径是相应耳朵搁置点距旋转轴线的距离。圆柱上的交叉点直接产生镜
架向前倾斜或向后倾斜的角度。在此,可以通过迭代线圆柱相交来计算圆柱相交。在此,搁
置区域(例如,以上确定的搁置曲线)初始可以用于粗线段表示中(即具有较低的分辨率),
以加速计算。举例来说,在最简单的情况下,前述起点a和终点b之间的连接线可以用作粗线
段表示。
[0179] 这种提供迭代线圆柱相交的确定可以如下进行:令S表示这个连接线与圆柱的相交点。然后,在迭代细化期间使用S的z坐标zS,以便确定相关联的真实曲线点。尽管真实曲
线点不再位于圆柱表面上,但它仍可以用作确定角度的近似值。此外,现在可以执行另外的
迭代步骤。为此,使用曲线上的、在zS周围具有ε间距的点k(zS –ε)和k(zS +ε);在下一个迭
代中,这些替代a和b用作新的起点和终点。
[0180] 在这种定位之后,将镜架弯曲,为此目的,使用镜架元数据的前述弯曲信息项,这些弯曲信息项描述镜架的柔韧性。
[0181] 为此,可以再次应用前述圆柱相交(上述)方法。如上所述,如果弯曲信息项用作多元弯曲函数,则可以执行优化,其中耳朵搁置点距镜腿的搁置区域的距离被用作代价函数。
在此,通常,代价函数是根据要优化的一个或多个参数而变化并且为了优化目的达到最大
值或最小值的函数。在此,选择弯曲函数中与弯曲强度有关的参数作为要优化的参数。在用
于在x方向上弯曲打开的简单多项式弯曲函数的情况下,数学反函数同样可以近似多项式。
为此,弯曲函数Dz(x)在位置z处以加法形式被建模为多项式,用于沿x方向上的弯曲;同样,
其反函数Dz-1(d)也可以与多项式近似,例如通过在各个离散点[x1,x2,..,xn]对该函数进
行采样并对值为[Dz-1(Dz(x1)), Dz-1(Dz(z2)),…, Dz-1(Dz(xn))]的[Dz(x1), Dz(x2),…, 
Dz(xn)]执行新的多项式近似。在这种情况下,可以直接通过针对z = 搁置位置以及x = 耳
朵放置与搁置点之间的差应用反函数来确定搁置曲线到耳朵放置点x值的弯曲打开。
[0182] 弯曲镜架还允许通过在z方向上旋转(即,绕x轴弯曲镜腿)使倾斜度配适于镜腿。在此,也可以再次使用前述的圆柱相交方法,其中耳朵放置点用于构造圆柱,并且该圆柱与
搁置曲线相交。
[0183] 在根据本发明的第一方面的实施例中而不仅限于本发明的这一方面,镜架的精细定位至少基本上被限制在x-y平面。在此,x-y平面应理解为是指平行于x方向和y方向延伸
的平面,因此所述平面被两个向量跨越,其中一个向量在x方向上延伸,一个向量在y方向上
延伸,因此所述平面垂直于z方向。然后,z方向上的向量是x-y平面的法向量。在x-y平面中
的位移也可以表示为x-y方向上的位移。特别地,x-y平面可以包括在近似定位之后的眼镜
架的锚固点。
[0184] 在此,将精细定位至少基本上限制在x-y平面上是指在z方向上的位置变化至少不超过在x-y平面上的位置变化的10%或不大于5%;特别地,所述在z方向上的位置变化也可以
是0。在此,在x-y方向上移动镜架一直到在眼镜架的3D模型与头部的3D模型之间不存在碰
撞为止。
[0185] 眼镜架的位置变化可以通过移位眼镜架来实现。
[0186] 移位眼镜架应理解为是指眼镜架的平移运动,其可以由位移向量来表征。位移向量可以描述在通过近似定位获得的眼镜架的初始位置和取向与在精细定位步骤结束时眼
镜架的位置之间的位移。
[0187] 位移向量的长度可以被称为位移的距离。在此,在一些实施例中可以在x-y平面上将眼镜架移位第一距离,然后可以沿着z方向移位第二距离。如上所述,该位移可以被至少
基本上限制在x-y平面。举例来说,在一些示例性实施例中,这可以是指第二距离不超过第
一距离的10%。在一些示例性实施例中,第二距离不超过第一距离的5%。在一些示例性实施
例中,第二距离是第一距离的0%。
[0188] 头部的3D模型的表面可以被略微降低以用于这种精细定位(例如,在0.3 mm与1 mm之间),以便考虑到眼镜架的搁置区域处的皮肤变形。这可以有助于更逼真的配适。在这
种情况下,镜架的3D模型和头部的3D模型的非碰撞方式不具有共同的空间区域。在准确定
位之后,可以再次实施前述弯曲过程,以便进一步改善配适。
[0189] 在优选实施方式中,在这个步骤之后可以通过检查眼镜架的下边缘是否与相应模型中的头部的脸颊区域碰撞来确定眼镜架对相应头部在理论上的适合性。
[0190] 在具有鼻托的镜架的情况下(鼻托通常存在于金属镜架中),虚拟定位可以进一步包括鼻托的定位。在一个示例性实施例中,这种配适被建模为鼻托围绕旋转中心的旋转。为
此,可以将鼻托与眼镜架的其余部分分割开;这可以如上所述被实施。这种配适可以在前述
弯曲之后被呈现。在鼻托发生任何变化之后,都可以重新实施精细定位。
[0191] 鼻托的主轴线可以被选择作为旋转轴线;举例来说,这些可以使用前述主成分分析来确定。对于最大特征值,可以将旋转限制为从主成分分析中得出的、围绕两个主轴线的
两个角度。鼻托接触鼻子的区域的倒数可以被用作代价函数用于优化鼻托的位置,以便实
现尽可能宽的搁置。这也允许鼻托位置的虚拟配适,然后可以将鼻托转移到真实的镜架上。
作为这的结果,不再需要或仅在很小的程度上仍需要将真实镜架上的鼻托配适到真实头部
上。
[0192] 在一些实施例中,可以在倾斜度的这种变化期间预先确定某个预先可调的配戴前倾角(例如9°)。然后,即使随后使这副眼镜移位,也可以通过改变倾斜度来保持这个固定的
配戴前倾角,如将在下文更详细说明的。
[0193] 可以通过传统图像合成方法来实现显示其上定位有眼镜架的头部;参见前述有关图像合成的德国维基百科文章。为此,特别地,相机图像可以被用作纹理,所述相机图像也
已经用于创建3D模型,因为这会产生自然的图像印象。可以设置或预先确定用于图像合成
的照明,然后例如可以通过所谓的光线追踪来实现图像合成;参见截至2017年3月10日的维
基百科文章“Ray Tracing [光线追踪]”。
[0194] 为此,当记录头部的图像时可以使用对应于环境照明的虚拟光源。优选地,当记录图像时确定这种环境照明。为了确定这种环境照明,特别地,全景相机(即,具有大视角的全
景相机)可以在被用在用于记录创建头部3D模型的图像的相机系统中,为了识别光源,所述
全景相机记录周围环境。在其他实施例中,这种用于记录创建3D模型的图像的系统可以在
已知位置具有照明装置,该已知位置然后也用作用于图像合成的照明的位置。在这种图像
合成期间也可以考虑镜架中的眼镜镜片,以便为观看者提供尽可能自然的图像印象。在这
种情况下,特别地,可以考虑当使用镜像层时产生的反射。在优选实施例中,模型可用于不
同类型的减反射涂层,并且模型也可用于不同类型的玻璃以便为用户提供关于不同层的印
象。在图像合成的范围内,减反射层的作用特别是在侧视图中以反射的形式出现。
[0195] 另外,该方法可以包括基于用户输入来改变眼镜架的位置。因此,用户可以根据他们的意愿调整一副眼镜的座位或者验光师仍然可以进行修改。为此,可以为用户提供合适
的用户界面;举例来说,可以通过鼠标移动或通过触摸触敏屏(触摸板)来实现导航。
[0196] 该方法可以与其他用于配适一副眼镜的方法组合,例如定心方法,如例如欧洲专利申请号17153560.2中所述。在此,特别地,可以在如上所述配适镜架之后进行根据其中所
述的方法的虚拟定心;这样可以改善定心准确度。
[0197] 如果在这种交互期间,用户选择了眼镜架在鼻子上的、偏离元数据中的放置点的放置点,则元数据中的放置点可以被更改为用户选择的放置点。然后,可以在虚拟配适另外
的镜架期间使用用户优选的这种更改后的放置点。
[0198] 在交互期间,用户可以旋转模型并从侧面观察模型。在此过程中,可以限制旋转使得例如没有可用纹理的区域(比如用户的枕骨部)是不观察不到的。为此,例如,在沿枕骨部
方向移动的情况下,虚拟观察位置可以接近头部的3D模型,和/或在沿枕骨部方向旋转期
间,用户相对于用户输入(鼠标指针、触摸板等)的灵敏度可能降低。而且,用户还可以围绕
x-y轴旋转镜架,以便考虑面部的不对称性。
[0199] 可以通过用于虚拟配适一副眼镜的装置来实施前述方法,所述装置包括处理器和显示器,其中具有用于实施该方法的程序代码的相应计算机程序在处理器上运行。该计算
机程序可以被存储在装置的存储器上,或者还可以经由云提供。在此,应当注意的是计算装
置也可以通过具有各种单独部件的分布式系统来实现。举例来说,可以在比较强大的计算
机(例如还可以包括比如图形处理器等协处理器的外部服务器)上实施计算元数据或根据
所记录的图像数据计算头部的模型。通过使用元数据,这副眼镜在镜架上的定位和随后的
表示的计算量更小,所以这也可以在不太强大的单元(比如例如平板电脑或智能手机等移
动终端)上在相应的应用程序中或通过因特网的浏览器执行。

附图说明

[0200] 下面基于优选的实施例并参照附图详细说明本发明。在附图中:
[0201] 图1A示出了根据一个示例性实施例的用于一副眼镜的虚拟配适的装置,
[0202] 图1B示出了图1A的相机装置的实现方式的示例,
[0203] 图2示出了根据一个示例性实施例的方法的流程图,
[0204] 图3A至图3C示出了用于阐明头部3D模型的视图,
[0205] 图4示出了用于阐明眼镜架的3D模型的图示,
[0206] 图5示出了根据一个示例性实施例的用于确定镜架元数据的方法的流程图;
[0207] 图6A和图6B示出了用于阐明手动确定元数据的图示,
[0208] 图7A和图7B示出了眼镜架的图示,
[0209] 图8示出了用于确定搁置曲线的方法的流程图,
[0210] 图9示出了用于配适一副眼镜的方法的流程图,
[0211] 图10A和图10B示出了用于阐明图9的方法的步骤的图示,以及
[0212] 图11示出了用于阐明眼镜架的旋转的图示。

具体实施方式

[0213] 图1A示出了根据一个示例性实施例的用于一副眼镜的虚拟配适的设备的示例性实施例。图1A的设备包括计算装置11、处理器12和存储器13。存储器13用于存储数据,并且
在图1A的示例性实施例中,该存储器包括随机存取存储器(RAM)、只读存储器(ROM)和一个
或多个大容量存储介质(硬盘、固态硬盘、光驱等)。程序被保存在存储器13中,当在处理器
12上被执行时,所述程序实施如上所述的一副眼镜的虚拟配适。
[0214] 图1A的设备进一步包括显示器16,当在处理器12上执行计算机程序时,显示器将人的头部和眼镜架一起显示。例如,可以通过一个或多个输入器具17(例如,键盘和鼠标)来
实现用户输入。此外或替代地,显示器16可以是触敏屏幕(触摸屏)以便实现输入。
[0215] 图1A的设备另外包括到网络18的接口14,通过该接口可以接收数据。特别地,这允许接收具有纹理的眼镜架3D模型。在一些示例性实施例中,数据还经由接口14被传输到另
外的计算装置,以便在所述另外的计算装置上实施计算,比如所讨论的元数据的计算。
[0216] 为了创建人的头部的3D模型(这副眼镜被配适到该模型上),图1A的设备可选地包括相机装置15,通过该相机装置可以从不同的方向记录人的多个图像;如所述的,可以从中
确定3D模型。
[0217] 图1B示出了图1A的相机装置15的实施例。在图1B的示例性实施例中,相机的半圆形布置110被紧固到立柱19上。然后,人可以以如下方式定位自己,即如图1B所示,人的头部
111被定位在半圆形布置110中,并且可以从不同的方向被记录。由此,如上面已经描述的,
可以创建头部111的3D模型,其中模型的纹理也从图像记录中产生。而且,图1B的相机装置
包括用于能够在图像记录期间确定照明的全景相机112;如所描述的,然后这可以用于图像
合成。
[0218] 图2示出了根据一个示例性实施例的方法。在图2的步骤20中,例如基于如上所描述的相机记录、特别是使用图1A的相机装置15的记录来提供用户头部的3D模型。在步骤21
中,例如由制造商提供要配适的眼镜架的镜架3D模型。
[0219] 如以上已经所描述的,在步骤22中基于头部3D模型来提供头部元数据,并且同样如以上已经所描述的,在步骤23中基于镜架3D模型来提供镜架元数据。也可以按不同的顺
序实施步骤20至23。因此,可以互换步骤22和步骤21。可以通过新计算元数据或通过从存储
器读取先前所计算的元数据来实现步骤22和23中的元数据的提供。
[0220] 在此,可以如上所讨论的计算和提供元数据。
[0221] 然后,在步骤24中以虚拟方式定位眼镜架,即,使用头部元数据和镜架元数据将其配适到头部。为此,使用已经讨论的方法。因此,虚拟定位包括基于头部元数据和镜架元数
据的近似定位以及基于头部和眼镜架的3D模型的精细定位。
[0222] 然后,在步骤25中在显示器上(在图1A的设备的情况下在显示器16上)呈现戴着眼镜架的头部。然后,这允许用户评估眼镜架在头部上的外观。
[0223] 然后,在必要时,如所述的可以在步骤26中在头部上移位眼镜架的位置,例如可以在鼻子上移位。这可以由用户或者由验光师来实施。
[0224] 可选地,然后可以使用描述了这副眼镜与头部的配适的配适数据,用于调整一副真实的眼镜。举例来说,真实眼镜架的镜腿可以像在模型的虚拟配适期间一样被弯曲。
[0225] 可以针对多个眼镜架重复图2的方法,以便向用户提供不同眼镜架的外观印象。然后,用户可以基于这些呈现来选择眼镜架。
[0226] 现在参考图3至图10更详细地说明图2中的方法的各个步骤。
[0227] 图3A和图3C示出了用于说明头部的3D模型的图示。31a表示可用的坐标系的示例,其中坐标系被固定连接到头部(如上所说明的),即,例如在头部旋转的情况下,该坐标系不
改变其相对于头部的位置和取向。在此,图3A图示了三角形网形式的3D模型30,该三角形网
具有由边缘连接的多个顶点。图3B示出了三角形网和纹理的组合31。图3C示出了表示32,其
可以基于模型在屏幕上被实现,其中只有纹理是可见的,而为了阐明目的在图3A和图3B中
明确呈现的各个顶点是不可见的。图4示出了基于模型的眼镜架的表示以及坐标系41。图4
的眼镜架40具有眼镜右镜腿42A、眼镜左镜腿42B、右铰链43A、左铰链43B、右镜架镜圈44A、
左镜架镜圈44B以及鼻梁45。
[0228] 图5示出了用于确定镜架元数据的方法的流程图,即用于实现图2中的步骤23的示例。在步骤50中,通过3D特征描述符来确定镜架的3D模型中的突出点。在步骤51中对这些突
出点进行分类和过滤。作为通过3D特征描述符进行确定的替代方案,也可以如图6A和6B所
阐明的手动标记点。为此,已经参考图4所描述的眼镜架40被呈现在显示器上,并且标记了
相关点。为此,例如图6A和图6B示出了耳朵搁置点61、铰链点62、鼻托63的位置和鼻梁的中
心点64,鼻梁的中心点可以用作搁置点。应当注意的是,搁置点不需要直接位于眼镜上,而
是也可以与实际镜架间隔开,特别是在鼻托的情况下。
[0229] 在图5的步骤52中通过主成分分析(PCA),将坐标变换为在步骤51中所分类的突出点的主轴线的坐标系,并在步骤53中借助于所分类的突出点对鼻梁和铰链进行定位。为此,
上文同样已经描述了技术。
[0230] 然后,如以上已经描述的,在步骤54中确定鼻梁上的搁置点作为用于近似定位的搁置点。在步骤55中将眼镜架的3D模型分割为多个部件(眼镜左镜腿、眼镜右镜腿和其余的
镜架),并在步骤56中确定处于搁置曲线形式的、镜腿下侧处的搁置区域,如以上已经描述
的。
[0231] 在图7A中针对眼镜架70呈现了在其上确定搁置曲线的镜腿下侧,以及在图7B中针对眼镜镜腿71和72以对应的放大视图作为单点表示呈现了该镜腿下侧。通过使用搁置区
域,无需借助如此大量的点实施计算;代替地,可以使用搁置曲线。
[0232] 图8示出了用于确定搁置曲线的方法的流程图,即图5中的步骤56的更详细的实现方式。在步骤80中描述了相应镜腿部分(眼镜左镜腿或眼镜右镜腿)的起点和终点。在此,针
对眼镜左镜腿和眼镜右镜腿单独实施图8的方法。通过上述“滑动窗口”技术,在步骤81中确
定潜在耳朵搁置区域,并在步骤82中确定搁置曲线。在此,如以上已经更详细描述的实施步
骤80至82。
[0233] 图9示出了用于眼镜架在头上的虚拟配适和定位的方法的流程图,其中使用了以上说明的模型和元数据。图9表示图2中的步骤24至26的实现方式示例。
[0234] 在图9的步骤90中进行近似定位,其中使眼镜架的元数据的搁置点与头部的元数据的放置点对应。然后,在步骤91中将镜架弯曲打开,其中在此使用以上已经说明的圆柱相
交方法。在可以改变倾斜度的镜架的情况下,即可以通过绕x轴(使用图4的坐标系41)旋转
镜腿来改变倾斜度。在眼镜元数据指示这种旋转是不可能的眼镜架的情况下,可以跳过步
骤92。
[0235] 然后,在步骤93中实施镜架在垂直于z方向的x-y平面中的精细定位,其中在此使用以上已经描述的用于精细定位的技术。然后,在步骤94中,对应于步骤90至93中的定位进
行镜架和头部的图像合成,其中如上所说明的,可以考虑光源。然后,在步骤95中用户使用
一个或多个输入器具(例如,图1A中的输入器具17)与所表示的模型进行交互,即显示镜架
和头部。作为这的结果,例如可以按步骤96中所指示的实施导航,即可以旋转、放大或缩小
所显示的模型。然后,基于这些输入再次实施步骤94;即,根据导航重新显示图像。还可以存
在用于旋转镜架的输入(又被称为手势),以便补偿如上所述的面部的不对称性。在这种情
况下,从步骤92重新计算定位。最后,可以沿着鼻梁上下移动这副眼镜。这对应于初始近似
定位的修改,并且因此在这种情况下从步骤90再次实施该方法,其中鼻梁上的新设定的位
置用作步骤90中的近似定位。
[0236] 图10A和图10B示出了头部100以及眼镜架102的表示,用于阐明图9的方法步骤。图10A阐明了根据箭头103可以沿着头部100的鼻梁101向上和向下移位眼镜架102的方式。这
是根据步骤96在鼻梁上移动的示例。图10B阐明了眼镜架102的镜腿根据箭头104的弯曲打
开,如在图9的步骤91中实施的。
[0237] 图11示出了用于通过如以上已经描述的圆柱相交来说明镜架围绕x轴的旋转的图示。图11示出了头部110的3D模型和眼镜架111的3D模型,在每种情况下均为3D网。在近似定
位期间,基于搁置点116来初始定位镜架。轴线115在x方向上延伸穿过搁置点116。圆112、
113所指示的圆柱具有到头部110的3D模型的耳朵搁置点的半径。圆柱与眼镜架的搁置区域
的交叉点,由眼镜架111的的3D模型表示,圆柱产生眼镜架的眼镜镜腿的方向,并因此产生
应围绕轴线115旋转眼镜架的角度。在目前的情况下,从眼镜镜腿沿线119A、119B的方向延
伸的位置实施旋转,使得眼镜镜腿现在沿线1110A、1110B的方向延伸。
[0238] 因此,使用所描述的方法和设备,可以将眼镜架虚拟准确配适到头部,然后可选地根据图2中的步骤27还可以用于配适真实的眼镜架。
[0239] 以下指定至少一些可能的示例性实施例:
[0240] 第1条. 一种用于一副眼镜的虚拟配适的计算机实现的方法,该方法包括:
[0241] 基于头部的3D模型(30,31)和眼镜架的3D模型(40)对该眼镜架进行精细虚拟定位,
[0242] 其特征在于,
[0243] 在该精细虚拟定位之前,基于该头部的3D模型(30,31)的头部元数据和该眼镜架的3D模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上。
[0244] 第2条. 根据第1条所述的方法,其特征在于,该镜架元数据包括第一搁置信息项,这些第一搁置信息项定义了该眼镜架搁置在该头部上的、该眼镜架上的一个或多个位置,
和/或该头部元数据包括第二搁置信息项,这些第二搁置信息项定义了该眼镜架搁置在该
头部上的、该头部上的一个或多个位置。
[0245] 第3条. 根据第2条所述的方法,其特征在于,这些第一搁置信息项包括与该眼镜架的鼻梁相关联的搁置点,并且其中这些第二信息项包括与该头部的3D模型的鼻梁相关联
的放置点,以及该近似虚拟定位包括将该镜架元数据的搁置点与该头部元数据的放置点相
对应的定位。
[0246] 第4条. 根据第3条所述的方法,其特征在于,计算表征头部的鼻梁的信息项,并基于表征该鼻梁的这些信息项确定该放置点。
[0247] 第5条. 根据第1条至第4条中任一条所述的方法,其特征在于,如果水平方向被定义为与在保持头部直立时头部的眼睛的连接线相对应、如果竖直方向被定义为y方向以及
如果垂直于x和y方向的方向被定义为z方向,则在精细虚拟定位期间,该眼镜架在该z方向
上的位移不超过该眼镜架在该x-y方向上的位移的10%。
[0248] 第6条. 根据条款第1条至第5条中任一条所述的方法,其特征在于,该方法包括来自以下组的至少一个过程
[0249] - 自动确定该镜架元数据和/或该头部元数据的至少一部分
[0250] - 手动确定该镜架元数据和/或该头部元数据的至少一部分。
[0251] 第7条. 根据第6条所述的方法,其特征在于,该自动确定包括机器学习。
[0252] 第8条. 根据第1条至第7条中任一条所述的方法,其特征在于,用于提供该镜架元数据的方法包括识别该眼镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点
进行分类。
[0253] 第9条. 根据第8条所述的方法,其特征在于,该方法进一步包括基于所识别的突出点将坐标变换应用于以下组中的至少一个
[0254] - 该眼镜架的3D模型
[0255] - 所识别的突出点
[0256] - 该镜架元数据。
[0257] 第10条. 根据第1条至第9条任一条所述的方法,其特征在于,提供该镜架元数据将该眼镜架的3D模型分割为该眼镜架的多个部件,其中这些部件优选包括以下组中的至少
一个部件
[0258] - 镜腿部分
[0259] - 该眼镜架除了这些镜腿部分外的其余部分
[0260] 和/或
[0261] 其中该头部元数据包括该头部的耳朵的搁置区域,这些区域是基于这些分割的镜腿部分计算的。
[0262] 第11条. 根据第1条至第10条中任一条所述的方法,其特征在于该镜架元数据包括关于该眼镜架的柔韧性的弯曲信息项,并且该虚拟定位包括基于关于该柔韧性的这些信
息项使该眼镜架弯曲。
[0263] 第12条. 根据第1条至第11条中任一条所述的方法,其特征在于,该方法包括在该显示之后改变该眼镜架在鼻子上的位置,其中将该眼镜架在鼻子上的改变后的位置被存储
为盖头部元数据的新放置点。
[0264] 第13条. 根据第1条至第12条中任一条所述的方法,其特征在于,该方法进一步包括基于图像记录来确定该头部的3D模型以及当记录这些图像时确定环境照明,并且显示该
头部和定位在其上的该镜架包括具有基于所捕获的环境照明的虚拟照明的图像合成。
[0265] 第14条. 一种计算机程序,该计算机程序包括程序代码,当在处理器上被执行时,该程序代码实施根据第1条至第13条中任一条所述的方法。
[0266] 第15条. 一种用于一副眼镜的虚拟配适的设备,该设备包括:
[0267] 处理器,以及
[0268] 显示器,
[0269] 其特征在于,
[0270] 在处理器上执行根据条款14所述的计算机程序。