生成三维模型的制作方法

文档序号:13688874
生成三维模型的制作方法

物体的三维(3D)模型具有多个用途。3D模型可以用于各种应用,包括但不限于,电影和视频游戏资产、医疗矫正术和弥补术、工业设计等。

附图说明

以下详细说明书参考附图,其中:

图1是用于捕捉并处理3D扫描数据的示例性计算设备的方框图;

图2是与用于捕捉并处理3D扫描数据的扫描设备通信的示例性计算设备的方框图;

图3是用于由计算设备执行以用于捕捉并处理3D扫描数据的示例性方法的流程图;

图4A是用于由计算设备执行以用于提供自动3D捕捉技术的示例性方法的流程图;

图4B是用于由计算设备执行以用于提供手动3D捕捉技术的示例性方法的流程图;以及

图5是在3D捕捉技术期间用于提供视觉提示的示例性用户界面的示意图。

具体实施方式

捕捉系统可以用于数字地捕捉与真实世界物体的形状和外观相关的数据。捕捉的数据可以随后用于构建物体的三维(3D)模型。可以使用不同的技术以收集关于真实世界物体的形状的数据,诸如接触扫描仪、飞行时间激光扫描仪、三角测量激光扫描仪、结构化光扫描仪等。例如,手持式设备可以用于通过当重新定位手持式设备时进行距离测量而收集形状数据。在该示例中,手持式设备使用内部坐标系统追踪其位置,内部坐标系统用于参考距离测量。

示例在此描述了允许用户放置物体表面并扫描其以从所有侧面生成完整的3D模型的3D捕捉技术。所生成的模型是具有纹理的3D网格,并且扫描过程包括从变化的定向渐进扫描并将这些扫描接合在一起以生成单个、完整的模型。对准每个增量扫描以适合于并扩展现有模型。

在一些示例中,当真实世界物体以多个定向而重新定位时获得真实世界物体的3D扫描数据,其中3D扫描数据包括每个与一个定向相关联的3D扫描通路(passes)。当在每个定向处重新定位真实世界物体时使用投影仪投影与真实世界物体的位置相关的视觉提示。接合3D扫描通路以生成真实世界物体的3D模型,其中当将每个3D扫描通路合并至3D模型中时在显示器上示出3D模型的实时表示。

现在参照附图,图1是用于捕捉并处理3D扫描数据的示例性计算设备100的方框图。计算设备100可以是能访问扫描设备的任何计算设备(例如智能电话、平板计算机、膝上型计算机、台式计算机等)。在图1的实施例中,计算设备100包括处理器110、接口115、投影仪118、以及机器可读存储介质120。

处理器110可以是一个或多个中央处理单元(CPUs)、微处理器、和/或适用于检索并执行存储在机器可读存储介质120中指令的其他硬件设备。处理器110可以获取、解码并执行指令122、124、126以使能检测接收用户以用于捕捉并处理3D扫描数据。作为检索并执行指令的备选例或除此之外,处理器110可以包括一个或多个电子电路,包括用于执行指令122、124、126的一个或多个的功能的多个电子部件。

接口115可以包括用于与扫描设备通信的多个电子部件。例如,接口115可以是以太网接口、通用串行总线(USB)接口、IEEE 1394(火线)接口、外部串行高级技术附件(eSATA)接口、或者适用于与扫描设备通信的任何其他物理连接接口。备选地,接口115可以是无线接口,诸如无线局域网(WLAN)接口或近场通信(NFC)接口。在工作中,如以下详述,接口115可以用于发送数据至扫描设备的对应接口并从其接收数据。

投影仪118是用于将图像投影至表面上的光学设备。例如,投影仪118可以是嵌入式光源、激光器、视频投影仪、或适用于投影图像的任何其他光学设备。

机器可读存储介质120可以是存储可执行指令的任何电子、磁性、光学或其他物理存储设备。因此,机器可读存储介质120可以例如是随机访问存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等等。如以下详述,机器可读存储介质120可以采用可执行指令编码以用于捕捉并处理3D扫描数据。

3D扫描数据获得指令122从扫描设备获得3D扫描数据。扫描设备能够捕捉对于真实世界物体在扫描设备的视场中的形状和外观数据。在一些情形中,扫描设备是装备具有能够确定真实世界物体在相机视场中景深数据的多个透镜的3D相机。可以经由多次扫描通路而获得3D扫描数据,每个获得物体在不同位置和/或定向处的形状和外观信息。扫描通路可以是扫描循环的一部分,例如当围绕中心轴线旋转物体整圈时获得扫描数据。旋转可以如参照图4A所述手动地执行,或者如参照图4B所述自动地执行。在该示例中,扫描设备经由接口115连接至计算设备100。在其他示例中,扫描设备可以是计算设备100的集成部件。

视觉提示投影指令124使用投影仪118以在真实世界物体和物体所驻留表面上投影视觉提示。视觉提示向用户提供与物体的位置相关的信息。例如,视觉提示可以包括物体所面对方向的指示。当执行扫描循环时,视觉提示也可以标记对于物体已经完成的扫描通路。当使用手动旋转用于扫描时,视觉提示也可以指导用户如何对于每个3D扫描通路重新定位物体。示例性的视觉提示如以下参照图5所述。

扫描通路接合指令126将以上获得的扫描通路接合以创建3D模型。在一些情形中,当由扫描设备获得每一个时(即,在每次扫描通路之后修改3D模型以包括最新3D数据)接合扫描通路。当对于每次扫描通路而修改时也可以为用户显示3D模型。接合扫描通路将每个扫描通路中3D数据组合为单个3D模型。例如,可以识别并使用扫描通路中特色的特征以对准通路中数据,因此通路中数据可以组合为单个模型。

图2是经由网络245与计算设备200通信得示例性扫描设备250的方框图。如图2中所示以及以下所述,扫描设备250可以与计算设备200通信以捕捉并处理3D扫描数据。

如所示,计算设备200可以包括多个模块202-214,而扫描设备250可以包括多个模块252-254。每个模块可以包括编码在机器可读存储介质上并由各自设备200、250的处理器可执行的一系列指令。此外或作为备选的,每个模块可以包括一个或多个硬件设备,包括用于实施以下所述功能的电子电路。

与图1的计算设备100相同,计算设备200可以是智能电话、笔记本、台式机、平板电脑、工作站、移动设备、或适用于执行以下所述功能的任何其他设备。如以下详述,计算设备200可以包括用于捕捉并处理3D扫描数据的一系列模块202-214。

扫描接口202可以管理与扫描设备250的通信。具体的,扫描接口202可以启动与扫描设备250的连接并随后向扫描设备250发送扫描数据或从其接收扫描数据。

投影仪203在真实世界物体上以及真实世界物体周围投影视觉提示。例如,投影仪203可以包括在扫描循环期间用于提供视觉提示(即,扫描的定向、对于扫描循环的下一个定向等)的发光二极管(LED)。扫描UI模块210可以在扫描过程期间使用投影仪203以指示用户定位真实世界物体。

3D建模模块204可以处理扫描设备250的扫描数据以生成3D模型。尽管以下详述了3D建模模块204的部件,结合图1的指令122和126而以上提供关于3D建模模块204的示例性实施方式的额外细节。

3D数据扫描模块206从扫描设备250获得并处理扫描数据。当重新定位真实世界物体时,3D数据扫描模块206可以指示扫描设备250以执行扫描循环。扫描循环包括多个扫描通路,当物体在不同位置时获取每一个扫描通路并且可以组合以生成对于物体的形状和外观数据的全3D集合。例如,为了在3D中扫描物体,扫描设备250可以在物体上以图案的序列而投影结构化可见光和/或结构化红外光,并且捕捉和分析反射光。随后使用物体上结构化光图案的扭曲以计算物体的形状、深度和纹理。扫描设备250也可以捕捉物体的图像以用作所生成模型的表面纹理。

3D数据扫描模块206也可以使用扫描设备250以执行背景扫描。背景扫描允许区分物体与背景(例如表面、旋转机构等)。背景扫描可以在表面上放置物体之后执行。如果使用旋转机构,该背景扫描也可以包括多个扫描,其中旋转机构自动地旋转至倾斜和非倾斜位置。

3D数据扫描模块206也可以使用扫描设备250以执行预扫描。在预扫描期间,当其360度时扫描设备250快速地扫描物体。使用快速扫描以获得初步扫描数据以用于创建初步物体模型,这允许用户查看物体的总体形状并观察扫描过程如何渐进地添加细节。

接合模块208基于由3D数据扫描模块206获得的扫描数据而创建3D模型。具体地,接合模块208可以将3D扫描数据的扫描通路接合在一起以创建真实世界物体的全3D模型。当由3D数据扫描模块206获得时可以由接合模块208接合每个扫描通路至之前的扫描通路。例如,可以分析扫描通路以识别物体的特色特征以用于在合适点处重叠扫描通路。在接合了所有扫描通路之后,创建真实世界物体的全3D模型。

扫描UI模块210展现用于执行真实世界物体的3D扫描的用户界面(即,3D扫描应用的用户界面)。尽管以下详细描述扫描UI模块210的部件,结合图1的指令以上提供关于扫描UI模块210的示例性实施方式的额外细节。

定位模块212可以使用投影仪203以当重新定位物体以用于扫描时提供视觉提示。在3D数据扫描模块206执行了预扫描之后,定位模块212可以直接地在物体以及围绕其的表面上提供视觉提示。视觉提示可以例如是如以下参照图5所述,当执行扫描通路时可以由定位模块212更新视觉提示。例如,可以在表面上标识已完成的扫描通路,并且也可以显示对于下一个扫描通路的物体的位置。

对于手动扫描,定位模块212引导用户以在表面上手动地旋转物体。在使用旋转机构的情形中,自动地旋转物体,并且定位模块212可以示出旋转和扫描通路的进程。在每次360度旋转(即,扫描循环)的结束处,用户可以在计算设备200的显示器上检查模型,这可以包括旋转模型以从所有侧面检查物体。如果用户选择继续扫描以改进模型,他可以沿不同定向重新定位物体并继续额外的扫描循环。每次全360度旋转物体的构想是促进接合单个扫描的精确性。

实时模型模块214可以显示当执行扫描时物体的实时表现(例如来自相机的图像流)。当完成每个扫描通路并更新了模型时,可以更新实时表示以反映来自扫描通路的新细节。实时模型也可以允许用户在用户界面中重新定位模型,因此可以检查模型的所有侧面。

扫描设备250可以是计算设备200的外围或集成部件。扫描设备250是适用于捕捉3D数据的任何设备,诸如结构化光相机设备、激光扫描仪等。如以下详述,扫描设备250可以包括用于捕捉3D数据的一系列模块252-254。

在图2中,扫描设备250包括用于捕捉结构化光的相机252。例如,相机252可以包括标准和红外相机的组合,其中标准相机用于捕捉物体表面上的纹理以及红外相机用于捕捉形状数据。红外相机可以分析投影在物体表面上的结构化红外光的图案(例如星形场等)以获得形状数据。在该情形中,结构化红外光可以由3D数据使能器254投影。

图3是用于由计算设备100执行以用于捕捉并处理3D扫描数据的示例性方法300的流程图。尽管以下参照图1的计算设备100描述方法300的执行,可以使用用于执行方法300的其他合适的设备,诸如图2的计算设备200。方法300可以以存储在机器可读存储介质诸如机器可读存储介质120上的指令的形式、和/或以电子电路的形式而实施。

方法300可以开始于方框305并继续至方框310,其中计算设备100从扫描设备获得3D扫描数据。3D扫描数据包括对于真实世界物体在扫描设备的视场中的形状和外观数据。在方框315中,计算设备100使用投影仪以在真实世界物体以及物体所驻留表面上投影视觉提示。视觉提示可以为用户提供关于扫描设备的当前扫描循环的信息(例如下一个扫描通路、完成的扫描通路的位置等)。

在方框320中,计算设备100接合以上获得的扫描通路以创建3D模型。在一些情形中,当由扫描设备获得每一个时接合扫描通路(即,在每次扫描通路之后修改3D模型以包括最新3D数据)。方法300可以随后继续至方框325,其中方法300可以停止。

图4A是由计算设备100执行以用于提供自动化3D捕捉技术的示例性方法400。尽管以下参照图1的计算设备100描述了方法400的执行,可以使用用于执行方法400的其他合适的设备,诸如图2的计算设备200。方法400可以以存储在机器可读存储介质诸如机器可读存储介质120上的可执行指令的形式、和/或以电子电路的形式而实施。

方法400可以开始于方框402并继续至方框404,其中计算设备100引导用户连接并定位旋转机构。例如,计算设备100可以在表面上为旋转机构投影标识了位置和定向的视觉提示。在方框406中,计算设备100确定旋转机构是否恰当的定位。如果旋转机构并未恰当的定位,方法400可以返回至方框404。

如果旋转机构恰当的定位,在方框408中计算设备100引导用户在旋转机构上放置真实世界物体。在方框410中,计算设备100执行物体的预扫描以生成初步模型。在方框412中,计算设备100从用户获得扫描参数。例如,用户可以指定具有与被扫描物体类似形状的参考物体。

在方框414中,随着自动地重新定位物体,计算设备100执行扫描循环。具体的,旋转机构可以在扫描通路之间旋转物体,因此可以从物体的所有侧面获得扫描数据。当执行扫描通路时,将扫描通路接合至初步模型中以改进其细节。在方框416中,计算设备100确定用户是否满意3D模型。

如果用户不满意3D模型,在方框418中计算设备100引导用户重新定位物体以用于第二扫描循环。例如,计算设备100可以提供循环指令,指示用户改变旋转机构上物体的倾斜以用于第二扫描循环。在旋转机构上重新定位物体之后,方法400返回至方框414以执行第二扫描循环。

如果用户满意3D模型,在方框420中计算设备100清理3D模型。例如,计算设备100可以从3D模型移除人造物。在该示例中,计算设备100也可以提供允许用户手动地移除人造物的用户界面。为了清理3D模型,计算设备100也可以完成3D模型的接合(即,接合所有扫描通路)。方法400可以随后继续至方框422,其中方法400可以停止。

图4B是由计算设备100执行以用于提供手动3D捕捉技术的示例性方法450的流程图。尽管以下参照图1的计算设备100描述方法450的执行,可以使用用于执行方法450的其他合适的设备,诸如图2的计算设备200。方法450可以以存储在机器可读存储介质诸如可读存储介质120上的可执行指令的形式、和/或以电子电路的形式而实施。

方法450可以开始于方框452并且继续至方框454,其中计算设备100在表面上投影虚拟旋转机构。例如,虚拟旋转机构可以如以下参照图5所述。在方框456中,计算设备100引导用户在虚拟旋转机构上放置真实世界物体。例如,计算设备100可以在表面上投影识别了物体的位置和定向的视觉提示。

在方框458中,计算设备100执行物体的预扫描以生成初步模型。在方框460中,计算设备100从用户获得扫描参数。例如,用户可以指定具有与被扫描的物体类似形状的参考物体。

在方框462中,计算设备100针对物体的当前位置执行通路扫描。当执行扫描通路时,将扫描通路接合至初步模型中以改进其细节。在方框464中,计算设备100确定是否存在将要执行的更多扫描通路(即,扫描循环是否完成)。如果存在待执行的更多扫描通路,在方框466中计算设备100引导用户在虚拟旋转机构上旋转物体。具体地,计算设备100可以提供目标视觉提示,其指示用户将物体重新定位至目标位置。在手动旋转了物体之后,方法400返回至方框462,其中计算设备100执行下一个扫描通路。

如果不存在待执行的更多扫描通路,在方框468中计算设备100确定用户是否满意3D模型。如果用户不满意3D模型,在470方框中计算设备100引导用户重定位物体以用于第二扫描循环。例如,计算设备100可以提供循环指令,指示用户改变虚拟旋转机构上物体的倾斜角以用于第二扫描循环。在虚拟旋转机构上重定位了物体之后,方法450返回至方框462以启动第二扫描循环。

如果用户满意3D模型,在方框472中计算设备100清理3D模型。例如,计算设备100可以移除人造物并完成3D模型的接合。方法450可以随后继续至方框474,其中方法450可以停止。

图5是用于在3D数据捕捉期间提供视觉提示的示例性用户界面500的示意图。可以在3D数据捕捉期间将用户界面500投影至表面上以引导用户。如所示,用户界面500示出虚拟旋转机构,其包括物体位置502,完成的扫描通路504A、504B、504C、504D,下一个扫描通路506,以及未来的扫描通路508A、508B、508C。

物体位置502示出了被扫描的物体的位置和方向。当由用户移动物体时,可以实时地更新物体位置502。当完成了扫描通路时,更新用户界面500以示出已完成的通路504A-504D。如所示,扫描通路504D已经刚刚完成,并且用户被引导以重定位物体用于下一个扫描通路506。当下一个用户通路506和未来扫描通路508A-508C完成时,扫描循环完成。在该阶段,可以确定用户是否满意3D模型。

前述公开描述了用于捕捉并处理3D扫描数据的多个示例。以该方式,在此所公开的示例使能通过提供通过扫描过程引导用户的被投影视觉提示和实时模型更新而进行3D数据捕捉。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1