使用与示例相似图像相关联的示例近似深度映射图对输入图像生成深度映射图

文档序号:1288712 发布日期:2020-08-28 浏览:11次 >En<

阅读说明:本技术 使用与示例相似图像相关联的示例近似深度映射图对输入图像生成深度映射图 (Generating a depth map for an input image using an example approximate depth map associated with an example similar image ) 是由 德巴尔加·慕克吉 吴琛 王盟 于 2012-11-02 设计创作,主要内容包括:使用与示例相似图像相关联的示例近似深度映射图对输入图像生成深度映射图。一种图像转换器接收要转换为第一三维图像的二维图像。该图像转换器基于与第二三维图像相关联的近似深度映射图计算特征至深度映射函数。该图像转换器将该特征至深度映射函数应用于该二维图像的多个像素以对该多个像素中的每一个确定深度值并且基于该二维图像的多个像素的深度值生成第一三维图像。(A depth map is generated for the input image using an example approximate depth map associated with an example similar image. An image converter receives a two-dimensional image to be converted into a first three-dimensional image. The image converter calculates a feature-to-depth mapping function based on an approximate depth map associated with the second three-dimensional image. The image converter applies the feature-to-depth mapping function to a plurality of pixels of the two-dimensional image to determine a depth value for each of the plurality of pixels and generates a first three-dimensional image based on the depth values of the plurality of pixels of the two-dimensional image.)

使用与示例相似图像相关联的示例近似深度映射图对输入图 像生成深度映射图

分案说明

本申请属于申请日为2012年11月2日的中国发明专利申请No.201280065525.2的分案申请。

技术领域

本公开涉及图像处理的领域,具体地涉及单视场视觉内容到立体3D的转换。

背景技术

显示技术的发展已经使得能够将三维(3D)深度的立体感知转换为视图的显示设备日益普及。这些3D显示器可以在高清(HD)电视机、游戏设备和其它计算设备中找到。3D显示器的增长数量已经带动了对于附加的3D视觉内容(例如图像、视频)的需求。常规地,创建3D内容是困难且耗时的过程。例如,内容创建者将使用两个相机捕捉对象,将来自每个相机的视频或图像进行组合,并且使用特殊软件来使得3D效果看上去准确。这通常包括冗长、高度技术化且耗费人工的处理。另外,在需要时间和资源对大量图像或视频进行转换的情况下,用于将二维(2D)图像和视频转换为3D的常规技术可能无法进行缩放。此外,常规技术局限于对具体类型的图像和视频进行转换而无法用于一般的2D至3D的转换任务。

发明内容

以下为本公开的简要概述,以提供对于本公开的一些方面的基本理解。该发明内容不是本公开的扩展性综述。其不意在标示本公开的关键或必要要素,也不对本公开的特定实施方式的任何范围或者权利要求的任何范围加以限定。其目的仅在于以简化形式给出本公开的一些概念,作为随后给出的更为详细的描述的前序。

在一个实施方式中,一种图像转换器接收要转换为第一三维图像的二维图像。该图像转换器基于与第二三维图像相关联的近似深度映射图计算特征至深度映射函数。该图像转换器将该特征至深度映射函数应用于该二维图像的多个像素以对于该多个像素中的每一个确定深度值并且基于该二维图像的多个像素的深度值生成第一三维图像。

在一个实施方式中,一种方法包括接收要转换为第一三维图像的二维图像;基于与第二三维图像相关联的近似深度映射图计算特征至深度映射函数;将该特征至深度映射函数应用于该二维图像的多个像素以对于该多个像素中的每一个确定深度值;并且基于该二维图像的多个像素的深度值生成第一三维图像。

附图说明

在附图的图中通过示例而非限制对本公开进行图示。

图1是图示可以在其中实施本公开的方面的示例性网络架构的框图。

图2A是图示根据一个实施方式的用于使用与示例相似图像相关联的近似深度映射图来生成深度映射图的图像转换器的框图。

图2B是图示根据一个实施方式的针对特征至深度映射被划分为分区的图像的图。

图3是图示根据一个实施方式的图像转换处理流程的框图。

图4是图示根据一个实施方式的特征至深度映射函数的图。

图5是图示根据一个实施方式计算的深度映射图的图。

图6是图示根据一个实施方式的用于图像转换的方法的流程图。

图7是图示根据一个实施方式的用于计算特征至深度映射函数的方法的流程图。

图8A是图示根据一个实施方式的用于向输入图像应用特征至深度映射函数的方法的流程图。

图8B是图示根据一个实施方式的颜色深度合并块(bin)之间的一维线性插值的图。

图9是图示依据本公开的一个方面的计算机系统的一个实施方式的框图。

具体实施方式

描述了用于对于二维(2D)输入图像生成深度映射图的实施方式。深度映射图可以被用来将2D输入图像转换为三维(3D)输出图像。2D输入图像可以由用户提供或者从可用图像的数据库选择。这里所描述的图像转换器可以访问存储3D图像的另一个数据库。这些3D图像可以最初以3D进行捕捉或者可以先前从2D转换为3D。该图像转换器可以从数据库中识别出在视觉上类似于2D输入图像的3D示例图像。视觉上相似的图像可以与2D输入图像共享多个特征,诸如相似颜色、相似主题、可能在相似位置拍摄等等。虽然这里为了解释的清楚而提供了特别与作为示例的图像相关的细节,但是应当意识到的是,如可应用的,这样的细节同样可以应用于其它类型的媒体,例如视频、文档、文本(例如推文)、动画内容等。

由于视觉上相似的示例图像是3D图像,所以对于该图像可以知道深度信息。如果深度信息不是已知的或者可轻易获取的,则可以使用深度插值技术来计算。深度信息可以以深度映射图的形式进行存储。深度映射图可以包括3D示例图像中的每个像素的深度值,其用来为该图像渲染3D效果。由于深度映射图与3D示例图像相关联,所以其将不直接与2D输入图像相关。因此,该深度映射图可以被称作关于2D输入图像的近似深度映射图。然而,由于3D示例图像在视觉上类似于2D输入图像,所以该近似深度映射图可以作为对2D输入图像生成最终深度映射图的良好起点。

使用3D示例图像和近似深度映射图,在一个实施方式中,图像转换器能够生成特征至深度映射函数,其将3D示例图像中的每个像素或像素群组的诸如颜色的特征值与深度值相关。该图像转换器可以将该函数应用于2D输入图像的已知特征值以对2D输入图像的每个像素生成深度值。这些深度值可以对2D输入图像形成最终的深度映射图。使用该最终的深度映射图,图像转换器能够基于2D输入图像渲染3D输出图像。因此,能够将2D输入图像有效地转换为3D输出图像。

这里所描述的转换技术的实施方式提供了2D视觉内容到3D的全自动转换。这能够允许个人避免捕捉3D图像或者将现有2D图像手工转换为3D的高成本且耗时的过程。使用对应于视觉上类似于输入图像的图像的特征至深度映射函数允许更为准确地预测图像的深度值。进而,这能够导致更为准确且真实的3D输出图像渲染。此外,利用大的图像数据库进行比较提高了能够找到一个或多个视觉上相似的图像的概率,促成了许多类型的视觉内容的转换。在一个实施方式中,有数百万的图像可供比较。

图1是图示可以在其中实施本公开的多个方面的示例性网络架构的框图。根据一个实施方式,网络架构100可以包括通过一个或多个网络140与一个或多个用户设备130、132、134进行通信的一个或多个服务器102。网络140可以是局域网(LAN)、无线网络、电话网络、移动通信网络、诸如互联网的广域网(WAN)、或者类似通信系统。用户设备130、132、134可以是任意类型的计算设备,包括服务器计算机、网关计算机、台式计算机、膝上计算机、移动通信设备、蜂窝电话、智能电话、手持计算机、平板电脑或类似计算设备。用户设备130、132、134可以利用不同特征进行各种配置而使得能够观看诸如图像、视频等的视觉内容。

服务器102可以包括网络可访问的基于服务器的功能、各种数据存储和/或其它数据处理设备。服务器102可以由单个机器或机器集群来实施。服务器102例如可以包括图9的计算机系统900。在一个实施方式中,服务器102包括图像转换器110和存储设备120。在另一个实施方式中,存储设备120可以在服务器102外并且可以通过网络或其它连接而连接至服务器102。在其它实施方式中,服务器102可以包括这里并没有示出以免对本公开造成混淆的不同和/或另外的组件。存储设备120可以包括一个或多个大容量存储设备,例如可以包括闪存、磁盘或光盘或带式驱动器、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程存储器(例如,EPROM或EEPROM)、闪存或者任意其它类型的存储介质。

在一个实施方式中,存储设备120包括图像数据存储,其包括多个3D图像以及多个2D图像或视频。对于至少一些2D或3D图像,相关联的深度映射图也可以存储在存储设备120中。在一个实施方式中,深度映射图包括图像中的每个像素(或者每个像素组)的深度值。在另一个实施方式中,对于每个3D图像,可以提供包括预先确定的特征至深度映射函数的特征至深度映射数据库并将其存储在存储设备120中。

图像转换器110能够接收用于将2D输入图像转换为3D输出图像的用户请求。所要转换的2D输入图像可以是先前由用户或计算机应用程序提供并且存储在存储设备120中的图像,或者是用户连同请求一起提供的图像。图像转换器110能够识别出与所转换的2D图像视觉上相似的3D示例图像(或多个图像),以及与示例图像相关联的近似深度映射图。示例相似图像和相关联的近似深度映射图能够存储在存储设备120中。视觉相似的3D示例图像可以通过其与2D输入图像所共享的特征来识别,诸如相似颜色、主题、位置、环境等。近似深度映射图可以包括3D示例图像中的每个像素(或像素组)的深度值,3D示例图像用来渲染该图像的3D效果。在另一个实施方式中,近似深度映射图可以不与3D示例图像相关联,而是可以以其它方式由用户或图像转换器110通过可用深度映射图的选择进行选择以便在将2D输入图像转换为3D时使用。如以下将会描述的,图像转换器110能够使用近似深度映射图以将2D输入图像自动转换为3D输出图像。

图2A是图示根据本公开的实施方式的用于使用与示例相似图像相关联的近似深度映射图生成深度映射图的图像转换器的框图。在一个实施方式中,图像转换器110可以包括特征处理模块212、特征至深度映射模块214、深度映射图生成模块216和图像渲染模块218。这种模块部署形式可以是逻辑划分,并且在其他实施方式中,这些模块或其它组件可以根据特定实施方式而被组合在一起或者被划分为另外的组件。在一个实施方式中,存储设备120可以包括图像转换器110用来进行更为准确的2D至3D转换的图像数据存储222和特征至深度映射数据库224。

图像转换器110能够接收2D输入图像(例如,从用户或计算机应用程序),其要被转换为3D输出图像并且能够在数据存储222中找到示例相似图像以及相关联的近似深度映射图。在一个实施方式中,定义用于认为来自数据存储222的图像与所转换的输入图像相似的阈值,诸如必须在输入图像和来自数据存储222的图像之间共享的特征或特性的数量。一旦识别出相似图像,就使用与该相似图像相关联的近似深度映射图来对3D相似图像确定特征至深度映射函数。在另一个实施方式中,可以事先对3D相似图像确定特征至深度映射函数并且将其存储在特征至深度映射数据库224中。

在一个实施方式中,特征至深度映射函数由特征处理模块212和特征至深度映射模块214确定。特别地,在一个实施方式中,图像数据存储222中的每个3D图像(或者3D视频的帧)包括立体图像对或者与之相关联,该立体图像对在被观看时产生深度的错觉。通常,该图像对包括从稍微不同的视点(大致等同于人眼之间的距离)拍摄的相同主题的两个图像(例如,左图像和右图像)。因此,两个图像中的每个点将具有微小偏移量(以像素测量的),其与视点据该点的距离成比例。该偏移量可以被称作视差。在一个实施方式中,与3D示例图像相关联的近似深度映射图中的每个像素的深度值可以等于所计算的视差或与之成比例。

为了对3D示例图像生成特征至深度映射函数,可以将3D示例图像的特征与近似深度映射图中的深度值相关。在一个实施方式中,特征处理模块212能够识别出来自图像数据存储222的3D示例图像的一个或多个特征。在一个实施方式中,该特征可以包括示例图像中的每个像素的颜色值。在其它实施方式中,可以使用某个其它特征,诸如运动(或相关联的运动矢量)、位置、纹理、边缘、或者诸如尺度不变特征转换(SIFT)之类的基于图像特征的梯度直方图。这里所描述的特征至深度映射可以与任意的这些或其它特征一起使用。

在一个实施方式中,特征处理模块212能够确定颜色空间(例如,YUV、RGB、YCbCr)中的合并块的数量。合并块可以被用来减少所考虑的颜色的数量。YUV例如可以具有24位颜色值,其对于典型的特征至深度映射函数而言可能过大。因此,特征处理模块212能够将不同颜色值进行组合以具有可管理的合并块数量。对于来自图像数据存储222的示例图像,特征处理模块212能够基于像素的颜色值而将每个像素与适当合并块相关联。使用近似深度映射图,特征处理模块212还能够将某个合并块中的每个像素的深度值进行合并(例如平均),以对该合并块生成汇总深度值。可以对每个其余合并块中的颜色执行类似组合,直至获得一系列数据点。

特征至深度映射模块214能够基于图像的一个或多个特征以及特征处理模块212所确定的深度值而对示例图像生成特征至深度映射函数。在一个实施方式中,用来生成该函数的特征可以是颜色。示例图像的每个像素具有已知的颜色值(例如,从图像元数据确定的)并且可以具有由特征处理模块212对每个颜色合并块确定的深度值。基于图像中具有相同或相似颜色的对象也将具有相同或相似的深度值这一假设,特征至深度映射函数可以将相同或相似颜色的像素的深度值进行汇总。在其它实施方式中,替代颜色或者除其之外,可以使用其它特征来生成特征至深度映射函数,其他特征诸如纹理、位置、形状等。所产生的函数可以最终接收某些像素或其它点的颜色值(或其它特征值)作为输入,并且输出该像素的深度值。以下关于图4对特征至深度映射函数的另外细节进行描述。

在一个实施方式中,不同于对3D示例图像生成仅一个特征至深度映射函数,特征至深度映射模块214能够对图像数据存储222中的单个示例图像生成多个特征至深度映射函数。例如可以对图像的不同分区生成不同函数。在一个实施方式中,来自图像数据存储222的图像可以在逻辑上被划分为多个分区(例如,两个、四个)。该图像可以根据图像中的主要空间变化的分布而以不同方式分片(tile)。例如,对于户外的山-天空图像,将图像水平划分为顶部和底部的一半图像的两个部分是足够的。对于室内图像,具有更多的空间分量可能更好,其中左侧vs右侧的一半图像也可能具有不同的深度映射。图2B是图示了在逻辑上被划分为四个等同分区252-258的示例图像250。特征至深度映射模块214能够将每个分区252-258视为其自己的个体图像并且以以上所描述的方式确定特定于该分区的特征至深度映射函数。在一个实施方式中,特征至深度映射模块214能够将对应于图像分区的多个函数存储在数据库224中。在另一个实施方式中,例如,多个函数可以被组合(例如,使用基于从像素P到每个分区的中心C1-C4的距离的线性组合)为存储在数据库224中的单个函数。线性组合可以消除由于跨不同分区切换特征至深度映射函数而产生的潜在“边界效应”。当对2D输入图像应用特征至深度映射时,最终的深度值可以在不同分区之间进行插值。当对像素P计算深度值时,首先计算其与分区的中心C1-C4的距离,并且可以被表示为d1、d2、d3和d4。利用分区252的特征至深度映射,对像素P给出深度值v1。类似地,利用特征至深度映射从其它分区254-258得到v2、v3和v4。可以通过将与d1至d4成反比的v1至v4进行组合而计算出P的最终深度值,例如,P的深度=(v1/d1+v2/d2+v3/d3+v4/d4)/(1/d1+1/d2+1/d3+1/d4)。

当完成特征至深度映射函数的生成时,来自图像数据存储222的图像的特征至深度映射函数可以被存储在特征至深度映射数据库224中的相对应条目之中。在一个实施方式中,特征至深度映射数据库224可以具有除数据库之外的某个其它结构(例如,键值对的列表)。在一个实施方式中,特征至深度映射数据库224可以是单独数据结构(如所示出的),然而在其它实施方式中,映射信息可以存储在图像数据存储222的元数据中。图像转换器111能够使用特征至深度映射数据库224来从2D输入图像自动生成3D输出图像。

在一个实施方式中,深度映射图生成模块216能够基于特征至深度映射模块214所确定的特征至深度映射函数而对2D输入图像计算深度映射图。与输入图像一起接收的图像数据和/或元数据例如可以包括与输入图像中的每个像素相关联的颜色值。因此可以通过应用颜色值(或其它适当特征值)作为对基于3D示例图像和近似深度映射图生成的特征至深度映射函数的输入而对每个像素计算深度值。深度映射图生成模块216能够执行计算来作出该确定,并且能够将所产生的深度值(例如,最终深度映射图)存储在存储设备120中。所产生的深度映射图510的示例在图5中示出。

图像渲染模块218能够基于输入图像以及深度映射图生成模块216所计算的深度值渲染3D输出图像(例如,立体图像对)。在一个实施方式中,渲染模块218使用基于深度图像的渲染(DIBR)技术来生成3D图像。DIBR技术能够基于另一个2D图像和每像素的深度映射图来渲染2D图像。原始2D图像成为构成3D图像的两个视图中的一个,而DIBR渲染的2D图像成为第二视图。在一个实施方式中,原始2D图像是左视图,而渲染的2D图像是右视图。在其它实施方式中,这可以进行反转。

作为示例,给定每像素深度映射图,可以生成指示每个像素应当从左视图向右视图移动多少的位移映射图。深度和位移之间的关系可以是近似线性的;然而,一些参数可以进行调节以便控制有多少对象“突出”屏幕或者它们看上去在屏幕之后延伸多少。一旦已经生成了位移映射图,则像素可以从左视图向右视图进行平移以渲染出右视图,同时在多个像素从左视图映射到右渲染图像空间中的相同像素的情况下确保处于前方的像素挡住后方的像素。一旦所有像素都已经被移位,在所渲染的右视图中可能仍然留下一些空洞。可以采用补色(in-painting)(图像插值)技术从所渲染的图像中的相邻像素填补该空洞。这产生了最终渲染的右视图。为了形成高质量的渲染,该渲染可以通过基于左视图和每像素深度映射图的插值而以中间较高的分辨率像素网格来进行。一旦以较高的中间分辨率获得了渲染的图像,其能够被缩放回到所期望的分辨率。在一个实施方式中,可以使用例如交叉双边过滤对所渲染的图像进行过滤。交叉双边过滤是一种关于图像中的对象的几何形状而对图像进行过来的方式。例如,当图像被过滤时,像素值可以与来自相邻像素的值进行组合以去除混叠、噪声和其它不期望出现的特征。这可以产生平均值,其可能不属于图像中的相同对象,并且因此能够导致不连贯值。交叉双边过滤试图通过使用多个(而不是仅一个)源图像解决这一问题以帮助识别对象。作为结果,在过滤时,相邻像素的值可以通过其屏幕空间距离而被加权,并且还使用考虑深度差异的表达式来确定两个像素是否都属于相同对象。这可以有助于在所产生的过滤图像中防止模糊。

图3是图示根据本公开的实施方式的图像转换处理流程的框图。可以关于其在使用与示例相似图像相关联的近似深度映射图对输入图像生成深度映射图中的角色而对各种模块和组件进行描述。

在一个实施方式中,处理流程300以在框310接收2D输入图像开始。在框320,识别示例相似图像。在框322,识别近似深度映射图。该近似深度映射图可以与示例相似图像相关联或可以与某个其它视觉上相似的图像相关联。在框330,对示例图像确定特征至深度映射函数。特征至深度映射模块214能够基于示例相似图像320的特征和近似深度映射图322对示例相似图像确定特征至深度映射映射函数。在框340,基于特征至深度映射函数对输入图像生成深度映射图。深度映射图生成模块216能够通过将输入图像中的每个像素的特征值(例如,颜色)应用于特征至深度映射函数以确定深度值而生成深度映射图。在框350,可以与渲染技术(例如,DIBR)一起使用深度映射图来生成3D输出图像360。

为了解释简单,本公开的流程和方法被描绘和描述为一系列动作。然而,依据本公开的动作可以以各种顺序进行和/或同时进行,并且具有这里没有给出和描述的其它动作。例如,与示例相似图像相关联的框322的识别近似深度映射图以及框330的特征至深度映射能够在框310接收输入图像之前进行,并且将其存储在例如存储设备120中。一旦在框320识别出示例相似图像,预先处理的近似深度映射图和特征至深度映射函数就能够被获取并用来在框340生成深度映射图。

图4是图示根据本公开的实施方式的特征至深度映射函数的示图。在该实施方式中,特征至深度映射函数400基于图像中的每个像素的颜色。函数400可以接收某个像素或其它点的颜色值作为输入并且输出该像素的深度值。为了便于理解,图4在一维中将深度图示为颜色的函数。本领域技术人员将会认识到,实际上该函数可以在多维颜色空间(例如,YUV、RGB)图示出类似特性。在一个实施方式中,使用合并块来减少该函数所考虑的颜色的数量。YUV例如可以具有24位颜色值,这对于典型的特征至深度映射函数所期望的而言可能大。在一些情况下,24位颜色方案中所表示的超过一千六百万不同颜色可能使得计算颜色至深度映射函数过于计算密集且耗时。在图4中,颜色值已经被减少为八个合并块(A-H),虽然在其它实施方式中可以使用一些其它数量。对于图像数据存储222中已知其颜色值和深度值的一个图像,对对应于具有某个合并块(例如,合并块A)中的一种颜色的每个像素的深度值进行组合(例如,平均)以生成汇总深度值。该值可以存储为函数400的一部分。可以针每个其余合并块中的颜色执行类似组合直至获得了一系列数据点。特征至深度映射模块214能够执行一种形式的多项式拟合(例如,曲线拟合)以生成特征至深度映射函数400。所产生的函数可以被表达为f(颜色)=深度,或者在YUV颜色的情况下,被表达为f(YUV)=深度。因此,给定像素的深度值可以被计算为该像素的YUV颜色值的函数。函数400可以存储在特征至深度映射数据库224中。

图5是图示根据本公开的实施方式计算的深度映射图的示图。深度映射图生成模块216可以基于特征至深度映射函数对输入图像计算深度映射图,上述特征至深度映射函数诸如由特征至深度映射模块214确定的特征至深度映射函数400。在图5的深度映射图510中,阴影与画面对象的表面距源图像500中的视点的距离成比例。在该实施方式中,较暗的颜色指示更接近于视点的深度,而较亮的颜色指示更远的深度。在其它实施方式中,阴影可以被反转。

图6是图示根据本公开的实施方式的用于图像转换的方法的流程图。方法600可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行以执行硬件仿真的指令)或者其组合的处理逻辑来执行。方法600可以使用与一个或多个示例相似图像相关联的近似深度映射图而对输入图像生成深度映射图。在一个实施方式中,方法600可以由如图1所示的图像转换器110执行。

参考图6,在框610,方法600接收用于转换为3D的2D输入图像。该输入图像可以从用户(例如,通过图像转换器110所提供的用户接口)接收,从另一个计算机应用程序(例如,通过诸如API的应用接口)接收,或者从一些其它源接收。

在框620,方法600基于与相似3D图像相关联的近似深度映射图而对输入图像识别(例如,通过计算或者从存储获取)特征至深度映射函数。在一个实施方式中,例如基于图像中的具有相同或相似颜色的对象也将具有相同或相似的深度值这一假设,特征至深度映射模块214能够汇总示例相似图像中的相同或相似特征(例如,颜色)的像素的深度值。所产生的诸如函数400的函数能够最终接收输入图像中的某个像素或其它点的颜色值(或其它特征值)作为输入并且对该像素输出深度值。特征至深度映射函数例如可以存储在数据库224中。

在框630,方法600将框620中识别的特征至深度映射函数应用于输入图像中的像素以确定每个像素的深度值。深度映射图生成模块216能够对输入图像生成所产生的深度映射图。在一个实施方式中,深度映射图生成模块216能够应用颜色值(或其它适当特征值)作为对框620所生成的特征至深度映射函数的输入。这产生了对输入图像的每个像素计算的深度值。该深度值可以基于其相关联像素的位置进行组合以形成如图5所示的深度映射图510。

在框640,方法600对3D输出图像生成立体对。在一个实施方式中,图像渲染模块218能够基于输入图像以及在框630由深度映射图生成模块216计算的深度值来渲染3D输出图像。在一个实施方式中,渲染模块218能够使用基于深度图像的渲染(DIBR)技术来生成3D图像。在一个实施方式中,3D输出图像包括要结合输入图像使用而形成立体对的第二图像。根据实施方式,该第二图像可以是左图像或右图像并且可以由图像渲染模块218生成。第一和第二图像共同可以形成3D输出图像。3D输出图像可以被存储或者被显示供用户观看。

图7是图示根据本公开的实施方式的用于计算特征至深度映射函数的方法的流程图。方法700可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行以执行硬件仿真的指令)或者其组合的处理逻辑所执行。方法700能够创建用来将单视场视觉内容转换为立体3D的特征至深度映射函数。在一个实施方式中,方法700可以由如图1所示的图像转换器110来执行。

参考图7,在框710,方法700从图像数据存储222识别一个或多个视觉上相似的图像。在一个实施方式中,数据存储222可以包括其特征信息(例如,颜色)和深度值已知的3D图像和/或视频的库。在一个实施方式中,库包括成百万的图像和/或视频。可以使用任意数量的技术来识别视觉上相似的图像,诸如指纹、K最近相邻等。在框720,方法700识别要用于给定颜色空间的合并块数量。合并块可以被用来减少所考虑的颜色数量。在其中颜色空间为YCbCr的一个实施方式中,该空间可以被划分为单独用在Y、Cb和Cr上的合并块。在一个实施方式中,Y分量被划分为32个合并块,而Cb和Cr分量均被划分为16个合并块,从而总共有8192个合并块。在其它实施方式中,可以使用一些其它数量的合并块和/或一些其它颜色空间。

在框730,方法700将在框710识别的示例相似图像中的像素与在框720识别的合并块相关联。对于来自图像数据存储222的示例图像,特征处理模块212能够基于像素的颜色值将每个像素与适当合并块相关联。每个合并块可以包括相同或相似颜色(或其它相关特征)的像素。

在框740,方法700对每个颜色合并块确定深度值。例如,对于每个(Y,Cb,Cr)合并块,可能有多个深度值。为了生成特征至深度映射函数,可以使用用于每个(Y,Cb,Cr)合并块的仅一个深度值。一个合并块中的所有深度值因此可以被组合为单个深度值。在一个实施方式中,用于合并块的组合深度值简单地是对映射到其的所有示例深度的平均值。在另一个实施方式中,组合深度是对映射到其的所有示例深度的中间值。在又另一个实施方式中,使用RANSAC(随机样本一致性)方法来检测深度值中的异常值并且正常值(inlier)的均值作为输出。假设深度值的总数为N,对于RANSAC的每次迭代,选择深度值的随机子集(N1)并且计算其均值。计算该均值深度和所有N个深度值之间的差。具有小于阈值的差的那些可以被包括在正常值集合中。迭代可以在正常值集合不发生变化或者达到最大迭代数量时停止。如果正常值集合的大小大于M(其可以被指定为N的百分比),则该正常值集合被认为是有效的,并且其均值可以被用作所有深度值的概要。

在框750,方法700对每个合并块计算权重值。特征处理模块212能够对每个合并块计算权重,其是合并块内的占用比率和任意合并块的平均占用的函数。因此,如果示例图像中有N个像素,并且合并块总数为B,则具有n个命中的合并块的占用比率为n/(BN)。每个合并块的权重可以是该占用比率的函数,即w(n/(BN))。在一个实施方式中,该函数为w(x)=1-exp(-kx),其中k被选择为使得w(x)对于小的占用比率很小,但是对于非小幅的占用快速接近于1。在另一个实施方式中,权重函数对于x<小值等于0,否则等于1,以便拒绝可能由于噪声而具有非常小的占用的合并块。

在框760,方法700生成特征至深度映射函数。特征至深度映射模块214能够执行一种形式的多项式拟合(例如,曲线拟合)以生成特征至深度映射函数400。所产生的函数可以被表达为f(颜色)=深度,或者在YUV颜色的情况下,被表达为f(YUV)=深度。因此,给定像素的深度值可以被计算为该像素的YUV颜色值的函数。特征至深度映射模块214还可以对该映射函数进行平滑。由于映射函数可能存在噪声,所以模块214能够通过利用预定义的平滑内核对其进行卷积而对该映射函数进行平滑。例如,合并块j可以被重新分配其相邻合并块的加权平均值,其中该权重是平滑内核与以上在框750计算的基于占用的权重的乘积。在一个实施方式中,该合并块j的最终深度(D)可以被计算为:

在该等式中,N(j)表示合并块的邻居。特征至深度映射函数例如可以被存储在诸如数据库224的数据存储中。

图8A是图示根据本公开的实施方式的用于向输入图像应用特征至深度映射函数的方法的流程图。方法800可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行以执行硬件仿真的指令)或者其组合的处理逻辑来执行。方法800能够向输入图像应用特征至深度映射函数以将输入图像转换为立体3D。在一个实施方式中,方法800可以由如图1所示的图像转换器110执行。

参考图8A,在框810,方法800接收要转换为3D的2D输入图像。在框820,方法800识别输入图像中的每个像素的特征(例如,颜色值)。在一个实施方式中,该特征数据可以存储在与图像相关联的元数据中,并且特征处理模块212能够从该元数据确定例如颜色值的特征值。

在框830,方法800基于从近似深度映射图确定的特征至深度映射函数计算输入图像中的每个像素的深度(例如,如以上结合图7所讨论的)。在一个实施方式中,深度映射图生成模块216能够在特征空间中执行n线性插值以得到查询像素的深度。例如,在一维情况下,处于查询像素的实际值周围的两个合并块中心可以被表示为C1和C2。那些合并块的加权深度值可以分别是D1和D2。深度映射图生成模块216能够计算查询像素与C1和C2之间的距离并且分别利用d1和d2来表示它们。深度映射图生成模块216能够使用该距离作为权重以在使用诸如以下的公式在这两个合并块之间插入深度值:

图8B是图示根据一个实施方式的颜色-深度合并块之间的一维线性插值的图。所插入的值852可以作为查询像素的深度值被返回。使用特征至深度映射850的直方图表示,近似映射不是平滑的。深度值可以在合并块边界附近突然改变。在一个实施方式中,可以在近似的映射上使用插值。在一个实施方式中,由于已经具有了3D映射函数f(y,u,v)=d,所以可以使用映射的三线(trilinear)插值。由于特征趋于符合图像中的对象轮廓,所以利用该方法可以实现符合对象边界的深度映射图的良好划分。

再次参考图8A,在框840,方法800生成3D输出图像的立体对。在一个实施方式中,图像渲染模块218能够基于输入图像以及在框830由深度映射图生成模块216计算的深度值来渲染3D输出图像。在一个实施方式中,渲染模块218能够使用基于深度图像的渲染(DIBR)技术来生成3D图像。输出图像可以被存储或者被显示以供用户观看。

图9以计算机系统900的示例性形式图示了机器的图形表示,在该计算机系统900内可以执行用于使得该机器执行这里所讨论的一种或多种方法的指令集。在替选实施方式中,该机器可以连接(例如,联网)至局域网(LAN)、企业内部网、外部网或互联网中的其它机器。该机器可以在客户端-服务器环境中以服务器或客户端机器的能力进行操作,或者在端对端(或分布式)网络环境中作为对等计算机进行操作。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、web器件、服务器、网络路由器、交换机或桥接器、或者能够执行指定要由该机器所采取的动作的指令集合(顺序的或其它形式)的任何机器。另外,虽然仅图示了单个机器,但是术语“机器”还应当被理解为包括单独或联合执行指令集(或多个集合)以执行这里所讨论的任意一种或多种方法的机器的任意集合。在一个实施方式中,计算机系统900可以表示诸如运行图像转换器110的服务器102的服务器。

示例性计算机系统900包括经由总线903互相通信的处理设备902、主存储器904(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或Rambus DRAM(RDRMA)等))、静态存储器906(例如,闪存、静态随机存取存储器(SRAM)等)以及数据存储设备918。在这里所描述的各种总线上所提供的任意信号可以与其它信号进行时间复用并且在一个或多个共用总线上提供。此外,电路组件或块之间的互连可以被示出为总线或单独信号线路。每个总线替选地可以是一个或多个单独信号线路并且每个单独信号线路替选地可以是总线。

处理设备902表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或者实施其它指令集的处理器或实施指令集的组合的处理器。处理设备902还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备902被配置为执行处理逻辑926,用于执行这里所讨论的操作和步骤。

计算机系统900可以进一步包括网络接口设备908。计算机系统900还可以包括视频显示单元910(例如,液晶显示器(LCD)或阴极射线管(CRT)、字母数字输入设备912(例如,键盘)、光标控制设备914(例如,鼠标)和信号生成设备916(例如,扬声器)。

数据存储设备918可以包括机器可读存储介质928,其上存储有体现这里所描述功能的任意一种或多种方法的指令922的一个或多个集合(例如,软件)。指令922还可以在其被计算机系统900执行期间完全或至少部分地存在于主存储器904和/或处理器设备902内;主存储器904和处理器设备902也构成机器可读存储介质。指令922可以进一步经由网络接口设备908而通过网络920传送或接收。

机器可读存储介质928还可以被用来存储指令以执行如这里所描述的用于使用与示例相似图像相关联的示例近似深度映射图而对输入图像生成深度映射图的方法。虽然机器可读存储介质928在示例性实施方式中被示为单个介质,但是术语“机器可读存储介质”应当被理解为包括存储一个或多个指令集合的单个介质或多个媒体(例如,集中或分布式数据库和/或相关联的高速缓存和服务器)。机器可读介质包括用于以可由机器(例如,计算机)读取的形式(例如,软件、处理应用)来存储信息的任意机制。机器可读介质可以包括但不局限于磁性存储介质(例如,软盘);光学存储介质(例如,CD-ROM)、磁性光学存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPROM)、闪存或者用于存储电子指令的其它类型的介质。

之前的描述给出了诸如特定系统、组件、方法等的示例的许多具体细节以便提供对本公开的多个方面的良好理解。然而,对于本领域技术人员将会显而易见的是,本公开的至少一些实施方式可以在没有这些特定细节的情况下进行实践。在其它情况下,公知组件或方法并没有被详细描述或者以简单框图的形式进行呈现以免对本公开造成不必要的混淆。因此,所给出的具体细节仅是示例性的。特定实施方式与这些示例性细节方面可以有所变化并且仍然被预期处于本公开的范围之内。

贯穿该说明书对于“一个实施方式”或“实施方式”的引用意味着结合该实施方式所描述的特定特征、结构、或特性包括在至少一个实施方式中。因此,贯穿本说明书各处出现的短语“在一个实施方式中”或“在实施方式中”不必然全部指代相同的实施方式。此外,术语“或”意在表示包含“或”而非排除“或”。此外,词语“示例”或“示例性”在这里被用来表示用作示例、实例或说明。在这里被描述为“示例性”的任意方面和设计都不必然被理解为相对其它方面或设计是优选或有利的。相反,使用词语“示例”或“示例性”是意在以具体方式给出概念。

虽然方法的操作在这里以特定顺序被示出并描述,但是每种方法的操作的顺序可以有所改变而使得某些操作可以以相反顺序执行或者某些操作可以至少部分与其它操作同时执行。在另一个实施方式中,不同操作的指令或子操作可以以间歇和/或交替的方式来进行。此外,不是所有被图示的动作都被要求来实施所公开主题的各个方面。此外,本领域技术人员将会理解并意识到的是,方法替选地可以经由状态图或事件而被表示为一系列互相关联的状态。另外,应当意识到的是,该说明书中所公开的方法能够存储在制造品上以促成将这样的方法输送或传输至计算设备。如这里所使用的术语“制造品”意在包含可从任意计算机可读设备或存储介质上进行访问的计算机程序。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子装置及其对象测量方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!