使用3D视频数据的3D打印的制作方法

文档序号:18062005发布日期:2019-07-03 03:08阅读:382来源:国知局
使用3D视频数据的3D打印的制作方法

本公开一般涉及三维(3d)建模,并且更具体地涉及变换要使用3d生成设备或3d打印设备来生成的3d视频数据。



背景技术:

由于3d建模技术、移动设备技术和许多其他因素的进步,三维(3d)视频的生成、显示和访问不断增加。然而,用于使用该数据的技术,例如用于修改或用于其他应用,诸如基于3d视频来生成一个或多个3d对象,不容易可获得。例如,在没有能够提取3d数据并将3d数据变换成适合于3d打印的东西的软件工具的工具链的情况下,目前不容易3d打印3d视频数据。通常,3d视频数据未被格式化以用于3d打印并且不是固有地可打印的,例如因为视频流基本上仅是帧集合的索引,并且不以3d打印或生成设备可用的方式定义3d对象。因此,可以对诸如3d打印的各种应用进行3d建模和变换的改进。



技术实现要素:

本公开的说明性示例包括但不限于方法、系统和各种设备。在一个方面,用于将三维(3d)视频数据变换为3d可打印模型的技术可以包括接收为3d打印指示或选择的3d视频数据。可以修复或修改可以包括3d视频数据的帧的所选择的部分或3d视频数据以限定至少一个封闭的容积。然后可以基于目标3d打印设备的至少一种能力来重新取向3d视频数据的封闭容积中的至少一个。在一些方面,可以执行重新取向以优化至少一个封闭容积的总打印容积或打印取向中的至少一个。

以下描述了系统和方法的其他特征。特征、功能和优点可以在各种示例中独立地被实现,或者可以在其他示例中被组合,其进一步的细节可以参考以下描述和附图被看出。

附图说明

以下将参考附图更全面地描述本公开的实施例,在附图中:

图1描绘了用于基于3d视频的选择来生成3d对象或模型的示例系统和过程。

图2描绘了用于显示、选择和修改用于3d生成的3d视频数据的示例图形用户界面。

图3描绘了用于将3d视频数据的选择变换为3d可打印模型的示例过程。

图4和5描绘了用于修复3d视频数据以限定用于3d生成的一个或多个封闭容积的示例过程。

图6描绘了用于生成3d模型的基底结构的示例过程。

图7描绘了用于将3d视频数据转换为用于3d生成的骨架或壳结构的示例过程。

图8描绘了用于使用预定义3d模型来基于与3d视频数据相关联的信息从3d视频数据生成一个或多个对象的示例过程。

图9描绘了其中可以体现本文描述的技术的示例通用计算环境。

具体实施方式

本文描述了用于将三维(3d)视频数据变换为3d可打印模型的系统和技术。在一个方面,可以接收3d视频数据以用于3d生成。在一些方面,可以经由与3d视频播放器相关联的用户界面通过选择来接收3d视频数据,诸如通过3d视频数据的一个或多个帧的选择。在一些方面,例如当3d视频数据或帧没有定义完整的3d对象时,可以修改或修复3d视频数据以定义一个或多个完全定义的3d对象,使得包围一个或多个容积。接下来,可以基于诸如目标3d打印设备或3d打印机的目标设备的一个或多个能力来重新取向对象或包围容积中的至少一个。在一些方面,可以执行重新取向以优化3d视频数据的总打印容积或打印取向,例如以使目标3d打印设备能够基于3d视频数据来准确且完整地生成3d模型或对象。可以执行优化以符合3d打印设备的限制或能力,诸如总打印容积或打印尺寸。在一些方面,可以优化3d视频数据的封闭容积或对象中的至少一个的打印取向,例如以减少生成3d模型所需的材料,更好地布置生成模型所需的支撑,例如为了更好的结构完整性,以及其他目的,下面将更详细地描述。

在一个方面,可以将新类型的处理或预处理应用于3d视频数据,以使其更适合于3d打印。可被描述为流水线的所描述的技术支持各种导出选项(包括不同的坐标映射),以从3d视频数据生成3d打印就绪的3d模型,诸如3d视频数据的一个或多个帧的选择。

在一个示例中,可以将3d视频提取为对象或obj文件,例如包括纹理信息。所提取的3d视频数据最初可能不适合于打印,诸如在不正确的取向,不是在与一个虚拟三维打印床的正确特殊关系中,不限定一个包围的对象或容积等。根据所描述的技术中,提取的3d视频数据可以例如经由单击或单动打印选择选项来自动变换为可打印对象。变换可以包括修改3d数据以产生封闭的容积、校正取向、生成基底以使3d对象可以直立,应用一个或多个视觉过滤器,或者可以提供更美观的3d对象以用于打印或生成的其他修改。在一些方面,变换可以附加地或替代地包括使用照明信息来自动地从视频数据移除或甚至向视频数据添加照明,自动定位模型,调整比例和网格分辨率以匹配打印机的能力,处理网格从而从视频中拉出的对象保持相似的重心和平衡等。

在一些示例中,经由所描述的技术,可以容易地从3d视频打印静止帧,诸如高容量相机阵列生成的3d视频数据(即,在您喜欢的帧中暂停3d视频和点击“打印”)。能够播放3d视频的许多如果不是全部应用程序可以提供在帧上暂停的机制。在一些方面,每个帧可以包含打印所需的完整3d内容。在其他方面,可以组合多个帧以更完整地定义被选择用于打印的3d内容。这可以包括选择所选择的帧周围的帧以与所选择的帧组合以在所选择的帧中定义一个或多个3d对象以用于打印。在选择帧时,诸如经由与渲染3d视频数据相关联的用户界面中的暂停项目,以及选择3d打印选项,可以变换3d视频数据以用于立即3d打印。在一个方面,过程或自动流水线可以采用3d视频帧并将3d视频数据变换为高质量3d可打印对象。用于自动化的过程可能需要各种过滤器的流水线。响应于一个或多个用户选择,可以根据例如由用户界面接收的数据源或输入参数来重新排序过滤器。某些过滤器可能是可选的。

在一些方面,可以将提取的3d视频数据导入到3d构建器应用中,该3d构建器应用可以包括用户界面,例如提供用于修改3d视频数据的不同选择,诸如应用一个或多个过滤器,改变3d视频数据的照明,等等。在一些方面,用户界面的一个或多个特征可以与3d视频播放器集成或与3d视频播放器可集成。

图1示出了用于基于3d视频数据的选择来3d生成一个或多个3d对象的示例系统和过程100。在一个方面,系统100可以包括3d打印设备135。在其他方面,系统100可以不需要3d打印设备135,但是可以使用指示目标3d打印设备135的能力的数据来用于基于3d视频数据来生成3d模型或对象。

3d视频播放器110可以例如在客户端设备105上显示3d视频数据115。客户端设备105可以包括计算设备,诸如pc、平板计算机、智能电话或移动设备、以及各种其他类型的设备。客户端设备105可以包括可以在其上显示3d视频数据115的屏幕。播放器应用110可以提供用于控制3d视频数据115的回放的基本工具,诸如播放、快进、倒带、暂停等。在一些方面,播放器110还可以包括帧捕获控件。在一些方面,帧捕获控制可以被集成到或包括暂停控制选项。

在一个方面,在操作120,播放器110/客户端设备105可以接收对帧或其他3d视频数据部分的选择。根据本文描述的技术,在操作125处,可以将所选择的3d视频数据变换为一个或多个3d可打印或打印就绪对象。在一些方面,操作125可以包括或基于预期或目标3d打印设备135的一个或多个能力。在一些方面,3d打印机能力可以包括3d打印设备135能够产生的总容积和/或尺寸,打印机分辨率,诸如最小层高度或层高度中调整的最小增量,x和y轴尺寸精度或最小壁厚,3d打印设备135支撑的材料类型等。

在一些方面,在操作130处,可以将一个或多个过滤器应用于变换的3d视频数据,以用于增强或优化所选择的3d视频数据的3d生成。一个或多个过滤器可以包括风格过滤器,诸如纹理、形状和/或照明或颜色过滤器。如本文所使用的,图1中的操作框130的虚线,并且如在本说明书的其余部分中所使用的,指示这样标记的操作是可选的,并且可以从所描述的过程中省略。

接下来,可以将定义3d模型的修改的3d视频数据导出/发送到3d打印设备135。在一些方面,3d打印机的控制器140和/或切片器145可以修改用于3d打印的3d视频数据。3d打印135设备可以在操作170处基于所选择的3d视频数据来生成一个或多个3d对象。以这种方式,经由简单地选择和/或通过一个或多个过滤器的应用,可以从3d视频数据的选择容易且自动地生成3d模型。

图2示出了示例性图形用户界面(ui)200,其能够实现例如通过3d打印设备来播放、选择和修改3d视频数据以用于3d生成。应当理解,用户界面200仅作为示例给出,并且本文考虑了类似控件、接口等的不同配置。

ui200可以提供各种控件和工具215,用于诸如经由3d打印设备135来显示、选择、修改和导出3d视频数据210以用于3d生成。在一个示例中,暂停视频控件230在选择时可以暂停当前在ui200的区域205中播放的3d视频,例如包括3d视频数据210。3d打印选项260在选择时可以根据在下面参考图3、4、5、6、7和/或8描述的过程,将3d视频数据210变换为3d可打印模型。在一些方面,在选择3d打印选项260时,或者(如图所示)在ui200的工具区域215中,可以显示多个3d视频数据配置工具。附加工具可以包括应用过滤器选择235、修改照明选择240、生成基底选择245、输出分辨率选择250、到预先设计的模型选择255的映射、以及未示出的其他选择。在一些方面,ui200还可以提供3d视频数据选择工具(未示出),其使得用户能够围绕期望用于3d打印的特定处理的3d视频数据210的部分画出框、圆或其他形状的轮廓或放置框、圆或其他形状。特定处理可以包括用于3d打印的包括(具有从打印中排除非轮廓项目),在3d打印期间保留所选择的对象的特定取向,等等。

应用过滤器选择235可以例如经由下拉菜单启用用于以某种方式修改3d图像数据210的各种过滤器,诸如改变表面的颜色/纹理或者作为到3d网格本身的变换。在一个示例中,过滤器可以像马戏团镜子那样使网格变形。在其他示例中,一个过滤器可以增强3d视频数据210的颜色以产生卡通效果;另一种可以应用具有阴影的暗影效果。滤镜选择工具可以为用户启用类似instagram的选项,以使用户选择输出样式而无需高级艺术/动画体验。

修改照明选项240可以移除或添加照明到3d视频数据210,诸如通过经由颜色或纹理的改变来改变如在3d视频数据上描绘的一个或多个光源的位置、增强、改变、或移除阴影等

生成基底选择项目234可以自动生成3d视频数据的基底,使得在生成时,3d模型可以站立或静止,类似于3d视频数据中的对应对象的取向。下面将参考图6更详细地描述用于生成3d模型基底的示例过程。

在一些情况下,用于选择输出分辨率250的选项可以诸如通过对包括3d视频数据210的网格数据执行几何简化,来改变3d打印设备生成3d模型的分辨率。在一些示例中,ui200还可以包括到预先设计的模型选择项的映射255,其在选择时可以访问先前生成的已保存和/或标记的模型的目录或数据库,用于在生成和/或修改3d视频数据210的模型中使用。下面将参考图7更详细地描述用于基于预先设计或存储的3d模型来生成3d模型的示例过程。

在一些方面,ui200还可以包括用于在3d视频数据210上平移、缩放、旋转和执行其他操作的各种工具200。参考ui200描述的特征中的一些或全部可以被包括在分离的3d构建器应用中,或者可以集成到3d视频播放器中。

图3示出了用于将所选择的3d视频数据变换为3d打印就绪模型的示例过程300,并且在一些方面,将3d模型导出到3d打印设备以用于生成。过程300可以由例如诸如客户端设备105的客户端设备执行,并且在一些方面,全部或部分地由诸如3d打印设备135的3d打印设备执行。过程300可以由独立的3d构建器应用实现,或者可以全部或部分地在根据所描述的技术修改的3d视频播放器中实现。

过程300可以在操作302开始,其中可以接收诸如帧的3d视频数据的一部分用于3d打印。在一些方面,操作302可以包括经由诸如ui200的ui接收对3d视频数据的一部分的选择。接下来,在操作304可以确定所接收的3d视频数据是否包含一个或多个封闭的容积。在一个示例中,操作304可以包括例如通过一个或多个api检查针对“流形(“manifoldness”)”的网格数据/3d视频数据。如果3d网格未定义流形表面或对象,则3d网格将在数学上不符合3d可打印模型。如果在操作304确定3d视频包含一个或多个未封闭的容积/不是流形的,则过程300可以进行到操作306,其中可以修复或修改3d视频数据以创建一个或多个封闭的容积。在一些方面,操作306可以包括封闭在3d视频数据中标识的所有容积或不同对象,例如以确保完整场景的3d打印。操作306可以包括以下项中的一项或多项:闭合孔、重新取向三角形、或者确保网格具有清晰的内部和外部,其表示可以打印的物理容积。不需要严格分析3d视频数据以将修复应用到它。例如修复算法可以应用于所有3d视频数据。如果输出数据与输入相同,则无需修复。例如如果使用过滤器来移除不具有双三角形的网格上的双三角形,则算法将不会修改网格。

在其他方面,可以通过ui200选择一个或多个容积或对象,例如以限制要从3d视频数据帧打印的对象的数目。例如如图2所示,视频数据210仅包含两个人。经由所描述的技术,用户可以仅选择人物中的一个或其部分用于3d打印。在其他示例中,当3d视频数据中存在更多对象时,可以通过手动用户选择或经由缩减算法来从3d打印变换过程中移除一个或多个对象,例如其可以由用户可配置。例如缩减算法可以定位3d视频数据的前景中的对象,包括要建模的那些对象,并且基于对象或分辨率阈值或限制,连续地包括更多进一步进入视频数据背景的对象。缩减算法可以用于使用x、y、z阈值来剪辑视频数据以聚焦在视频数据的一个或多个重要区域上。在一些方面,另一种方式是实现缩减算法使用分段来标识连接的对象。如果可以在视频数据中标识单独的片段,则可以暗示其周围的其他对象是不同的,这可以根据需要能够实现一个或多个片段的标识和随后修剪或移除。

在一些方面,视频帧中包括的3d视频数据可能已经完全定义并包围一个或多个容积。在这种场景中,可以从过程300省略操作306,例如以改进3d变换过程的效率。在一些方面,可以通过其他操作来保留定义容积的修改的或未修改的3d视频数据,以减少重复工作和不需要的处理。下面将参考图4和5描述操作306的更详细示例。

在一些方面,过程300可以包括操作308,其中可以为3d视频数据的一个或多个封闭容积生成一个或多个基底或基底结构。在一些方面,操作308可以附加地或替代地包括将基底或层信息添加到3d视频数据,例如以标识3d模型中的层或地平面。可以利用指示层平面的信息来增强3d视频数据,以便能够以自动方式实现变换对象,使得其以与视频中看到的相同的方式在3d打印机上打印。下面将参考图6描述操作308的更详细示例。

在一些方面,过程300还可以包括操作310,其中可以将一个或多个过滤器应用于3d视频数据,例如以增强物理3d对象或从修改的3d视频数据生成的对象的美学质量。可以自动或手动将各种过滤器应用于模型以影响整体样式。每个过滤器可以仅应用于3d视频数据的表面的颜色/纹理,或者作为对3d视频数据本身的3d网格的变换。在一个示例中,过滤器可以像马戏团镜子那样使网格变形。在其他示例中,一个过滤器可以增强3d视频数据210的颜色以产生卡通效果,另一个过滤器可以应用具有阴影的暗影效果等。可以例如经由用户界面200的项目235选择某个过滤器,如上所述。过滤器选择工具235可以为用户启用类似instagram的选项,以选择输出样式而无需高级艺术/动画体验。过滤器可以各自不同。通常,每个过滤器可以修改一个网格和/或一个纹理图集。例如拉伸过滤器可以修改网格,以便缩放轴中的一个轴(以例如使角色看起来更高)。色调映射过滤器可以对纹理图集进行操作以增加/减少颜色饱和度等等。

在一些方面,过程300可以包括操作311,其中可以修改3d视频数据中的一个或多个对象的形状以在3d模型/打印中看起来更逼真。例如可以将“头发造型化”算法应用于对象,其可以修改例如与人的头发相关联的容积以添加更多纹理、颜色和容积变化以更逼真地模拟头发。例如这可以通过将头发模拟为流形容积并向流形容积添加变形或其他特征来实现。流形容积的变化还可以伴随着代表人的头发的容积的颜色和/或纹理的对应变化。在另一示例中,可以获得3d打印机的能力,并且可以确定要用于生成3d对象的材料的材料属性,诸如扩散、镜面反射和/或颜色。使用该信息,网格的表面可以在客户端设备的屏幕上生成,因为它将在由3d打印机生成时出现。以这种方式,可以在打印之前基于实际目标设备来提供3d对象的照片级真实预览。

在一些方面,过程300可以包括操作312,其中可以修改与3d视频数据相关联的照明信息,例如以增强打印的一个或多个对象。例如可以将照明信息改变、删除或添加到3d视频数据。诸如通过经由颜色或纹理的改变来改变如在3d视频数据上描绘的一个或多个光源的位置,增强,改变或移除阴影等,修改照明信息可以移除或添加到3d视频数据210的照明。改变现有照明假设照明信息包含在视频流中。然而,如果照明信息未包含在视频流或3d数据中,则改变照明信息可能限于应用新光源,这可能最终使模型和建模阴影变亮或变暗。这可以类似于在屏幕上绘制来执行,但是可以将针对照明调整的颜色值传递到目标打印设备。调整颜色值可以包括均匀地重新平衡颜色以更亮或更暗。

接下来,在操作314,可以获得目的地或目标3d打印设备信息,诸如能力信息。目标3d打印设备能力可以包括3d打印设备135能够产生的总容积和/或尺寸、诸如最小层高度或层高度的调整的最小增量的打印机分辨率、x和y轴尺寸精度、3d打印机能够使用的材料的类型、等等。在一些情况下,操作314可以包括查询与其上绘制3d视频的客户端设备通信的3d打印设备。在其他情况下,操作314可以包括基于3d打印机的型号例如经由在线资源等来定位打印机规格。可以在例如选择用于3d打印的3d视频数据的一部分或一帧时执行操作314。

接下来,在操作316,可以基于目标3d打印机设备能力来重新取向或修改3d视频数据内的至少一个封闭容积。可以使用上述流水线3d打印从上述过程或流水线输出的3d模型。例如在某些打印机上,模型的取向可能需要大量的支撑结构才能正确打印。或者,场景中的许多对象可以被间隔开,使得它们在不“打包”到打印床上的情况下不适合打印床。经由操作316,基于针对目的地打印机发布的能力,可以以优化的方式取向3d模型。

在一些方面,操作316还可以包括操作318,其中可以重新取向3d视频数据的至少一个封闭容积以优化至少一个封闭容积的打印取向。在一些方面,可能期望最小化3d模型中的悬垂或桥接以使3d模型的3d生成更清晰、更好或更有效(例如更少材料,更少时间等)。这可以根据目标3d打印机的容积/尺寸能力,例如基于每个对象的容积/尺寸或3d视频数据的封闭容积,通过重新取向3d模型中的至少一个封闭容积来实现。

在一些方面,操作316可以附加地或替代地包括在操作320处重新取向至少一个封闭容积以优化总打印容积以等于或小于3d打印机容积。在一些方面,操作320可以包括旋转或平移、偏移等3d模型中的一个或多个对象以适合目标3d打印设备的总3d打印容积。操作320可以包括确定未被对象占据的3d视频数据内的空间的尺寸,确定一个或多个对象的尺寸,以及重新取向一个或多个对象以在总印刷尺寸的限定内填充未被对象占据的空间。用于在三维中“打包”或缩减用于3d打印的3d模型的总容积的最佳算法可以包括在固定的z平面(构建板)上的高效取向部分,因此部分或不同的对象不重叠。

在一些方面,操作316、318和/或320中的任意一个可以被一个或多个用户选择修改或通知,该用户选择指示保留对象中的一些或所有的相对取向的偏好、3d打印机分辨率(例如在给定特定打印机分辨率/层高度等情况下,这可能影响能够精确生成的悬垂或桥接量)。在一些情况下,保持原始取向可以减少生成模型所需的支撑材料,和/或可以改善模型的某些部分的表面完成。在一些方面,保持原始取向或重新取向完整3d模型的部分可以由个体打印机能力和/或弱点决定。

在一些方面,过程300可以包括在操作322处为3d模型中的一个或多个封闭容积配置支撑。一些对象可以在空中并且不由模型材料(例如在下面)支撑件并且将难以打印。在这些情况下,可以在模型中指示多种材料,例如与3d模型的不同3d网格或网格的部分相关联。在一些方面,透明物理材料可以应用于一个或多个支撑结构/网格,以保持看似悬浮在空气中的对象。

在一些方面,操作322可以包括为对象配置一个或多个支撑以最小化用于生成支撑的材料(例如挖空支撑,因为在3d生成之后可以移除支撑等)。在一些方面,3d模型的桥接部分可以类似地被配置为最小化用于生成这些部分的材料。

在一些方面,在操作316和/或322的完成之后,可以导出3d模型以用于3d生成。在一些方面,过程300还可以包括在操作324将3d模型发送到3d打印设备,然后3d打印设备可以生成3d模型。

在一些方面,尺度信息可以嵌入3d视频数据中,指示模型的实际尺寸,因为它与物理世界相关。3d打印流水线/过程300可以通过流水线保留该数据,以确保在模型上执行的操作保持原始比例。这可以实现3d打印真人大小或精确的比例对象,而无需技术允许的额外客户输入。

图4和5示出了用于修复3d视频数据的更详细的过程400和500,例如作为过程300的操作306的示例,其可以包括从在设备上播放的3d视频捕获的帧,以产生可以通过3d打印机轻松打印的3d模型。过程400和500可以将不同的过滤器应用于3d视频数据,其可以包括由定义3d视频数据的不同表面的线连接的顶点的结构或网格,以使其防水(例如封闭容积)和3d可打印。过程400和/或500可用于创建封闭容积,创建统一表面取向,解析自交叉并移除内部结构,以及解析变换和转换,以产生能够被打印的3d模型。

参考图4,在接收到用于3d打印的3d视频数据的选择时,可以标识3d网格中的孔。在操作402,可以填充或修复孔或间隙,以产生封闭的一个或多个容积。这可以包括基于最佳拟合、外插和其他已知的数学技术将分段和/或顶点添加到网格,以匹配或者与邻近的分段和/或顶点对齐到间隙或孔。

接下来,在操作404,可以统一3d网格的表面取向,例如平滑3d网格以产生更美观的物理3d模型。在一些方面,3d网格的初始重建可能产生与从3d视频捕获的对象或帧不同的粗糙度或噪声。在一些方面,可以应用可选的过滤器以平滑3d网格,实现各种技术。初始重建可以实现泊松表面重建以平滑锐边。可以使用射线投射技术来找到表面,然后提供均匀地包裹外表面的3d网格(例如收缩包裹)。在一个示例中,可以将拉普拉斯-贝尔特拉米算子应用于网格上以便有效地减少来自网格的高频数据。然而,在一些方面,泊松重建可以平滑精细细节,并且因此可能不适用于所有3d打印场景。可以使用各种其他平滑技术,例如诸如如本领域中已知的。

在操作406,可以解析3d视频数据/网格的自交叉,例如以减少3d网格的不必要的复杂性,以在3d模型中创建平滑线等。诸如抽取的网格简化可用于降低3d网格的复杂性。在一些方面,与3d视频数据相比时,给定比例的3d打印机可具有较低的分辨率。在一个示例中,3d模型的分辨率或复杂度可以减少到将由3d打印机显示或生成的最小特征,例如根据2016年6月9日提交的标题为“adaptivedecimationusing3dvideofeatures,”的美国专利申请no.15/178,364中描述的技术。

在操作408,可以移除3d视频数据/网格的内部结构。这可以包括标识3d网格的外表面,然后移除在对象的封闭容积内的结构。移除网格内部结构的一种方法是从多个视点光栅化网格(例如考虑一个包围3d模型的球体,其中相机均匀地散布在其表面上,全部查看)。可以使用z缓冲算法来标识对相机可见的三角形的标识。任意视点都不可见的任意三角形都可以被认为是内部结构,并且因此被移除。在一些方面,保持内部结构可能是重要的。例如玩具中的空心内部可能会发出一个分离的珠子,这个珠子作为一个完整的对象被打印在拨浪鼓的内部。内部对象的这个和其他示例可以通过表面法线取向来确定,其中包含在对象的有效外表面之间的外来的、混乱的或断开的几何形状被安全移除。

过程400可以产生3d模型,该3d模型以3d打印设备可以容易地打印的方式被完全定义。

图5示出了用于修复3d视频数据的过程500的一个特定实现,并且可以作为过程300的操作306的一部分来执行。过程500可以在操作502开始,其中可以拼接3d视频网格的三角。拼接操作是指网格作为一组个体三角形(“三角形汤”)之间的变换,其中每个三角形是独立的,进入三角形共享顶点的网格。这可以通过多种方式完成,例如通过获得每个三角形中的每个顶点,找到最近的相邻顶点,以及合并占据空间中相同坐标的顶点。接下来,在操作504,可以关闭3d视频数据的不重要的孔。在操作506,可以移除3d视频数据的双三角形,并且可以在操作508处固定或调整3d视频数据的任意翻转三角形。接下来,在操作510处可以再次标识和关闭不重要的孔,在操作512处拼接3d视频数据的三角形,并且可以在操作514处固定、调整或重新取向已经翻转的任意三角形。接下来,在操作516,可以关闭3d数据中的所有孔。然后可以在操作518处包装3d视频数据,使得所有表面法线都适当地被取向。然后,在操作520可以移除3d视频数据的任意退化面,在操作522处,连同任意壳或伪像(例如具有特定幅度,诸如低于阈值大小)。接下来,在操作524,例如3d视频数据可以被转换并变换成3d打印设备坐标系统,用于3d打印。在一些方面,操作524可以包括操作316、318和/或320中的一个或多个,诸如以与过程300中所示的顺序不同的顺序,或者例如以类似的顺序,通过排除操作308、310、311、312、314和/或322。接下来,在操作526,可以导出修改/修复的3d模型以用于3d生成。

图6示出了用于生成3d模型的一个或多个基底结构的更详细处理的过程,诸如上述过程300的操作308的示例。在一些方面,过程308可以基于3d模型的重心生成最小化尺寸/容积基底以及基于从3d视频数据导出的边界框生成半径。在某些情况下,坚固的基底可能对确保某些模型能够正确站立非常重要。美学上令人愉悦的基底可以提高3d打印对象或对象的质量和合意性。从一个高级别,使用边界框和简单的偏移,在某些方面,受到3d视频数据中的一个对象或多个对象的中心或重心的影响,用于支撑3d打印的其余部分的基底的生成可以被自动化。在一些方面,可以应用模型的重心以使基底更重,例如更安全地支撑3d模型以用于一旦产生就站立在某个取向上。3d视频可能包含打印后需要直立的人和对象。使用重心检测以及用于生成合适基底的工具,可以生成将以正确取向站立的3d打印件。

过程308可以在操作602开始,其中可以例如通过上面参考图2描述的ui200接收用于生成3d视频数据的一个或多个基底结构的选择。在一些示例中,基底可以自动为3d视频数据生成,而无需接收明确的选择或指令来这样做。接下来,在操作604,可以基于3d视频数据的尺寸来确定边界框或其他形状的大小。在一些方面,可以选择边界框以符合(例如等于或小于)目标3d打印机的打印容积/尺寸。在一些情况下,可以减小从3d视频数据生成的3d模型的总大小,以便在执行操作604之前由目标3d打印机可打印。

接下来,在操作610,可以将一个或多个偏移应用于边界框,例如以确保基底结构或结构与3d模型中的对象对齐(例如基于3d对象的所有的中心)。接下来,在操作612,可以基于边界框或形状以及应用于边界框的任意偏移来生成基底结构的3d模型。在一些情况下,可以基于3d模型的总高度、宽度、其他尺寸特征或其他特征来确定或预先选择基底的厚度和/或形状(圆形、椭圆形、圆形边缘、矩形等)。

在一些方面,可以在操作606确定一个或多个重心(例如对于3d模型中的每个对象)。在操作608,边界框或形状可以与3d模型的重心对准或者修改,例如以确保基底一旦生成就支撑件3d模型。在一些方面,这可以包括如果重心被确定为在3d模型的基底结构/底部之上的某个阈值距离则增加基底的大小,如果重心较低则减小基底的大小,基于多个对象的多个重心来调整基底的中心,例如具有基于用于生成每个相应对象的材料的量来向它们分配不同的权重,等等。

接下来,在操作614,可以确定3d基底的容积加上3d容积是否小于总3d打印机容积。如果基底和3d模型的总容积小于总打印容积,则在操作616,基底模型可以与3d模型组合。在一些方面,这可以包括在基底和3d模型之间添加支撑结构/连接点,例如其中仅3d模型的几个较小部分将接触基底。在其他情况下,3d模型可以在3d模型的基底处具有实质结构,并且因此可以被定位以最小化或修改来直接与基底结构接触。在这些场景中,然后可以将组合模型导出到3d打印设备以用于生成。

在操作614处,在确定3d模型和基底结构的容积或尺寸超过总打印容积/尺寸的情况下,在操作620,可以将基底生成为分离的模型,并且与3d模型一起导出以分离打印,然后连接到3d模型。在一些情况下,可以在基底中自动生成栓钉和对应的孔(或其他类型的支撑结构或连接器)并且与3d模型对应连接点以确保在3d生成之后可以可移除地或永久地连接基底和3d模型。

图7示出了示例过程700,示例处理700用于减少或添加从3d视频数据生成的3d模型和/或基底中的材料,例如以产生用于打印的更高效3d模型,同时保持或增强3d模型的结构完整性。在一些方面,过程700可以与上述过程300和/或过程400、500和/或600分离地实现或组合地实现。过程700可以从3d视频数据网格产生骨架或壳,其可以用于使3d模型中空或减小3d模型的壁的厚度以减少3d生成模型所需的材料的量,对模型进行结构分析以确保它将支撑自己/持久的预期用途,等等。

从高级别来看,过程700可以生成具有外壁和中心结构的数学结构。在一个方面,该结构可用于基于3d打印机的能力来标识太薄而无法打印的区域。过程700还可以标识可以制成中空的区域以减少打印时间并减少产生3d模型所需的材料。使用基本骨架或壳结构的模型分析可以帮助标识网格是否结构合理-例如部分以模型可以支撑自身的方式连接。

过程700可以在操作702开始,其中3d视频数据可以被变换为3d网格结构。在某些方面,这可以自动执行。在某些方面,3d视频可以包括网格信息。在任意情况下,然后可以在操作704处将骨架或壳算法应用于网格数据。在一些方面,在操作706处,壳算法可以包括标识网格的外壁或表面中的一个或多个。在操作708,可以获得目标3d打印设备分辨率和/或其他能力(例如最小层厚度)。然后,在操作710,可以基于目标3d打印机能力选择壁厚。然后,在操作712,网格数据的壳可以通过将壁厚应用到网格的外壁/表面来生成。

接下来,在操作714,可以基于所获得的3d打印机能力来确定壳结构的任意区域/壁是否太薄而不能打印。如果确定是肯定的,则可以在操作716选择不同的壁厚,并且重复操作704-712中的一个或多个,直到选择了令人满意的壁厚。一旦确定壁厚可由目标3d打印设备打印,过程700就可以进行到操作718,其中可以确定是否可以进一步挖空所修改的3d视频数据/网格壳结构的任意区域。可以基于3d网格的壁的阈值最小厚度、基于3d网格上的载荷等来执行操作718。如果是,则可以在操作720处从网格移除一个或多个分段。

一旦不再能够移除分段,过程700可以进行到操作722,其中可以测试网格结构以找到可能不自支撑件3d模型的网格的任意弱区域。操作722可以包括将密度分配给要用于生成3d模型的材料(例如可配置或默认材料),获得打印材料的强度信息(例如经由在线资源、制造商规格等),以及计算3d模型的壳结构的各个部分上的负载。如果负载超过给定部分的强度,则可以确定对应于该部分的壁太薄而不能支撑3d模型。在一些方面,用于确定负载对于3d模型的一部分是否太大的阈值可以是可配置的,诸如基于安全阈值、在3d打印对象中需要更大耐久性的预期用途等。如果确定修改的3d模型/壳结构太弱而不能自支撑或用于预期用途,则可以在操作724处例如通过增加对应于、接近或支撑所确定的弱区域的区域的壁厚来重新实施3d模型的弱区域。

在一些情况下,如果在操作722确定3d结构的多个区域太弱,则可以选择不同的壁厚度,例如对于3d模型的标识部分,或者在一些情况下,全局地选择。然后可以经由操作704-720并且在一些情况下操作706-712中的一个或多个来重建或修改壳结构,直到选择合适的壁厚,并且在操作722结构满足强度标准。过程700可以然后输出已经被挖空和被加强的3d模型,如果需要,并且3d打印就绪。

图8示出了示例过程800,示例过程800用于标识可以映射到高质量预先设计的模型或类似对象的3d视频数据的部分或对象,例如以增强基于3d视频生成的3d模型的质量,和/或减少产生打印就绪3d模型所需的处理量。在一些方面,过程800可以与上述过程300和/或过程400、500、600和/或700分离地使用或组合地使用。

过程800可以包括用标识来标记视频流中的视频数据,该标识可以稍后针对更高或高质量的预建3d资产的大库进行参考。这可以使客户与预先构建的超高保真模型连接,以用于视频中的关键方面。当客户在3d视频播放器应用或其他应用中选择3d视频帧时,应用可以提取3d数据标识并且针对已经为3d打印准备的3d模型的数据库查找它们。这可以使3d视频用作预览3d可打印内容的方式。在这种场景中,可以缓存/存储更高质量的版本以供参考或用于其他用途。

过程800可以在操作802开始,其中一个或多个标签可以与3d视频流或3d视频数据中的一个或多个对象相关联。操作802可以利用本领域已知的对象识别技术、手动关联和/或其他技术。接下来,在操作804,可以在3d视频流中和/或在针对3d打印选择的3d视频帧的所选择的部分中标识与标签相关联的对象。在操作806,使用相关联的标签信息,可以搜索预先设计的或先前设计的3d模型的库。接下来,在操作808,可以使用预先设计的模型从库中访问和生成标记的3d数据/对象的模型。以这种方式,例如在用于3d打印的3d视频数据/其帧的选择时,使用预先设计的模型可以更高效和/或更快速地生成与所选择的3d视频数据相对应的更高质量的3d模型。在一些方面,过程800还可以包括操作810,其中所选择的3d视频数据的一个或多个特征可以合并到标记对象的预先设计的3d模型中。

在一些示例中,所描述的技术的一个或多个方面可以诸如通过获得cnc机器或设备的加工规范并基于其来修改从3d视频生成的3d模型来应用于cnc加工或其他3d生成设备和技术。

上面描述的3d建模或构建器应用/用户界面200,以及用于从3d视频数据3d生成#d模型的过程300、400、500、600、700和/或800中的任意一个可以在一个或多个计算设备或环境中实现,如下所述。图9描绘了其中可以体现本文描述的技术中的一些的示例通用计算环境。计算系统环境902仅是合适的计算环境的一个示例,并且不旨在对本公开主题的使用范围或功能提出任意限制。也不应将计算环境902解释为对示例性操作环境902中示出的任一组件或其组合有任意依赖性或要求。在一些实施例中,各种所描绘的计算元件可包括被配置为实例化本公开的特定方面的电路。例如本公开中使用的术语电路可以包括被配置为通过固件或开关执行功能的专用硬件组件。在其他示例实施例中,术语电路可以包括通用处理单元、存储器等,由体现可操作以执行功能的逻辑的软件指令配置。在电路包括硬件和软件的组合的示例实施例中,实现者可以编写体现逻辑的源代码,并且源代码可以编译成可以由通用处理单元处理的机器可读代码。由于本领域技术人员可以理解,现有技术已演进到硬件、软件或硬件/软件的组合之间几乎没有差异的程度,因此硬件与软件的选择来实现特定功能是留给实施者的一种设计选择。更具体地,本领域技术人员可以理解,可以将软件过程变换为等效的硬件结构,并且硬件结构本身可以变换为等效的软件过程。因此,硬件实现与软件实现的选择是设计选择之一,并且留给实现者。

计算机902可以包括移动设备或智能电话、平板计算机、膝上型计算机、台式计算机等中的任意一种,通常包括各种计算机可读介质。计算机可读介质可以是可由计算机902访问的任意可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质两者。系统存储器922包括易失性和/或非易失性存储器形式的计算机可读存储介质,例如只读存储器(rom)923和随机存取存储器(ram)960。包含有助于诸如在启动期间在计算机902内的元件之间传送信息的基本例程的基本输入/输出系统924(bios)通常存储在rom923中。ram960通常包含可立即访问和/或当前由处理单元959正在操作的数据和/或程序模块。作为示例而非限制,图9示出了操作系统925、应用程序926、其他程序模框927和程序数据928。

计算机902还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图8示出了从不可移动的非易失性磁介质读取或向其写入的硬盘驱动器938、从可移动的非易失性磁盘954读取或向其写入的磁盘驱动器939、以及从例如cdrom或其他光学介质的可移动的非易失性光盘953读取或向其写入的光盘驱动器904。可以在示例操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态ram、固态rom等。硬盘驱动器938通常通过诸如接口934的不可移除存储器接口连接到系统总线921,并且磁盘驱动器939和光盘驱动器904通常通过诸如界面935的可移除存储器接口连接到系统总线921。

上面讨论并在图9中示出的驱动器及其相关联的计算机存储介质为计算机902提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图9中,例如硬盘驱动器图938被示为存储操作系统958、应用程序957、其他程序模块956和程序数据955。注意,这些组件可以与操作系统925、应用程序926、其他程序模块927、以及程序数据928相同或不同。操作系统958、应用程序957、其他程序模块956和程序数据955在本文给出不同的数字,以说明它们至少是不同的副本。用户可以通过诸如键盘951和通常称为鼠标、轨迹球或触摸板的指点设备952的输入设备将命令和信息输入到计算机902中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口936连接到处理单元959,但是可以通过诸如并行端口、游戏端口或通用串行总线(usb)的其他接口和总线结构连接。监视器942或其他类型的显示设备也经由诸如视频接口932的接口连接到系统总线921。除了监视器之外,计算机还可以包括诸如扬声器944和诸如3d打印机的打印机943的其他外围输出设备,其可以通过输出外围接口933连接。

计算机902可以使用到诸如远程计算机946的一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机946可以是个人计算机、服务器、路由器、网络pc、对等设备或其他公共网络节点,并且通常包括上面相对于计算机902描述的元件中的许多或所有,尽管图9中仅示出了存储器存储设备947。图9中描绘的逻辑连接包括局域网(lan)945和广域网(wan)949,但也可以包括其他网络。这种联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。

当在lan联网环境中使用时,计算机902通过网络接口或适配器937被连接到lan945。当在wan联网环境中使用时,计算机902通常包括调制解调器905或用于通过诸如互联网的wan949建立通信的其他装置。调制解调器905可以是内部的或外部的,可以经由用户输入接口936或其他适当的机制被连接到系统总线921。在联网环境中,相对于计算机902描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例而非限制,图9示出了远程应用程序948驻留在存储器设备947上。可以理解,所示的网络连接是示例,并且可以使用在计算机之间建立通信链路的其他手段。

在一些方面,其他程序827可以包括提供如上所述的功能的3d视频打印应用965。在一些情况下,视频打印应用965可以执行过程300、400、500、600、700和/或800,并且如上所述通过图形接口931、视频接口932、输出外围接口933、和/或一个或多个监视器或触摸屏设备942提供用户接口200。在一些方面,3d视频打印应用965可以与3d打印机135通信以产生所选择的3d视频数据的物理3d模型,例如针对3d打印机135的能力进行优化。在一些方面,其他程序827可以包括一个或多个3d虚拟化应用,其可以获得并提供可以显示由3d视频打印应用965生成的3d模型的图像。

在一个实施例中,一种用于将三维(3d)视频数据变换为3d可打印模型的系统,所述系统包括:

处理器;以及

存储器,存储指令,所述指令在由所述处理器执行时,使得所述系统:

接收用于3d打印的3d视频数据的选择;

标识3d打印设备的至少一种能力;

修改选择的3d视频数据的一部分以生成3d模型,其中所述修改限定至少一个封闭容积;

基于3d打印设备的所述至少一种能力来重新取向所述3d模型的所述至少一个封闭容积,其中所述重新取向被执行以优化所述至少一个封闭容积的总打印容积或打印取向中的至少一个;以及

向3d打印设备发送所述3d模型以用于生成至少一个3d对象。

在一个实施例中,被存储在所述存储器中的所述指令在执行时还使得所述系统:

实例化被配置为绘制所述3d视频数据的用户界面;以及

通过所述用户界面来接收所述3d视频数据的所述选择。

在一个实施例中,修改3d视频数据的所述一部分以生成所述3d模型还包括:

统一3d视频数据的所述一部分的至少一个表面取向;

解析3d视频数据的所述一部分的至少一个自相交;以及

移除3d视频数据的所述一部分的至少一个内部结构。

在一个实施例中,存储在所述存储器中的所述指令在执行时还使得所述系统:

生成针对所述3d模型的至少一个基底,其中生成所述至少一个基底包括:

确定所述3d模型的中心或重心;以及

基于所确定的所述中心或重心来修改所述至少一个基底。

在一个实施例中,一种用于将三维(3d)视频数据变换为3d可打印模型的方法包括:

通过计算设备接收用于3d打印的3d视频数据;

由所述计算设备修改所述3d视频数据的一部分以生成3d模型,其中所述修改限定至少一个封闭容积;

由所述计算设备至少基于3d打印设备的能力来重新取向所述3d模型的所述至少一个封闭容积,其中所述重新取向被执行以优化所述至少一个封闭容积的总打印容积或打印取向中的至少一个;以及

向所述3d打印设备发送所述3d模型以生成至少一个3d对象。

在一个实施例中,所述3d视频数据响应于对所述3d视频数据的视频帧的选择而被接收。

在一个实施例中,修改所述3d视频数据的所述一部分还包括以下项中的至少一项:

统一所述3d视频数据的至少一个表面取向;

解析所述3d视频数据的至少一个自相交;或者

移除所述3d视频数据的至少一个内部结构。

在一个实施例中,修改所述3d视频数据的所述一部分以生成所述3d模型还包括以下项中的至少一项:

拼接所述3d视频数据的一个或多个三角形;

关闭所述3d视频数据中的至少一个孔;

移除所述3d视频数据中的至少一个双三角形;

调整所述3d视频数据中的至少一个翻转三角形;

包装所述3d视频数据;或者

从所述3d视频数据中移除至少一个退化的面或壳;以及

转换和变换所述3d视频数据用于3d打印。

在一个实施例中,所述方法还包括:

将至少一个过滤器应用于所述3d模型或修改与所述3d视频数据相关联的照明信息。

在一个实施例中,所述方法还包括:

生成针对所述3d模型的至少一个基底。

在一个实施例中,生成所述至少一个基底还包括:

确定所述3d模型的中心或重心;以及

基于所确定的所述中心或重心来修改所述至少一个基底。

在一个实施例中,基于所确定的所述中心或重心修改所述至少一个基底还包括以下项中的至少一项:

基于所确定的所述中心或重心相对于3d模型定位所述至少一个基底;

基于所确定的所述中心或重心来修改所述至少一个基底的形状;或者

基于所确定的所述中心或重心来修改所述至少一个基底的至少一个尺寸。

在一个实施例中,生成所述至少一个基底还包括:

基于所述3d模型确定边界区域;以及

基于所确定的所述边界区域来修改所述至少一个基底。

在一个实施例中,基于所确定的所述边界区域来修改所述至少一个基底还包括:

基于所确定的所述边界区域来相对于所述3d模型定位所述至少一个基底;

基于所确定的所述边界区域来修改所述至少一个基底的形状;或者

基于所确定的所述边界区域来修改所述至少一个基底的至少一个尺寸。

在一个实施例中,生成所述3d模型还包括:

标识与所述3d视频数据相关联的标签信息;以及

基于与所述标签信息相关联的预定义模型来生成所述3d模型。

在一个实施例中,所述方法还包括:

生成针对所述至少一个封闭容积的一个或多个支撑结构。

在一个实施例中,所述方法还包括:

将所述3d模型变换为包括多个壁的壳结构;以及

移除位于所述多个壁内的所述3d模型的至少一部分。

在一个实施例中,所述方法还包括:

将所述壳结构的所述多个壁中的一个壁的至少一部分修改为以下项中的至少一项:

最小化3d打印所述3d模型所需的材料的量;或者

重新强制所述壳结构的弱部分。

在一个实施例中,计算机可读存储介质具有存储在其上的指令,所述指令在由至少一个处理器执行时使得计算设备执行操作,所述操作包括:

接收用于3d打印的3d视频数据;

修改所述3d视频数据的一部分以生成3d模型,其中所述修改限定至少一个封闭容积;

基于3d打印设备的至少一种能力来重新取向所述至少一个封闭容积,其中所述重新取向被执行以优化所述至少一个封闭容积的总打印容积或打印取向中的至少一个;以及

向所述3d打印设备发送所述3d模型以用于生成至少一个3d对象。

在一个实施例中,所述指令在执行时使得所述计算设备执行以下附加操作:

实例化被配置为绘制所述3d视频数据的用户界面;以及

经由所述用户界面接收用于3d打印的所述3d视频数据的选择。

前面部分中描述的过程、方法和算法中的每一个可以由一个或多个计算机或计算机处理器执行的代码模块实现,并且完全或部分地由一个或多个计算机或计算机处理器执行的代码模块自动化。代码模块可以存储在任意类型的非暂态计算机可读介质或计算机存储设备上,诸如硬盘驱动器、固态存储器、光盘和/或类似物。过程和算法可以部分或全部地在专用电路中实现。所公开的过程和过程步骤的结果可以持久地或以其他方式存储在任意类型的非暂态计算机存储器中,诸如例如易失性或非易失性存储器。上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都旨在落入本公开的范围内。另外,在一些实现中可以省略某些方法或过程框。本文描述的方法和过程也不限于任意特定序列,并且与其相关的框或状态可以以适当的其他序列执行。例如所描述的框或状态可以以不同于具体公开的顺序执行,或者多个框或状态可以在单个框或状态中组合。示例框或状态可以串行、并行或以某种其他方式执行。可以向所公开的示例实施例添加框或状态或从所公开的示例实施例移除框或状态。本文描述的示例系统和组件可以与所描述的不同地配置。例如与所公开的示例实施例相比,可以添加、移除或重新布置元件。

还应当理解,各种项目被示为在使用时存储在存储器中或存储在存储装置中,并且出于存储器管理和数据完整性的目的,这些项目或其部分可以在存储器和其他存储设备之间传输。替代地,在其他实施例中,软件模块和/或系统中的一些或所有可以在另一设备上的存储器中执行,并且经由计算机间通信与所示计算系统通信。此外,在一些实施例中,系统和/或模块中的一些或全部可以以其他方式实现或提供,诸如至少部分地以固件和/或硬件实现,包括但不限于一个或多个专用集成电路(asic)、标准集成电路、控制器(例如通过执行适当的指令,包括微控制器和/或嵌入式控制器)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)等。模块、系统和数据结构中的一些或所有(例如作为软件指令或结构化数据)也可以存储在计算机可读介质上,诸如硬盘、存储器、网络或便携式媒体物品,其由适当的驱动器或适当的连接读取。系统、模块和数据结构还可以作为生成的数据信号(例如作为载波或其他模拟或数字传播信号的一部分)在各种计算机可读传输介质上传输,包括基于无线和有线/电缆的介质,并且可以采用各种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。在其他实施例中,这种计算机程序产品也可采用其他形式。因此,本公开可以用其他计算机系统配置来实践。

除非另有说明或在所使用的上下文中所理解的,否则本文使用的诸如“能够”、“可”、“可能”、“可以”、“例如”等的条件语言通常旨在表达某些实施例包括,而其他实施例不包括某些特征、元件和/或步骤。因此,这种条件语言通常不旨在暗示一个或多个实施例以任意方式需要特征、元素和/或步骤,或者一个或多个实施例必须包括用于决定(无论是否有作者输入或提示)在任意特定实施例中是否包括或将要执行这些特征、元件和/或步骤的逻辑。术语“包括”、“包含”、“具有”等是同义的并且以开放式方式包含使用,并且不排除其他元件、特征、动作、操作等。此外,术语“或”在其包含意义上使用(而不是在其独有意义上),使得当使用时,例如为了连接元素列表,术语“或”表示在列表中的元素的一个、一些或全部。

虽然已经描述了某些示例实施例,但是这些实施例仅作为示例呈现,并且不旨在限制本文公开的发明的范围。因此,前面的描述中的任意内容都不旨在暗示任意特定的特征、特点、步骤、模块或框是必需的或必不可少的。实际上,本文描述的新方法和系统可以以各种其他形式体现;此外,在不脱离本文公开的本发明的精神的情况下,可以进行对本文描述的方法和系统的形式中的各种省略、替换和改变。所附权利要求及其等同物旨在覆盖落入本文公开的某些发明的范围和精神内的这些形式或修改。

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