用于保持图像中对象的感知恒定性的方法与流程

专利2022-06-29  82


本发明涉及保持3d场景的2d图像中对象的感知恒定性的方法。更具体地,该方法使得由标准几何投影引起的变形最小化,从而改善了3d场景的图像的可识别性或外观。



背景技术:

计算机图形系统被广泛用于生成或处理表示真实或虚构空间的3d图像和动画。这样的系统通常利用图形流水线将场景的3d模型转换为在显示器上渲染的图像。该流水线包括一系列计算过程,这些计算过程可以对3d模型中的空间坐标进行数学转换,以便它们被渲染为显示器上的不同位置处的像素,将照明、阴影和纹理信息应用于场景中的对象,将成像效果应用于场景的区域,以及管理来自诸如鼠标、手柄或行为传感器(如头部或眼部跟踪器)之类的控制设备的用户输入。

传统的计算机图形流水线使用线性透视图的几何形状以将3d坐标投影到图像平面。通常,控制此投影的方程作为软件中的函数或被编码到图形处理器单元中的计算机硬件,而被集成到图形流水线中。可以使用其它形式的投影以将3d数据映射到图像平面,诸如鱼眼或圆柱投影,但是它们相对较少地被用于专门的应用。

将3d坐标投影到图像平面时,使用3d坐标建模的对象必须被展平到二维。这意味着被投影到2d图像显示器上的场景中的对象将被显示器的观看者看作为平面图像,而不是像在现实世界中看到的情况那样的立体3d对象。人们非常习惯于在图形、照片、电影及其它此类媒体中将3d对象视为2d投影。当3d对象相对于视线倾斜地呈现并因此以高度失真的形式投影在眼睛的视网膜上时,我们能够在平面图像中快速识别3d对象。

当观看3d对象的失真图像时,通过将图像与我们已通过生活经验积累的所存储的类似对象(我们通常会从多个角度来观察)的记忆进行比较,我们能够识别对象。从这些积累的视图中,我们获得了“感知恒定性”的印象,这意味着即使当从很远处或以异常角度观看对象时,我们也知道其理想的尺寸和形状。作为示例,太阳看起来是遥远的大的对象;即使盘被视为被椭圆形,盘也会以圆形物体的形式显现。作为视觉感知的一般原理,感知系统会尝试将对象呈现给我们的任何视图与从记忆和经验得到的理想视图相匹配。然而,对象显现的失真或非典型性程度越高,就越需要更多的认知处理努力和时间来识别它,并在智力上弥补明显的失真。

在大多数计算机图形流水线中用作标准的线性透视投影中,当使用广角视图或特殊投影来显示场景时,3d对象通常以失真的形式呈现。例如,如果使用>60°的广角视野来水平地呈现场景,则在场景的边缘处显示的对象将看起来被水平地拉伸,这归因于当对象远离图像的中心移动时,线性透视投影会扩大从小孔(虚拟的或真实的)投射的发散光路的角度这一事实。如果使用曲线投影(诸如鱼眼镜头类型的投影),则由于该投影固有的几何形状,对象可能看起来具有过度的曲率,或者在场景中可能看起来不自然地变大或变小。

本发明所要解决的问题是这样的事实:在3d场景的计算机图形化图像或计算机处理的图像中,对象经常看起来不自然地失真、放大或缩小,并且这可能不利地影响观看者对图像的体验,使得图像难以解释,使得图像在美学上缺乏吸引力、或者看起来较为不舒服。这些失真是用于将3d坐标转换为2d图像的投影几何的必然结果,该投影几何几乎在所有情况下都将光路限制为从单个小孔发散且投射到平面的直线。

已经开发出方法来纠正计算机图形图像中的明显失真以改善观看体验,但是这些方法经常依赖于特殊设备和系统,以跟踪观看者的位置和行为,以便针对任何给定对象计算正确的观看角度。而且,它们通常通过操纵从3d模型生成的2d图像的像素阵列而不是修改对象本身的几何属性来进行操作。已经开发出其它方法来确定3d对象的图像的形状恒定性,但是这些方法针对从2d图像或相关的机器对象识别任务恢复3d模型的问题,而没有向用户提供方法来单独控制3d场景的图像中所有对象的外观以满足感知恒定性的标准。这样的方法常常依赖于标准的投影几何来对到图像平面的光路的渲染进行建模。



技术实现要素:

本发明公开了一种修改表示3d场景的2d图像以保持场景中对象的感知恒定性的方法,所述方法包括以下步骤:

处理3d场景的图像以生成3d场景和所述场景内的一个或多个对象的未修改视图;

从所述场景内选择一个或多个对象;

确定所述一个或多个对象的修改视图;

将所述一个或多个对象的修改视图与所述一个或多个对象的未修改视图进行比较;

在所述一个或多个对象的未修改视图和修改视图之间插值一个或多个阶段;

针对所述一个或多个对象选择插值阶段;

用所选择的插值后的一个或多个对象生成3d场景的新视图;以及

将所述3d场景的新视图投影并渲染成2d图像到显示器上。

在实施例中,所述3d场景和对象的未修改视图包括空间坐标、颜色、纹理、表面映射数据、运动数据、对象标识数据或表示3d场景所需的其它数据。

在实施例中,使用标准几何形状来生成所述3d场景和一个或多个对象的未修改视图,所述标准几何形状包括线性或曲线透视图。

在包括进一步的步骤的实施例中,其中3d场景的图像由用户定义。

在实施例中,所述一个或多个对象的选择由用户手动地或者根据被预先编程的参数来进行。

在实施例中,通过参考所述对象的正交视图来确定所述一个或多个对象的修改视图。

在实施例中,通过参考存储的值来确定所述一个或多个对象的修改视图,所述值指定所述对象的修改视图。

在实施例中,通过参考指定所述修改视图的用户定义参数来确定所述一个或多个对象的修改视图。

在实施例中,由被预先编程的算法确定所述一个或多个对象的修改视图。其中,用于确定对象的修改视图的算法是机器学习算法,所述机器学习算法自动计算生成所述对象的修改视图所需的参数,或者,其中用于确定对象的修改视图的算法由存储的与3d场景或所述场景中一个或多个对象有关的语义数据进行修改,所存储的语义数据包括对象名称、功能或与其它对象的关系。

在实施例中,将所述一个或多个对象的未修改视图与修改视图进行比较,生成表示这两个视图之间的差异的值。其中如果所述差异的值大于由所述用户确定的量或被预先编程的值,则执行进一步的步骤,或者,其中如果所述值小于由所述用户确定的量或被预先编程的值,则不对所述一个或多个对象进行进一步的修改。

在实施例中,在所述未修改视图和所述修改视图之间插值一个或多个阶段包括:在所述对象的未修改视图和修改视图之间插值空间坐标以及其它相关的3d数据,以便生成所述对象的在所述未修改视图和所述修改视图之间分布的若干个阶段。

在实施例中,所述一个或多个对象中的每一个的插值阶段的数量由用户或根据被预先编程的参数来确定。

在实施例中,插值阶段的选择基于存储的值或被预先编程的参数。

在实施例中,用户从所述插值阶段中选择所述对象的期望阶段。

在实施例中,进一步包括以下步骤:在插值之前将所述未修改视图和修改视图变换为数学矩阵。

在实施例中,进一步包括以下步骤:在所述新的3d场景内控制所选择的插值后的对象彼此之间的空间接近性。

在实施例中,通过将使用曲线几何形状投影的3d场景中的所述一个或多个对象的表观曲率与所述3d场景的原始几何形状进行比较,并且在这些几何形状之间插值由用户或被预先编程的参数所指定的阶段,能够修改所述一个或多个对象中的表观曲率度。

在实施例中,用户可以将给定的一个或多个对象的最佳视图定义为存储的值,使得当将对象渲染到2d图像时,这些值用作参考以保持感知恒定性。

在包括以下步骤的实施例中,允许用户指定场景中的对象的外观在动态帧序列的过程中可如何变化。

在实施例中,单独地或组合地应用所述方法中公开的步骤将导致所述3d场景的这样的图像:在该图像中,与经受用于将所述3d场景渲染为2d的标准投影几何形状所引入的失真时的情况相比,对象保持其感知上恒定的尺寸和形状或者在尺寸和形状上更接近感知恒定性。

附图说明

可以以各种方式来实施本发明,现在将仅通过示例的方式并参考附图来描述其实施例,在附图中:

图1是体现在计算设备中的本方法的示意性流程图;

图2是线性透视的几何示意图;

图3是本方法中公开的一般原理的示意图;

图4是本方法中公开的主要步骤的示意性流程图;以及

图5示出了用户控制界面的实施例。

具体实施方式

参考附图的图1,示出了本方法100的实施例。在所述方法中,计算机存储器101存储用于对3d场景102进行建模的数据,并将其传递给中央处理器104。在所述中央处理器内,单独地或与图形处理器107并行地,对3d数据执行一些计算过程105,以便执行在本方法中公开的步骤。这些步骤的更多细节在图4中指定。一旦这些过程完成,3d场景的投影由中央处理器104单独地106或与图形处理器107协同地108生成106。该投影被传递到图形处理器107,并用于渲染110到图像显示器109。用户控制界面111提供了将值112传递给中央处理器的一系列按钮和滑块,以允许用户修改设备中参数的设置,这些参数体现了确定3d场景在图像显示器109上的外观的方法。这些参数103的设置可以存储在计算机存储器101中,并直接传递到中央处理器104,以便用于自动控制由体现本方法的设备执行的修改。

图2是线性透视的几何形状的示意图20。该图示出了为了创建球体22和23的宽视角的图像,必须投射相对于投影平面成小角度的光线,结果是场景中,与位于中心的球体23相比,位于外围的球体22的图像在水平轴上显得拉长。结果是,失去了球体22p的图像的感知恒定性。此示图中的视角为160°,小于人类双目视野的正常宽度(约180°)。将视角增加到160°以上将进一步增加明显的失真,因此会进一步减小感知恒定性。

理论上,如果要从足够近的距离(即,在光线投射的正确中心处)观看图像28,则可以保持该示例中的投影到22p的球体22的感知恒定性。原因是在这该点上,到达观看者的视网膜的光线模式将比从真实场景投射的光线模式更匹配光路的模式。然而,在大多数实际情况下,尤其是对于广角图像,投射的正确中心离图像表面太近,普通的人眼无法舒适地聚焦。因此,图中所示类型的线性透视投影不是用于在广角视图中准确或舒适地描绘对象的可行方法,也不是用于保持图像的感知恒定性的可行方法。

图3是在本方法中公开的一般原理的示意图30。仅出于说明的目的,图像38中的球体32p的显示没有图2中的明显失真。在该示例中,来自球体32的光路轨迹没有沿线性路径到达投影平面36。这与线性透视的中心原理相抵触,并且实际上与用于对计算设备中的光的行为进行建模的类似的传统投影几何相抵触。然而,通过违反该原理而获得的是修改对象外观的能力,以便保持比标准线性透视中的情形下在更舒适的距离处观看的图像的感知恒定性。

注意,可以使用相机镜头和类似的光学设备来偏转从对象投影到投影平面的物理光线的路径,以便修改图像的外观。因此,原则上,在计算机图形系统中通过使用在计算上模拟的镜头,或在诸如相机的设备使用适当设计的镜头,可以实现图3中所示的球体32/32p的投影。然而,物理或模拟透镜的物理属性使得当应用于场景的3d模型时,对于如本方法中公开的3d场景,在逐个对象的基础上以相同方式来改变光路,或者在场景的2d投影中对于由其它对象遮挡的光路进行重新投影,是不可能或不切实际的。因此,例如,通过修改图像的2d几何形状,无法恢复在场景的鱼眼镜头投影中被遮挡并因此未被记录在所得图像中的光路。而且,本方法原则上将允许在逐部分的基础上、或者在诸如对象名称或含义的语义信息的基础上、或者在聚类对象或复合对象的预定义层次结构的基础上来修改对象。

图4概述了在本方法中公开的步骤400。仅举例来说,在该方法的一个实施例中,计算设备首先401生成3d数据的标准未修改2d投影,其使用预先编程到体现所述方法的设备中的计算功能对场景进行建模。这通常是线性透视投影,但也可以是曲线投影,诸如鱼眼投影。在任何一种情况下,都将通过单个固定孔隙,使用落在平坦或近乎平坦表面上的光线的直线路径投影原理来构造投影。场景的视点(即在计算上模拟的相机从其渲染场景的位置)包括所述相机的视场和其它相关属性,将由体现系统的设备的用户402经由适当的界面(包括在其上观看输出的适当的图像显示器)进行设置。

在下一步骤403中,根据本方法从场景内选择一个或多个对象进行修改。这种情况下的对象可以被定义为3d坐标和其它相关数据的布置,其在计算上以在3d环境的全局空间内形成离散实体的方式被链接。对象也可以被定义为3d环境中的坐标和其它相关数据的离散区域或范围。

可以由体现所述方法的设备404的用户经由计算机接口设备(诸如计算机鼠标、数字笔或类似设备)手动地或者由设备本身使用预编程参数405来选择要修改的对象。设备通过应用适当的算法405来确定选择哪个(哪些)对象,如果对象的标准未修改视图与恒定修改视图(如由方法中的以下步骤406-409所测量的)之间存在的差异超过了预先编程到设备中的阈值,则运行算法405。决策409由指向“设备所选择的对象”框405的虚线来指示。一旦通过该过程进行选择,对象然后被传递到方法中的下一步骤以被插值410,这由指向“数学进程”411的虚线所指示。

在以下的步骤406中,设备根据预先编程到该设备中的任何合适的功能来确定对象的恒定修改视图,通过示例的方式包括但不限于:

·生成(一个或多个)对象的正投影407a,

·参考存储在适当的存储器设备中的对象的预定义视图的查找表或数据库407b,

·参考由设备的用户定义或设置并存储在适当的存储器设备中的参数407c,

·应用被预先编程或由适当的机器学习进程生成的算法,所述算法根据被编码到所述算法中或由机器学习进程获取的标准来计算恒定修改视图407d,

·参考与对象在计算上相关联并存储在适当的存储器设备中的语义数据,诸如对象名称、功能、情感效价(valence)、符号重要性或使用适当过程已被编码到系统中的其它属性。在这种情况下,可以使用对象的语义属性来确定在设备中应用的恒定性校正的量,或者确定应用这种校正的优先级顺序407e。

使用这些功能407的一个或某种组合,或其它适当的功能,对象的恒定修改视图在数学上被生成并被存储在体现所述方法的设备中的适当位置。

在以下的步骤408中,使用适当的数学进程409来将对象的恒定修改视图与所述对象的标准未修改视图进行比较。从该进程中得到的值表示了两个视图之间的差异。如果该差异的值大于由设备的用户或由如上所限定的被编程到设备中的适当算法所确定的量,则执行以下的步骤。如果该差异小于设备的用户或由被编程到设备中的适当算法所确定的量,则不对所述对象进行进一步修改。

在以下的步骤410中,用于生成对象的标准未修改视图和恒定修改视图的空间坐标数据和其它相关数据被分配给单独的数学矩阵。然后执行数学进程,该进程在两个矩阵之间进行插值411,插值阶段的数量由用户或由被预先编程到设备中的标准来设置,使得标准未修改视图通过多个阶段在数学上被转换为恒定修改视图。

在以下的步骤412中,由用户经由适当的接口413或者使用被编程到体现方法的设备中的适当的数学进程来选择所需的插值阶段414。由设备进行的插值的选择将基于存储在适当的查找表中的标准,或者基于使得场景的当前投影中的对象的标准未修改视图和恒定修改视图最为近似的标准,如使用被预先编程到设备中的数学功能所限定的。

在以下的步骤415中,由适当的数学进程生成结合了对象的修改视图的3d场景的新投影,在所述步骤中,用户可以确定416修改后的对象被约束到的程度,以保持其与场景中其它对象的空间接近性,使得在场景的原始3d模型中接触的对象在场景的修改投影中保持接触。

在以下的步骤417中,经由适当的计算过程将场景的修改视图渲染到图像显示器以供观看。

除了以上公开的步骤之外,其它步骤可以在本方法中应用以改善3d场景的图像的外观或布局,或者可以改善体现所述方法的任何设备的功能,包括但不限于:

·允许用户指定场景中对象的外观在动态帧序列的过程中可以如何变化的功能。

·一种功能,该功能允许通过将2d图像中的对象的拓扑的表观曲率与3d模型的原始拓扑进行比较,由体现所述方法的设备来修改使用曲线几何结构投影(例如鱼眼投影)的场景中的对象的表观曲率度。体现所述方法的设备在这些拓扑之间插值达到由用户指定、预先编程到设备中的程度,使得恢复或部分恢复所述对象的原始形式。

·一种功能,该功能允许用户或体现所述方法的预编程的设备经由适当的控制界面针对给定的对象或一组对象定义最佳视图,并将这些定义存储在设备中作为数据库。然后,当将一个或多个对象渲染到图像时,所述设备使用该数据库作为参考,以便纠正在将场景投影到图像时出现的任何明显的失真。

仅出于说明的目的,图5示出了用户控制界面50的一种配置。在该实施例中,向用户呈现一系列滑块,每个滑块控制在本方法中公开的步骤内的功能。举例来说,滑块a控制3d场景的投影的水平视角,0为20°,100为180°;滑块b控制阈值,在该阈值处,标准未修改视图和恒定修改视图之间的计算差异触发所述恒定修改视图的进一步修改;滑块c控制在标准未修改视图和恒定修改视图之间的转换中应用的插值阶段的数量;滑块d控制最终渲染的图像中使用的插值程度;滑块e控制对象的恒定修改视图偏离该对象与场景中的其它对象的原始接近性的程度;滑块f控制对动态帧之间的每个对象可以应用修改的程度;滑块g控制场景的最终渲染中允许的表观曲率量。


技术特征:

1.一种修改表示3d场景的2d图像以便保持所述场景中对象的感知恒定性的方法,所述方法包括以下步骤:

处理3d场景的图像以生成所述3d场景和所述场景内的一个或多个对象的未修改视图;

从所述3d场景内选择一个或多个对象;

确定所述一个或多个对象的修改视图;

将所述一个或多个对象的修改视图与所述一个或多个对象的未修改视图进行比较;

在所述一个或多个对象的未修改视图和修改视图之间插值一个或多个阶段;

针对所述一个或多个对象选择插值阶段;

用所选择的插值后的一个或多个对象生成所述3d场景的新视图;以及

将所述3d场景的新视图投影并渲染成2d图像到显示器上。

2.根据任一前述权利要求所述的方法,其中,所述3d场景和对象的未修改视图包括空间坐标、颜色、纹理、表面映射数据、运动数据、对象标识数据或表示3d场景所需的其它数据。

3.根据任一前述权利要求所述的方法,其中,使用标准几何形状来生成所述3d场景和一个或多个对象的未修改视图,所述标准几何形状包括线性或曲线透视图。

4.根据任一前述权利要求所述的方法,包括进一步的步骤,其中3d场景的图像由用户定义。

5.根据任一前述权利要求所述的方法,其中,所述一个或多个对象的选择由用户手动地或者根据被预先编程的参数来进行。

6.根据权利要求1至5中任一项所述的方法,其中,通过参考所述对象的正交视图来确定所述一个或多个对象的修改视图。

7.根据权利要求1至5中任一项所述的方法,其中,通过参考存储的值来确定所述一个或多个对象的修改视图,所述值指定所述对象的恒定视图。

8.根据权利要求1至5所述的方法,其中,通过参考指定所述恒定视图的用户定义参数来确定所述一个或多个对象的修改视图。

9.根据权利要求1至5中任一项所述的方法,其中,由被预先编程的算法确定所述一个或多个对象的修改视图。

10.根据权利要求9所述的方法,其中,用于确定对象的修改视图的算法是机器学习算法,所述机器学习算法自动计算生成所述对象的修改视图所需的参数。

11.根据权利要求8所述的方法,其中,用于确定对象的修改视图的算法由存储的与所述3d场景或所述场景中的一个或多个对象有关的语义数据来修改,所存储的语义数据包括对象名称、功能或与其它对象的关系。

12.根据权利要求1至5所述的方法,其中,权利要求6至11中的方法步骤的组合被用于生成所述一个或多个对象的修改视图。

13.根据任一前述权利要求所述的方法,其中,将所述一个或多个对象的未修改视图与修改视图进行比较,生成表示这两个视图之间的差异的值。

14.根据权利要求13所述的方法,其中,如果所述差异的值大于由所述用户确定的量或被预先编程的值,则执行进一步的步骤。

15.根据权利要求13所述的方法,其中,如果所述值小于由所述用户确定的量或被预先编程的值,则不对所述一个或多个对象进行进一步的修改。

16.根据任一前述权利要求所述的方法,其中,在所述未修改视图和所述修改视图之间插值一个或多个阶段包括:在所述对象的未修改视图和修改视图之间插值空间坐标以及其它相关的3d数据,以便生成所述对象的在所述未修改视图和所述修改视图之间分布的若干个阶段。

17.根据权利要求16所述的方法,其中,所述一个或多个对象中的每一个的插值阶段的数量由所述用户或根据被预先编程的参数来确定。

18.根据任一前述权利要求所述的方法,其中,插值阶段的选择基于存储的值或被预先编程的参数。

19.根据任一前述权利要求所述的方法,其中,用户从插值的阶段中选择所述对象的期望阶段。

20.根据任一前述权利要求所述的方法,进一步包括以下步骤:在插值之前将所述未修改视图和所述修改视图转换为数学矩阵。

21.根据任一前述权利要求所述的方法,进一步包括以下步骤:在新的3d场景内控制所选择的插值后的对象彼此之间的空间接近性。

22.根据任一前述权利要求所述的方法,其中,通过将使用曲线几何形状投影的3d场景中的所述一个或多个对象的表观曲率与所述3d场景的原始几何形状进行比较,并且在这些几何形状之间插值由用户或被预先编程的参数所指定的阶段,能够修改所述一个或多个对象中的表观曲率度。

23.根据任一前述权利要求所述的方法,其中,用户能够将给定的一个或多个对象的最佳视图定义为存储的值,使得当将对象渲染到2d图像时,这些值用作参考以保持感知恒定性。

24.根据任一前述权利要求所述的方法,包括以下步骤:允许用户指定场景中的对象的外观在动态帧序列的过程中可如何改变。

25.根据任一前述权利要求所述的方法,其中,单独地或组合地应用所述方法中公开的步骤将导致所述3d场景的这样的图像:在该图像中,与经受用于将所述3d场景渲染为2d的标准投影几何形状所引入的失真时的情况相比,对象保持其感知上恒定的尺寸和形状或者在尺寸和形状上更接近感知恒定性。

技术总结
一种修改表示3D场景的2D图像以便保持所述场景中对象的感知恒定性的方法,所述方法包括以下步骤:处理3D场景的图像以生成所述3D场景和所述场景内的一个或多个3D对象的未修改视图;从所述3D场景内选择一个或多个对象;确定所述一个或多个对象的修改视图;将所述一个或多个对象的修改视图与所述一个或多个对象的未修改视图进行比较;在所述一个或多个对象的未修改视图和修改视图之间插值一个或多个阶段;针对所述一个或多个对象选择插值;用所选择的插值后的一个或多个对象生成新的3D场景;以及将所述新的3D场景投影并渲染成2D图像到显示器上。

技术研发人员:R·佩珀尔;A·伯利
受保护的技术使用者:福沃科技有限公司
技术研发日:2018.08.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-47562.html

最新回复(0)