用于眼镜架的虚拟配适的方法、设备和计算机程序转让专利
申请号 : CN201880048493.2
文献号 : CN110892315B
文献日 : 2021-03-12
发明人 : O.施瓦茨 , I.伊尔克
申请人 : 卡尔蔡司光学国际有限公司
摘要 :
权利要求 :
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所述的计算机可读的存储介质。
说明书 :
用于眼镜架的虚拟配适的方法、设备和计算机程序
技术领域
镜镜片戴在头部上的镜架或保持器。特别地,本文所使用的术语还包含无框眼镜架。通俗地
说,所述眼镜架又被称为镜架。在本申请的范围内,虚拟戴上眼镜架表示在计算装置上使眼
镜架的模型配合头部的模型,通常和眼镜架与人的头部的配合在显示器(例如计算机监视
器)上的图形表示相结合。
背景技术
用户在不同的眼镜架之间进行选择。
模型。在此,眼镜架的模型在头部的模型上的叠加被用于通过最小化重叠区域来确定眼镜
架的必要变形,使得眼镜架配适在用户的头部上。这种变形可以通过机器或用手被施加到
对应的真实眼镜架。此外,在这个文件中可以自动优化镜架相对于鼻子的位置。这种优化需
要相对较高的计算支出,并且取决于优化的初始值,实际上不一定能保证理想的配适。
在头部上。通过更改选定点来更改位置。这有助于以对于为了获得视觉印象而得以虚拟试
戴的US 9,286,715 B2的目的而言足够的准确度进行定位。在这种情况下不能实现准确的
配合,配镜师然后可以基于准确配适进行镜架的真实配适。
眼镜的参数可以通过滑块进行修改,例如这副眼镜在鼻梁上的座或者比如面部镜圈弧度和
“配戴”前倾角(参见DIN EN ISO)等其他参数。也可以选择眼镜架的颜色或眼镜架的铰链的
颜色。
或“https://www.youtube.com/watchv=ZsBV4FkcU8U”。在此,具有集成相机的计算机被用
作记录系统,并且可以选择镜架。在这个程序中,一副眼镜原样配合在通过相机记录的用户
的实时视频上。
使得具有该眼镜架的一副眼镜可以随后以尽可能少的进一步配适被直接提供给用户。然
而,如所解释的,由于基于3D模型的叠加来实施优化,因此WO 2015/101738 A2中的方法需
要比较高的计算支出。而且,在这个文件的优化方法中,仍然不确定是否实际上找到了最优
值,或者优化方法是否“仍然停留”在要优化数量的局部最小值中。
架元数据,将该眼镜架近似虚拟定位在该头部上;随后基于该头部的3D模型和该眼镜架的
3D模型对该眼镜架进行精细虚拟定位,以及一种用于一副眼镜的虚拟配适的计算机实现的
方法,该方法包括:在精细虚拟定位之前,基于头部的3D模型的头部元数据和眼镜架的3D模
型的镜架元数据,将该眼镜架近似虚拟定位在该头部上;基于该头部的3D模型和该眼镜架
的3D模型对该眼镜架进行精细虚拟定位,其中用于提供该镜架元数据的方法包括识别该眼
镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点进行分类;其中这些突出
点是具有某些预定特性的点,这些特性是用所谓的3D特征描述符定义的,以及其中对突出
点进行分类包括分类为相关点和不相关点,其中相关点是用于表示元数据的点,并且其中
不相关点是不表示元数据或者当表示元数据时冗余的点。
从眼镜架数据库的眼镜架中确定可能的眼镜架并排除不可能的眼镜架、为每个可能的眼镜
架计算一副可能的镜片并排除没有可用镜片的眼镜架、由用户从可实现的眼镜的数据库中
选择至少一个可实现的眼镜架、确认选择以及下订单。
接收客户面部的数字3D表示和眼镜架的数字3D表示以便将眼镜架虚拟放置在客户面部上
并生成描述镜架/脸部配适的第二3D信息项的虚拟试戴单元、以及被配置用于接收第一3D
信息项和第二3D信息项并由此生成用于特定客户的面部和镜架生产以及用于研磨镜片的
至少一个参数的镜片配适器。在这种背景下,WO 01/88654 A2公开了通过“3D面部提取器”
自动分配面部特征以及通过手动测量来手动确定头部元数据。
包括镜架部分和镜片部分的用户特定眼镜产品的可配置参数模型,其中该可配置参数模型
的几何参数是基于用户的解剖学的几何特征;接收用户的媒体数据,其中该媒体数据包含
用户对视觉线索的反应;从所接收的媒体数据中检测用户的眼睛的位置;基于所识别的用
户的眼睛的位置来确定用户的光学信息项;以及通过基于所确定的光学信息项而修改所接
收的可配置参数模型来生成更新后的可配置参数模型。在这种情况下,WO 2016 164859 A1
公开了用于检测面部特征的机器学习的用途、用于在头部的记录中照明的信息项的计算以
及具有适当适配的虚拟照明的眼镜架的虚拟表示。
发明内容
拟配适的计算机实现的方法,该方法包括:基于头部的3D模型的头部元数据和眼镜架的3D
模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上;随后基于该头部的3D模型和该
眼镜架的3D模型对该眼镜架进行精细虚拟定位,其特征在于,如果当保持该头部直立时将
与处于主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对应的水平方向定义为x
方向、如果当保持该头部直立时竖直方向被定义为y方向以及如果垂直于该x方向和该y方
向的方向被定义为z方向,则在该精细虚拟定位过程中,该眼镜架垂直于该z方向进行第一
距离的第一位移,以及该眼镜架沿该z方向进行第二距离的第二位移,其中该第二距离不超
过该第一距离的10%。
的方法,该方法包括:在精细虚拟定位之前,基于头部的3D模型的头部元数据和眼镜架的3D
模型的镜架元数据,将该眼镜架近似虚拟定位在该头部上;基于该头部的3D模型和该眼镜
架的3D模型对该眼镜架进行精细虚拟定位,其中用于提供该镜架元数据的方法包括识别该
眼镜架的3D模型中的突出点和/或对该眼镜架的3D模型中的突出点进行分类,其中这些突
出点是具有某些预定特性的点,这些特性是用所谓的3D特征描述符定义的,以及其中对突
出点进行分类包括分类为相关点和不相关点,其中相关点是用于表示元数据的点,并且其
中不相关点是不表示元数据或者当表示元数据时冗余的点,其特征在于,如果当保持该头
部直立时将与处于该头部的主注视方向上的该头部的眼睛的瞳孔中心之间的连接线相对
应的水平方向定义为x方向、如果当保持该头部直立时竖直方向被定义为y方向以及如果垂
直于该x方向和该y方向的方向被定义为z方向,则在该精细虚拟定位过程中,该眼镜架垂直
于该z方向进行第一距离的第一位移,以及该眼镜架沿该z方向进行第二距离的第二位移,
其中该第二距离不超过该第一距离的10%。
竖直方向被定义为y方向以及如果垂直于该x方向和该y方向的方向被定义为z方向,则在该
精细虚拟定位过程中,该眼镜架垂直于该z方向进行第一距离的第一位移,以及
使精细虚拟定位更快、更容易以及更可靠。
模型中的突出点进行分类。
直于空间中的相应剖面的相应法向量n来定义相应剖面,其中该眼镜架的3D模型的分割是
基于以下的比较来实现的
割。
素的z成分,
针对这些顶点或体素的集合中的每个集合来形成带有方向向量d的纯量积s =
v指定该顶点或体素的集合的相应顶点或体素的坐标,其中d是该相应眼镜镜腿的归一化固
定向量,以及相应地一个顶点或体素v̂是基于这些顶点或体素的纯量积s针对该相应窗口而
被确定的,以及
这些第二搁置信息项定义了该眼镜架搁置在该头部上的、该头部上的一个或多个位置,并
且其中
线确定点来确定近似定位。同时,由于3D曲线适合于使用比网格更少的数据来描述鼻子的
轮廓同时具有更高的准确度,因此改善了眼镜配适方法的准确度。
沿z方向实施定位;以及在精细定位的范围内,随后可以基本上垂直于z方向实现定位。
细定位改变这个位置以形成最终位置。在此,近似定位是基于元数据的,而模型本身用于精
细定位。
述精细定位是从眼镜架的已经近似正确的位置开始的,因此这可以加速精细定位。这降低
了在精细定位期间找到对应于期望最佳值的位置的风险。通过头部和镜架本身的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”)。
每个体素的二进制值(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。
柱体、平面等基本几何体的部分表面的形式表示。在此,所描述的方法可以独立于所选择的
3D模型表示形式。
的3D模型有助于头部和眼镜架的真彩色表示。
图像中的图像坐标(像素位置)。然后,例如由纹理图像的像素通过内插法生成三角形网的
前述三角形的纹理。
网;这称为表面重建。(参见,例如Cignoni,Paolo等人,“Meshlab: an open-source mesh
processing tool [Meshlab:开源网处理工具]”欧洲制图学会意大利分会会议
(Eurographics Italian Chapter Conference),第2008卷, 2008年)。
年3月5日的德语“Metadaten”维基百科文章中也对元数据进行了一般性解释。如果没有指
定其他内容,对维基百科的引用是指德语维基百科(de.Wikipedia.org)。
及改变其位置。
置信息项,和/或在这种情况下头部元数据包括定义了眼镜架搁置在头部上的、头部上的一
个或多个位置的第二搁置信息项。在此,点、点集、曲线或区域可以被称为位置。由于在配适
期间不需要为所有计算和步骤考虑眼镜架的整个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。
面,在所述用户界面的情况下基于模型在显示器上以图形方式表示眼镜架。然后,可以例如
通过使用鼠标以及对应表示的鼠标指针点击或者通过在触敏屏幕上直接标记来手动选择
眼镜架上的点和/或轮廓。在此,特别地,前述搁置点可以作为单个点被点击,并且搁置区域
可以作为轮廓线或轮廓多项式被选择。而且,眼镜架的铰链上的旋转轴线可以手动标记为
元数据。
的。在此,手动或部分手动创建的上述多个眼镜架的元数据可以作为训练数据用于这种机
器学习。
此,突出点是具有某些预定义特性的点,所述特性可以在所谓的3D特征描述符中定义。3D特
征描述符表示Rn中的向量,这些向量描述3D模型中的突出点的特性,使得可以基于这个特
性向量在类似的3D模型中检索这个点。可以在突出点的周围使用点集。举例来说,可以跨越
以该点为中心的、具有预定半径(例如10 mm)的球体,并且可以检查位于这个球体内的点
(即这个点云子集中的点)的特性。举例来说,可以在主分量分析的含义内实施特征值分析。
在此,极值本征值k1和k2然后可以作为元素被包含在元数据中,例如是特性向量的形式。在
此,特性向量应理解为是指元数据值的表示。此外或替代地,也可以确定点周围的表面的主
曲率。主曲率应理解为是指如文章https://de.wikipedia.org/w/index.phptitle=
Hauptkr%C3%BCmmung&oldid=172452500中所述的信息项。主曲率同样可以被包括在特性向
量中。替代地,可以由所有点形成直方图和/或可以确定球体的法向量。为此,可以将球体细
分为多个区域(多个体积),并可以为每个区域确定位于这个区域中的点(或法向量)的频
率。替代地,可以确定相对频率。关于这个频率的信息项(例如是直方图的形式)同样可以在
特性向量中被采用。
示例。
模型的镜架的铰链区域中的点,这些点可以在所有眼镜架中被唯一地确定;软件提取所点
击的点的周围的球体内的点集,用户所指定的点集和点的类型(也被称为数字标签)分别作
为训练数据被输入到机器学习方法中,例如神经网络。经过完全训练的网络随后能够确定
给定点云中相应点的相应标签,因此能够识别突出点和/或能够对点进行分类。举例来说,
不突出的点可以被分类为不相关的。
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页。
德多项式基)示例性实施例中,3D曲线也可以由多项式曲线表示。在其他示例性实施例中,
曲线可以被表示为借助于https://de.wikipedia.org/w/index.phptitle=Legendre-
Polynom&oldid=172427311以及https://en.wikipedia.org/w/index.phptitle=B-
spline&oldid=840787047中所述的B样条基函数表示的样条曲线。
例如沿着镜腿的下侧延伸并且描述整个可能的搁置区域。
余或具有尽可能小的冗余。
举例来说,如果主曲率被用作表面的特性,则两个主曲率的乘积可以被用作度量。基于学习
的机器方法可以模仿手动选择,其中相关点可以通过训练阶段预先确定。
来实现。在此,在确定突出点期间,所识别的点被显示在显示屏上,例如具有镜架的表示,然
后可以手动为相应点分配点类。然后可以将这些点类别与相应点的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中。
架采取相同的坐标系,因此这简化了随后处理。
Hauptkomponentenanalyse和https://en.wikipedia.org/wiki/Principal_component_
analysis中描述了主成分分析(PCA)。在空间中的n个点的点集X的情况下,例如可以形成具
有n行和3列的矩阵X(针对相应n个点的x、y和z坐标)。然后,可以检查3 × 3矩阵Xt*X,并且
主成分可以被确定为这个矩阵的最大特征向量。
行变换的坐标系)的基向量的突出点的线性组合。举例来说,前述“梁中心,前部”类的突出
点可以用作坐标原点,并且预定点之间的差异向量或这种差异向量的线性组合可以用作坐
标轴。因此,前述的“右铰链外侧,顶部”类的点与“左铰链外侧,顶部”类的点之间的差可以
用作坐标轴。在此,如果突出点以固定的顺序被唯一地确定和/或是可用的,则可能是有利
的。举例来说,在手动设定点(例如通过用户的选择来设定)的情况下可能是这种情况。
接线平行于x轴并且y方向垂直于该连接线。换句话说,与处于主注视方向上的头部的眼睛
之间、特别是头部的眼睛的瞳孔中心之间的连接线相对应的水平方向被定义为当头部保持
直立时的x方向,竖直方向被定义为y方向以及垂直于x和y方向的方向被定义为z方向。
3D模型可以以如下方式被设置,即头部的3D模型处于直立位置。
177246519中定义了冠状平面和矢状平面。
线延伸。换句话说,头部可以以静止的方式设置在坐标系中。
述手动选择或者可以自动地确定这些突出点。举例来说,可以基于在铰链的外侧或内侧上
所确定的突出点、特别是按照比如如上所述的“左铰链外侧,顶部”和“左铰链外侧,底部”等
类的点来确定这副眼镜的铰链的位置。在一个示例性实施例中,铰链轴线点被计算为这些
突出点的平均值。特别地,左铰链轴线点可以根据如下方式计算:
点;即,位于眼镜左铰链外侧左上方、左下方并且各自位于内侧和外侧(在眼镜架的内侧,即
朝向鼻梁,以及在眼镜架的外侧,即背离鼻梁)的点。通过将左侧的点替换为右侧的点,可以
将对应的公式用于右铰链轴线点。以此方式,可以基于从外侧可见的点来确定位于眼镜架
内部的铰链轴线上的铰链轴线点。
是用于眼镜镜腿的部件和描述除眼镜镜腿外的眼镜架的部件。分割3D模型被理解为是指将
信息项分成子集,例如将3D点云细分为3D点云的子集。
该分割。
可以用作向量。同样,坐标可以被表示为从坐标系原点到点坐标的向量。然后,针对3D模型
的顶点或体素,其位置由坐标v定义(对应于该点的笛卡尔坐标表示),适用以下内容:
或 。在此,<,>表示欧几里德纯量积。纯量积是指欧几里德
纯量积,但是也可以使用不同定义的纯量积。在此,将法向量n归一化成为1的长度,即
的剖面的法向量。然后,
成立的顶点或体素定义相应的眼镜镜腿。
区域。使用分割的部件意味着在确定元数据时必须使用的数据比使用完整3D模型的情况
少,因此可以加速计算。
起点和终点。在前述坐标系中,所分割的眼镜镜腿的、在z成分中具有最小值的点可以是起
点a并且在z成分中具有最大值的点可以是终点b。可以例如通过用户从3D模型中选择或者
以基于规则的方式(例如通过在两个方向上都需要距搁置点固定距离、或者作为相对于镜
腿端部的所需相对距离)来手动实现该确定。
以介于0.6和0.9之间,例如β = 0.76。
下内容适用于这些顶点或体素:
样在0.5 mm与3 mm之间,例如大约1 mm)的窗口在潜在耳朵搁置区域上沿z方向滑动。初始,
针对窗口的每个位置确定潜在搁置区域的位于窗口中的顶点或体素的集合。随后,针对这
些顶点或体素中的每一个形成具有方向向量d的纯量积s,s =
或体素的坐标。
大值的顶点或体素被视为这个窗口的顶点或体素v。̂ 针对所有窗口(例如,根据增加的z值排
序)所找到的坐标v的̂ 集合产生点的排列,这些点将根据本发明的第五方面但不限于此的搁
置区域表征为搁置曲线。在示例性实施例中,可以通过滤波器、例如通过高斯滤波器来使这
个曲线滑,或者可以使曲线与这些点拟合;举例来说,可以通过在截至2017年3月9日的德国
维基百科文章“Spline [样条]”中所述的B样条实施样条近似。
1,0)。在这种情况下,搁置点将始终是眼镜镜腿的最低点。在向内指向的搁置曲线的情况
下,镜腿的位置和取向变得更加精确,即,例如,
模型中的这个耳朵搁置点的周围选择窗口,例如具有z值的所有顶点或体素,该值与这个耳
朵搁置点间隔不超过预定距离,例如不超过0.25 mm到1 mm、例如不超过0.5 mm。然后,确定
窗口的所有这些顶点的平均值,并且耳朵搁置点减去平均值的归一化差向量被定义为方向
向量d。
起点;即,这副眼镜被初始放置在耳朵上的这些点处。这可以加速虚拟定位。
位于这个球体内的点。
些调整应用于对应的真实眼镜架。这种信息项的示例包括例如关于是否可以绕铰链轴线旋
转、以及如果可以的话绕铰链轴线旋转多远的信息项(例如,在具有装有弹簧的铰链的塑料
镜架的情况下)。眼镜铰链具有挡件,例如在180度的最大开度处。在一些铰链中,这个挡件
可以通过弹簧来实现,所以开度可能超过180度。在没有弹簧的实心挡件的情况下,当弯曲
打开时镜腿变形。因此,例如在信息项中编码了一种类型的铰链,即固定的或装有弹簧的。
此外,编码了镜腿的柔韧性;在此,在装有弹簧的铰链的情况下使用镜腿的刚性模型。另外
的示例涉及关于眼镜镜腿上可能的倾斜度调节的信息项;即,眼镜镜腿相对于眼镜架的其
余部分绕x轴旋转。在许多金属镜架中,这可以通过在铰链处向上或向下弯曲镜腿来实现。
元多项式或多元样条函数来对眼镜架的镜架边缘的由弯曲打开镜腿引起的变形进行建模
(例如,B样条基的张量积;参见De Boor,Carl等人,“A practical guide to splines [样
条的实用指南]”,第27卷,纽约:Springer-Verlag,1978年,第XVII章)。
定在主注视方向上(请参见DIN EN ISO 13666:2013-10, 5.33)眼睛的(例如瞳孔的、特别
是瞳孔中心的)位置作为点坐标。而且,头部元数据可以包括如上所述的耳朵放置点,这些
耳朵放置点指定了眼镜架在耳朵上的搁置点。指定眼镜架在头部上的搁置点的其他放置
点、例如在头部的鼻子上的放置点也是可能的。由于这些元数据,可以将眼镜镜腿简单地定
位在耳朵上。
此,放置点是头部的3D模型中的鼻子处或鼻子附近的点,该点可以特别是通过近似定位与
镜架元数据的前述搁置点相对应。
论的机器学习来确定全部或部分头部元数据。
都可以获得这种2D图像。校准位置意味着已知图像记录的位置,所以然后可以基于所记录
的图像和位置来确定3D模型。替代地,还可以通过图像合成(又被称为渲染)从由纹理的3D
模型生成2D图像。举例来说,这一方面的信息可以在截至2017年3月10日的德语维基百科的
“Bildsynthese”文章中找到。
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/”
~
上。
此,投影矩阵由从(例如3D网的)模型的坐标系到所用相机的相机坐标系和相机矩阵的刚体
变换组成。如上所述,如果使用具有用于图像记录的校准位置的相机装置来记录3D模型和
2D图像,则在根据所记录的图像确定3D模型的范围内给出或确定这些矩阵(参见Richard
Hartley和Andrew Zisserman,2000年,“Multiple View Geometry in Computer Vision
[计算机视觉中的多视图几何]”,剑桥大学出版社(Cambridge University Press),美国纽
约,)
征。混合形式也是可能的,其中如上所说明的自动确定面部特征,然后可以手动校正。
头部的方向(其例如可以是比如3D模型的z轴等坐标轴)可以用作前述公式中的方向向量d,
头部的方向沿头部方向朝后部定向。在确定头部时也可以确定这个方向。在这种情况下,方
向向量d对应于欧洲专利申请17153559.4中所述的头部旋转的方向或观看方向;可以通过
在欧洲专利申请17153556.0中公开的定心器具来确定所述方向;在此,窗口的位移方向是
头部的3D模型的y轴,即竖直轴线;使用头部的整个模型,或者通过瞳孔位置的平均值的Y坐
标和鼻尖的Y坐标确定一个区段–确定为v_max,其中纯量积s = ‹v, d›(如上)变为最大。
线所在的且观看方向所在的平面与3D曲线(又被称为鼻梁曲线)相交,所述曲线用作用于确
定搁置点的起点s。然后,在这个点s的周围,例如在预定区域内(预定距离,例如± 3 mm、±
2 mm等),确定鼻梁曲线在观看方向上具有最小值的点,即位于最后面的点(在3D模型的枕
骨部方向上)。在y方向上的固定偏移量仍然可以被添加到这个点的y值上,以便通过前述的
曲线参数化确定y值和放置点。这允许确定放置点,放置点能够与镜架元数据的搁置点一起
用于眼镜架的初始定位,所述初始定位相对接近最终位置,从而可能加速随后的优化。
此,可以使镜架的z轴(即,眼镜镜腿的方向)与头部的3D模型的对应轴线一致,该对应轴线
表示观看位置。
是针对每个镜腿单独实施的。为此,在一个实施例中计算搁置区域与圆柱表面的交点,其中
圆柱表面的圆柱轴线对应于镜架的旋转轴线(前述坐标系中的x轴)。在此,旋转轴线延伸穿
过搁置点。圆柱的半径是相应耳朵搁置点距旋转轴线的距离。圆柱上的交叉点直接产生镜
架向前倾斜或向后倾斜的角度。在此,可以通过迭代线圆柱相交来计算圆柱相交。在此,搁
置区域(例如,以上确定的搁置曲线)初始可以用于粗线段表示中(即具有较低的分辨率),
以加速计算。举例来说,在最简单的情况下,前述起点a和终点b之间的连接线可以用作粗线
段表示。
线点不再位于圆柱表面上,但它仍可以用作确定角度的近似值。此外,现在可以执行另外的
迭代步骤。为此,使用曲线上的、在zS周围具有ε间距的点k(zS –ε)和k(zS +ε);在下一个迭
代中,这些替代a和b用作新的起点和终点。
在此,通常,代价函数是根据要优化的一个或多个参数而变化并且为了优化目的达到最大
值或最小值的函数。在此,选择弯曲函数中与弯曲强度有关的参数作为要优化的参数。在用
于在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值的弯曲打开。
搁置曲线相交。
的平面,因此所述平面被两个向量跨越,其中一个向量在x方向上延伸,一个向量在y方向上
延伸,因此所述平面垂直于z方向。然后,z方向上的向量是x-y平面的法向量。在x-y平面中
的位移也可以表示为x-y方向上的位移。特别地,x-y平面可以包括在近似定位之后的眼镜
架的锚固点。
是0。在此,在x-y方向上移动镜架一直到在眼镜架的3D模型与头部的3D模型之间不存在碰
撞为止。
镜架的位置之间的位移。
基本上限制在x-y平面。举例来说,在一些示例性实施例中,这可以是指第二距离不超过第
一距离的10%。在一些示例性实施例中,第二距离不超过第一距离的5%。在一些示例性实施
例中,第二距离是第一距离的0%。
种情况下,镜架的3D模型和头部的3D模型的非碰撞方式不具有共同的空间区域。在准确定
位之后,可以再次实施前述弯曲过程,以便进一步改善配适。
此,可以将鼻托与眼镜架的其余部分分割开;这可以如上所述被实施。这种配适可以在前述
弯曲之后被呈现。在鼻托发生任何变化之后,都可以重新实施精细定位。
两个角度。鼻托接触鼻子的区域的倒数可以被用作代价函数用于优化鼻托的位置,以便实
现尽可能宽的搁置。这也允许鼻托位置的虚拟配适,然后可以将鼻托转移到真实的镜架上。
作为这的结果,不再需要或仅在很小的程度上仍需要将真实镜架上的鼻托配适到真实头部
上。
配戴前倾角,如将在下文更详细说明的。
已经用于创建3D模型,因为这会产生自然的图像印象。可以设置或预先确定用于图像合成
的照明,然后例如可以通过所谓的光线追踪来实现图像合成;参见截至2017年3月10日的维
基百科文章“Ray Tracing [光线追踪]”。
景相机)可以在被用在用于记录创建头部3D模型的图像的相机系统中,为了识别光源,所述
全景相机记录周围环境。在其他实施例中,这种用于记录创建3D模型的图像的系统可以在
已知位置具有照明装置,该已知位置然后也用作用于图像合成的照明的位置。在这种图像
合成期间也可以考虑镜架中的眼镜镜片,以便为观看者提供尽可能自然的图像印象。在这
种情况下,特别地,可以考虑当使用镜像层时产生的反射。在优选实施例中,模型可用于不
同类型的减反射涂层,并且模型也可用于不同类型的玻璃以便为用户提供关于不同层的印
象。在图像合成的范围内,减反射层的作用特别是在侧视图中以反射的形式出现。
的用户界面;举例来说,可以通过鼠标移动或通过触摸触敏屏(触摸板)来实现导航。
述的方法的虚拟定心;这样可以改善定心准确度。
的镜架期间使用用户优选的这种更改后的放置点。
方向移动的情况下,虚拟观察位置可以接近头部的3D模型,和/或在沿枕骨部方向旋转期
间,用户相对于用户输入(鼠标指针、触摸板等)的灵敏度可能降低。而且,用户还可以围绕
x-y轴旋转镜架,以便考虑面部的不对称性。
机程序可以被存储在装置的存储器上,或者还可以经由云提供。在此,应当注意的是计算装
置也可以通过具有各种单独部件的分布式系统来实现。举例来说,可以在比较强大的计算
机(例如还可以包括比如图形处理器等协处理器的外部服务器)上实施计算元数据或根据
所记录的图像数据计算头部的模型。通过使用元数据,这副眼镜在镜架上的定位和随后的
表示的计算量更小,所以这也可以在不太强大的单元(比如例如平板电脑或智能手机等移
动终端)上在相应的应用程序中或通过因特网的浏览器执行。
附图说明
具体实施方式
在图1A的示例性实施例中,该存储器包括随机存取存储器(RAM)、只读存储器(ROM)和一个
或多个大容量存储介质(硬盘、固态硬盘、光驱等)。程序被保存在存储器13中,当在处理器
12上被执行时,所述程序实施如上所述的一副眼镜的虚拟配适。
实现用户输入。此外或替代地,显示器16可以是触敏屏幕(触摸屏)以便实现输入。
外的计算装置,以便在所述另外的计算装置上实施计算,比如所讨论的元数据的计算。
确定3D模型。
111被定位在半圆形布置110中,并且可以从不同的方向被记录。由此,如上面已经描述的,
可以创建头部111的3D模型,其中模型的纹理也从图像记录中产生。而且,图1B的相机装置
包括用于能够在图像记录期间确定照明的全景相机112;如所描述的,然后这可以用于图像
合成。
中,例如由制造商提供要配适的眼镜架的镜架3D模型。
序实施步骤20至23。因此,可以互换步骤22和步骤21。可以通过新计算元数据或通过从存储
器读取先前所计算的元数据来实现步骤22和23中的元数据的提供。
据的近似定位以及基于头部和眼镜架的3D模型的精细定位。
改变其相对于头部的位置和取向。在此,图3A图示了三角形网形式的3D模型30,该三角形网
具有由边缘连接的多个顶点。图3B示出了三角形网和纹理的组合31。图3C示出了表示32,其
可以基于模型在屏幕上被实现,其中只有纹理是可见的,而为了阐明目的在图3A和图3B中
明确呈现的各个顶点是不可见的。图4示出了基于模型的眼镜架的表示以及坐标系41。图4
的眼镜架40具有眼镜右镜腿42A、眼镜左镜腿42B、右铰链43A、左铰链43B、右镜架镜圈44A、
左镜架镜圈44B以及鼻梁45。
出点进行分类和过滤。作为通过3D特征描述符进行确定的替代方案,也可以如图6A和6B所
阐明的手动标记点。为此,已经参考图4所描述的眼镜架40被呈现在显示器上,并且标记了
相关点。为此,例如图6A和图6B示出了耳朵搁置点61、铰链点62、鼻托63的位置和鼻梁的中
心点64,鼻梁的中心点可以用作搁置点。应当注意的是,搁置点不需要直接位于眼镜上,而
是也可以与实际镜架间隔开,特别是在鼻托的情况下。
上文同样已经描述了技术。
镜架),并在步骤56中确定处于搁置曲线形式的、镜腿下侧处的搁置区域,如以上已经描述
的。
域,无需借助如此大量的点实施计算;代替地,可以使用搁置曲线。
对眼镜左镜腿和眼镜右镜腿单独实施图8的方法。通过上述“滑动窗口”技术,在步骤81中确
定潜在耳朵搁置区域,并在步骤82中确定搁置曲线。在此,如以上已经更详细描述的实施步
骤80至82。
交方法。在可以改变倾斜度的镜架的情况下,即可以通过绕x轴(使用图4的坐标系41)旋转
镜腿来改变倾斜度。在眼镜元数据指示这种旋转是不可能的眼镜架的情况下,可以跳过步
骤92。
行镜架和头部的图像合成,其中如上所说明的,可以考虑光源。然后,在步骤95中用户使用
一个或多个输入器具(例如,图1A中的输入器具17)与所表示的模型进行交互,即显示镜架
和头部。作为这的结果,例如可以按步骤96中所指示的实施导航,即可以旋转、放大或缩小
所显示的模型。然后,基于这些输入再次实施步骤94;即,根据导航重新显示图像。还可以存
在用于旋转镜架的输入(又被称为手势),以便补偿如上所述的面部的不对称性。在这种情
况下,从步骤92重新计算定位。最后,可以沿着鼻梁上下移动这副眼镜。这对应于初始近似
定位的修改,并且因此在这种情况下从步骤90再次实施该方法,其中鼻梁上的新设定的位
置用作步骤90中的近似定位。
是根据步骤96在鼻梁上移动的示例。图10B阐明了眼镜架102的镜腿根据箭头104的弯曲打
开,如在图9的步骤91中实施的。
位期间,基于搁置点116来初始定位镜架。轴线115在x方向上延伸穿过搁置点116。圆112、
113所指示的圆柱具有到头部110的3D模型的耳朵搁置点的半径。圆柱与眼镜架的搁置区域
的交叉点,由眼镜架111的的3D模型表示,圆柱产生眼镜架的眼镜镜腿的方向,并因此产生
应围绕轴线115旋转眼镜架的角度。在目前的情况下,从眼镜镜腿沿线119A、119B的方向延
伸的位置实施旋转,使得眼镜镜腿现在沿线1110A、1110B的方向延伸。
和/或该头部元数据包括第二搁置信息项,这些第二搁置信息项定义了该眼镜架搁置在该
头部上的、该头部上的一个或多个位置。
的放置点,以及该近似虚拟定位包括将该镜架元数据的搁置点与该头部元数据的放置点相
对应的定位。
如果垂直于x和y方向的方向被定义为z方向,则在精细虚拟定位期间,该眼镜架在该z方向
上的位移不超过该眼镜架在该x-y方向上的位移的10%。
进行分类。
一个部件
息项使该眼镜架弯曲。
为盖头部元数据的新放置点。
头部和定位在其上的该镜架包括具有基于所捕获的环境照明的虚拟照明的图像合成。