首页> 中国专利> 一种基于GPU的4K超多视点3D视频实时转化方法及装置

一种基于GPU的4K超多视点3D视频实时转化方法及装置

摘要

本发明公开了一种3D视频实时转化方法,所述3D视频实时转化方法包括:步骤1:基于输入视频每帧图像的视点图、深度图,对应于多个虚拟视点位置,计算所述输入视频的每帧视频的视差值;步骤2:根据所述视差值计算视差水平梯度值;步骤3:根据所述视点图计算图像纹理结构图;步骤4:根据视点图、图像纹理结构图、视差值、视差水平梯度值和显示器参数直接合成对应于每帧图像的立体图像;以及步骤5:输出立体图像。本发明的3D视频实时转化方法直接输出包含多个视点信息的立体图,可以直接通过显示屏输出立体效果。

著录项

  • 公开/公告号CN105791798A

    专利类型发明专利

  • 公开/公告日2016-07-20

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201610120551.0

  • 申请日2016-03-03

  • 分类号H04N13/00(20060101);H04N13/04(20060101);

  • 代理机构北京汇智胜知识产权代理事务所(普通合伙);

  • 代理人朱登河

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-06-19 00:09:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-26

    授权

    授权

  • 2016-08-17

    实质审查的生效 IPC(主分类):H04N13/00 申请日:20160303

    实质审查的生效

  • 2016-07-20

    公开

    公开

说明书

技术领域

本发明涉及3D视频技术领域,特别是涉及一种基于GPU的4K超多视点 3D视频实时转化方法及装置。

背景技术

近几年,立体显示技术得到了快速发展,并且逐渐走向普通用户。立体 显示内容的匮乏成为限制立体显示技术普及的一项重要因素。立体显示是通过 同时提供同一场景的不同视点的多视点图像来实现的。

裸眼立体显示不需要佩戴辅助设备,从而具有更多的将会使更多的人体 验到立体显示带来的无穷乐趣。由于裸眼立体显示需要的视点数较多,直接通 过多摄像机拍摄显示内容,成本太高。因此,将三维场景表示为“彩色图+深 度图”的数据格式,在此基础上进行虚拟视点渲染合成3D视频是广泛采用的 制作3D视频的方式。彩色图是一个视点图,深度图是这个视点对应的深度图。

现有的多视点立体视频合成的一般步骤是:首先通过参考视点以及深度 图生成虚拟视点,对虚拟视点进行填充空洞修复,再将所有的虚拟视点合成立 体显示图。这种方法会产生大量的信息冗余,对于超多视点的高分辨率视频, 占用显卡内存较多,普通显卡难以满足要求。同时,在现有的虚拟视点渲染方 法中,空洞填充计算占用时间较多。因此对于4K高分辨率视频的超多视点计 算难以实现实时,应用受到限制。4K高分辨率具体指的是3840*2160分辨率。

参见图1a,现有技术中多视点立体视频合成方法需要基于参考视点的RGB 图像和深度图来生成n个虚拟视点View0、View1、View2、……、Viewn-2、 Viewn-1的图像序列,然后对每个虚拟视点的图像进行填充空洞修复,最后 再将所有的虚拟视点的图像合成为立体显示图。在视点数量较多(例如大于 20个)、视频分辨率较高时,占用显卡内存较多,且计算耗时较多,难以实时 实现。

一些研究人员提出对深度图进行预处理,以避免渲染虚拟视点时产生空 洞的算法,但是这种算法改变了实际深度图结构,带来了边缘变形,并且在视 差较大时难以完全避免产生空洞。

因此,希望有一种技术方案来克服或至少减轻现有技术的上述缺陷中的 至少一个。

发明内容

视差:视差值定义为两个视点图像中匹配像素点横坐标(水平坐标)的差 值,视差产生立体视觉,对应物体的视差值的大小直接影响立体感知的强弱。

虚拟多视点:将三维场景表达为“视频+深度”的数据格式,利用虚拟视 点生成技术渲染出多个虚拟视点位置的图像,可

为自由立体显示器提供同一场景的多视点图像和视频。

本发明的目的在于提供一种技术方案来克服或至少减轻现有技术的上述 缺陷中的至少一个。

为此,本发明提供一种3D视频实时转化方法,所述3D视频实时转化方 法包括:

步骤1:基于输入视频每帧图像的视点图、深度图,对应于多个虚拟视点 位置,计算所述输入视频的每帧视频的视差值;

步骤2:根据所述视差值计算视差水平梯度值;

步骤3:根据所述视点图计算图像纹理结构图;

步骤4:根据视点图、图像纹理结构图、视差值、视差水平梯度值和显示 器参数直接合成对应于每帧图像的立体图像;以及

步骤5:输出立体图像。

优选地,所述多个虚拟视点与主视点在x方向上成直线排列。

优选地,以下述方法来计算视差水平梯度值,视差水平梯度值等于在与 虚拟视点对应的虚拟视点图上水平方向上相邻两点视差值之差:

disp_gradient(x)=disp(x+1)-disp(x)

其中,x是当前点的水平坐标;(x+1)表示相邻点的水平坐标;disp表示 视差值,disp_gradient是视差水平梯度值,即相邻两个视点的视差值之差。

优选地,步骤4包括:根据视差值和视点图映射生成局部虚拟视点图, 并将之合成至立体图像,

如果disp_gradient(x)为零,则待合成的局部虚拟视点图不存在遮挡,合成 映射关系为:

xdst=xsrc-disp(xsrc)Idst(sdst)=Isrc(xsrc);

其中,Idst表示合成目标图像,xdst表示目标图像像素横坐标,Isrc表示视 点图的图像,xsrc表示Isrc图像中像素横坐标,

如果disp_gradient(x)为正,则待合成的虚拟视点图存在重叠,此时取重叠 部位处视差值较大的虚拟视点图的局部图像作为立体图像的组成部分。

优选地,在步骤4中,预测空洞位置,并进行空洞填充,其中通过视差 值和视差水平梯度值预测虚拟视点图中空洞的位置。

优选地,若disp_gradient(x)为负,则虚拟视点图中会存在空洞,空洞所在 的坐标为:

xdst=xsrc+j-disp(xsrc),

其中,空洞的水平宽度为视差值之差的绝对值,j为任选整数,但是满足 下式:

disp_gradient(xsrc)≤j<0。

优选地,根据预测的空洞点坐标以及图像纹理结构图预测空洞应填充的 像素值,通过计算能量函数获得参考填充点的优先级,以对应能量值最大的参 考点的像素值作为空洞填充点的像素值。

优选地,能量函数表示为深度相似性Edepth,结构相似性Estructure和距离相似 性Eproximity的乘积:

E(q)=Edepth(q)·Eproximity(q)·Estructure(q)

Edepth(q)=1,dq-dp<0|dq-dp||dp-dp+1|,others,(1)Estructure(q)=min(S(q),100),(2)Eproximity(q)=exp(-euclidean(p,q)+nγp),(3)

其中,中心点坐标p=Isrc(xsrc,ysrc),参考区域的半径为2,q是任意参考 点坐标;

深度相似性Edepth通过参考点的深度dq与中心点深度dp之差来判断,当其 小于0时,参考点的相似性设置为1,当其不等于0计算比值;

结构相似性Estructure表示为纹理结构值S(q)相对于100的截断值,其中100 是经验值,n为空洞的位置的编号;

距离相似性Eproximity表示为参考点与中心点欧式几何距离euclidean(p,q)的指 数函数,γp为常数参数。

优选地,fi为裸眼光栅显示对应在第i个视点的蒙版,

在不存在空洞时,映射过程表示为:

if(disp-gradient(xsrc)0),

dispi(xsrc)=i·α·disp(xsrc)xdst=xsrc-dispi(xsrc)Idst(sdst)=Isrc(xsrc),dispi(xsrc)fi(xdst)>Idst-disp(xdst)

在存在空洞及填充时,前向映射过程表示为:

if(disp-gradient(xsrc)<0),

dispi(xsrc)=i·α·disp(xsrc),xdst=xsrc+j-dispi(xsrc),E(q0)=max(E(q))Isdt(xdst)=q0,dispi(q0)fi(xdst)>I_disp(xdst),i*α*dispgrsdient(xsrc)j<0,

α参数表示深度与视差平移量的转换关系;

Idst-disp表示目标图对应的视差图。

优选地,根据视点图获得纹理结构图的方法是视点图与sobel算子进行 卷积。

本发明的3D视频实时转化方法直接输出包含多个视点信息的立体图,可 以直接通过显示屏输出立体效果。

附图说明

图1a是现有技术中多视点立体视频合成方法的流程图。

图1b是根据本发明的视频实时转化方法的流程图。

图2是根据本发明的视频实时转化装置的方框图。

图3是3D视频转化模块的工作流程图。

图4是空洞填充前后效果对比图。在图4中,椭圆遮挡方块在右视点产 生空洞。颜色越浅,表示物体视差值越大,物体越靠近摄像机。

图5是空洞的坐标预测图。

图6是p、q两点的

附图标记:

1 视频输入模块 2 3D视频转化模块 3 显示模块

具体实施方式

在附图中,使用相同或类似的标号表示相同或类似的元件或具有相同或 类似功能的元件。下面结合附图对本发明的实施例进行详细说明。

如图2所示,本发明提供一种基于GPU的4k超多视点3D视频实时转化 装置,所述装置包括视频输入模块、3D视频转化模块和显示模块。

视频输入模块将视频解码为RGB图像序列以及视差图序列,并传输到显卡 内存。视差图中记录了视差值。

3D视频转化模块采用预测填充空洞的前向映射算法进行虚拟视点渲染, 结合立体显示器参数输出立体图像序列,能够在立体显示屏上显示出立体效果 的图像就称之为立体图像。需要指出的是,图像总是二维的,但通过特殊的显 示屏,看起来是立体的。目标图即输出图,是可直接在显示器上显示立体效果 的立体图像。

显示模块将立体图像序列通过OpenGL直接输出到裸眼显示器上进行显 示。OpenGL(全写OpenGraphicsLibrary)是个定义了一个跨编程语言、跨 平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可), 是一个功能强大,调用方便的底层图形库。OpenGL是个与硬件无关的软件接 口,可以在不同的平台如Windows95、WindowsNT、Unix、Linux、MacOS、 OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得 非常广泛的应用。

上述装置采用的基于GPU的4k超多视点3D视频实时转化方法,利用CUDA 与OpenGL混合编程,提出一种适合于并行计算的预测映射算法,在CUDA内以 每个像素点为一个线程进行并行计算,同时根据参考视点的视差梯度进行空洞 预测,可以有效的填充空洞以及处理遮挡,结合显示器参数直接渲染出精确度 较高的立体视频,可以实现4K分辨率28视点的实时立体显示。

优点:虚拟视点渲染产生的空洞一般在背景区域,并且与深度变化率以及 平移方向相关。本发明根据深度变化率计算出空洞可能产生的位置,根据纹理 结构映射确定填充空洞的信息来源,此算法填充空洞比较真实,保持了图像的 连续性,减少计算量的同时保证了虚拟视点生成的质量。这种算法不需要在保 存虚拟视点图之后利用图像的连续性进行空洞填充,减少了内存使用,减少了 显示器内存大小对算法的限制,促进了超多视点的广泛应用。

随着显卡的发展,GPU(ComputeUnifiedDeviceArchitecture,统一 计算设备架构)越来越强大,而且GPU为显示图像做了优化。在计算上已经超 越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia 推出CUDA,让显卡可以用于图像计算以外的目的。

为此,本发明提供一种3D视频实时转化方法,所述3D视频实时转化方 法包括:

步骤1:基于输入视频每帧图像的视点图、深度图,对应于多个虚拟视点 位置,计算所述输入视频的每帧视频的视差值;

步骤2:根据所述视差值计算视差水平梯度值;

步骤3:根据所述视点图计算图像纹理结构图;

步骤4:根据视点图、图像纹理结构图、视差值、视差水平梯度值和显示 器参数直接合成对应于每帧图像的立体图像;以及

步骤5:输出立体图像。

优选地,所述多个虚拟视点与主视点在x方向上成直线排列。

优选地,以下述方法来计算视差水平梯度值,视差水平梯度值等于在与 虚拟视点对应的虚拟视点图上水平方向上相邻两点视差值之差:

disp_gradient(x)=disp(x+1)-disp(x)

其中,x是当前点的水平坐标;(x+1)表示相邻点的水平坐标;disp表示 视差值,disp_gradient是视差水平梯度值,即相邻两个视点的视差值之差。

优选地,步骤4包括:根据视差值和视点图映射生成局部虚拟视点图, 并将之合成至立体图像,

如果disp_gradient(x)为零,则待合成的局部虚拟视点图不存在遮挡,合成 映射关系为:

xdst=xsrc-disp(xsrc)Idst(sdst)=Isrc(xsrc);

其中,Idst表示合成目标图像,xdst表示目标图像像素横坐标,Isrc表示视 点图的图像,xsrc表示Isrc图像中像素横坐标,

如果disp_gradient(x)为正,则待合成的虚拟视点图存在重叠,此时取重叠 部位处视差值较大的虚拟视点图的局部图像作为立体图像的组成部分。

优选地,在步骤4中,预测空洞位置,并进行空洞填充,其中通过视差 值和视差水平梯度值预测虚拟视点图中空洞的位置。

优选地,若disp_gradient(x)为负,则虚拟视点图中会存在空洞,空洞所在 的坐标为:

xdst=xsrc+j-disp(xsrc),

其中,空洞的水平宽度为视差值之差的绝对值,j为任选整数,但是满足 下式:

disp_gradient(xsrc)≤j<0。

优选地,根据预测的空洞点坐标以及图像纹理结构图预测空洞应填充的 像素值,通过计算能量函数获得参考填充点的优先级,以对应能量值最大的参 考点的像素值作为空洞填充点的像素值。

优选地,能量函数表示为深度相似性Edepth,结构相似性Estructure和距离相似 性Eproximity的乘积:

E(q)=Edepth(q)·Eproximity(q)·Estructure(q)

Edepth(q)=1,dq-dp<0|dq-dp||dp-dp+1|,others,(1)Estructure(q)=min(S(q),100),(2)Eproximity(q)=exp(-euclidean(p,q)+nγp),(3)

其中,中心点坐标p=Isrc(xsrc,ysrc),参考区域的半径为2,q是任意参考 点坐标;

深度相似性Edepth通过参考点的深度dq与中心点深度dp之差来判断,当其 小于0时,参考点的相似性设置为1,当其不等于0计算比值;

结构相似性Estructure表示为纹理结构值S(q)相对于100的截断值,其中100 是经验值,n为空洞的位置的编号;

距离相似性Eproximity表示为参考点与中心点欧式几何距离euclidean(p,q)的指 数函数,γp为常数参数。

优选地,fi为裸眼光栅显示对应在第i个视点的蒙版,

在不存在空洞时,映射过程表示为:

if(disp-gradient(xsrc)0),

dispi(xsrc)=i·α·disp(xsrc)xdst=xsrc-dispi(xsrc)Idst(sdst)=Isrc(xsrc),dispi(xsrc)fi(xdst)>Idst-disp(xdst)

在存在空洞及填充时,前向映射过程表示为:

if(disp-gradient(xsrc)<0),

dispi(xsrc)=i·α·disp(xsrc),xdst=xsrc+j-dispi(xsrc),E(q0)=max(E(q))Isdt(xdst)=q0,dispi(q0)fi(xdst)>I_disp(xdst),i*α*dispgrsdient(xsrc)j<0,

α参数表示深度与视差平移量的转换关系;

Idst-disp表示目标图对应的视差图。

优选地,根据视点图获得纹理结构图的方法是视点图与sobel算子进行 卷积。

本发明的3D视频实时转化方法直接输出包含多个视点信息的立体图,可 以直接通过显示屏输出立体效果。

下面进一步介绍3D视频转化模块。

在3D视频转化模块中,首先计算深度视频获得每一帧视频的视差图,根 据视差计算视差水平梯度图;根据RGB视点图计算图像纹理结构图。根据RGB 视点图、纹理结构图、视差图、视差水平梯度图和显示器参数合成立体图像, 进行空洞填充,输出完整立体图像。

预测空洞填充前后效果如下图表示:

图4是空洞填充前后效果对比图。椭圆遮挡方块在右视点产生空洞。颜 色越浅,表示物体视差值越大,物体越靠近摄像机。

详细步骤如下:

1.根据视差图获得视差水平梯度图的方法是计算水平方向上相邻两点视 差值之差。

disp_gradient(x)=disp(x+1)-disp(x)

x是视差图的水平坐标;(x+1)表示相邻点的水平坐标;disp表示视差值, disp_gradient是视差水平梯度值,即相邻两点的视差值之差。省略y坐标,无需 考虑y坐标,因为y没有变化。

2.根据视差图和RGB视点图前向映射生成虚拟视点图。

令Idst表示合成目标图像,xdst表示目标图像像素横坐标,Isrc表示原参考 视点,xsrc表示Isrc图像中像素横坐标。由于空洞与遮挡发生在视差值变化的区 域,即视差水平梯度值不为0的区域。以下分析都取视差取向左平移为正值, disp_gradient(x)为0,则不存在空洞或者遮挡,映射关系为:

xdst=xsrc-disp(xsrc)Idst(sdst)=Isrc(xsrc);

disp_gradient(x)为正,则合成的虚拟视点图存在遮挡,此时取视差值较大的 参考点作为虚拟视点值,映射关系为:

xsdt=xsrc1-disp(xsrc1)=xsrc2-disp(xsrc2)=...disp(xsrc)=max(disp(xsrc1),disp(xsrc2),...)Idst(xdst)=Isrc(xsrc);

3.通过视差图和视差水平梯度图可以预测虚拟视点图中空洞的位置。

若disp_gradient(x)为负,则虚拟视点图中会存在空洞,空洞所在的坐标为

xdst=xsrc+j-disp(xsrc),

disp_gradient(xsrc)≤j<0

空洞的坐标预测图如图5,黑色表示空洞区域,可以看出,空洞的水平宽 度由视差值之差确定。

4.根据RGB视点图获得纹理结构图的方法是视点图与sobel算子进行卷 积。纹理结构图表示为RGB_structure。

5.根据步骤3所预测的空洞点坐标以及步骤4提供的纹理结构图可以预 测空洞应填充的像素值。

通过计算能量函数获得参考填充点的优先级,对应能量值最大的参考点 作为空洞填充点,参考填充点包括原视点图中的参考点以及目标视点中的参考 点。通过能量函数保证了目标图的视觉上的连续性,提高空洞填充的真实感。 已知

xdst=xsrc+j-disp(xsrc)

disp_gradient(xsrc)≤j<0

能量函数表示为深度相似性Edepth,结构相似性Estructure和距离相似性Eproximity的乘积:

E(q)=Edepth(q)·Eproximity(q)·Estructure(q)

Edepth(q)=1,dq-dp<0|dq-dp||dp-dp+1|,others,(1)Estructure(q)=min(S(q),100),(2)Eproximity(q)=exp(-euclidean(p,q)+nγp),(3)

其中,从RGB视点图中选择的参考区域如图6,其中中心点坐标 p=Isrc(xsrc,ysrc),参考区域的半径为2,q是任意参考点坐标。

深度相似性Edepth通过参考点的深度dq与中心点深度dp之差来判断,当其 小于0时,参考点的相似性设置为1。当其不等于0时如公式(1)。

结构相似性Estructure表示为纹理结构值S(q)相对于100的截断值,其中100 是经验值,n为空洞的位置的编号,如图6所示,如公式(2)。

距离相似性Eproximity表示为参考点与中心点欧式几何距离euclidean(p,q)的 指数函数,γp为常数参数,如公式(3)。

Idst(xdst)=q0,E(q0)=max(E(q))。

6.同时合成多个虚拟视点图,结合显示器的蒙版参数直接合成立体图像。 fi为裸眼光栅显示对应在第i个视点的蒙版。不考率空洞时前向映射过程表示 为:

if(disp-gradient(xsrc)0),

dispi(xsrc)=i·α·disp(xsrc)xdst=xsrc-dispi(xsrc)Idst(sdst)=Isrc(xsrc),dispi(xsrc)fi(xdst)>Idst-disp(xdst)

考虑空洞填充时,

if(disp-gradient(xsrc)<0),

dispi(xsrc)=i·α·disp(xsrc),xdst=xsrc+j-dispi(xsrc),E(q0)=max(E(q))Isdt(xdst)=q0,dispi(q0)fi(xdst)>I_disp(xdst),i*α*dispgrsdient(xsrc)j<0,

α参数表示深度与视差平移量的转换关系,可以通过调整α改变视差范围。Idst_disp表 示目标图对应的视差图,由于目标图包含多个视点的信息,目标图的视差图也是由 多个视点的视差值组成的。

7.对立体图填充空洞。经过以上处理,此时图像中存在的空洞主要是由 于坐标取整产生,空洞范围较小,在3D视频中可以通过最临近插值填充,不影 响最终效果的准确性。

在一个具体实施例中,采用下述的技术参数来实现上述技术方案:

输入参考视频与深度视频的分辨率:3840*2160

裸眼立体显示器分辨率:3840*2160

裸眼立体显示方式:柱镜光栅分光式

裸眼立体视点数:>=28

计算机:NVIDIA显卡,显存2G以上。

最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对 其限制。本领域的普通技术人员应当理解:可以对前述各实施例所记载的技术 方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号