一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于多角度屏幕覆盖分析的设备的制作方法

2022-06-09 00:25:17 来源:中国专利 TAG:

用于多角度屏幕覆盖分析的设备
1.相关申请的交叉引用
2.本技术要求于2020年1月30日提交的题为《用于多角度屏幕覆盖分析的设备(apparatus for multi-angle screen coverage analysis)》的美国临时专利申请第62/968,047号和于2020年10月15日提交的题为《用于多角度屏幕覆盖分析的设备(apparatus for multi-angle screen coverage analysis)》的美国专利申请第17/071,940号的优先权,其通过引用并入本文,如同出于所有目的在本技术中完整阐述一样。


背景技术:

3.在如电影、视频等的视频制作期间,传统的工业解决方案包括在开始构建数字图像中使用的对象之前完成布局和相机。例如,此类构建可能涉及动画和/或照明工作。等待最终布局和相机可能导致视觉制作的整体延迟。一种方法是为每个镜头构建新的且唯一的对象和布景。这将在该镜头中提供最合适的构建质量。然而,其代价是无法通过在其它镜头中重复使用这些对象来利用这一努力。第二种方法是以尽可能高的质量构建所有对象。然而,这可能会有在资产创建期间浪费精力的风险,而不会对最终图像产生影响。或者,更糟糕的是,它有可能因浪费处理时间和内存而对系统在技术方面创作图像的能力产生负面影响。这可以通过构建对象的多个版本(lod,或细节级别)来缓解,使得系统可以选择版本并优化时间和/或内存。然而,这种方法仍然需要花费最大的努力来创作最详细的版本,即使较少的版本是通过程序导出的。
4.至少优选实施例的目的是至少解决上述的一些缺点。另外的或可替代的目的是至少向公众提供有用的选择。


技术实现要素:

5.实施例总体上涉及多角度屏幕覆盖分析。在各种实施例中,系统不剔除具有最高细节级别的完全构建的动画场景,而是为动画制作者确定场景中的特定对象需要什么资产细节级别,并在视觉制作的过程中提前通知动画制作者。在一些实施例中,系统获得至少一个图像,其中该图像是计算机图形生成的图像,其中该图像包含多个对象,并且其中该对象包括至少一个目标对象。然后,系统确定目标对象的屏幕覆盖信息,其中屏幕覆盖信息基于目标对象所覆盖的屏幕的百分比。系统还确定目标对象的深度信息,其中目标对象的深度信息基于至少一个其它对象。然后,系统基于屏幕覆盖信息和深度信息确定目标对象的资产细节级别,并将资产细节级别存储在数据库中。
附图说明
6.图1是可用于本文描述的实施例的计算机图形生成的图像的实例的框图。
7.图2是根据一些实施例的多角度屏幕覆盖分析的实例流程图。
8.图3示出了适用于本文描述的实施例的实例计算机系统的基本组件。
9.图4是根据一些实施例的实例视觉内容生成系统的框图,该系统可用于生成静止
图像和/或图像的视频序列形式的图像。
10.图5是可用于本文描述的实施例的实例计算机系统的框图。
具体实施方式
11.实施例提供了多角度屏幕覆盖分析。在一些实施例中,系统获得具有至少一个用于分析的目标对象的计算机图形生成的图像。系统确定目标对象的屏幕覆盖信息和深度信息。在各种实施例中,深度信息可以包括目标对象与给定相机之间的距离。然后,系统基于屏幕覆盖信息和深度信息确定目标对象的资产细节级别。然后,系统将资产细节级别存储在数据库中,并使资产细节级别对用户可用。术语资产和目标对象可以互换使用。
12.与传统的解决方案相比,该系统不为如电影等视觉制作中的每个镜头构建新的且唯一的3维(3d)布景。相反,如本文更详细描述的,在各种实施例中,系统构建主布局,其中的资产或对象具有灵活的资产细节级别。系统可以在视觉制作的多个镜头上重复使用给定的目标对象或目标对象的集合。
13.使用主布局在技术上是有利的,因为与处理具有高资产细节级别的对象的多个布景相比,系统更有效地处理一个主布局和具有适当资产细节级别的目标对象。换言之,本文描述的实施例降低了系统的处理要求。例如,在一些情形中,给定的目标对象可能出现在相机附近。这样,更高的资产细节级别是适当的。在一些情形中,给定的目标对象可能出现在相对于相机的远处背景中。这样,较低的资产细节级别是适当的。特定的资产细节级别可能会有所不同,具体取决于特定的实施。
14.使用具有一个或多个目标对象的灵活资产细节级别的主布局在技术上也是有利的,因为它减少了其它视觉制作系统(例如,涉及动画、照明等的系统)的处理要求。这些处理要求可能涉及存储器、处理器功率和时间。此外,这些其它视觉制作系统不需要等到布局上的工作和相机工作完成再进行。这缩短了整体的视觉制作,从而降低了制作成本。
15.图1是可用于本文描述的实施例的计算机图形生成的图像100的实例的框图。示出了在图像100中捕捉的场景或镜头中的目标对象102和另一对象104。为了便于说明,在目标对象102的上下文中描述本文描述的实施例。如果视为目标对象,这些实施例也可以应用于对象104。
16.图像100可以是任何给定视觉制作(例如,电影制作、视频制作等)的图像。在该实例中,目标对象102是桶。虽然在桶的上下文中描述了一些实施例,但是目标对象可以是任何类型的对象(例如,汽车、树、建筑物、怪物等)。
17.在各种实施例中,本文描述的关于图像中的对象的处理可以在任何合适类型的图像上执行。在一些实施例中,图像可以包括照片、视觉图像,如对象id通行证等导出图像。在各种实施例中,例如,图像可以是不同地称为“对象id”、“对象id通行证”、“渲染id”、“材料id”等的类型,并且可以与各种类别的“色彩映射”相关联。在各种实施例中,这些图像将场景中的不同对象模型或材料简化为对应的平面色“掩模”。在各种实施例中,场景中的一个或多个掩模可经受本文描述的步骤中的一个或多个以达到用于渲染对应于由掩模表示的对象id的对象的建议细节级别。
18.如图所示,目标对象102基本上位于图像的中间,并且靠近另一对象104示出以提供某种透视。取决于特定的镜头,在一些情形中,目标对象102可能位于由102'指示的图像
的远处背景中。在其它情形中,目标对象102可以更靠近由102"指示的图像的前景。
19.为了便于说明,本文在单个目标对象102的上下文中描述实施例。这些实施例也适用于多个目标对象。可能存在其中所示的目标对象变化102、102'和102"是在图像100的同一帧中使用的三个不同桶的情形。例如,在给定图像中可能有三个桶,其中一个桶在近处,一个桶在远处,一个桶在更远处。
20.在各种实施例中,系统从多个不同的相机角度和距离分析相同的资产或目标对象,从而在整个制作过程中产生该资产的预期外观的代表性样本。在各种实施例中,系统分析组合样本以确定艺术家在生成资产的组件(例如,几何形状、纹理等)时应瞄准的资产细节级别,从而知道资产将如何在整个制作过程中使用。
21.在各种实施例中,资产细节级别可以包括图像细节量。在各种实施例中,资产细节级别可以包括图像分辨率。在各种实施例中,可以以绝对的方式定义资产细节级别。例如,资产细节级别可以表示为使用按面积或尺寸的像素计数的屏幕上大小。在各种实施例中,可以对该计数进行四舍五入或近似,以便将对象的细节级别归类为对人类交互、通信和选择更有用的抽象(例如,“256”、“512”、“1k”、“2k”、“4k”等)。
22.在各种实施例中,可以以相对的方式定义资产细节级别。例如,资产细节级别可以表示为最终图像大小的百分比或分数大小。在各种实施例中,可以以抽象的方式定义资产细节级别。例如,资产细节级别可以表示为“低”、“中”、“高”等。在各种实施例中,资产细节级别表示给艺术家、技术人员和管理人员,他们通过外部经验、政策、文档、术语等对这些术语有共同的理解。
23.在各种实施例中,资产细节级别是通知艺术家、技术人员和管理人员如何应用他们的工艺的一个考虑因素。给定资产对给定资产细节级别规范的精确实现可以基于那些艺术家、技术人员和管理人员已知的其它专业知识和背景而有所不同。例如,对于给定的资产细节级别,可能需要一个资产从几何密度以很少或没有纹理密度获得其细节,而对于第二资产则可能相反。
24.此外,在各种实施例中,资产细节级别可以包括对深度、屏幕空间覆盖、可见性、运动模糊、镜头模糊、纹理、纹理分辨率、资产的原始分辨率、像素密度、纹理密度、模型密度等的考虑。资产细节级别可能会影响在给定图像中可以看到多少细节(例如,纹理等)。这影响计算资源的量以及在制作期间分配给创建资产的人力资源的量。
25.还示出了2d边界框106。在各种实施例中,系统生成2d边界框106以使其紧密围绕目标对象102。因此,2d边界框106近似目标对象102的大小以用于后续处理。
26.在各种实施例中,系统为图像中的每个目标对象生成2d边界框。例如,在图像100还包括目标对象102'和102"的情形中,系统还将为相应的目标对象102'和102"生成2d边界框106'和106"。类似地,在一些实施例中,如果对象104是目标对象,则系统为对象104生成2d边界框106。
27.为了便于说明,虽然在单个目标对象的上下文中描述了一些实施例,但是系统可以分析给定图像中的不同目标对象的视野。下面更详细地描述涉及图像100及其内容对象的实例实施例。
28.图2是根据一些实施方案的多角度屏幕覆盖分析的实例流程图。参考图1和图2,方法在框202处开始,其中系统获得至少一个图像。在各种实施例中,图像是包括一个或多个
目标对象的计算机图形生成的图像。虽然本文在单个目标对象的上下文中描述了一些实施例,但是这些实施例可以应用于多个目标对象或分组的目标对象等中的每个目标对象。
29.在各种实施例中,系统从来自相机的底片材料获得图像,并且可以包括3d几何形状和相机信息。根据底片材料,系统确定图像中的目标对象。在各种实施例中,根据特定实施方案,系统可以运行渲染器并同时将该渲染器的输出用于各种目的。
30.在框204处,系统确定目标对象的屏幕覆盖信息。在各种实施例中,目标对象在图像中至少部分可见。例如,在一个情形中,目标对象102是完全可见的。在另一情形中,目标对象102"可以在图像中部分可见。
31.在各种实施例中,屏幕覆盖信息基于目标对象所覆盖的屏幕的百分比、比率和/或绝对部分。在各种实施例中,系统确定每个2d边界框的测量值并将其与帧或图像100的其余部分进行比较。术语帧和图像可以互换使用。系统可以确定每个目标对象相对于图像100的大小的百分比或比率。在各种实施例中,系统可以利用如开放图形库(opengl)等的渲染器来提供id通行证并确定这种测量值,并且可以利用其它手段来执行对象/对象和对象/相机关系的几何计算。
32.在一些实施例中,对于每个2d边界框,系统确定2d边界框在x轴和y轴上的起止点、给定对象是在图像中完全可见还是部分可见(部分离开屏幕)。
33.在各种实施例中,系统提供2d边界框相对于给定图像的尺寸。系统确定图像中所有目标对象的此类相对尺寸。在各种实施例中,给定2d边界框的尺寸基于2d边界框的大小与图像相比的百分比或比率。系统随后可以将这些尺寸转换为需要进一步处理的绝对像素大小。
34.在一些实施例中,系统对图像中的像素进行采样,以便确定目标图像以及图像帧中可见的其它3d元素的屏幕覆盖范围和深度信息。在一些实施例中,系统可以基于根据采样像素的最长2d尺寸来确定3d像素尺寸。运行渲染而不是执行更基本的三角函数分析的原因之一是系统可能需要对指定表面材料的知识。当考虑当前对象后面和/或被当前对象遮挡的对象时,该知识通知系统。在一些实施例中,系统不收集实体墙后面的对象的数据,但仍收集通过该墙中的窗口可见的对象的数据。
35.在一些实施例中,例如,当考虑如实体墙等前景对象后面的对象的数据时,系统可以考虑表面材料(这意味着渲染)。例如,在一些实施例中,可以通过使几何形状的一部分透明来在待分析的“墙”对象内实现“窗口”。这可能需要表面遮蔽和变形。在各种实施例中,此类材料可以描述为玻璃或其它材料。替代地,在一些实施例中,墙对象可以具有复杂的拓扑结构,如被切割成几何形状的孔。这可以在没有遮蔽的情况下实现。在不暗示对用于描述对象的形状和材料的可能方法的限制的情况下,在一些实施例中,系统可以使用渲染器或其它分析手段内的方法中的任一者或两者来通知系统的结果。
36.在框206处,系统确定至少一个目标对象的深度信息。在各种实施例中,深度信息可以包括目标对象与给定相机之间的距离。在一些实施例中,深度信息可能会影响给定目标对象的细节级别。例如,如果给定以远距离渲染的如建筑物、山脉等的目标对象,则系统可以以较低的细节级别渲染此对象和/或以较少的细节模糊此对象,因为不需要更多的细节。
37.在各种实施例中,给定图像可以具有多个对象,包括一个或多个目标对象。系统可
以基于图像中的一个或多个其它对象来确定目标对象的深度信息。例如,系统可以确定目标对象102相对于对象104的深度。在各种实施例中,系统可能已经具有存储在数据库中的对象104的深度信息和关于对象104的大小信息(例如,尺寸等)。在各种实施例中,系统还可以具有特定场景中的对象104的已知大小和位置,其可以存储在数据库中。在各种实施例中,系统还可以知道存储在数据库中的关于目标对象102的大小信息(例如,尺寸等)。在各种实施例中,系统可以相对于关于对象104或可能出现在图像100中的其它对象的已知信息来确定目标对象102的深度信息。
38.在框208处,系统基于屏幕覆盖信息和深度信息确定目标对象的资产细节级别。这样,实施例使得目标对象的给定视图能够在视觉制作(例如,电影/电影制作、视频制作等)过程中的任何点处显著改变。实施例使创作这些对象所涉及的努力与对象将在视觉制作的最终版本中出现的方式相匹配。例如,远处的对象可以具有较低的资产细节级别,而较近的对象具有较高的资产细节级别,等等。
39.在框210处,系统将资产细节级别存储在数据库中。在各种实施例中,系统输出目标对象102(以及每个目标对象)的资产细节级别。在一些实施例中,资产细节级别可以是像素值。例如,如果图像帧的宽度为2,000像素,并且2d边界框的最长长度为1,000像素,则像素分辨率可以为1,000像素。系统可以基于实际图像帧大小(2,000或2k图像、4,000或4k图像等)调整资产细节级别。
40.在各种实施例中,系统在镜头制作过程中提供镜头内容的整体分析,并且将分析的信息提供给其它用户以便沿途为决策提供参考。在一些实施例中,系统可以向一个或多个用户发送或提供目标对象102的资产细节级别以及其它目标对象的资产细节级别。此外,系统使得资产细节级别可用于各种用户(例如,艺术家、制片人等)以基于目标对象的所需细节级别做出决定。
41.在一些实施例中,系统在目标对象或目标对象的集合上调度或实现艺术作品的调度。这样,使用这些目标对象的视觉制作的下游系统可以尽可能早地进行,或者根据制作管理的需要进行。
42.虽然步骤、操作或计算可以以特定顺序呈现,但是在特定实施方案中可以改变顺序。取决于特定的实施方案,步骤的其它排序是可能的。在一些特定实施方案中,可以同时执行在本说明书中示为顺序的多个步骤。此外,一些实施方案可以不具有所示出的所有步骤和/或可以具有替代或附加于本文示出的那些步骤的其它步骤。
43.下面描述其它实施例。实施例便于艺术家和制片人就在给定对象上花费多少精力以及何时安排该精力做出决定。这可以在制作过程中的任何时候使用,从具有便宜的资产封锁版本(又称第一视图或标准版本)的预可视化场景到预计在最终图像中的最终或接近最终质量的版本。在电影制作的整个生命周期跟踪该信息可以有助于突出显示意外的改变或预测预期改变的成本。
44.在各种实施例中,系统复制与目标对象相关联的数据集,包括跨越多个帧(例如,200k帧等)的资产细节级别。系统在不同的帧上识别和跟踪每个目标对象。在各种实施例中,系统用名称和标识符(例如,“桶24”)跟踪如目标对象102的给定目标的身份。例如,在一些实施例中,目标对象可以在一个时刻出现在场景中(例如,在不同的帧中),在随后的时刻离开场景(例如,离开不同的帧),然后在另一个随后的时刻返回到场景(例如,重新进入不
同的帧)。
45.在各种实施例中,系统可以利用任何合适的渲染器来收集每个目标对象的屏幕覆盖和深度信息,其可以包括给定图像中的其它逻辑元素。系统还可以串行化目标对象和对应的资产细节级别,并将该信息存储在数据库中。在各种实施例中,系统可以分析给定镜头中的帧的选定样本以收集合理完整的数据,而无需渲染每一帧。这在技术上是有利的,因为系统处理更少的帧。
46.在各种实施例中,系统可以在给定视觉制作中对多个帧和跨多个镜头执行统计分析。例如,在一些实施例中,系统可以在镜头中的帧的范围上执行数据的统计分析。系统还可以将每个元素的数据(例如,桶1、桶2、桶3等)向下压缩到唯一资产(桶)。
47.在各种实施例中,系统可以在给定的视觉制作中整理来自多个帧和跨越多个镜头的结果。例如,在一些实施例中,系统可以在数据库中存储和整理多个镜头的数据,这可以通过其它系统用于各种任务。在一些实施例中,资产细节级别可供制片人使用,并且便于制片人决定对给定资产(例如,目标对象)投入多少精力。
48.在各种实施例中,系统可以汇编在每个镜头中可见的资产或目标对象的列表。这便于以这样的方式对这些资产进行制作计划工作,即,使得下游部门尽快开始工作。在各种实施例中,系统整理来自许多镜头的信息作为制作计划的一部分。例如,系统可以处理超过100个镜头,然后识别最常见的资产。在另一实例中,系统可以确定要创建的成本最低的资产,并且系统可以对这些资产的工作进行优先排序。
49.在各种实施例中,系统可以通过帮助选择适当的目标对象(或目标对象的版本)来帮助制片人、技术人员等设计布局,该目标对象既不会太昂贵而无法在背景中渲染,也不会太简单而无法在前景中使用。
50.在各种实施例中,系统可以根据需要识别何时修改布局和/或相机,如何时在其构建规范之外使用完成的资产。
51.在各种实施例中,系统可以将给定目标对象的资产细节级别与图像序列信息(isi)数据相结合,以从2d电影中选择性地加载和检查3d场景的部分。在各种实施例中,图像/电影评论工具使用isi数据,其允许用户指向并点击图像中的对象并查看关于该图像的附加信息(例如,名称;id;如“红恤衫”、“条纹恤衫”等变体;和/或由系统确定和填充的其它数据)。
52.在各种实施例中,系统具有在帧上多次使用的一个资产(例如,一个桶资产)。例如,目标对象102可以是用于不同镜头中的不同桶(例如,桶25、27、32等)的桶资产,包括不同视觉制作中的不同镜头。
53.在各种实施例中,系统可以具有用于每个桶的信息,整理该信息,并将该信息存储在一个唯一资产下。在该实例中,目标对象102可以被称为桶资产,其可以在不同的帧中以不同的距离和角度重新使用。这样,目标对象102可以用在目标对象102'的位置、目标对象102"的位置等。
54.这提供了桶资产将永远出现的最大大小(例如,目标对象102"),桶资产将永远出现的最小大小(例如,目标对象102'),以及桶资产将永远出现的平均大小(例如,目标对象102)。
55.在各种实施例中,系统使用最大和最小大小来预测尚未确定的未来帧中的未来大
小。例如,目标对象102的最大和最小大小可以在预制作期间的某个点确定,并且目标对象102的最大和最小大小中的任一个或两者可以在预制作期间的任何点或在后制作期间改变。在各种实施例中,当系统拥有来自新相机、新序列等的新数据时,系统相应地迭代地调整此类最大和最小大小。在实例情形中,可以随后调整相机以使得给定目标对象以更近的距离出现。这样,系统可以更新目标对象的最大大小。
56.虽然在目标对象的大小的上下文中描述了一些实施例,但是这些实施例和其它实施例也可以应用于资产的其它方面。这些方面可以包括深度数(例如,距相机的距离)、纹理、颜色等。
57.如本文所指出的,当创作用于视觉制作的给定布景时,在给定场景/布景和相关帧中可能存在数千或甚至数万个对象。布局可以随着如树、灌木、动物等的新装扮而改变。
58.在一些实施例中,相同的目标对象(例如,桶资产)可以在细节(例如,颜色、纹理等)上具有不同的特性或变化。这样,相同的资产可以用于红色桶、蓝色桶等。
59.此类变化还可以包括衣着。例如,给定的人在一个场景中可能不佩戴眼镜和帽子,而在随后的场景中可能佩戴眼镜和帽子。在各种实施例中,系统可以将这些衣着附件中的每一个识别和跟踪为单独的、独立的资产。
60.在各种实施例中,随着学习新信息,系统在制作过程中不断地汇集信息。系统在数据库中更新该信息。
61.在各种实施例中,系统可以在获悉对汇集信息的更改时通知管理层,如在获悉新的最大或最小大小且新大小超过资产的构建规范时。在各种实施例中,系统可以向制作发送消息,指示导致资产超出制作计划和预算的规格的布局或相机。
62.在一些实施例中,系统可以从不同的距离、视角等对给定对象进行建模和渲染,如在电影中所看到的。这可以帮助制片人基于具有特定细节级别的查看对象做出决定。
63.在一些实施例中,系统可以提供用户界面以向用户显示在此生成的信息(例如,资产细节级别、图像中的实例渲染对象等)。
64.在一些实施例中,系统可以利用或增强现有的显示器或内部渲染器,其具有在此生成的附加信息(例如,对对象进行颜色编码以传达信息)。在一些实施例中,系统可以利用现有显示器中的opengl着色器来静态地对对象进行颜色编码,或者根据预定资产细节级别与对象的当前布置之间的比较来动态地对对象进行颜色编码(例如,如果对象太靠近相机,则使其为红色等)。
65.本文描述的实施例可以直接插入到内部渲染器中,以减少运行特殊过程来生成数据的需要。实施例可以说明所请求的规范或实际规范。
66.本文描述的实施例提供各种益处。例如,系统不剔除具有最高细节级别的完全构建的动画场景,而是确定动画制作者在场景的部分中需要什么资产细节级别,并提前通知动画制作者。
67.图3是用于本文描述的实施方案的示范性计算机系统300的框图。计算机系统300仅仅是说明性的,并不旨在限制权利要求的范围。本领域的普通技术人员将认识到其它变化、修改和替代方案。例如,计算机系统300可以在具有与一个或多个服务器系统通信的一个或多个客户端装置的分布式客户端-服务器配置中实现。
68.在一个示范性实施方案中,计算机系统300包括如监视器310的显示装置、计算机
320、如键盘、触摸装置等的数据输入接口330、用户输入装置340、网络通信接口350等。用户输入装置340通常体现为计算机鼠标、跟踪球、跟踪板、无线遥控器、平板电脑、触摸屏等。此外,用户输入装置340通常允许用户选择和操作例如出现在监视器310上的对象、图标、文本、字符等。
69.网络接口350通常包括以太网卡、调制解调器(电话、卫星、电缆、isdn)、(异步)数字用户线(dsl)单元等。此外,网络接口350可以物理地集成在计算机320的主板上,可以是软件程序,如软dsl等。
70.计算机系统300还可以包括允许通过如http、tcp/ip、rtp/rtsp、协议、无线应用协议(wap)、ieee 902.11协议等的通信网络352进行通信的软件。此外和/或替代地,也可以使用其它通信软件和传输协议,如ipx、udp等。通信网络352可以包括局域网、广域网、无线网络、内联网、因特网、专用网络、公共网络、交换网络或任何其它合适的通信网络,例如云网络。通信网络352可以包括许多互连的计算机系统和任何合适的通信链路,如硬线链路、光链路、卫星或其它无线通信链路,如蓝牙、wifi、波传播链路或用于信息通信的任何其它合适的机制。例如,通信网络352可以经由如无线收发器354的基站与如移动电话、平板电脑等的一个或多个移动无线装置356a-n通信。
71.计算机320通常包括熟悉的计算机组件,如处理器360,以及存储器存储装置,如存储器370,例如随机存取存储器(ram)、存储介质380,以及互连上述组件的系统总线390。在一个实施例中,计算机320是具有多个微处理器、图形处理单元(gpu)等的pc兼容计算机。虽然示出了计算机,但是对于本领域的普通技术人员而言显而易见的是,许多其它硬件和软件配置适用于本发明。存储器370和存储介质380是用于存储数据、音频/视频文件、计算机程序等的有形非瞬态计算机可读介质的实例。其它类型的有形介质包括磁盘驱动器、固态驱动器、软盘、光存储介质和条形码、如闪存驱动器的半导体存储器、闪存、随机存取或只读类型的存储器、电池支持的易失性存储器、网络存储装置、云存储等。
72.图4是根据一些实施例的实例视觉内容生成系统400的框图,该系统可用于生成静止图像和/或图像的视频序列形式的图像。视觉内容生成系统400可以生成实景拍摄场景、计算机生成的场景或其组合的图像。在实际的系统中,为用户提供工具,以使他们在必要时以高级别和低级别指定进入该图像的内容。例如,用户可以是动画艺术家,并且可以使用视觉内容生成系统400来捕捉在摄影棚上现场表演的两个人类演员之间的交互,并用计算机生成的拟人非人类来替换人类演员中的一个,其行为方式模仿被替换的人类演员的动作和举止,并且然后添加第三计算机生成的角色和背景场景元素中,所有这些都是为了讲述所需的故事或生成所需的图像。
73.由视觉内容生成系统400输出的静止图像可以在计算机存储器中表示为像素阵列,如像素颜色值的二维阵列,每个像素颜色值与在二维图像阵列中具有位置的像素相关联。像素颜色值可以由每个像素的三个或更多(或更少)颜色值来表示,如红色值、绿色值和蓝色值(例如,以rgb格式)。这种像素颜色值的二维阵列的尺寸可以对应于优选的和/或标准的显示方案,如1920像素列乘以1280像素行。图像可能或可能不以压缩格式存储,但以任一方式,所需图像可以表示为像素色彩值的二维阵列。在另一变体中,图像由用于三维呈现的一对立体图像表示,并且在其它变体中,图像输出的一些或全部可以表示三维图像而不仅仅是二维视图。
74.所存储的视频序列可以包括如上述静止图像的多个图像,但是其中多个图像中的每个图像具有时间序列中的位置,并且所存储的视频序列被布置为使得当在由时间序列指示的时间按顺序显示每个图像时,显示器呈现看起来正在移动和/或改变的图像。在一个表示中,多个图像中的每个图像是具有指定帧数的视频帧,其对应于从视频序列开始播放到显示该指定帧所经过的时间量。可以使用帧速率来描述每单位时间显示所存储的视频序列的帧数。实例视频序列可以包括每秒24帧(24fps)、50fps、80fps或其它帧速率。在一些实施例中,帧是交错的或以其它方式呈现以用于显示,但出于描述清楚的目的,在一些实例中,假定视频帧具有一个指定的显示时间,并且应当理解,其它变化是可能的。
75.创作视频序列的一种方法是简单地使用摄像机来记录实景拍摄场景,即实际上发生并可以由摄像机记录的事件。被记录的事件可以是将被解释为被观看的事件(如看到两个人类演员彼此交谈)和/或可以包括将由于巧妙的相机操作而被不同地解释的事件(如在舞台周围移动演员以使一个演员看起来比另一个演员大,演员的实际身材相似,或者将微型对象与其它微型对象一起使用以便被解释为含真人大小的对象的场景)。
76.为讲故事或其它目的而创作视频序列通常需要使用现场演员无法创作的场景,如会说话的树、拟人化的物体、太空战斗等等。此类视频序列可能是通过计算生成的,而不是从现场场景中捕捉光线。在一些情况下,整个视频序列可以通过计算生成,如在计算机动画故事片的情况下。在一些视频序列中,希望有一些计算机生成的图像和一些实景拍摄,也许将两者仔细地融合在一起。
77.虽然计算机生成的图像可以通过手动指定每帧中每个像素的每个颜色值来创作,但这很可能太过繁琐而不实用。结果,创作者使用各种工具来指定更高级别的图像。作为实例,艺术家可以指定场景空间中的位置,诸如三维坐标系,可以指定对象和/或照明的位置,以及相机视点和相机视平面。将所有这些作为输入,渲染引擎可以计算每帧中的每个像素值。在另一实例中,艺术家指定具有某种指定纹理的关节对象的位置和移动,而不是指定表示每一帧中该关节对象的每一像素的颜色。
78.在特定实例中,渲染引擎执行射线追踪,其中通过计算哪些对象位于沿着从相机视点穿过对应于该像素的相机视平面的点或部分在场景空间中追踪的射线来确定像素颜色值。例如,相机视平面可以表示为场景空间中具有位置的矩形,其被划分为对应于要生成的最终图像的像素的网格。在该实例中,由场景空间中的相机视点和该网格中的给定像素定义的射线首先与实心、不透明的蓝色对象相交,该给定像素被指定为蓝色。当然,对于现代计算机产生的图像,确定像素颜色并由此生成图像可能更复杂,因为存在照明问题、反射、内插和其它考虑因素。
79.在各种实施例中,实景拍摄捕捉系统402捕捉在舞台404上播放的实景拍摄。本文更详细地描述了实景拍摄捕捉系统402,但是该实景拍摄捕捉系统可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储,以及用户输入装置和用户输出装置,并未示出所有这些装置。
80.在特定的实景拍摄捕捉系统中,相机406(1)和406(2)捕捉场景,而在一些系统中,可能存在从实况场景捕捉信息的其它传感器408(例如,红外相机、红外传感器、动作捕捉(“mo-cap”)检测器等)。在舞台404上,可能存在人类演员、动物演员、无生命物体、背景物体,以及可能存在如绿色屏幕410之类的物体,其被设计为以易于与计算机生成的图像叠加
的方式在现场录制中捕捉。舞台404还可以含有用作基准的对象,如基准412(1)-(3),其可以在捕捉后用于确定对象在捕捉期间的位置。实景拍摄场景可以由一个或多个灯照亮,如高架照明灯414。
81.在捕捉实景拍摄场景期间或之后,实景拍摄捕捉系统402可以将实景拍摄镜头输出到实景拍摄镜头存储420。实景拍摄处理系统422可以处理实景拍摄镜头以生成关于该实景拍摄镜头的数据并将该数据存储到实景拍摄元数据存储424中。实景拍摄处理系统422可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储,以及用户输入装置和用户输出装置,未示出所有这些装置。实景拍摄处理系统422可以处理实景拍摄镜头以确定一帧或多帧中的对象的边界、确定实景拍摄场景中的对象的位置、相机相对于某个拍摄的位置、移动对象与基准之间的距离等。在由传感器或其它装置检测到元素的情况下,元数据可以包括高架照明灯414的位置、颜色和强度,这在后处理中可能是有用的,以匹配计算机生成并覆盖在实景拍摄镜头上的对象上的计算机生成的照明。实景拍摄处理系统422可以自主地操作,可能基于预定的程序指令,以在接收和输入实景拍摄连续镜头时生成和输出实景拍摄元数据。实景拍摄镜头可以是相机捕捉的数据以及来自其它传感器的数据。
82.动画创作系统430是视觉内容生成系统400的另一部分。动画创作系统430可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储,以及用户输入装置和用户输出装置,未示出所有这些装置。动画创作系统430可以由动画艺术家、管理人员和其它人使用以可能以编程方式和/或交互方式指定要生成的图像的细节。根据用户输入和来自数据库或表示为数据存储432的其它数据源的数据,动画创作系统430可以生成表示对象(例如,马、人、球、茶壶、云、光源、纹理等)的数据并将其输出到对象存储434,生成表示场景的数据并将其输出到场景描述存储436,和/或生成表示动画序列的数据并将其输出到动画序列存储438。
83.场景数据可以指示对象和其它视觉元素的位置、它们的参数值、照明、相机位置、相机视平面,以及渲染引擎450可以用来渲染cgi图像的其它细节。例如,场景数据可以包括在二维空间、三维空间或其它维空间(如2.5维空间、四分之三维、伪3d空间等)中指定的几个关节角色、背景对象、照明等的位置,以及相机视点的位置和从中渲染图像的观看位置。例如,场景数据可以指示在视频的右半部分中有一只红色、模糊、会说话的狗,并且在视频的左半部分中有一棵静止的树,所有这些都由在相机视点上方和后方的亮点光源照亮。在一些情况下,相机视点不是明确的,而是可以从观看截头锥体确定。在将图像渲染为矩形视图的情况下,截头锥体将是截头棱锥。所渲染的视图的其它形状是可能的,并且相机视平面对于不同的形状可以是不同的。
84.动画创作系统430可以是交互式的,允许用户读入动画序列、场景描述、对象细节等并对它们进行编辑,可能将它们返回到存储以更新或替换现有数据。作为实例,操作者可以将对象从对象存储器读入到烘焙处理器中,将这些对象转换成更简单的形式,并将其作为新的或不同的对象返回到对象存储434。例如,操作者可以读入具有数十个指定参数(可移动关节、颜色选项、纹理等)的对象,为这些参数选择一些值,然后保存烘焙对象,该烘焙对象是现在具有这些参数的固定值的简化对象。
85.不是必须指定场景的每个细节,而是可以使用来自数据存储432的数据来驱动对
象呈现。例如,如果艺术家正在创作宇宙飞船飞越地球表面的动画,艺术家可以指定动画创作系统430从数据存储432读取包含地球海岸线坐标的文件中的数据,并使用该海岸线数据生成场景的背景元素,而不是手动绘制或指定海岸线。
86.动画序列数据可以是用于具有可控属性的对象的控制点的数据的时间序列的形式。例如,对象可能是具有四肢和关节的人形角色,其移动方式与典型的人类运动类似。艺术家可以在高层次指定动画序列,如“左手在t1到t2的时间内从位置(x1,y1,z1)移动到(x2,y2,z2)”,在较低层次(例如,“每帧移动肘关节2.5度”)或者甚至在非常高层次(例如,“角色a应当按照针对这个场景给出的物理规律沿着指定路径从点p1移动到点p2”)。
87.动画场景中的动画序列可以由实景拍摄场景中发生的事情指定。动画驱动程序生成器444可以读入实景拍摄元数据,如表示实景拍摄场景期间现场演员的身体部分的移动和位置的数据,并且生成要存储在动画序列存储438中的相应动画参数,以用于制作cgi对象的动画。这在当穿着mo-cap基准(例如,演员服装外部的高对比度标记、演员皮肤、面部上的高可见度涂料等)时捕捉人类演员的实景拍摄场景并且这些基准的移动由实景拍摄处理系统422确定的情况下是有用的。动画驱动程序生成器444可以将该移动数据转换成关节cgi角色的关节如何随时间移动的规范。
88.渲染引擎450可以读入动画序列、场景描述和对象细节,以及渲染引擎控制输入,如分辨率选择和一组渲染参数。分辨率选择可能有助于操作者控制渲染速度和细节清晰度之间的权衡,因为对于电影制作人而言,测试特定交互或方向时,速度可能比清晰度更重要,而对于电影制作人而言,在生成数据以用于最终发行的故事片时,清晰可能比速度更重要。渲染引擎450可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储,以及用户输入装置和用户输出装置,未示出所有这些装置。
89.视觉内容生成系统400还可以包括合并实景镜头与动画内容的合并系统460(标记为“实景 cgi合并系统”)。可以通过从实景拍摄镜头存储420中读取以获得实景镜头,通过从实景拍摄元数据存储424中读取以获得如所捕捉图像中的假定分割的细节,从实景拍摄场景中的背景分割对象(可能由绿色屏幕410是实景拍摄场景的一部分的事实辅助),以及通过从渲染引擎450获得cgi图像来获得和输入实景镜头。
90.合并系统460还可以从用于合并/组合存储的规则集462中读取数据。规则集中的规则的非常简单的实例可以是“从实景镜头获得包括二维像素阵列的完整图像,从渲染引擎450获得包括二维像素阵列的完整图像,并且当实景镜头中的相应像素是特定颜色的绿色时,从渲染引擎450输出每个像素是相应像素的图像,否则从实景镜头中的相应像素输出像素值”。
91.合并系统460可以包括计算机处理能力、图像处理能力、一个或多个处理器、用于存储可由一个或多个处理器执行的程序指令的程序代码存储,以及用户输入装置和用户输出装置,未示出所有这些装置。合并系统460可以按照编程指令自主地操作,或者可以具有用户接口或编程接口,操作者可以通过该接口控制合并过程。在一些实施例中,操作者可以指定将在合并过程中使用的参数值和/或可以指定将对合并系统460的输出进行的特定调整,如修改分割对象的边界、插入模糊以平滑缺陷或添加其它效果。基于其输入,合并系统460可以输出要存储在静止图像存储470中的图像和/或要存储在动画/组合视频存储472中
的视频形式的图像序列。
92.因此,如上所述,视觉内容生成系统400可用于使用各种组件和工具来生成将实景拍摄与计算机生成的动画相结合的视频,其中一些组件和工具在本文中更详细地描述。虽然视觉内容生成系统400可能对此类组合有用,但通过适当的设置,它可用于输出整个实景拍摄或整个cgi序列。代码也可以由暂时性计算机可读介质提供和/或承载,例如,如以通过网络传输的信号的形式的传输介质。
93.根据一个实施例,本文描述的技术由一个或多个通用计算系统来实现,该通用计算系统被编程为根据固件、存储器、其它存储或其组合中的程序指令来执行这些技术。可以使用专用计算装置,如台式计算机系统、便携式计算机系统、手持装置、联网装置或结合了硬连线和/或程序逻辑来实现这些技术的任何其它装置。
94.图5是可用于本文描述的实施例的实例计算机系统500的框图。计算机系统500包括总线502或用于传达信息的其它通信机制,以及与总线502耦合用于处理信息的处理器504。处理器504可以是例如通用微处理器。
95.计算机系统500还包括耦合到总线502的主存储器506,如随机存取存储器(ram)或其它动态存储装置,用于存储信息和将由处理器504执行的指令。主存储器506还可以用于在要由处理器504执行的指令的执行期间存储临时变量或其它中间信息。当存储在处理器504可访问的非暂时性存储介质中时,这些指令使计算机系统500渲染为专用机器,其被定制为执行指令中指定的操作。
96.计算机系统500进一步包括耦合到总线502的只读存储器(rom)508或其它静态存储装置,用于存储处理器504的静态信息和指令。提供如磁盘或光盘的存储装置510并将其耦合到总线502,用于存储信息和指令。
97.计算机系统500可以经由总线502耦合到显示器512,如计算机监视器,用于向计算机用户显示信息。包括字母数字键和其它键的输入装置514耦合到总线502,用于向处理器504传送信息和命令选择。另一种类型的用户输入装置是光标控件516,如鼠标、跟踪球或光标方向键,用于将方向信息和命令选择传送到处理器504并用于控制显示器512上的光标移动。该输入装置514通常在两个轴,第一轴(例如,x)和第二轴(例如,y)上具有两个自由度,这允许输入装置514指定平面中的位置。
98.计算机系统500可以使用定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑来实现本文描述的技术,其与计算机系统相结合,使计算机系统500成为专用机器或对其编程。根据一个实施例,本文的技术由计算机系统500响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列而执行。此类指令可以从如存储装置510的另一存储介质读入主存储器506。主存储器506中包含的指令序列的执行使处理器504执行本文描述的处理步骤。在替换实施例中,可以使用硬连线电路来代替软件指令或与软件指令相结合。
99.本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂时性介质。此类存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,如存储装置510。易失性介质包括动态存储器,如主存储器506。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、cd-rom、任何其它光学数据存储介质、具有孔图案的任何物理介质、ram、prom、eprom、
flash-eprom、nvram、任何其它存储器芯片或盒。
100.存储介质不同于传输介质,但是可以与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜线和光纤,包括导线,其包括总线502。传输介质还可以采用声波或光波的形式,如在无线电波和红外数据通信期间生成的声波或光波。
101.在将一个或多个指令的一个或多个序列传送到处理器504以供执行时可以涉及各种形式的介质。例如,指令最初可以承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并通过网络连接发送指令。计算机系统500本地的调制解调器或网络接口可以接收数据。总线502将数据传送到主存储器506,处理器504从主存储器506检索并执行指令。由主存储器506接收的指令可以任选地在由处理器504执行之前或之后存储在存储装置510上。
102.计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到连接到本地网络522的网络链路520的双向数据通信。例如,通信接口518可以是综合业务数字网(“isdn”)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供到相应类型电话线的数据通信连接。也可以实现无线链路。在任何此类实施方案中,通信接口518发送和接收携带表示各种类型的信息的数字数据流的电、电磁或光信号。
103.网络链路520通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路520可以通过本地网络522提供到主计算机524或到由因特网服务提供商(“isp”)526操作的数据设备的连接。isp 526又通过现在通常称为“因特网”528的全球分组数据通信网络提供数据通信服务。本地网络522和因特网528都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号和网络链路520上的信号以及通过通信接口518的信号是传输介质的实例形式,这些信号携带去往和来自计算机系统500的数字数据。
104.计算机系统500可以通过网络、网络链路520和通信接口518发送消息和接收数据,包括程序代码。在因特网实例中,服务器530可以通过因特网528、isp 526、本地网络522和通信接口518发送应用程序的请求代码。所接收的代码可以在其被接收时由处理器504执行,和/或被存储在存储装置510或其它非易失性存储器中以供以后执行。
105.本文描述的过程的操作可以以任何合适的顺序执行,除非本文另有说明或与上下文明显矛盾。本文描述的过程可以在配置有可执行指令的一个或多个计算机系统(例如,计算机系统500)的控制下执行,并且可以实现为在一个或多个处理器上由硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序,或一个或多个应用程序)。代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。
106.尽管已经针对其特定实施例描述了本说明书,但是这些特定实施例仅仅是说明性的,而不是限制性的。可以提供控制以允许在执行记录时修改合成的各种参数。例如,分辨率、帧数、深度位置的精度都可能受人工操作者的改变或选择的影响。
107.可以使用任何合适的编程语言来实现特定实施例的例程,包括c、c 、java、汇编语言等。可以采用不同的编程技术,如面向过程或面向对象。例程可以在单个处理装置或多个处理器上执行。尽管步骤、操作或计算可以以特定顺序呈现,但是在不同的特定实施例中可以改变该顺序。在一些特定实施例中,本说明书中示为顺序的多个步骤可以同时执行。
108.特定实施例可以在计算机可读存储介质中实现,以供指令执行系统、设备、系统或装置使用或与之结合使用。具体实施例可以以软件或硬件或两者的组合中的控制逻辑的形式来实现。当由一个或多个处理器执行时,控制逻辑可操作以执行在特定实施例中描述的控制逻辑。
109.一些实施例被实现为包括可由一个或多个数字处理器执行的指令的非暂时性处理器可读介质。该处理器可读介质包含可由一个或多个数字处理器执行的一个或多个指令,用于实现本文描述的实施例。
110.一些实施例被实现为在计算机可读介质上提供的处理器可实现代码。计算机可读介质可以包含如固态存储器、磁盘、光盘等的非瞬态存储介质,或者如通过计算机网络传输的信号的瞬态介质。
111.可以通过使用编程的通用数字计算机、通过使用专用集成电路、可编程逻辑器件、现场可编程门阵列、光学、化学、生物、量子或纳米工程系统、组件和机制来实现特定实施例。通常,特定实施例的功能可以通过本领域已知的任何手段来实现。可以使用分布式、联网的系统、组件和/或电路。数据的通信或传送可以是有线的、无线的,或通过任何手段。
112.还应当理解,附图中所描绘的一个或多个元件还可以以更分离或集成的方式来实现,或者甚至在某些情况下被移除或渲染为不可操作,这对于根据特定应用是有用的。实现可存储在机器可读介质中以允许计算机执行上述任何方法的程序或代码也在本发明的精神和范围内。
113.除非上下文另有明确规定,否则否则在本文的描述和随后的权利要求中使用的“一(a)”、“一个(an)”和“该(the)”包括复数指代。此外,如在本文的描述和随后的权利要求书中所使用的,“在
……
中”的含义包括“在
……
中”和“在
……
上”,除非上下文另有明确规定。
114.本说明书中使用的术语

包含’是指

至少部分由

组成’。当对包括术语

包含’的本说明书中的每个语句进行解释时,也可以存在除该术语开头的特征之外的特征。如

包含’的相关术语将以相同的方式解释。
115.在本说明书中,在已经对专利说明书、其它外部文档或其它信息来源进行参考的情况下,一般是出于提供讨论本发明特征的背景的目的。除非另外特别说明,否则对此类外部文件或此类信息源的引用不应被解释为承认此类文件或此类信息源在任何管辖范围内是现有技术或形成本领域公知常识的一部分。
116.因此,虽然本文已描述了特定实施例,但在前述公开内容中打算修改、各种改变和替代的范围,且应当理解,在一些情况下,在不脱离所阐述的范围和精神的情况下,将采用特定实施例的某些特征而没有相应使用其它特征。因此,可以进行许多修改以使特定情况或材料适应基本范围和精神。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献