2维图像或视频到3维立体图像或视频的实时自动转换的制作方法_3

文档序号:9221969阅读:来源:国知局
围分配给所有的输入图片(即,2D输入图像105)。在一些示例中,如果深度 值是从输入像素值自适应地计算出的,则可使用经由乘法或除法操作的对深度值的缩放以 使深度值适合例如N位的范围。一般而言,所讨论的技术可提供所讨论的自顶至底的深度 映射的简化生成。
[0098] 如所讨论的那样,自顶至底深度映射可由一个或多个混合因子修改以生成基于几 何模型的深度表面807。生成混合因子可包括确定2D输入图像105中的一个或多个边缘并 且确定与这一个或多个边缘相关联的混合因子。在一些示例中,可通过将2D输入图像的像 素的行对之间的像素值差异与阈值比较来确定边缘。例如,可基于连续的行,从2D输入图 像105中确定边缘,并将这些边缘用作两个垂直地相邻的深度值之间的混合因子a。例如, 对于自顶至底几何模型,可沿垂直方向执行此。在一些示例中,如下所示,可按方程式(18) 中所示以横跨每一个连续的行对(r,r+1)、(r+1,r+2)......和(r+R_l,r+R)来确定边缘:
[0099]边缘 1 =ABS(输入 _ 像素(c,r+0)-输入 _ 像素(c,r+1));
[0100]边缘 2 =ABS(输入 _ 像素(c,r+l)_ 输入 _ 像素(c,r+2));
[0101] ...
[0102] 边缘R=ABS(输入 _ 像素(c,r+R-1)-输入 _ 像素(c,r+R));
[0103] 其中"边缘"可以是所确定的边缘,ABS可以是返回给定值的绝对值的操作,输入_ 像素可以是输入像素值,c可以是列位置,r可以是行位置。
[0104] 在其他示例中,Sobel操作符或其他边缘操作符可用来确定2D输入图像105内的 边缘。可使用操作MAX、MIN、AVG或MEDIAN,基于边缘幅度来确定所讨论的混合因子。出于 示例的目的来使用MAX,则可按如下方式使用方程式(19)来确定a:
[0105] a=MAX(边缘 1,边缘 2,边缘 3,......,边缘R) (19)
[0106] 其中a可以是混合因子。
[0107] 如所讨论的那样,可基于混合因子来修改自顶至底的深度映射以生成基于几何模 型的深度表面807。例如,如下所示,可如方程式(20)中所示来修改自顶至底的深度的深度 值:
[0108] 深度(r) =aXMIN(前一个,当前的)+ (l-aXMAX(前一个,当前的)(20)
[0109]
[0110] 其中"当前的"是当前像素位置的深度值,且"前一个"是垂直地在前的像素位置 (即,上面的行)的深度值。在一些示例中,当应用自顶至底的模型时,"前一个"中的深度 值总是比深度值"当前的"小,使得MIN(前一个,当前的)=前一个,且MAX(前一个,当前 的)=当前的。
[0111] 如所示的那样,可将深度图170发送到深度对比增强模块815。深度对比增强模块 815可生成经增强的深度映射817。在一些示例中,经增强的深度映射817可通过对深度映 射170执行深度对比的垂直增强来生成。可使用本文所讨论的任何技术特别是参考图6所 讨论的技术来执行此类垂直增强。同样如所示的那样,可将基于几何模型的深度表面807 发送到深度对比增强模块820。深度对比增强模块820可生成增强的基于几何模型的深度 表面822。在一些示例中,增强的基于几何模型的深度表面822可通过在深度对比增强模块 820上执行深度对比的垂直增强来生成。可使用本文所讨论的任何技术特别是参考图6所 讨论的技术来执行此类垂直增强。
[0112] 如图8中所示,可将经增强深度映射817和增强的基于几何模型的深度表面822 发送到合并模块825。合并模块825可和经增强的深度映射817和增强的基于几何模型的 深度表面822以生成经合并的深度映射827。可使用本文所讨论的任何技术特别是参考图 1在合并模块160处所讨论的技术来执行此类合并。
[0113] 如所示的那样,可将经合并的深度映射827发送到深度对比增强模块830。深度对 比增强模块830可生成增强的合并深度映射832。在一些示例中,增强的合并深度映射832 可通过在经合并的深度映射827上执行深度对比的水平增强来生成。可使用本文所讨论的 任何技术特别是参考图6所讨论的技术来执行此类水平增强。
[0114] 如图8中所示,可将2D输入图像105发送到局部增强模块810。局部增强模块 810可对该2D输入图像执行基于边缘的和基于亮度的局部增强以生成经局部增强深度映 射812,该深度映射可在合并模块835处与增强的合并深度映射832合并或混合。在一些示 例中,经局部增强深度映射812可包括"深度_最终"值。例如,基于边缘的增强可包括确定 2D输入图像105中的边缘。可通过例如应用3X3Sobel边缘操作符、应用3X3水平Sobel 边缘操作符、确定所确定的垂直和水平边缘的最大值来确定边缘。可将所确定的边缘作为 基于边的增强应用于2D输入图像105。进一步的基于亮度的局部增强可如下应用。例如, 可通过非线性缩放和裁剪(clipping)操作来修改所确定的边缘和亮度。如下所示,在方程 式(21)-(23)中示出此类操作的示例:
[0115] A_ 边缘=(边缘〈THR) ? 0:MIN(边缘/Z,E) (21)
[0116] A_ 亮度=MAX(MIN(亮度/Z)_ 偏移,HI),L0) ; (22)
[0117] 深度_最终=MAX(MIN(深度_全局+A_边缘+A_亮度,255),0) ;(23)
[0118]
[0119] 其中局部增强的结果可存储为"深度_最终"中的8位的深度值,来自边缘的贡献 可存储为"A_边缘",且来自亮度的贡献可存储为"A_亮度",且参数集(THR,Z,E,偏移, HI,L0)可以是基于实现可编程的。
[0120] 如图8中所示,可将增强的合并深度映射832和经局部增强的深度映射812发送 到合并模块835。合并模块835可合并增强的合并深度映射832和经局部增强的深度映射 812以生成经合并的深度映射837。可使用本文所讨论的任何技术特别是参考图1在合并模 块160处所讨论的技术来执行此类合并。而且,可将经合并的深度映射837发送到重影减 少模块620,该模块可生成经重影减少的深度映射838。可使用本文所讨论的任何技术特别 是参考图6所讨论的技术来执行此类重影减少。可将经重影减少深度映射838发送到时域 过滤模块630,该模块可例如基于经重影减少的深度映射838和时域上领先该经重影减少 的深度映射时间t的第二经重影减少的经增强的深度映射来生成经增强的深度映射839。 可使用本文所讨论的任何技术特别是参考图6所讨论的技术来执行此类时域过滤。
[0121] 如所示的那样,可将经增强的深度映射839发送到立体图像模块500。同样如所示 的那样,可将2D输入图像105发送到立体图像模块500。立体图像模块500可使用本文所 讨论的技术中的任何技术特别是参考图5所讨论的技术来生成左立体图像850和右立体图 像855。可将左立体图像850和右立体图像855呈现给用户,该用户可从该图像中体验3D 效果。
[0122] 如所讨论的那样,在一些示例中,可使用自顶至底的几何模型。这样的模型可适于 许多自然场景。然而,一些示例2D输入图像可能不适于自顶至底的几何模型。在一些示例 中,确定自顶至底的模型可能多么适合于给定的2D输入图像可以是受期望的。可使用来自 2D输入图像的像素值和边缘幅度的内容直方图来进行此类确定。例如,可假定:如果2D输 入图像的图片内容在该输入图片的顶部和底部之间在亮度、色度、和/或边缘幅度方面有 所不同,则自顶至底的模型更合适。例如,如果顶部和底部包括类似的颜色,则自顶至底的 模型合适可能是较不可能的。类似地,如果边缘幅度仅在顶部或底部中是大的,则自顶至底 的模型适合良好会是更有可能的。在一些示例中,基于直方图的方式可实现这些概念。例 如,可按如下方式创建并比较四个直方图。例如,可将来自2D输入图像的顶部1/N部分的诸 如亮度之类的像素值收集进直方图hist_pixel_top(直方图_像素_顶部)中。可将来自 输入图片的底部1/N部分的像素值收集进直方图hist_pixel_bot(直方图_像素_底部) 中。可将来自输入图片的顶部1/N部分的边缘幅度收集进直方图hist_edge_top(直方图_ 边缘_顶部)中。可将来自输入图片的底部1/N部分的边缘幅度收集进直方图hist_edge_ bot(直方图_边缘_底部)中。N的值可以是固定的预设值,或者可基于2D输入图像自适 应地确定它。
[0123] 可例如通过计算两个直方图的绝对差的和(SAD)来比较直方图hist_pixel_top 和hist_pixel_bot,且可用类似的方式来比较直方图hist_edge_top和hist_edge_bot进 行比较。如下所示,可按方程式(24)和(25)中所示,使用归一化因子Y将直方图的相似 度归一化为两个量相似度_像素和相似度_边缘:
[0124] 相似度 _ 像素=y?SAD(hist_pixel_top_hist_pixel_bot) (24)
[0125] 相似度 _ 边缘=y ? SAD (hist_edge_top_hist_edge_bot) (25)
[0126] 如下所示,可按方程式(26)中所示,使用两个相度性测量相似度_像素和相似度 _边缘来确定自顶至底模型的适合度(suitability)。
[0127] suitability_top_to_bottom_model= (26)
[0128] MIN(AVG(相似度_像素,相似度_边缘)+BIAS,THR)
[0129] 其中BIAS可以是加到相似度_像素和相似度_边缘的平均值的常数,THR可以是 suitability_top_to_bottom_model(适合度_顶_到_底_模型)的上限。在一些示例 中,也可定义下限。在一些示例中,可将suitability_top_to_bottom_model与预定的阈值 比较以确定自顶至底的几何模型是否可能是适合的。如果自顶至底的几何模型是适合的, 则可执行参考图8特别是模块805、820和825所描述的处理。如果自顶至底的几何模型不 适合,则可跳过那些模块且处理可直接从模块815和810继续进行到合并模块835,使得在 重影减少模块620处处理之前,可将经增强的深度映射817与经局部增强的深度映射812 合并。
[0130] 如下面将更详细讨论的那样,系统100可用来执行下面结合图9讨论的各种功能 中的一些或全部或之前讨论的功能。
[0131] 图9是示出根据本公开的至少一些实现而安排的用于将2维(2D)图像转换成3 维(3D)立体图像的示例过程900的流程图。在所示的实现中,过程900可包括如由框902、 904、906、908、910和/或912中的一个或多个所示的一个或多个操作、功能或动作。作为非 限制性示例,本文将参考示例系统100来描述过程900。
[0132] 过程900可用作用于将2维(2D)图像转换成3维(3D)立体图像的计算机实现的 方法。过程900可在框902处开始:"确定2D输入图像的单个像素的锐度值",其中,可针对 2D输入图像的单个像素确定锐度值。2D输入图像可包括图像文件或视频帧等。如本文所 讨论的那样,可实时并自动地执行过程900,以使得可由硬件和/或软件来执行过程900且 无需人员干预。
[0133] 处理可从操作902继续至操作904 :"执行对锐度值的第一和第二基于区域的取样 以确定第一和第二样本锐度值",其中,可执行对锐度值的第一基于区域的取样以确定第一 组多个样本锐度值,并且可执行对锐度值的第二基于区域的取样以确定第二组多个样本锐 度值,从而例如能以不同的分辨率来执行第一和第二基于区域的取样。可例如在不同的取 样模块处并行地执行第一和第二取样,或可在同一个取样模块处串行地执行它们。可例如 经由按不同的区域尺寸的取样或经由使用不同的缩小因子的取样来提供不同的分辨率。
[0134] 处理可从操作904继续至操作906 :"缩放第一和第二锐度值以生成第一和第二经 缩放的锐度值",其中,可例如缩放第一组多个锐度值以生成第一组多个经缩放的锐度值, 并且可例如缩放第二组多个锐度值以生成第二组多个经缩放的锐度值。可在不同的缩放模 块处或同一个缩放模块处执行第一和第二缩放操作。缩放操作中的一个或两者可通过例如 实现分段的线性映射来执行。
[0135] 处理可从操作906继续至操作908 :"使第一和第二经缩放的锐度值平滑以生成第 一和第二经经平滑的锐度值",其中,可例如使第一组多个经缩放的锐度值平滑以生成第一 组多个经经平滑的锐度值,并且可例如使第二组多个经缩放的锐度值平滑以生成第二组多 个经平滑的锐度值。可在不同的平滑模块或同一个平滑化模块处执行平滑操作。平滑化操 作中的一个或两者可包括应用平均过滤器,诸如例如,3X3平均过滤器。
[0136] 处理可从操作908继续至操作910 :"基于第一和第二经平滑的锐度值来确定第一 和第二经内插的锐度值",其中,可例如基于第一组多个经平滑的锐度值来确定第一组多个 经内插的锐度值,并且可例如基于第二组多个经平滑的锐度值来确定第二组多个经内插的 锐度值。可在不同的内插模块或同一个内插模块处执行内插。内插中的一个或两者可包括 例如双线性内插。而且,内插可将经内插的锐度值的分辨率带至与2D输入图像的分辨率相 同的分辨率。
[0137] 处理可从操作910继续至操作912 :"合并第一和第二经内插的锐度值以生成深度 映射",其中,可例如合并第一组多个经内插的锐度值和第二组多个经内插的锐度值以生成 具有与2D输入图像相关联的多个深度值的深度映射。合并操作可在合并模块处执行。在 一些示例中,合并操作可包括,可在合并第一和第二经内插的锐度值时应用混合因子。
[0138] 如所讨论的那样,可以可选地用各种方式增强所生成的深度来生成经增强的深度 映射。在任何情况下,经生成的深度映射或与该深度映射相关联的经增强的深度映射可与 2D输入图像一起用来生成3D立体图像(即,左立体图像和右立体图像)供显示给用户。可 通过将深度映射转换成视差值映射并基于该视差值映射和2D输入图像确定左视立体图像 和右视立体图像来基于2D输入图像和深度映射以生成左视立体图像和右视立体图像。而 且,如所讨论的那样,在一些示例中,可执行、处理并合并(或混合)两个基于区域的取样以 形成深度映射。在其他示例中,可执行、处理并合并(或混合)基于多于两个的区域(诸如 例如,基于3个或者4个或者更多个区域)的取样以形成深度映射。
[0139] 一般而言,所述技术可使用来自所提供的2D输入图像的空间单眼深度提示(cue) 来生成深度映射。例如,所生成的深度映射可包括全分辨率映射(即,具有与所提供的2D 输入图像相同的分辨率的映射)。例如,所生成的深度映射可包括例如所提供的2D输入图 像内的不同对象和纹理区域的适当的深度值。而且,本文所提供的技术可提供自动的实时 2D到3D转换。技术可具有能够无需增加设备成本和复杂性同时提供高质量深度映射来实 现的优点。
[0140] 关于过程900的一些附加和/或替换性细节可如本文所讨论的那样实现。尽管示 例过程900和本文中其他地方所讨论的过程的实现可以包括以所示的次序对所示所有框 的执行,但本公开不限于这一点,并且,在各种示例中,过程900和本文中其他地方所讨论 的过程的实现可包括仅执行所示框的仅子集和/或以不同于所示的次序执行。
[0141] 而且,可以响应于由一个或多个计算机程序产品所提供的指令来执行图1和5-9 的框中的任何一个或多个。这样的程序产品可以包括提供指令的信号承载介质,当由例如 处理器执行这些指令时,这些指令可以提供本文所描述的功能。计算机程序产品能以任何 形式的计算机可读介质来提供。因此,例如包括一个或多个处理器核的处理器可执行图1 和5-9中示出的框中的一个或多个和本文所讨论的过程。
[0142] 如在本文所描述的任何实现中所使用的那样,术语"模块"是指被配置为用于提供 本文所描述的功能的软件、固件和/或硬件的任何组合。软件可具体化为软件包、代码和/ 或指令集或指令,并且如本文所描述的任何实现中所使用的那样,"硬件"可以单独或按任 何组合地包括例如,硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的 指令的固件。可将模块共同地或单独地具体化为形成更大的系统的部分的电路,更大的系 统例如,集成电路(1C)、片上系统(SoC)等。
[0143] 图10是根据本公开的至少一些实现而安排的用于将2维(2D)图像转换成3维 (3D)立体图像的示例系统100的说明性图。在所示实现中,系统100可包括一个或多个中 央处理单元1006、一个或多个存储器存储1008、一个或多个图形处理单元1004和/或显示 设备1110。中央处理单元1006、存储器存储1008和图形处理单元1004可能能够经由例如 总线或其他访问彼此通信。在各种实现中,显示设备1010可在系统100中集成或分离于系 统100而实现。
[0144] 如图10中所示,并且如以上所讨论的那样,基于锐度的深度映射模块110可经由 中央处理单元1006或图形处理单元1004来实现。类似地,立体图像模块500可经由中央处 理单元1006或图形处理单元1004来实现。而且,增强模块600可经由中央处理单元1006 或图形处理单元1004来实现。另外,局部增强模块810、深度对比增强模块815、820和830、 合并模块825和835、重影减少模块840和/或时域过滤模块845 (如本文中参考图8所讨 论的那样)可经由中央处理单元1006或图形处理单元1004来实现,尽管为了呈现的清晰 起见,没有在图10中示出它们。
[0145] 如将领会的那样,图10中所示的模块可包括各种软件和/或硬件模块和/或可经 由软件和/或硬件实现的模块。例如,模块可经由中央处理单元1006和/或图形处理单元 1004被实现为软件,或者模块可例如经由图形处理单元1004的一个或多个专用硬件部分 来实现。而且,所示存储器存储1008可以是例如用于中央处理单元1006和/或图形处理 单元1004的共享存储器。而且,系统100可用各
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1