使用可移动扫描仪生成纹理模型

文档序号:74624 发布日期:2021-10-01 浏览:26次 >En<

阅读说明:本技术 使用可移动扫描仪生成纹理模型 (Generating texture models using a movable scanner ) 是由 A·波斯尼亚加 于 2020-01-21 设计创作,主要内容包括:在具有一个或多个光学传感器的可移动扫描仪上执行一种方法。所述方法包括使用所述可移动扫描仪扫描具有表面的对象。所述扫描从可移动扫描仪相对于所述对象的多个取向生成颜色数据。所述方法还包括使用至少所述颜色数据生成所述对象的所述表面的像素图,对于多个像素中的每个相应像素,所述像素图包括:所述对象的所述表面上对应点的颜色值;和所述对象的所述表面上所述对应点的非颜色性质的值。(A method is performed on a movable scanner having one or more optical sensors. The method includes scanning an object having a surface using the movable scanner. The scanning generates color data from a plurality of orientations of the movable scanner relative to the object. The method further includes generating a pixel map of the surface of the object using at least the color data, the pixel map including, for each respective pixel of a plurality of pixels: a color value of a corresponding point on the surface of the object; and a value of a non-color property of the corresponding point on the surface of the object.)

使用可移动扫描仪生成纹理模型

技术领域

本发明总体上涉及生成纹理模型,并且更具体地涉及使用可移动扫描仪(诸如结构光三维扫描仪和/或摄影测量扫描仪)生成纹理模型。

背景技术

计算机图形学的一个目标是在不同的光照条件下准确地对对象的物理外观(包括它们的颜色)建模。为此,有必要为对象建立一个纹理模型。生成物理上准确的纹理模型比简单地拍摄对象的照片来观察它们的颜色更复杂。例如,当一个人拍摄一个对象的照片时,照片只显示在拍摄照片时存在的特定光照条件下对象的样子。此外,某些光照条件,诸如闪光灯,会在照片中留下模糊的高光(例如,对象上看起来过于明亮和闪亮的区域)。

从而,如果对象的3D模型是从这样的照片中纹理化的(例如,如果纹理模型是使用这样的照片生成的),而没有任何额外的处理,3D模型在物理上看起来并不准确。生成物理上准确的纹理模型的挑战是产生影响对象外观的物理特性的模型,而不是产生例如出现在单个照片中的特性的模型。这样的模型对于动画尤其有用,使得可以从不同的角度和在各种光照条件下准确地显示对象的纹理。

发明内容

根据一些实施例,提供了一种为对象生成纹理模型的方法。该方法包括扫描具有表面的对象。扫描从3D扫描仪相对于对象的多个取向生成颜色数据。该方法还包括使用至少颜色数据生成对象的表面的像素图,对于多个像素中的每个相应像素,像素图包括:对象的表面上对应点的颜色值;和对象的表面上对应点的非颜色性质的值。

根据一些实施例,提供了一种用于生成对象的纹理模型的电子系统。该电子系统包括扫描仪(例如,可移动扫描仪,诸如可移动3D扫描仪),该扫描仪包括一个或多个光学传感器、一个或多个处理器和存储器。存储器存储指令,当指令被一个或多个处理器执行时,使得一个或多个处理器执行本文描述的任何方法。

根据一些实施例,提供了一种非暂时性计算机可读存储介质。非暂时性计算机可读存储介质存储指令,当指令由具有一个或多个处理器、存储器和包括一个或多个光学传感器的可移动扫描仪的电子系统执行时,使得一个或多个处理器执行本文描述的任何方法。

附图说明

为了更好地理解所描述的各种实施例,应当结合以下附图参考以下实施例的描述,在所有附图中,相同的附图标记指代对应的部分。

图1A-图1B示出了根据一些实施例的3D扫描仪的各种视图。

图2是根据一些实施例的3D扫描仪的框图。

图3是根据一些实施例的数据采集环境的示意图。

图4是根据一些实施例的从图3所示的数据采集环境收集的数据的预示性示例。

图5A-图5C示出了根据一些实施例的用于生成对象的纹理化3D表示的对象的表面的图像的示意性示例。

图5D示出了根据一些实施例生成的图5A-图5C所示对象的纹理化3D表示的示意性示例。

图6是根据一些实施例的3D扫描仪的机械图。

图7A-图7D示出了根据一些实施例的为对象生成纹理模型的方法的流程图。

具体实施方式

所公开的实施例使用由可移动扫描仪获得的颜色数据来生成对象的真实纹理图。在一些实施例中,可移动扫描仪是三维(3D)扫描仪(例如,构建对象的表面的3D模型的装置)。这些3D扫描仪用于生成物理对象的真实纹理3D表示。如下所述,一些3D扫描仪基于结构光方法,而其他扫描仪基于摄影测量方法。三维扫描仪在许多领域都有应用,包括工业设计和制造、计算机动画、科学、教育、医学、艺术、设计和其他领域。

使用常规的3D扫描仪,用户可以获得的唯一类型的每像素材料信息是照明不一致下组装的颜色图。使用这种扫描仪,基于对象的表面的给定区域的观察值,为每个像素生成红、绿、蓝(RGB)值。例如,对每个像素的不同颜色值取平均或者选择颜色值中一个作为代表(例如,最亮的像素)。换句话说,由这些扫描仪生成的纹理是在不考虑反射光的行为和捕获颜色纹理的每个像素的方向和强度的情况下组装成的。生成的颜色图包含不一致的照明和阴影信息,并且不包含帮助对对象真实感渲染的材料信息

替代地,专门设计用于生成材料的真实感纹理模型的常规系统通常需要具有精确定位和仔细校准的光线和摄像头的复杂系统。

本公开提供了使用可移动扫描仪(例如,3D扫描仪)将不一致的照明和阴影与对象的真实表面颜色分离的系统和方法,而不需要具有精确定位和仔细校准的光线和摄像头的复杂系统。此外,本文提供的系统和方法允许为对象的纹理图的每个像素测量材料性质(反射率、镜面颜色、金属度、表面粗糙度)。这是通过使用来自对象的表面的不同图像的对应像素(例如,当扫描仪相对于对象移动时在不同的取向上捕获的像素)以及提供关于捕获不同值的取向的信息的跟踪数据来完成的。换句话说,在一些实施例中,3D扫描仪收集各种像素的颜色值(例如,RGB值),并记录捕获这些值的角度。来自对应像素的颜色值使用描述以各种角度入射到对象的表面的光的行为的方程(例如,Lambertian漫反射模型或更复杂的纹理模型)与材料性质相关。这个过程为每个像素点产生一个单一的、经校正的RGB值,从而消除杂散高光。此外,可以计算诸如最大镜面值和该值出现的角度等性质。

这些系统和方法允许对通过3D扫描生成的纹理模型进行相当大的改进。此外,这些系统和方法有助于检测各种材料性质。

现在将参考实施例,其示例在附图中示出。在以下描述中,阐述了许多具体细节,以便提供对各种描述的实施例的透彻理解。然而,对于本领域普通技术人员来说明显的是,可以在没有这些具体细节的情况下实践各种描述的实施例。在其他情况下,不详细描述本领域普通技术人员公知的方法、过程、部件、电路和网络,以免不必要地模糊实施例的发明方面。

图1A-图1B示出了根据一些实施例的3D扫描仪100的前视图和后视图。在一些实施例中,3D扫描仪100用于采集数据,从该数据可以生成对象的真实颜色图。然而,应该理解,3D扫描仪100只是这种装置的示例。根据本公开的实施例,也可以使用其他装置(诸如摄影测量扫描仪)来生成对象的真实颜色图。

扫描仪100包括主体外壳102、手柄108和电池外壳110(例如,其包含电池)。在一些实施例中,3D扫描仪100是便携式手持扫描仪。为此,在一些实施例中,3D扫描仪100具有小于30cm x 30cm x 30cm的尺寸(例如,放入在尺寸为30cm x 30cm x 30cm的盒子内)。在一些实施例中,3D扫描仪100足够轻,以由人单手携带(例如,3D扫描仪100重约2.5kg)。

在一些实施例中,主体外壳102可以与手柄108分离。在一些实施例中,主体外壳102可以经由安装点112(例如,安装点112a到安装点112c)安装(例如,没有手柄108和电池外壳110)到单独的设备(例如,机器人机动扫描臂)。从而,3D扫描仪100可以从手持扫描仪转换成工业或实验室扫描仪。

在一些实施例中,3D扫描仪100生成对象的3D模型,具体方式通过将光的空间图案(这里称为“结构光”)投射到对象的表面上,并且当光的空间图案投射到对象的表面上时,使用光学传感器(例如,摄像头)来采集对象的表面的图像。为此,主体外壳102容纳一个或多个内部光源(例如,图6中的VCSEL激光器606)和光源光学器件104。所述一个或多个内部光源频闪地(例如,投射脉冲光)以特定频率将光投射通过主体外壳102内部的空间图案滑块(例如,图6中的滑块616)通过光源光学器件104到对象的表面上。投射到对象的表面上的结构光的图像通过由主体外壳102容纳的摄像头光学器件106采集。一个或多个摄像头/传感器(例如,图6中的CCD检测器602)记录投射到对象的表面上的结构光的图像。对象的表面的形状的3D模型可以通过投射到对象的表面上的光的图案中的失真来确定(即,其中失真是由对象的表面的形状引起的),如在美国专利No.7,768,656中更详细描述的,所述专利题为“用于三维测量材料对象形状的系统和方法(System and Method for Three-Dimensional Measurement of the Shape of Material Objects)”,该专利通过引用整体并入于此。

在一些实施例中,内部光源是激光器。在一些实施例中,内部光源是垂直腔面发射激光器(VCSEL)。在一些实施例中,3D扫描仪100作为1级光源操作,这意味着激光器在主体外壳102之外的任何地方都被认为是1级的(即,如在本公开的提交日由联邦法规(CFR)第1040部分的21条所定义的)。

注意,在一些实施例中,3D扫描仪100提供对象的表面的足够照明,使得在室外日光条件下采集的图像具有足够重建对象的至少一部分的3D形状的信噪比(例如,具有至少0.1mm、0.2mm、0.3mm、0.4mm或0.5mm的准确度;或者替代地,具有0.25mm、0.5mm、0.75mm或1mm的分辨率)。确保激光器在1级范围内操作的正常方法是将激光器封装在一个大的外壳中,如此当光离开外壳时,光被衰减到足以被认为是1级。这种方法对手持扫描仪不起作用,因为手持扫描仪必须具有相对较小的大小(例如,小于30cm x 30cm x 30cm)。本公开的一些实施例通过适当选择脉冲宽度、峰值功率、重复率和/或占空比来操作封装在主体外壳102中的光源作为1级光源,从而允许扫描仪100在正常日光条件下(例如,在120,000lux、100,000lux、20,000lux、2,000lux或1,000lux)是手持的、安全的和可操作的。这也允许扫描仪100具有相对较短的最小工作距离(例如,不大于35mm的最小工作距离)。

此外,为了增加来自结构光数据的信噪比,并区分结构光数据和纹理(例如,颜色)数据,在一些实施例中,上述VCSEL激光器在可见光谱之外的频率(例如,红外(IR)频率)下操作。在这样的实施例中,除了摄像头镜头(例如,摄像头光学器件106)之外,主体外壳102还封装了IR/可见光束分离器,该光束分离器将IR光引导至第一光学传感器(例如,图6中的CCD检测器602-a)并将可见光引导至第二光学传感器(例如,图6中的CCD检测器602-b)。在一些实施例中,来自第一光学传感器的数据与来自一个或多个内部光源的频闪光同步检测,使得频闪频率的数据优先于其他频率的信息被检测。这可以例如使用同步解调或者通过选通第一光学传感器来与产生光的一个或多个光源同步地收集数据来完成。

在一些实施例中,封装在主体外壳102中的第二光学传感器(例如,图6中的CCD检测器602-b)采集纹理数据(例如,颜色数据)。在一些实施例中,纹理数据(例如,图像)既用于以彩色渲染3D重建,也用于跟踪扫描仪100的位置和/或其旋转(例如,通过摄影测量分析),其反过来又用于配准(例如,对齐)由3D扫描仪100在相对于对象的不同位置(例如,如下面参考图3所述)拍摄的结构光数据(例如,3D形状数据)。

在一些实施例中,主体外壳102还封装一个或多个跟踪扫描仪100的运动的运动传感器。一个或多个运动传感器任选地包括3轴加速度计、3轴陀螺仪和/或3轴磁力计,以测量扫描仪100的位置和/或旋转。在一些实施例中,一个或多个运动传感器包括3轴加速度计、3轴陀螺仪和3轴磁力计中的全部三个,从而被称为九(9)自由度(DOF)传感器,尽管事实上扫描仪100仅具有六个机械自由度(即,三个位置自由度和三个旋转自由度)。来自一个或多个运动传感器的位置和/或旋转数据用于跟踪扫描仪100的位置和/或旋转(例如,通过应用Kalman滤波器),其反过来又用于配准(例如,对齐)由扫描仪100在相对于对象的不同位置(例如,如下面参考图3所述)拍摄的结构光数据(例如,3D形状数据)和颜色数据(例如,图像)。

为了便于机载自动处理(例如,产生对象的至少初始3D重建),为了给用户提供完全移动的扫描体验,在一些实施例中,主体外壳102容纳多个处理器,包括一个或多个现场可编程门阵列、一个或多个图形处理单元(GPU)和/或一个或多个CPU。在一些实施例中,主体外壳102包含足够的处理来生成对象的3D模型的至少初始重建(例如,对象的3D模型的预览)。

在一些实施例中,主体外壳102还容纳显示器114,其显示扫描仪100的图形用户界面。此外,当扫描仪100扫描对象时,扫描仪100的图形用户界面显示对象的初始3D重建(例如,对象的3D重建的预览)。在一些实施例中,显示器114是触敏显示器(有时称为触摸屏),从而也可以接收用户输入(例如,开始扫描、暂停扫描、结束扫描以及以其他方式控制扫描仪100)。

图2是根据一些实施例的3D扫描仪100和/或从3D扫描仪100接收数据并执行采集后处理的3D数据处理计算机系统310的框图(共同地,扫描仪100和系统310被称为“系统100/310”)。注意,在一些实施例中,图2中描述的各种模块在3D扫描仪和3D数据处理计算机系统310之间划分。

系统100/310通常包括存储器204、一个或多个处理器202、电源206、用户输入/输出(I/O)子系统208、传感器209、光源211以及用于互连这些部件的通信总线210。处理器202执行存储在存储器204中的模块、程序和/或指令,从而执行处理操作。

在一些实施例中,处理器202包括至少一个图形处理单元。在一些实施例中,处理器202包括至少一个现场可编程门阵列。

在一些实施例中,存储器204存储一个或多个程序(例如指令集)和/或数据结构。在一些实施例中,存储器204或存储器204的非暂时性计算机可读存储介质存储以下程序、模块和数据结构、或其子集或超集:

·操作系统212;

·Kalman滤波器模块214;

·运动跟踪模块216;

·颜色跟踪模块218;

·3D配准模块220;

·颜色统一模块222;

·融合模块224;

·颜色校准模块226;

·纹理模块228;和

·存储装置230,包括缓冲器、RAM、ROM和/或存储由系统100/310使用和生成的数据的其他存储器。

上述模块(例如,数据结构和/或包括指令集的程序)不需要实现为单独的软件程序、步骤或模块,从而这些模块的各种子集可以在各种实施例中被组合或以其他方式重新排列。在一些实施例中,存储器204存储上述模块的子集。此外,存储器204可以存储上面没有描述的附加模块。在一些实施例中,存储在存储器204或存储器204的非暂时性计算机可读存储介质中的模块提供用于实现下述方法中的相应操作的指令。在一些实施例中,这些模块中的一些或全部可以用包含部分或全部模块功能的专用硬件电路(例如,FPGA)实现。上述元素中的一个或多个可以由所述处理器202中的一个或多个执行。

在一些实施例中,I/O子系统208经由通信网络250和/或经由有线和/或无线连接将系统100/310通信耦合到一个或多个装置,诸如一个或多个远程装置236(例如,外部显示器)。在一些实施例中,通信网络250是互联网。在一些实施例中,I/O子系统208将系统100/310通信耦合到一个或多个集成或外围装置,诸如显示器114。

在一些实施例中,传感器209包括收集3D数据的第一光学传感器(例如,第一CCD检测器,诸如图6中的CCD检测器602-a)、收集纹理(例如,颜色)数据的第二光学传感器(例如,第二CCD检测器,诸如图6中的CCD检测器602-b)和运动传感器(例如,9DOF传感器,其可以使用微机电系统(MEMS)、陀螺仪和一个或多个霍尔传感器实现)。

在一些实施例中,光源211包括一个或多个激光器。在一些实施例中,一个或多个激光器包括垂直腔面发射激光器(VCSEL)。在一些实施例中,光源211还包括产生可见光的发光二极管(LED)阵列。

通信总线210任选地包括互连系统部件和控制系统部件之间的通信的电路(有时称为芯片组)。

图3是根据一些实施例的数据采集环境300的示意图。在数据采集环境300中,3D扫描仪100扫描具有表面的对象302。扫描从3D扫描仪100相对于对象302的多个取向(例如,从位置304)生成颜色数据(例如,对象的表面的彩色图像)。例如,在图3中,3D扫描仪从位置304a(在那里它采集第一彩色图像)重新定位到位置304b(在那里它采集第二彩色图像),再到位置304c(在那里它采集第三彩色图像)。注意,在一些实施例中,3D扫描仪100在采集颜色数据(例如,彩色图像)的同时,采集对应于三维(3D)形状的数据(例如,通过将光的空间图案投射到对象的表面上,并且当光的空间图案投射到对象的表面上时,采集对象的表面的图像(例如,不同于彩色图像))。

注意,第一彩色图像(使用3D扫描仪100在位置304a采集)、第二彩色图像(使用3D扫描仪100在位置304b采集)和第三彩色图像(使用3D扫描仪100在位置304c采集)中的每一个各自都捕捉对象302的表面上的点306。也就是说,在第一、第二和第三彩色图像的每一个中存在对应于对象302表面上的点306的对应像素。在一些实施例中,第一、第二和第三彩色图像中的每一个中的对应像素具有RGB值,根据该值,发光度可以被计算为红色(R)值、绿色(G)值和蓝色(B)值的线性组合(例如,发光度函数)。这种发光度值有时被称为“相对发光度”,并且具有标准化为1或100的值。

在一些实施例中,由3D扫描仪100采集的数据被传输(例如,通过有线或无线连接)到3D数据处理计算机系统310,在那里它被接收。在一些实施例中,3D数据处理计算机系统310生成对象的表面的像素图(例如,纹理图)。替代地,在一些实施例中,像素图由3D扫描仪100生成。

图4是根据一些实施例的从图3所示的数据采集环境300收集的数据的预示性示例。特别地,图4示出了从对象302表面上的点306收集的数据。图4中的曲线图示出了在相对于对象的表面的不同取向上采集的不同颜色图像的各种数据像素的发光度。为此,在一些实施例中,3D扫描仪100和/或3D数据处理计算机系统310确定对象的表面的不同图像中的像素之间的像素级对应关系(例如,在所提供的示例中,配准第一、第二和第三彩色图像)。在一些实施例中,确定对象的表面的不同图像中的像素之间的像素级对应关系包括确定第一彩色图像中的第一像素和第二彩色图像中的第二像素与对象的表面上相同的位置对应。

发光度值相对于对象的表面上的点306的标称法向矢量的角度绘制。在一些实施例中,标称法向矢量是来自对象的3D重建(例如,从对应于在扫描期间采集的三维(3D)形状的数据重建的)的法向矢量。

数据包括来自第一彩色图像的具有发光度404a的第一像素、来自第二彩色图像的具有发光度404b的第二像素、以及来自第三彩色图像的具有发光度404c的第三像素。在一些实施例中,从这些数据确定(例如,通过选择采集具有最大发光度的数据像素的角度,或者通过将数据拟合到预定函数(例如,Gaussian函数)并选择拟合的预定函数具有最大值的角度,如参考图7A-图7C中的方法700的更详细描述)“真法线”的方向θN,T。在一些实施例中,使用“真法线”方向,确定(例如,通过使用在相对于真法线方向超过预定义角度的角度处采集的数据像素——这些数据在图4中显示为实心点,而预定义角度内的角度显示为空心点)漫射值。可以使用真实法线方向来确定其他材料性质,诸如镜面度、金属度参数、表面粗糙度。

图5A-图5C示出了根据一些实施例的用于生成对象的纹理化3D表示的对象的表面的图像的示意性示例(即,图示)。例如,图5A示出了从第一取向拍摄的螺母的图像502a。在图像502a中,在螺母上可以观察到杂散高光504a(例如,当采集图像502a时存在的来自光源的类似镜面反射)。杂散高光504a是在采集图像502a时存在的来自光源的镜面(例如,类似镜面的)反射。图5B示出了从不同于第一取向的第二取向拍摄的第二图像502b,以及图5C示出了从不同于第一取向和第二取向的第三取向拍摄的第三图像502c。图5D示出了根据本发明的一些实施例生成的图5A-图5C中所示的对象(即,螺母)的纹理化3D表示506的示例。对象的纹理化3D表示506不包括杂散高光(例如,不包括存在于对象的表面的图像中的一个或多个杂散高光)。此外,纹理化3D表示506比图5A-图5C的图像(原始数据)提供了更准确地表示对象和桌子两者的纹理(颜色)的模型,使得对象和桌子两者的纹理可以在各种光照条件下更准确地显示。

图6是示出根据一些实施例的3D扫描仪100的各种部件的图。特别地,图6示出了主体外壳102(图1)的横截面。如图6所示,扫描仪100包括(除了其他部件之外):

·第一光学传感器602a(例如,第一电荷耦合装置(CCD)检测器),其收集被扫描对象的3D数据(例如,收集照射在对象的表面上并被对象的表面扭曲的结构光的图像,从中可以确定对象的3D形状的重建)。在一些实施例中,第一光学传感器602a对红外(IR)光敏感(尽管第一光学传感器602a也可以对可见光敏感);

·第二光学传感器602b(例如,第二CCD检测器),其收集被扫描的对象的纹理(例如,颜色)数据(例如,当结构光未显示在对象的表面时收集图像,例如,收集照射在对象上的结构光的频闪脉冲之间的图像)。在一些实施例中,第二光学传感器602b对可见光敏感(尽管第二光学传感器602b也可以对IR光敏感);

·分离可见光和IR光的光束分离器604。光束分离器604优先地将通过摄像头光学器件106接收的IR光导向第一光学传感器602a,并且优先将通过摄像头光学器件106接收的可见光导向第二光学传感器602b;

·光源606。在一些实施例中,光源606是脉冲光源(例如,频闪光源)。在一些实施例中,光源606是红外光源。在一些实施例中,光源606是激光器。在一些实施例中,光源606是垂直腔面发射激光器。在一些实施例中,光源606被配置成在主体外壳102外部的任何地方作为1级激光器操作(例如,通过适当选择脉冲宽度、峰值功率、重复率和/或占空比);

·其上已经形成(例如,印刷或蚀刻的)空间图案的滑块616,光通过该空间图案投射到对象的表面上(例如,滑块不透明和透明形成空间图案)。从而,光源606产生的光穿过滑块616,并通过光源光学器件104作为结构光投射朝向(例如,投射到)对象的表面;和

·包括与光源606、光学传感器602和多个处理器热耦合的单片金属的冷却歧管608(在图中的几个地方标记),所述处理器中包括位于位置614的GPU和位于位置612的FPGA。

由于获得3D数据的方式(例如,从相当强大的光源频闪产生光,以及每秒收集和处理许多图像),热量产生和消除是设计能够实时预览对象3D重建的手持3D扫描仪的最大挑战之一。虽然保持相对低的温度很重要,但是保持一致的温度(空间上和时间上两者)至少同样重要。冷却歧管608通过在3D扫描仪的主要发热部件之间提供热连接将3D扫描仪100的各种部件保持在一致且稳定的温度。从而,冷却歧管608减少了3D扫描仪达到稳定温度所需的“预热”时间,允许更大的处理能力,并增加了3D扫描仪可以收集数据的时间量。

图7A-图7D示出了根据一些实施例的为对象生成纹理模型的方法700的流程图。在一些实施例中,方法700在扫描仪(例如,单个可移动扫描仪)(例如,图1A-1B中的3D扫描仪100,或摄影测量扫描仪)处执行。可移动扫描仪包括一个或多个光学传感器。在一些实施例中,可移动扫描仪包括显示器。在一些实施例中,可移动扫描仪是3D扫描仪,其包括用于生成对象的表面形状的至少一部分的3D重建的处理器。在一些实施例中,可移动扫描仪是便携式手持扫描仪(例如,具有小于30cm x 30cm x 30cm的大小,使得整个装置可以放在30cmx 30cm x 30cm的盒子内)。在一些实施例中,可移动扫描仪不是3D扫描仪(例如,可移动扫描仪是摄影测量扫描仪,其不生成对象形状的3D重建,而是为对象的现有无纹理3D模型生成纹理图)。在一些实施例中,扫描仪是摄影测量扫描仪,其生成对象的表面的3D重建。为了便于解释,方法700被描述为由3D扫描仪100执行。然而,方法700可以使用根据本公开构建的任何可移动扫描仪执行。在一些实施例中,方法700的操作中的一个或多个在与可移动扫描仪分离的计算机系统(例如,图3中的系统310,其执行采集后处理以生成纹理模型)上执行。相反地,在其他实施例中,根据本公开的教导,3D扫描仪100执行不同于方法700的方法。方法700中的一些操作被任选地组合和/或一些操作的顺序被任选地改变。

方法700可用于将不一致的照明和阴影与使用可移动扫描仪扫描的对象的真实表面颜色分离。此外,方法700可以用于确定对象的纹理图的每个像素的材料性质(反射率、镜面颜色、金属度、表面粗糙度)。为此,在一些实施例中,方法700使用来自对象的表面的不同图像(例如,在扫描仪相对于对象的不同取向捕获的图像)的对应像素以及提供捕获不同值的取向的知识的跟踪数据来生成纹理图(以下称为像素图)的单个像素。来自对应数据像素的颜色值使用描述以各种角度入射到对象的表面上的光的行为的方程(例如,Lambertian漫射模型或更复杂的纹理模型,也称为光照或阴影模型)与材料性质相关。在一些实施例中,方法700为每个像素点产生单个校正的RGB值,从而去除杂散高光(即,当采集颜色数据时存在的来自光源的镜面反射,其在不同照明下渲染纹理化3D重建时不必要存在)。方法700还为非颜色材料性质产生至少一个每像素值,诸如最大镜面值和该值出现的角度(例如,“真法线”)。

参考图7A,3D扫描仪100扫描(702)具有表面的对象。扫描从3D扫描仪100相对于对象的多个取向生成颜色数据。在一些实施例中,与3D扫描仪100分离的3D数据处理计算机系统310接收由3D扫描仪100从3D扫描仪100相对于对象的多个取向生成的颜色数据(例如,如参考图3所述)。在一些实施例中,3D扫描仪100不具有关于3D扫描仪100相对于对象的取向的先验知识(例如,取向不是预定义的或精确校准的)。

在一些实施例中,扫描包括(704)在相对于对象的多个取向上重新定位3D扫描仪100。例如,如图3所示,3D扫描仪100从位置304a重新定位到位置304b再重新定位到位置304c。3D扫描仪100在这些位置中的每一个采集对象302的图像。

在一些实施例中,单个光学传感器从3D扫描仪100相对于对象的多个取向获得(706)颜色数据(例如,单个光学传感器在扫描过程期间被重新定位)。如下所述,在一些这样的实施例中,3D扫描仪100包括附加光学传感器,其获得除颜色数据之外的数据。

在一些实施例中,扫描生成(708)对应于对象的表面的至少一部分的三维(3D)形状的数据(例如,可以从其重建对象的表面的至少一部分的3D形状的数据)。

在一些实施例中,一个或多个光学传感器包括(710)第一光学传感器(例如,第一红外CCD)(例如,图6中的CCD检测器602a)。在一些实施例中,第一光学传感器用于生成对应于对象的表面的至少一部分的3D形状的数据。生成对应于对象的表面的至少一部分的三维(3D)形状的数据包括重复执行以下操作:将光的空间图案投射到对象的表面上,以及当光的空间图案被投射到对象的表面上时,使用第一光学传感器采集对象的表面的图像。

在一些实施例中,一个或多个光学传感器包括(712)第二光学传感器(例如,第二光学摄像头)(例如,图6中的CCD检测器602b)。在一些实施例中,第二光学传感器用于生成颜色数据(例如,第二光学传感器是在操作706中描述的单个光学传感器)。从3D扫描仪100相对于对象的多个取向生成颜色数据包括:在3D扫描仪100以相对于对象的多个取向中的各取向定位的情况下,使用第二光学传感器采集对象的表面的图像。注意,在这样的实施例中,来自颜色数据的多个像素被用于生成像素图的单个像素的值(例如,其中多个像素包括来自不同图像的对应像素)。为了避免混淆,对象的表面图像的像素在本文中有时被称为“数据像素”。

在一些实施例中,图像为数据像素提供RGB值。在一些实施例中,由第二光学传感器获得的图像不同于由第一光学传感器获得的图像,其用于生成对应于对象的表面的至少一部分的三维(3D)形状的数据。在一些实施例中,用于生成颜色数据的图像是在光的空间图案没有被投射到对象的表面上时获得的(例如,在光的空间图案投射到对象的表面上的投射之间)。

在一些实施例中,3D扫描仪100确定(714)对象的表面的不同图像中的数据像素之间的像素级对应关系(例如,配准由第二光学传感器获得的彩色图像)。在一些实施例中,确定对象的表面的不同图像中的像素之间的像素级对应关系包括确定第一图像中的第一像素和第二图像(不同于第一图像)中的第二像素对应于对象的表面上的相同位置。

参考图7B,在一些实施例中,3D扫描仪100使用对应于对象的表面的至少一部分的三维(3D)形状的数据,生成(716)对象的表面的形状的至少一部分的3D重建。在一些实施例中,使用对应于对象的表面的至少一部分的三维(3D)形状的数据来确定像素级对应关系(例如,对应于对象的表面的至少一部分的三维(3D)形状的数据用于生成3D重建,该3D重建用于配准彩色图像)。在一些实施例中,使用图像配准(例如,特征检测和匹配,或者通过定义图像之间的对应关系)来确定像素级对应关系。在一些实施例中,使用摄影测量来确定像素级对应关系(例如,通过使用图像分析来确定不同图像中的两个像素对应于对象的表面上的相同位置)。在某些情况下,摄像头位置以及表面的3D形状是已知的,并且使用射影几何计算像素级对应关系。

在一些实施例中,3D重建是对象的多边形表示(例如,包括多个多边形的多边形网格,其中多个多边形中的每个多边形表示对象的表面的一个区域)。从而,多个多边形中的每个多边形具有标称法向矢量。确定对象的表面的不同图像中的数据像素之间的像素级对应关系包括选择来自不同图像中对应于由相同多边形表示的区域的像素作为对应像素(例如,将来自不同图像的表示相同多边形的多个像素分组在一起)。参考图4,在一些实施例中,标称法向矢量是多边形的标称法向矢量。在一些实施例中,选择来自不同图像中对应于由相同多边形表示的区域的像素作为对应像素包括将颜色数据映射到对象的3D重建的坐标系上。

在一些实施例中,3D扫描仪100使用对象的表面形状的至少一部分的3D重建来确定(718)3D扫描仪100相对于从中获得颜色数据的对象的多个取向。在一些实施例中,运动数据(例如,来自9DOF传感器的)也用于确定多个取向(例如,确定相对于对象的表面获得颜色数据的像素的角度)。例如,来自多个源的信息(例如,3D数据、颜色数据和来自9DOF传感器的运动数据被组合以为不同图像确定3D扫描仪100相对于对象的取向)。

3D扫描仪100使用至少颜色数据生成(720)对象的表面的像素图。对于多个像素中的每个相应像素,像素图包括:对象的表面上对应点的颜色值;和对象的表面上对应点的非颜色性质的值。在一些实施例中,对于多个像素中的每个相应像素,像素图包括对象的表面上对应点的多个非颜色性质的值。在一些实施例中,像素图是(722)对象的表面的纹理图(例如,包括一组参数值,这些参数值一起使用以便真实感地表示3D模型)。在一些实施例中,颜色值是像素的漫射值。在一些实施例中,漫射值(例如,RGB值)表示材料在所有方向(例如,在所有方向上相等地)散射光的趋势。注意,与数据像素(即图像的像素)不同,像素图的像素代表对象的表面的一个区域。从而,在一些情况下,像素图的像素被称为surfel(即,表面元素),并且像素图被称为surfel图。

在一些实施例中,非颜色性质是纹理性质(例如,影响对象的表面上对应点的外观的性质)。在一些实施例中,所述一个或多个非颜色性质选自(724)由以下项组成的组:反射率参数、镜面参数、金属度参数、表面粗糙度或法线方向。在一些实施例中,镜面参数表示代表材料像镜子一样散射光的趋势(例如,入射角等于反射角)的趋势。

在一些实施例中,像素图的多个像素中的每个像素的颜色值是(726)矢量值(例如,RGB值)。

在一些实施例中,像素图的多个像素中的每一个的非颜色性质的值是(728)标量值(例如,0和1之间的单个值)。

在一些实施例中,对于像素图的多个像素中的每个相应像素,对象的表面上的对应点的颜色值是(730)校正的颜色值(例如,“真漫射”值)。生成经校正的颜色值包括:使用颜色数据(例如,使用来自对象的表面的不同图像的对应像素)确定相应像素的标称颜色值;以及使用对象的表面上对应点的非颜色性质的值来调整像素图的相应像素的标称颜色值(例如,3D扫描仪100使用颜色数据确定“真法线”方向,并使用“真法线”方向来确定“真漫射”值)。

在一些实施例中,像素图的像素的标称颜色值的调整被用于去除杂散高光(例如,通过降低由于来自闪光灯和/或其他光照的反射而显得过亮的像素的强度)。在常规系统中,这种杂散高光被手动去除(例如,由艺术家)。从而,本公开的一些实施例避免了从纹理数据手动去除热点的需要。

参考图7C,在一些实施例中,非颜色性质是(732)法线方向。对于像素图的多个像素中的每个相应像素,使用来自相对于相应像素的法线方向的预定义角度范围的颜色数据来确定颜色值。

在一些实施例中,预定义角度范围是(734)大于漫射阈值角度的角度范围。对于像素图的多个像素中的每个相应像素,使用在小于漫射角度阈值的相对于法线方向的角度获得的颜色数据来确定镜面参数。

在一些实施例中,对于像素图的多个像素中的每个相应像素,通过选择颜色数据中出现最大发光度的角度作为法线方向来确定(736)法线方向。

例如,在一些实施例中,方法700包括对于像素图的多个像素中的每个相应像素,确定对应数据像素中的哪个具有最高发光度。获得具有最高发光度的对应数据像素的角度被确定为法线方向(例如,“真法线”)。在大于该“真法线”(例如55°)的角度获得的数据像素被用于通过用于漫射发光度的Lambert漫反射模型来确定相应像素的调整后的颜色值:

其中Ld是在相对于法线方向的观察角θi下的发光度,Eo是入射到表面上的光的能量,和p是表面的漫射颜色(有时也称为像素或surfel的漫射反照率)。

在一些实施例中,通过从具有最高发光度的数据像素的发光度中减去拟合的Lambert漫反射模型的最大值(例如,θi=0值),为相应像素确定镜面参数(例如,光泽度,或者相反地,粗糙度),根据下面的微刻面理论渲染方程,:

Lo=Ld+Ls (2)

其中Ls是镜面发光度,和Lo是法向入射时的发光度。

在一些实施例中,对于像素图的多个像素中的每个相应像素,通过以下步骤来确定(738)法线方向:将颜色数据(例如,感知发光度)拟合到获得颜色数据的角度的预定函数,以及选择拟合的预定函数具有最大发光度的角度作为法线方向。如上所述,在大于该“真法线”(例如55°)的角度获得的数据像素被用于通过用于漫射发光度的Lambert反射模型来确定相应像素的调整后的颜色值。根据方程(2),通过从拟合感知的发光度的最高值中减去拟合的Lambert反射模型的最大值(例如,θi=0值),为相应像素确定镜面参数(例如,光泽度,或者相反地,粗糙度)。

更一般地,在一些实施例中,方法700包括,对于像素图的多个像素中的每个相应像素,使用对应于该像素的颜色数据的第一子集来确定第一参数(例如,镜面参数或真实法线方向),以及使用对应于该像素的不同于颜色数据的第一子集的颜色数据的第二子集来确定第二参数(例如,漫射参数)。在一些实施例中,如上所述,两个颜色数据子集(用于计算漫射颜色的数据和用于计算镜面颜色的数据)的分离可以基于获得数据的角度。在一些实施例中,两个颜色数据子集的分离可以基于其他原理如绝对颜色或其任何变化完成。

参考图7D,在一些实施例中,对于像素图的多个像素中的每个像素,对象的表面上的对应点的非颜色性质的值通过以下步骤确定(740):向一组一个或多个纹理方程(例如,光照和/或阴影方程)(例如,纹理模型,其可以包括阴影方程和/或反射模型)的求解器提供对象的表面的图像和指示获得图像的3D扫描仪100相对于对象的取向的信息;以及从该组一个或多个纹理方程的求解器接收对象的表面上对应点的非颜色性质的值作为输出。

注意,在一些实施例中,纹理模型包括常规上用于基于物理的渲染的一组方程。从而,在一些实施例中,操作740相当于“反向”运行基于物理的渲染(PBR)模型。通常,这样的PBR模型被计算机动画制作者使用(例如,用于视频游戏或电影),他们输入他们已经选择的材料性质,并且接收取决于动画制作者选择的光照的感知颜色作为输出。操作740使用各种角度的感知颜色作为输入,并确定材料性质。

在一些实施例中,纹理模型是双向反射分布函数(BRDF)模型。例如,Lambertian漫反射模型可以写成:

其中l是光源方向上的单位矢量,v是观察者方向上的单位矢量。

在一些实施例中,纹理模型是微刻面镜面BRDF模型,诸如Cook-Torrance微刻面镜面阴影模型或其他微刻面模型。Cook-Torrance微刻面镜面阴影模型假设表面包含微刻面,每个微刻面都镜面反射。Cook-Torrance微刻面镜面阴影模型可以写成:

其中h是v和l的单位角平分线,n是单位法向矢量(例如,在“真法线”方向上的单位向量)。函数D、F和G定义如下。在一些情况下,Cook-Terrance模型用于确定镜面参数(例如镜面阴影)的值,而Lambertian反射模型用于确定漫射值。

只有法线方向为h的刻面对从l到v的镜面反射分量有贡献。从而,函数D(h)是刻面斜率分布函数,其表示定向在方向h上的部分刻面。函数D可以写成:

其中α是粗糙度的平方。

函数G是几何衰减因子,其考虑了刻面互相遮掩的情况,且可以写成:

G(l,v,h)=G1(v)×G1(l) (7)

其中k是特定于模型的参数。例如,在一些实施例中,k与材料的粗糙度有关。

函数F是描述光如何从每个光滑的微刻面反射的Fresnel项,且可以写成:

F(v,h)=F0+(1-F0)×2(-5.55473(v·h)-6.98316)(v·h) (8)

其中Fo是法向入射时的镜面反射率。

请注意,上面描述的BRDF模型和公式,包括Cook-Torrance微刻面镜面阴影模型,只是纹理模型的示例。鉴于本公开的益处,本领域技术人员将认识到,根据本公开的各种实施例,可以使用任何数量的纹理模型。其他纹理模型包括但不限于Phong反射模型、Gaussian分布模型、Beckmann分布模型、Heidrich–Seidel各向异性模型和/或Ward各向异性模型。

从而,本公开的一些实施例假设对象上的表面的纹理可以被分解(例如,可相加)成材料的多个纹理性质(例如,镜面和漫射发光度),并且这些纹理性质可以通过纹理模型与颜色观测相关。然而,除非明确说明,否则随后的权利要求不应被解释为限于特定的纹理模型。

此外,从上面的方程可以看出,一些纹理模型将一个或多个光源的位置与观测的颜色相关。在一些实施例中,3D扫描仪包括光源。在一些实施例中,3D扫描仪上的光源比3D扫描仪外部的任何光源明显更亮。从而,在一些实施例中,光源的位置是已知的,并且该方法包括在纹理方程中使用光源的已知位置。例如,该方法包括假设镜面反射仅由3D扫描仪上的光源引起,并且求解纹理方程不考虑3D扫描仪外部的任何光源(例如,求解纹理方程包括假设与3D扫描仪上的光源发射的光相比,环境照明可以忽略不计)。

在一些实施例中,3D扫描仪100使用对象的表面的形状的至少一部分的3D重建和像素图来生成(742)对象的纹理化3D表示。

在一些实施例中,3D扫描仪100使用(744)对象的纹理化3D表示来动画化动画中的对应对象(例如,通过将颜色图映射到对象的3D重建的多边形网格上)。

在一些实施例中,非颜色性质是法线方向,并且像素图中的法线方向用于度量、检查和/或质量保证目的(例如,表面检查、划痕和裂纹检测等)。在一些实施例中,3D扫描仪100检测一个或多个裂纹(或划痕)并显示(例如,在集成显示器上或与3D扫描仪100分离的显示器上)具有显示裂纹(或划痕)位置的视觉标记的对象的3D表示。在一些实施例中,根据对象的划痕(或裂纹)超过预定义阈值(例如,质量保证阈值)的确定,3D扫描仪100生成指示对象的划痕(或裂纹)超过预定义阈值的报告。

在一些实施例中,3D扫描仪100显示(例如,在集成显示器或与3D扫描仪100分离的显示器上)像素图(例如,显示对象的纹理化3D表示)。在一些实施例中,3D扫描仪100显示像素图的颜色值,而不显示像素图的非颜色性质的值(例如,仅用漫射颜色显示对象的纹理3D表示)。在一些实施例中,3D扫描仪100显示像素图的非颜色性质的值,而不显示像素图的颜色值(例如,仅用漫射颜色显示对象的纹理3D表示)。在一些实施例中,3D扫描仪100接收用户输入,并且响应于用户输入,在显示对象的纹理化3D表示、显示像素图的颜色值和显示所述一个或多个非颜色性质的值之间切换(例如,响应于接收到用户输入,3D扫描仪100从显示对象的纹理化3D表示转变为显示像素图的颜色值或非颜色性质的值;或者,响应于接收到用户输入,3D扫描仪100从显示像素图的颜色值转变为显示对象的纹理化3D表示或显示非颜色性质的值;或者,响应于接收到用户输入,3D扫描仪100从显示非颜色性质的值转变为显示对象的纹理化3D表示或显示像素图的颜色值)。

出于解释的目的,已经参考特定实施例和附图描述了前述描述。然而,上面的说明性讨论并不旨在穷举或将本发明限制于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够最好地使用本发明和具有各种修改的各种描述的实施例,以适合预期的特定用途。

还应当理解,尽管术语第一、第二等在一些情况下在本文中使用以描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语仅用于区分一个元素和另一个元素。例如,第一传感器可以被称为第二传感器,并且类似地,第二传感器可以被称为第一传感器,而不脱离所描述的各种实施例的范围。第一传感器和第二传感器都是传感器,但是它们不是同一个传感器,除非上下文清楚地另有说明。

在这里描述的各种实施例的描述中使用的术语仅仅是为了描述特定的实施例,而不是为了进行限制。如在各种所描述的实施例和所附权利要求的描述中所使用的,单数形式“一(a)”、“一(an)”和“该”旨在也包括复数形式,除非上下文清楚地另外指出。还应当理解,这里使用的术语“和/或”是指并包括相关列出项中的一个或多个的任何和所有可能的组合。将进一步理解,当在本说明书中使用时,术语“包括(includes)”、“包括(including)”、“包括(comprises)”和/或“包括(comprising)”指定所陈述的特征、整体、步骤、操作、元素和/或部件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、元素、部件和/或其分组的存在或添加。

如本文所使用的,术语“如果”视上下文而定任选地被解释为表示“当”或“在”或“响应于确定”或“响应于检测”。类似地,视上下文而定,短语“如果确定”或“如果检测到[所述条件或事件]”任选地被解释为表示“在确定”或“响应于确定”或“在检测到[所述条件或事件]”或“响应于检测到[所述条件或事件]”。

30页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:水平垂直线检测装置及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!