3D模型的增强扫描的制作方法

文档序号:17932323发布日期:2019-06-15 01:00阅读:279来源:国知局
3D模型的增强扫描的制作方法

三维(3d)扫描技术允许真实世界对象和环境被转换成对应的3d虚拟对象。3d虚拟对象具有许多可能的用途,例如用于3d打印、增强现实(ar)和虚拟现实(vr)体验、快速原型化等。通常而言,可以通过利用一个或多个扫描设备对环境进行扫描来生成3d虚拟对象,所述扫描设备包括能够检测真实世界的物理特征的任何数量的环境传感器。这些物理特征被转换成3d虚拟对象的对应特征。

在一些情况下,通过扫描所产生的(多个)3d对象可能是不完整或不准确的。这可能来自于导致难以检测到物理特征的环境条件,例如不充足的光线、接近度等。此外,扫描设备在感测能力方面可能差别很大,这使得难以确定对具体设备的理想的扫描条件。作为另一因素,在一些情况下,扫描设备可能无法访问到真实世界对象的一些角度,这在所感测的数据中留下了间隙。这些各种复杂情形会导致从3d扫描所产生的3d虚拟对象的缺陷,例如缺失部分或者模型中的孔洞或者纹理的像素撕裂。因此,由于来自扫描设备的不充足的环境信息,可能无法准确地完成对物理环境的再现。



技术实现要素:

在一些方面中,本公开提供了使用来自真实世界对象的3d捕获数据以及使用来自至少一个网格拟合库对象的数据的对对象的推测的完成,对3d扫描的对象进行可视化和生成的系统和方法。将所扫描的网格与经推测的库对象进行融合使得用户能够自动完成比较难以扫描到或不可能扫描到的区域,并且创作出更好的结果。当在扫描期间被实时地执行时,对象完成可以协助用户关于是跳过针对一区域的扫描还是尝试更彻底地对其进行扫描的决策。例如,如果用户旋转和以其他方式检视3d模型并且其看上去是完整的,则用户可以终止扫描。

附图说明

下文参考附图详细描述了本发明,其中:

图1是示出了根据本公开的实施例的操作环境的示例的框图;

图2示出了根据本公开的实施例的扫描增强器的框图;

图3a示出了根据本公开的实施例的对所扫描的几何结构的显示;

图3b示出了根据本公开的实施例的对基于参照对象增强的所扫描的几何结构的显示;

图4a示出了根据本公开的实施例的对所扫描的几何结构的显示;

图4b示出了根据本公开的实施例的对基于参照对象增强的所扫描的几何结构的显示;

图5是示出了根据本公开的实施例的方法的流程图;

图6是示出了根据本公开的实施例的方法的流程图;

图7是示出了根据本公开的实施例的方法的流程图;以及

图8是适合于在实现本公开的实施例时使用的示例性计算环境的框图。

具体实施方式

在本文中利用具体细节对本发明的主题进行描述以满足法定要求。然而,该描述本身不旨在限制该公开的范围。相反,发明人已经预见到所述的主题还可以结合其他当前或未来的技术以其他方式来实现,从而包括与在该文档中所描述的步骤类似的不同步骤或步骤的组合。此外,尽管术语“步骤”和/或“框”可以在本文中被用来表示所采用的方法的不同元素,但除非且除了明确地描述了个体步骤的顺序,否则所述术语不应当被解释为暗示在本文中所公开的各种步骤之中或之间的任何特定顺序。

3d扫描的过程可能是麻烦且耗时的。通常在完成3d扫描之后,所得到的3d模型常常具有缺失部分或“孔洞”。为了纠正孔洞,可以应用插值或曲线匹配,这可以针对具有简单表面曲率的小区域实现可接受的结果。然而,这些方法针对较大区域或者其中存在受限的量的周围几何信息的区域执行地较差。

本公开的多个方面可以通过将部分扫描的3d模型或其中具有大的孔洞的模型与现有模型自动地匹配(例如,在现场或实时扫描过程期间),以提供更为准确的表面重构或者以其他方式有所提升的扫描的3d虚拟对象,从而修正现有技术的缺陷。另外,可以采用针对库对象的场景匹配来增强立体相机所捕获的2.5d环境或者以对场景覆盖的严格约束所捕获的2.5d环境。对该数据的增强可以用来移除或防止由于缺少某些对象之后的所扫描的环境特征而常常发生的“像素拉伸”。在本文中所描述的自动匹配可以可选地采用gps数据来理解其他用户在当前被扫描的区域中已经扫描到了什么,并且尝试与那些对象进行匹配(例如,在环境被扫描时实时地进行)。

用于与所扫描的3d几何结构进行匹配的库对象(例如,用于网格拟合)可以包括但不限于:基础基元(primitive)(例如,立方体、球体),与所扫描网格具有几何相似度的备用对象(例如,桌子、椅子、面部),和/或先前扫描的(多个)相同的实际对象的模型。为了自动完成所扫描的3d虚拟对象的纹理,可以使用库对象纹理以用周围纹理来推测该纹理,并且可以在它们之间产生平滑过渡。作为另一方法,可以在没有纹理的情况下使用3d对象的线框,或者可以采用单色纹理。

如果用户要利用电话上的rgb相机来扫描对象以将其以3d再现,有时,扫描系统不能够访问该对象的所有角度。例如,该对象可以在博物馆中,并且用户并不被允许到达其后方。在一些情况下,对象自身可能是破损的并且缺失了一些片段。本公开的多个方面可以用于在这些类型的情况下产生完整的所扫描的3d虚拟对象。

现在转到图1,提供了这样的框图,其示出可以在其中采用本公开的一些实现的操作环境的示例。应当理解的是,在本文中所描述的这个和其他布置仅仅是作为示例而阐述的。除了所示出那些布置之外或者作为其替代,可以使用其他布置和元件(例如,机器、接口、功能、命令、以及功能分组等),并且可以为了清楚起见一起省略一些元件。另外,在本文中所描述的元件中的许多元件是功能实体,所述功能实体可以被实现为离散或分布式组件、或者结合其他组件来实现、并且在任何合适的组合和位置中实现。在本文中被描述为由一个或多个实体所执行的各种功能可以由硬件、固件、和/或软件来实行。例如,可以由执行在存储器中所存储的指令的处理器来实行一些功能。

除了未示出的其它组件,操作环境100包括多个用户设备,例如用户设备102a和120b到102n、网络104、以及(多个)服务器108。

应当理解的是,在图1中所示出的操作环境100是一个合适的操作环境的示例。在图1中所示出的组件中的每个组件可以经由任何类型的计算设备来实现,例如,结合图8所描述的计算设备800中的一个或多个。这些组件可以经由网络104来彼此进行通信,所述网络104可以是有线的、无线的、或者此二者。网络104可以包括多个网络或者多个网络的网络,但是以简单形式被示出以免使本公开的方面混淆。作为示例,网络104可以包括一个或多个广域网(wan)、一个或多个局域网(lan)、一个或多个诸如互联网之类的公共网络、和/或一个或多个私有网络。在网络104包括无线电信网络的情况下,诸如基站、通信塔台、或者甚至接入点(以及其他组件)之类的组件可以提供无线连通性。联网环境在办公室、企业范围的计算机网络、内联网、和互联网中是常见的。由此,网络104没有特别详细地被描述。

应当理解的是,在本公开的范围内,可以在操作环境100内采用任何数量的用户设备、服务器、以及其他所公开的组件。其中每个可以包括单个设备或者在分布式环境中协作的多个设备。

用户设备102a至102n包括能够由用户操作的任何类型的计算设备。例如,在一些实现中,用户设备102a至102n是在本文中关于图8所描述的那类计算设备。作为示例而非限制,用户设备可以被实施为个人计算机(pc)、膝上计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(pda)、mp3播放机、全球定位系统(gps)或设备、视频播放机、手持通信设备、游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器、遥控器、家用电器、消费型电子设备、工作站、3d扫描设备、所描绘的这些设备的任何组合、或者任何其他合适的设备。

用户设备可以包括一个或多个处理器以及一个或多个计算机可读介质。计算机可读介质可以包括能够由一个或多个处理器执行的计算机可读指令。所述指令可以由诸如在图1中所示出的应用110之类的一个或多个应用来实施。为了简单起见,应用110被称为单个应用,但是其功能实际上可以由一个或多个应用来实施。如上文所指出的,其他用户设备可以包括类似于应用110的一个或多个应用。

(多个)应用一般可以是能够促进在实行3d扫描时用户设备与(多个)服务器108之间的信息交换的任何应用。在一些实现中,(多个)应用包括web应用,其可以在web浏览器中运行并且可以至少部分被托管在操作环境100的服务器侧。另外地或替代地,(多个)应用可以包括专用应用,例如具有图像处理功能的应用。在一些情况下,所述应用被集成到操作系统中(例如,作为一个或多个服务)。因此,在本文中预见到“应用”被宽泛地解释。

(多个)服务器108也包括一个或多个处理器以及一个或多个计算机可读介质。所述计算机可读介质包括能够由所述一个或多个处理器执行的计算机可读指令。

(多个)服务器(108)和/或用户设备102a至102n的指令的任意组合可以被用来实现图2中的扫描增强器206的一个或多个组件,这在下文以另外的细节加以描述。

参考图2,示出了根据本公开的实施例的扫描增强器的框图。扫描增强器206包括环境扫描器212、扫描转换器214、参照对象识别器216、扫描界面218、所扫描的环境提升器220、以及存储单元230。如在上文中所指出的,可以例如在图1的操作环境100中实现扫描增强器206的前述组件。特别地,这些组件可以被集成到用户设备102a和102b至102n以及(多个)服务器108的任何适当组合之中。对于基于云的实现而言,服务器108上的指令可以实现扫描增强器206的一个或多个组件或其部分,并且应用110可以由用户用来与在(多个)服务器108上实现的功能进行接合。在一些情况下,可以不需要服务器108。例如,扫描增强器206的组件可以完全在诸如用户设备102a之类的用户设备上被实现。在这些情况下,扫描增强器206可以至少部分地由与应用110相对应的指令来实施。

因此,应当意识到的是,扫描增强器206可以经由在分布式环境中布置的多个设备来提供,所述多个设备共同提供在本文中所描述的功能。另外地,没有示出的其他组件可以被包括在所述分布式环境内。另外地或替代地,扫描增强器206可以至少部分地被集成到诸如用户设备102a之类的用户设备中。此外,扫描增强器206可以至少部分地被实施为云计算服务。

存储单元230可以包括计算机可读介质,并且被配置为存储在本文所描述的实施例中使用的计算机指令(例如,软件程序指令、例程、或服务)、数据、和/或模型。在一些实现中,存储单元230存储经由扫描增强器206的各个组件所接收的信息或数据,并且按照需要向各个组件提供对所述信息或数据的访问。在实现中,存储单元230包括数据存储(或计算机数据存储器)。尽管被描绘为单个组件,但存储单元230可以被实施为一个或多个数据存储,并且可以至少部分地位于云端。另外,存储单元230中的信息可以以任何合适的方式跨一个或多个数据存储而分布以供存储(其可以在外部被托管)。

在所示出的实现中,存储单元230至少包括参照对象232、对象属性234、所扫描的环境特征236、以及扫描描述符238,它们在下文进一步详细描述。

作为概述,扫描界面218提供了针对环境扫描器212的用户界面,该用户界面能够操作以经由一个或多个设备从一个或多个传感器收集传感器数据,所述一个或多个设备例如图1中的用户设备102a至102n中的一个或多个。扫描转换器214分析该传感器数据,并且将该传感器数据转换成所扫描的环境特征236。所扫描的环境特征236至少包括3d对象的所扫描的几何特征并且可选地包括所扫描的属性特征(例如,纹理、颜色、声音、移动、动画等)。参照对象识别器216例如基于参照对象的特征与所扫描的环境特征236之间(例如,几何特征之间)的比较来确定与所扫描的环境特征236相对应的参照对象232中的一个或多个。所扫描环境提升器220被配置为使用由参照对象识别器216所确定或识别的参照对象232中的一个或多个来增强所扫描的环境特征236。

增强所扫描的环境特征236可以包括将参照对象232中的一个或多个的几何结构中的至少一些合并于其中,基于参照对象232中的一个或多个的几何结构的至少一些来修改其中所扫描的几何结构,和/或利用参照对象232中的一个或多个的几何结构的至少一些来替换所扫描的几何结构。另外地或替代地,这可以包括基于参照对象232中的一个或多个,在所扫描的环境特征236中并入对象属性234中的至少一些,基于对象属性234中的一个或多个来修改其中所扫描的属性,和/或利用对象属性234中的一个或多个来替换其中所扫描的属性。

针对所扫描的环境特征236的增强可以例如使用扫描界面218被呈现给用户(例如,连同所扫描的环境特征236中的至少一些),其中,用户可以可选地被允许采纳、拒绝、查看各种增强的任何组合,和/或在各种增强的任何组合之间进行选择,其包括针对增强的对象特征的选项。

如上文所提及的,扫描界面218提供了针对环境扫描器212的用户界面。扫描界面218例如可以对应于图1中的应用110,并且可以包括图形用户界面(gui)或者用于帮助用户经由环境扫描器来捕获物理环境特征的其他合适的界面。扫描界面218例如可以允许用户选择性地激活或取消激活由环境扫描器212进行的环境扫描。

在一些情况下,扫描界面218的gui例如经由来自一个或多个相机的现场馈送或实时馈送来显示物理环境。另外地或替代地,由环境扫描器212生成并且由扫描转换器214转换成所扫描的环境特征236的扫描数据可以被显示在gui中。这可以包括对一个或多个虚拟对象的3d几何结构的显示,其可以是使用线框、网格、多边形、顶点、和/或所扫描几何数据的其他视觉表示在gui中被描绘的。这还可以包括对一个或多个虚拟对象的所扫描的环境属性的显示或呈现,所扫描的环境属性例如纹理、颜色、声音、动画、移动等。在一些情况下,扫描界面218在物理环境的显示上叠加或渲染这些所扫描的环境特征中的一个或多个,所述物理环境的显示例如来自相机的对物理环境的现场馈送。在其他情况下,该物理环境不一定在gui中被显示或者与这些特征同时被显示。

图3a示出了扫描界面中的所扫描的环境特征的显示的示例。特别地,显示300a是图2的扫描界面218为了呈现所扫描的环境特征236中的一些可以呈现的内容的一个示例。显示300a呈现所扫描的虚拟对象302的所扫描的环境特征的所扫描的几何特征和所扫描的属性特征。如所示出的,扫描界面已经渲染了这些所扫描的环境特征的视觉表示以向用户显示。

可以使用任何合适的方法来扫描物理环境以便生成一个或多个3d虚拟对象的所扫描的环境特征。在一些方法中,用户操控或以物理方式定位一个或多个用户设备(例如,用户设备102a),以便允许环境扫描器212捕获该环境的不同视角。例如,用户可以调节该用户设备相对于作为整体的环境和/或相对于用户希望扫描的区域或对应的真实世界对象的角度、旋转、或朝向。在一些情况下,在这些各个设备位置处拍摄一个或多个环境快照。例如,用户可以经由扫描界面218选择性地捕获每个环境快照。作为另一示例,可以经由环境扫描器212来捕获环境数据的流。

该环境数据由集成或者外置于一个或多个用户设备的一个或多个传感器来提供。用于捕获环境数据的合适的传感器的示例包括深度传感器、相机、压力传感器、rgb相机、深度感测相机、压力传感器、ir传感器等的任何组合。如上文所指出的,环境扫描器212管理这些传感器以促进对环境数据的捕获。

扫描转换器214被配置为将环境数据转换成所扫描的环境特征,例如所扫描的环境特征236。所扫描的环境特征是指真实环境特征的数字表示。这可以包括与真实世界几何结构相对应的几何结构特征,以及与真实的环境属性相对应的属性特征。扫描转换器可以分析环境数据,并且从捕获了环境的物理几何结构的传感器数据确定几何结构特征或几何结构。扫描转换器214还可以确定属性特征,其中每个属性特征可以与所述几何结构特征中的一个或多个相关联(例如,纹理可以被映射至几何结构)。在一些情况下,扫描转换器214随着在扫描期间或扫描之后接收到更多环境数据而更新一个或多个所扫描的环境特征236。

已知许多用于捕获和数字地表示物理环境特征的合适的方法,其中任一种方法都适合于在本公开的实现中使用。可选地,扫描转换器214可以创建3d虚拟对象与所扫描的环境特征之间的关联。例如,所扫描的环境特征的不同子集可以与不同的虚拟对象相关联。然而,扫描转换器214不需要具体地识别和指定虚拟对象。

在一些实现中,扫描转换器214还将环境数据转换成一个或多个扫描描述符,例如扫描描述符238。扫描描述符238对应于所扫描的环境特征236,并且一般地描述了捕获与所扫描的环境特征236相对应的环境数据所基于的条件。扫描描述符例如可以从传感器数据被确定为表示用户设备或传感器相对于作为整体的环境和/或相对于区域或对应的真实世界对象的一个或多个角度、旋转、或朝向,所述用户设备或传感器用来捕获环境数据。一组一个或多个扫描描述符可以与环境数据的特定快照和/或环境数据的流的一部分相对应。

使用扫描描述符,扫描转换器214可以跟踪环境数据相对于环境的覆盖范围。换句话说,扫描增强器206可以使用扫描描述符238来确定物理环境中的哪些区域在所扫描的环境特征236中被捕获,以及物理环境中的哪些区域还没有在所扫描的环境特征236中被捕获,或者以其他方式对应于不充足的数据,或者甚至是在一些数据存在的位置(例如,具有不充足的深度信息的区域,以便识别出要用参照对象进行填充的一个或多个孔洞)。在一些情况下,扫描增强器206在确定针对所扫描的环境特征的增强时使用该知识,例如以确定是否要执行参照对象匹配,在哪里执行参照对象相对于扫描的几何结构的匹配,和/或评估参照对象与所扫描的几何结构的匹配。

可以被扫描描述符238包括并且可选地被扫描增强器206利用以进行这样的增强确定的信息的示例包括真实环境光照条件、传感器设置或特征(例如,相机设置(例如,曝光时间、对比度、缩放水平、白平衡、iso敏感度等))、(多个)环境位置(例如,基于gps坐标和/或所确定或识别的地点),等等。

参照对象识别器216被配置为基于由扫描转换器214(例如,在扫描期间实时地)生成的所扫描的环境特征来识别一个或多个参照对象。所述参照对象可以从参照对象232中选择或识别。在一些情况下,参照对象232包括3d虚拟对象的集合、目录、或库。这些3d虚拟对象中的一个或多个可以与真实世界对象和/或环境的至少一些部分相对应。例如,参照对象可以使用3d扫描器来生成,例如由扫描增强器206或另一3d扫描系统来生成。在一些情况下,参照对象是合成的并且可以由用户经由3d建模或起草程序或者以其他方式来创建。在一些情况下,参照对象232包括一组基元参照对象或形状。基元对象可以是指系统能够处理(例如,绘制、存储)的最简单的(即,“原子的”或不可约减的)几何对象。基元的示例是球体、圆锥体、圆柱体、楔体、圆环面、立方体、盒体、管状体和金字塔体。其他示例包括备用对象,例如桌子、椅子、面部等。

参照对象识别器216还可以基于由扫描转换器214所生成的所扫描的环境特征来确定或识别一个或多个对象属性234。对象属性234可以包括纹理、颜色、声音、移动、动画、贴标(decal)、3d绑定(rigging)(动画绑定)等的库、集合、或目录。在一些情况下,扫描增强器206从参照对象232或其他3d虚拟对象中的一个或多个中提取对象属性234中的一个或多个,并且将它们并入到集合中。另外地或替代地,对象属性可以与参照对象232中的对应的参照对象相关联地被存储,和/或被映射至参照对象232中的对应的参照对象。例如,对象属性234的不同纹理或其他属性可以被映射至参照对象232中的3d虚拟对象的不同部分。

参照对象识别器216基于对所扫描的环境特征236的分析来识别参照对象232中的一个或多个。这可以包括将所扫描的环境特征236中的3d几何结构和所扫描的属性特征的任何组合与参照对象232和/或对象属性234中的对应的特征进行比较。基于该分析,参照对象识别器216可以可选地确定所扫描的环境特征236中的各种特征中的一个或多个与参照对象232和/或对象属性234中的各种特征中的一个或多个之间的相似度得分。

在一些情况下,参照对象识别器216识别或选择排名或得分最高的参照对象或对象属性或者其组合,以提供所扫描的环境特征增强。作为另一示例,多组一个或多个对象特征(即,参照对象、对象属性、和/或其组合)可以被选择以提供针对所扫描的环境特征增强的选项。例如,可以选择预先确定数量的排名最高的组和/或可以基于超过阈值相似度得分来选择所述组。

因此,参照对象识别器216在一些情况下可以基于确定或识别与所扫描的3d几何结构(例如,所扫描的网格)的几何相似度来识别用于增强的参照对象232中的一个或多个。这可以包括将所扫描的3d几何结构数据以网格拟合至参照3d几何结构数据,并且评估该拟合的质量。在一些情况下,参照对象识别器216可以基于确定与参照对象相关联的一个或多个对象属性234对应于所扫描的环境特征236来选择参照对象232中的一个或多个。例如,参照对象识别器216可以使用所扫描的环境特征236中的纹理、颜色等,并且将这些特征与可以与参照对象相关联的对应的对象属性进行匹配。

可以由参照对象识别器216在识别或选择参照对象和/或对象属性时评估其他语义或上下文信息,例如扫描描述符238。例如,参照对象识别器216可以将扫描描述符238同与参照对象232和/或对象属性234相关联的上下文或语义信息相比较。为了说明前述内容,扫描描述符238可以包括位置数据,例如gps坐标或地点数据。参照对象识别器216可以将该上下文数据与参照对象232中的一个或多个进行关联,并且基于该关联来选择参照对象。例如,参照对象识别器216例如可以基于来自先前用户扫描的扫描描述符来确定用户处于用户通常在其处扫描参照对象232中的一个或多个的位置。因此,这些参照对象可以被选择或者会更有可能被选择用于增强。该概念可以被概括为确定地点类型、地点、光照条件、时间戳(例如,一年中时间的相似度)的任何组合的相似度,以便选择对象属性和/或参照对象。

为了说明前述内容,假设用户正在扫描一座教堂。根据来自用户设备的gps数据,参照对象识别器216可以确定其他用户已经扫描了该教堂并且选择与该教堂相对应的参照对象以用于增强。被扫描的教堂可以被自动完成,因此用户不必绕着该教堂走一圈来完成扫描。

扫描描述符238也可以被参照对象识别器216用来解释所扫描的环境特征,从而理解该数据中的哪些部分有可能是准确的以及哪些部分未被捕获或缺失。在将对象特征与对应的所扫描的对象特征进行匹配时,该数据的这些缺陷部分可选地可以在确定相似度得分时被考虑。

在一些情况下,参照对象232和/或对象属性234中的一个或多个被本地存储在执行扫描的用户设备上,例如用户设备102a。另外地或者替代地,参照对象232和/或对象属性234中的一个或多个可以位于云存储中,例如在服务器108上。在一些实现中,例如使用应用110将参照对象232和/或对象属性234中的一个或多个从云存储传输至用户设备。例如,用户设备102a可以将其位置(例如,gps坐标)报告至服务器108(例如,经由应用110),并且参照对象232和/或对象属性234中的一个或多个的集合可以基于该位置(和/或其他上下文参数)而被下载至用户设备。接着,参照对象识别器216可以从该参照对象的集合中进行选择以用于增强。该过程可以基于例如应用110的启动或者环境扫描的发起而被发起。在一些情况下,可以创建参照模型的散列(hash)(例如,针对基元对象或其群组)。当用户到达系统所识别的某个位置时,所述散列可以被传输至执行扫描的设备以用作潜在的参照对象。因此,服务器108可以存储许多参照对象并且基于扫描上下文将子集传输至用户设备。在一些情况下,匹配在服务器侧进行。例如,服务器可以接收被部分扫描的模型或对象以与服务器侧匹配。

如在上文中所提及的,所扫描环境提升器220被配置为使用由参照对象识别器216所确定、识别、或选择的参照对象232和/或对象属性234中的一个或多个来增强所扫描的环境特征236。利用所选择的一个或多个特征增强的所扫描的环境特征236可以使用扫描界面218向用户显示。在一些情况下,至少一些经增强的部分在显示中被视觉地指示,例如可以以在视觉上能够与所扫描的环境特征区别的方式被显示。

例如,图3b在利用参照对象304增强的显示300b中呈现了所扫描的虚拟对象302的所扫描的环境特征的所扫描的几何结构特征和所扫描的属性特征。在本示例中,参照对象304是立方体基元。另外,所扫描环境提升器220已经用参照对象304替换了所扫描的虚拟对象302的3d几何结构的多个部分,并且基于参照对象304的几何结构而添加至所扫描的3d几何结构。在一些情况下,增强之前的纹理可以被插入到所添加的3d几何结构上。另外,如图所示,与先前所确定和/或渲染的纹理相对应的所扫描的环境特征可以基于经更新的几何结构而被重新评估、重新映射、和/或重新确定。例如,因为纸巾盒被匹配至盒子,所以扫描转换器214现在可以确定对象的面应当在其处结束的边,并且自动完成纹理或颜色以得出高质量的对象。

例如,图3a可以对应于具有真实世界对象的覆盖范围308的环境扫描,该覆盖范围308对应于所扫描的虚拟对象302。因此,真实世界对象的某些部分可能还没有被扫描,例如该对象的背面。这会导致应用于所扫描的虚拟对象302的纹理或着色中的视觉伪像(例如,由于不充足几何结构所导致的2.5d像素撕裂)。例如,所扫描的环境特征236可以对应于由立体相机所捕获的2.5d或者以其他方式对场景覆盖范围具有严格限制的环境。在图3b中,真实世界环境的未覆盖的部分已经被添加至所扫描的几何结构。因此,纹理或着色可以基于另外的几何结构信息来更新以得出经改进的扫描。在该情况下,由于缺少对象后方的数据所导致的像素撕裂已经被移除。

图4a和4b示出了基于参照对象来增强3d虚拟对象的另一示例。图4a的显示400a示出了所扫描的虚拟对象402的所扫描的环境特征的所扫描的几何结构特征和所扫描的属性特征,其中,所扫描的虚拟对象402由于不充分的扫描条件而具有孔洞404。图4b的显示400b示出了所扫描的虚拟对象402的所扫描的环境特征的所扫描的几何结构特征和所扫描的属性特征,其中,所扫描的虚拟对象402已经被所扫描环境提升器220利用基于参照对象的经增强的几何结构406所完成。

所扫描环境提升器220例如可以通过将所选择的参照对象中的一个或多个以网格拟合至所扫描的3d几何结构来(例如,在对环境的现场扫描期间实时地)执行对所扫描的环境特征236的增强。这可以产生混合对象,其包括所扫描的几何结构的一些部分以及参照几何结构和/或其他对象特征的一些部分。在一些情况下,所扫描环境提升器220通过将参照对象的一个或多个部分与所扫描的3d几何结构和/或其他所扫描的特征进行融合来执行增强。为了纠正几何结构中的间隙(例如孔洞404),所扫描环境提升器220可以例如利用基于或来自一个或多个所选择的参照对象的几何结构来完成所述间隙。

在一些实现中,所扫描环境提升器220可以使用库对象纹理(例如,所选择的参照对象纹理),并且使用所述库对象中的周围纹理来生成所扫描的3d虚拟对象的纹理,并且在它们之间执行过渡平滑。作为另一选项,可以使用一个或多个单色纹理或颜色,或者可以使用并渲染3d对象的线框图。

在一些情况下,所扫描环境提升器220将增强自动地应用于所扫描的环境特征。在其他情况下,一些用户选择或其他输入被首先采用以允许用户在增强选项之间进行选择,所述增强选项例如针对3d模型的特定区域或分区的选项,或者针对3d模型整体的选项。作为示例,可以向用户提供用以选择进行增强的不同的参照对象和/或对象属性的不同组合,例如针对3d模型的经增强的分区的纹理等。

使用本公开的实现,应当意识到的是,所扫描的环境数据可以与相比同样从扫描数据可获得的数据集更丰富的数据集相链接。因此,扫描可动人形,可以在扫描界面中向用户呈现用以产生或下载可动人形模型的选项,所述可动人形模型利用针对该模型所创建的一组动画而形成动画。这些类型的对象属性将不会仅随扫描数据一起可获得,而是随在本文中所描述的匹配而可获得,不仅该模型可以用更好的版本来完成或替换,而且所产生的对象可以关联于或包含原本不能够从所扫描的数据直接可访问的内容。

另外,假设用户正在扫描在雕像前的他的妻子并且他的妻子遮挡住了该雕像的部分。如果该用户需要在3d模型中被他妻子所挡住的几何结构的部分和其他特征,该本公开的多个方面允许该信息在3d模型中被捕获。

现在参考图5,其提供了示出根据所公开的实施例的方法500的实施例的流程图。方法500以及在本文中所描述的其他方法的每个框包括可以使用硬件、固件、和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来实行。所述方法还可以被实施为存储在计算机存储介质上的计算机可用指令。所述方法可以由独立应用、服务或托管的服务(独立的或者与另一个托管的服务相结合的)来提供,或者插入到另一个产品之中,等等。

在框510处,方法500包括发起对物理环境的扫描。例如,环境扫描器212可以发起对物理环境的扫描,这可以由用户设备110的深度感测相机来执行。用户设备110的用户可以经由扫描界面218来发起扫描。

在框520处,方法500包括从扫描数据的现场馈送生成所扫描的环境特征。例如,扫描转换器214可以从对由对物理环境的扫描所提供的扫描数据生成所扫描的环境特征236。

在框530处,方法500包括将所扫描的环境特征与至少一个参照对象进行匹配。例如,参照对象识别器216可以将所扫描的环境特征236与参照对象232中的一个或多个进行匹配。

在框540处,方法500包括利用至少一个参照对象的一个或多个特征来对所扫描的环境特征进行增强。例如,所扫描的几何结构提升器220可以利用匹配的参照对象232中的一个或多个的一个或多个特征来对所扫描的环境特征236进行增强。可选地,可以例如经由扫描界面218在用户设备上显示和/或呈现经分割的所扫描的环境特征。可选地,如在图5中所指示的,框520、530、和540可以随着物理环境进一步被扫描而重复。

在框550处,方法500包括终止对物理环境的扫描。例如,环境扫描器212可以终止对物理环境的扫描。

在框560处,方法500包括可选地将经增强的所扫描的环境特征保存为一个或多个3d虚拟对象。例如,扫描界面218可以创建一个或多个新的3d虚拟对象和/或将所述一个或多个新的3d虚拟对象指定为参照对象,所述参照对象有可能与来自未来扫描的扫描数据进行匹配。

参考图6,其提供了示出根据所公开的实施例的方法600的实施例的流程图。在框610处,方法600包括从扫描数据生成所扫描的环境特征。例如,扫描转换器214可以从环境扫描器212所提供的扫描数据生成所扫描的环境特征236。

在框620处,方法600包括将所扫描的环境特征与至少一个参照对象或对象属性进行匹配。例如,参照对象识别器216可以将所扫描的环境特征236与参照对象232和/或对象属性234中的一个或多个进行匹配。

在框630处,方法600包括利用至少一个参照对象或对象属性的一个或多个特征来对所扫描的环境特征进行增强。例如,所扫描的几何结构提升器220可以利用参照对象232和/或对象属性236中的一个或多个的一个或多个特征来增强所扫描的环境特征236。

在框640处,方法600包括在计算设备上呈现经增强的所扫描的环境特征。例如,应用110和/或扫描界面218可以在计算设备102a上呈现经增强的所扫描的环境特征。

参考图7,其提供了示出根据所公开的实施例的方法700的实施例的流程图。在框710处,方法700包括发起对物理环境的扫描。在框720处,方法700包括根据扫描数据生成对物理环境的表示。在框730处,方法700包括将至少一个参照对象与该表示进行匹配。在框740处,方法700包括利用至少一个参照对象的一个或多个特征来增强该表示。在框750处,方法700包括呈现经增强的表示。

参考图8,计算设备800包括直接或间接地耦合以下设备的总线810:存储器812、一个或多个处理器814、一个或多个呈现组件816、输入/输出(i/o)端口818、输入/输出组件820、以及说明性电源822。总线810所表示的内容可以是一个或多个总线(例如,地址总线、数据总线、或其组合)。尽管为了清楚起见利用线示出了图8的各个框,但实际上,对这些组件的界定并不清晰,并且以隐喻的方式,所述线将更准确地是灰色和模糊的。例如,可以认为诸如显示设备之类的呈现组件是i/o组件。而且,处理器具有存储器。发明人认识到这是本领域的性质所在,并且重申图8中的图仅仅图示了能够结合本发明的一个或多个实施例使用的示例性计算设备。在如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等之类的类别之间不进行区分,这是因为所有这些都被预期处于图8的范围之内并且指代“计算设备”。

计算设备800通常包括多种计算机可读介质。计算机可读介质可以是能够由计算设备800访问的任何可用介质,并且包括易失性介质和非易失性介质、可移动介质和不可移动介质。作为示例而非限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据之类的信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动介质。计算机存储介质包括但不限于ram、rom、eeprom、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或者其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或者能够用于存储期望的信息并且能够由计算设备800访问的任何其他介质。计算机存储介质不包括信号本身。通信介质通常以诸如载波或其他传输机制之类的调制的数据信号来实施计算机可读指令、数据结构、程序模块、或其他数据,并且包括任何的信息传递介质。术语“调制的数据信号”意指具有以关于将信息编码在信号中的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外、和其他无线介质之类的无线介质。以上中任何一项的组合也包括在计算机可读介质的范围之内。

存储器812包括采用易失性和/或非易失性存储器形式的计算机存储介质。所述存储器可以是可移动的、不可移动的、或者其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备800包括从诸如存储器812或i/o组件820之类的各种实体中读取数据的一个或多个处理器。(多个)呈现组件816向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。

i/o端口818允许计算设备800逻辑地耦合至包括i/o组件820的其他设备,所述i/o组件820中的一些可以是内置的。说明性组件包括麦克风、游戏操纵杆、游戏板、卫星碟形天线、扫描仪、打印机、无线设备等。i/o组件820可以提供对用户所生成的空中手势、语音、或其他生理输入进行处理的自然用户接口(nui)。在一些实例中,输入可以被传送至合适的网络元件以供进一步处理。nui可以实现以下各项的任意组合:话音识别、触摸和触笔识别、脸部识别、生物计量识别、屏幕上和接近于屏幕的手势识别、空中手势、头部和眼部追踪、以及与计算设备800上的显示相关联的触摸识别。计算设备800可以装备有深度相机,例如立体相机系统、红外相机系统、rgb相机系统、以及这些的组合以用于进行手势检测和识别。另外地,计算设备800可以装备有使能够进行运动检测的加速计或陀螺仪。加速计或陀螺仪的输出可以被提供至计算设备800的显示器以渲染沉浸式的增强现实或虚拟现实。

所描绘的各种组件以及没有示出的组件的许多不同布置都是可能的而并不脱离以下权利要求的范围。本发明的实施例已经关于意图被描述为说明性的而非限制性的。可替代的实施例将在阅读了本公开之后并且由于对本公开的阅读而对其读者是显而易见的。可以在不脱离以下权利要求的范围的情况下完成实现前述内容的可替代的方式。某些特征和子组合是有效的并且可以在不参考其他特征和子组合的情况下被采用,并且被预期处于权利要求的范围之内。

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