专利名称:基于fpga的立体视频到多视点视频的3d重构方法
技术领域:
本发明涉及一种多视点自由立体重构与显示方法,尤其涉及一种基于FPGA的立体视频到多视点视频的3D重构的方法。
背景技术:
三维立体技术并不是新兴产物,事实上,它有着将近170年的历史。1838年世界第 ー组立体图像对在英国学者Charles Wheatstone笔下诞生。之后3D电影慢慢进入人们的视线。20世纪,平面电视技术的不断发展、电视厂商对差异化和产品附加价值的追求成为世界范围内3D研究热潮的強大推动力量。50年代的色分法、60年代的光分法以及目前当红的时分立体成像技术等陆续成为3D的研究焦点,成功应用于电影、游戏等领域。但是上述技术都需额外佩戴特制设备观看,不仅观看视角受到限制,眼镜引起的不适感和疲惫感也困扰了不少人,自由立体显示技术的发展为三维电视进入家庭应用提供了可能性。2002年, 夏普宣布成功开发无需专用眼镜就能看到立体图像的液晶显示器。Philips公司则开发了一系列的专门技术——“Wowvx”解决方案来提供高质量的自由立体显示,该解决方案包括倾斜透镜技木、2D和3D双重模式以及2D到3D的内容转换等等。2009与2010年,各种显示技术层出不穷,如空气投影、深度融合显示技术等等,但最受各机构和厂商关注的依然要属以视差壁障和柱状透镜技术为代表的平板立体显示。立体匹配是立体视觉中最重要也是最难的一部分,其目的是寻找两幅或多幅图像中的对应像素点以便求取对应的三维坐标。立体匹配算法必须解决以下3个问题选择正确的匹配特征,寻找特征间的本质属性及建立能正确匹配所选特征的稳定算法。根据匹配算法使用的约束信息的不同,立体匹配算法总体上分为局域算法和全局算法两种。局域算法利用的是对应点本身以及邻近的局部区域的约束信息,局域算法的优点是效率高,速度快,有许多加速方法如金字塔多分辨率匹配、盒滤波技术运用、存储器与高速缓存效率的提高、并行加速指令的实现、立体图对的分块并行匹配等。全局匹配算法是ー种对扫描线甚至整幅图像进行约束的匹配算法,将计算集中在视差的计算阶段,并且有可能跳过匹配代价的累积阶段。它利用了图像的全局约束信息,对局部图像的模糊不敏感。基于深度图像的绘制技术(D印th-Image-Based Rendering,DIBR),利用參考图像及其对应的深度信息来合成场景中的虚拟视点。该方法创新地将单视图像和对应的深度信息图作为传输对象,在立体播放器上生成左右两个新视点图像进行播放。它的核心思想是 McMillan于1997年提出的三维变换方程。DIBR方法的灵活性与可兼容性使它成为三维电视领域中研究的热点问题。利用基于深度图的虚拟视点映射技术将參考图像映射至虚拟视点位置吋,目标图像中会存在一些在參考图像没有对应映射点的像素,这些像素点被称为空洞。空洞产生的根本原因在于场景中物体之间的遮挡关系,在深度图中表现为前后景物体深度值不连续。 空洞问题是影响虚拟视点图像质量的根本因素,为了提高虚拟视点图像的图像质量,我们需要对空洞区域的图像内容进行填补。
根据双目视差原理,为了使观众产生深度感,我们需要利用一定装置使左右眼各自分别只能看到左、右图像。当前基于透镜光栅的LCD多视点自由立体显示设备由于其成本、尺寸、亮度上的优势,特別是它能够实现2D/3D之间的相互转换,已获得厂家和机构越来越多的关注。根据IXD子像素排列特征、柱透镜的光学结构以及透镜式立体显示技术原理,通过对RGB分量重新排列組合,实现了基于透镜光栅的LCD多视点自由立体显示。以上所涉及的基于深度图像的绘制技术、对空洞区域的图像内容进行填补技术以及对RGB分量重新排列組合技木,都需要大量的计算量,因此很难达到实时要求。
发明内容
本发明的目的是克服多视点自由立体重构与显示的实时性不足,提供一种基于 FPGA的立体视频到多视点视频的3D重构方法。基于FPGA的立体视频到多视点视频的3D重构方法的步骤如下1)采用分辨率为640X360的双目相机立体拍摄自然场景,获取左右两路相机图像序列并输入计算机;2)计算机将左右两路相机图像序列以BT1120数据格式封装,通过千兆以太网,传输到FPGA进行处理;:3)FPGA通过立体匹配算法,获得左右两路相机图像序列的稠密深度信息;4)多视点重构模块根据左右两路相机图像、相机參数、左右两路相机图像的深度信息,用基于深度图像的绘制技术计算多视点自由立体显示需要的两路图像的8个虚拟视点图像;5)对于虚拟视点图像中存在的空洞和遮挡区域,以其中一路图像为主相机图像序列,另一路图像为辅相机图像序列,先采用融合算法,减少空洞数量,再利用快速的空洞修复算法进行修复;6)显示处理模块把左相机图像形成的左视点图像,8个虚拟视点图像,利用基于柱透镜光栅的立体显示算法进行适当的重排布,生成高清图像,分辨率为1920X1080,以适合多视点观察的需要;7)重排布图像通过HDMI接ロ输出到裸眼三维显示器,最终提供裸眼的、适合多人多角度观察的图像。所述的步骤3)为1)立体匹配依据光学成像中关于场景、光照以及成像过程中的若干假设,在立体图像对中根据相似性測度选择图像的对应点。对于左右两路相机图像中的对应点P (xL, yL), P' (χΕ, yK),两对应点位于同一扫描行,其坐标满足如下关系xE = xL-d (χ, y), yE = yL其中d(x, y)称为点pUl,yL)和ρ' (χΕ, yE)之间的视差;2)采用动态规划算法进行立体匹配,其中,全局能量方程为E(d) = Edata (d)+Esmooth (d)式中Edata(d)为初始代价,以自适应代价聚合方法进行处理,设定亮度差阈值,窗口内的所有像素点亮度值与目标像素点的高度差的绝对值之和小于阈值,就扩大窗ロ,直到达到阈值,窗ロ大小停止扩大,在这个窗ロ大小基础上,计算初始匹配代价。Es_th(d)为平滑项;3)基于FPGA的方法,将多个像素点的立体匹配算法中涉及到的高度差计算和匹配代价计算并行处理,并记录下来,避免重复运算。所述的步骤4)为1)基于深度图像的绘制方法分两个步骤a)利用深度信息,将參考图像上所有的像素点重投影到对应的三维空间中;b)将这些三维空间点再投影到目标图像平面,在平行相机模型下,像素点坐标的映射关系为u = x+pn+qnXd/cXF, ν = y其中,U、ν为基于深度图像的绘制方法映射后的横坐标和纵坐标,x、y为原横坐标和纵坐标,p、q为与相机參数相关的两个參数值,η为生成虚拟视点号,d为原坐标位置的视差值,c为两路相机的基线距,F为相机的焦距;2)采用双ロ SRAM进行操作,将一行相机图像像素坐标数据均分为两部分处理,两个时钟周期内,先将相机图像像素坐标数据在第一个时钟周期写入SRAM,在第二个时钟周期从SRAM读出相机图像像素坐标数据,然后进行判断如果该坐标没有被计算过,则将该坐标对应的像素值记录下来;如果该坐标没被计算过,则比较这两次对应的深度值,将深度值较大的对应的像素值记录下来;3)利用FPGA的并行架构,将左右两路相机图像序列和左右两路相机图像的深度信息进行并行处理,两块SRAM进行数据读写的乒乓操作,当ー块SRAM处于写入状态时,另 ー块SRAM处于读出状态。所述的步骤5)为1)同时利用左右两路相机图像序列和左右两路相机图像的深度信息,对每ー个像素点添加空洞标示位,根据空洞标示位进行融合处理,在空洞位置进行判断如果左图空洞位置,对应右图为非空洞,则将右图信息填充至左图;如果左图空洞位置,对应右图也为空洞,则将此位置标志为空洞;2)将空洞填补划分为非空洞点位置的捜索与空洞位置像素值的计算两个子模块, 細分流水级数,空洞位置的像素值以水平方向上左右最近的两个非空洞点像素值加权平均计算得出,其中,加权值为非空洞点像素坐标距离到空洞位置的像素坐标距离的倒数;3)采用双ロ SRAM存储虚拟视点图像数据,其中ー个ロ用于融合时的储虚拟视点图像数据写入操作,另ー个ロ用于空洞填补时的储虚拟视点图像数据读写操作。本发明采用双目相机立体拍摄,可以以基于FPGA的运算下,通过立体匹配,获得两路相机图像的深度信息,在已知相机參数的基础上,实时产生两路图像的多个虚拟视点图像;通过视点融合技木,有效的减少空洞数目,并以快速的空洞修复算法提高图像质量; 3D立体显示设备可提供多人多角度的裸眼多视点立体显示效果。
图1是基于FPGA的立体视频到多视点视频的3D重构方法流程图;图2(a)是本发明的左路相机图像;图2(b)是本发明的右路相机图像;图3是本发明的立体匹配流程图4(a)是本发明的立体匹配生成的左图视差图;图4(b)是本发明的立体匹配生成的右图视差图;图5是本发明的多视点重构流程图;图6是多视点重构并经空洞修补后生成的左图8个虚拟视点图和原左图。图7是本发明的立体图像示例。
具体实施例方式基于FPGA的立体视频到多视点视频的3D重构方法的步骤如下1)采用分辨率为640X360的双目相机立体拍摄自然场景,获取左右两路相机图像序列并输入计算机;2)计算机将左右两路相机图像序列以BT1120数据格式封装,通过千兆以太网,传输到FPGA进行处理;:3)FPGA通过立体匹配算法,获得左右两路相机图像序列的稠密深度信息;4)多视点重构模块根据左右两路相机图像、相机參数、左右两路相机图像的深度信息,用基于深度图像的绘制技术(DIBR)计算多视点自由立体显示需要的两路图像的8个虚拟视点图像;5)对于虚拟视点图像中存在的空洞和遮挡区域,以其中一路图像为主相机图像序列,另一路图像为辅相机图像序列,先采用融合算法,减少空洞数量,再利用快速的空洞修复算法进行修复;6)显示处理模块把左相机图像形成的左视点图像,8个虚拟视点图像,利用基于柱透镜光栅的立体显示算法进行适当的重排布,生成高清图像,分辨率为1920X1080,以适合多视点观察的需要;7)重排布图像通过HDMI接ロ输出到裸眼三维显示器,最终提供裸眼的、适合多人多角度观察的图像。所述的步骤3)为1)立体匹配依据光学成像中关于场景、光照以及成像过程中的若干假设,在立体图像对中根据相似性測度选择图像的对应点。对于左右两路相机图像中的对应点P (xL, yL), P' (χΕ, yK),两对应点位于同一扫描行,其坐标满足如下关系xE = xL-d (χ, y), yE = yL其中d(x, y)称为点pUL,Yl)和P' (xe, Ye)之间的视差;2)采用动态规划算法进行立体匹配,其中,全局能量方程为E(d) = Edata (d)+Esmooth (d)式中Edata(d)为初始代价,以自适应代价聚合方法进行处理,设定亮度差阈值,窗口内的所有像素点亮度值与目标像素点的高度差的绝对值之和小于阈值,就扩大窗ロ,直到达到阈值,窗ロ大小停止扩大,在这个窗ロ大小基础上,计算初始匹配代价。Es_th(d)为平滑项;3)基于FPGA的方法,将多个像素点的立体匹配算法中涉及到的高度差计算和匹配代价计算并行处理,并记录下来,避免重复运算。所述的步骤4)为
1)基于深度图像的绘制方法分两个步骤a)利用深度信息,将參考图像上所有的像素点重投影到对应的三维空间中;b)将这些三维空间点再投影到目标图像平面,在平行相机模型下,像素点坐标的映射关系为u = x+pn+qnXd/cXF, ν = y其中,U、ν为基于深度图像的绘制方法映射后的横坐标和纵坐标,x、y为原横坐标和纵坐标,p、q为与相机參数相关的两个參数值,η为生成虚拟视点号,d为原坐标位置的视差值,c为两路相机的基线距,F为相机的焦距;2)采用双ロ SRAM进行操作,将一行相机图像像素坐标数据均分为两部分处理,两个时钟周期内,先将相机图像像素坐标数据在第一个时钟周期写入SRAM,在第二个时钟周期从SRAM读出相机图像像素坐标数据,然后进行判断如果该坐标没有被计算过,则将该坐标对应的像素值记录下来;如果该坐标没被计算过,则比较这两次对应的深度值,将深度值较大的对应的像素值记录下来;3)利用FPGA的并行架构,将左右两路相机图像序列和左右两路相机图像的深度信息进行并行处理,两块SRAM进行数据读写的乒乓操作,当ー块SRAM处于写入状态时,另 ー块SRAM处于读出状态。所述的步骤5)为1)同时利用左右两路相机图像序列和左右两路相机图像的深度信息,对每ー个像素点添加空洞标示位,根据空洞标示位进行融合处理,在空洞位置进行判断如果左图空洞位置,对应右图为非空洞,则将右图信息填充至左图;如果左图空洞位置,对应右图也为空洞,则将此位置标志为空洞;2)将空洞填补划分为非空洞点位置的捜索与空洞位置像素值的计算两个子模块, 細分流水级数,空洞位置的像素值以水平方向上左右最近的两个非空洞点像素值加权平均计算得出,其中,加权值为非空洞点像素坐标距离到空洞位置的像素坐标距离的倒数;3)采用双ロ SRAM存储虚拟视点图像数据,其中ー个ロ用于融合时的储虚拟视点图像数据写入操作,另ー个ロ用于空洞填补时的储虚拟视点图像数据读写操作。实施例1)将图像分辨率为640X360的左右相机图像作为输入图像,图2 (a)即为左相机图像,图2(b)即为右相机图像。2)将两路相机图像序列以BT1120数据格式封装,通过千兆以太网,传输到FPGA 进行处理。PC传送1920X360X2的数据帧,在FPGA开发板的Iinux系统下将其扩展为 1920X1080X2的数据帧。3)数据被分別写入对应的SRAM,然后进行立体匹配。图3即为立体匹配流程图。 图4(a)即为左图像的视差图,图4(b)即为右图像的视差图。4)得到视差图之后,进行多视点重构操作。图5即为多视点重构流程图。每一行数据依据相机參数映射到8个视点,当8个视点都运算结束之后,下一行数据从SRAM中读出,进行多视点重构操作。图6为多视点重构后生成的8个虚拟视点图。5)在多视点重构操作中,空洞位置会被标记。融合操作根据空洞标示位,在空洞位置进行判断,如果左图空洞位置,对应右图为非空洞,则将右图信息填充至左图;如果左图空洞位置,对应右图也为空洞,则将此位置标志为空洞。在空洞修复操作中,空洞位置的像素值以水平方向上左右最近的两个非空洞点像素值加权平均计算得出。
6)显示处理模块把左相机图像形成的左视点图像,8个空洞修复后的虚拟视点图像,利用基于柱透镜光栅的立体显示算法进行适当的重排布,生成高清图像,分辨率为 1920X1080,以适合多视点观察的需要。
权利要求
1.一种基于FPGA的立体视频到多视点视频的3D重构方法,其特征在于它的步骤如下1)采用分辨率为640X360的双目相机立体拍摄自然场景,获取左右两路相机图像序列并输入计算机;2)计算机将左右两路相机图像序列以BT1120数据格式封装,通过千兆以太网,传输到 FPGA进行处理;3)FPGA通过立体匹配算法,获得左右两路相机图像序列的稠密深度信息;4)多视点重构模块根据左右两路相机图像、相机參数、左右两路相机图像的深度信息, 用基于深度图像的绘制技术计算多视点自由立体显示需要的两路图像的8个虚拟视点图像;5)对于虚拟视点图像中存在的空洞和遮挡区域,以其中一路图像为主相机图像序列, 另一路图像为辅相机图像序列,先采用融合算法,减少空洞数量,再利用快速的空洞修复算法进行修复;6)显示处理模块把左相机图像形成的左视点图像,8个虚拟视点图像,利用基于柱透镜光栅的立体显示算法进行适当的重排布,生成高清图像,分辨率为1920X1080,以适合多视点观察的需要;7)重排布图像通过HDMI接ロ输出到裸眼三维显示器,最终提供裸眼的、适合多人多角度观察的图像。
2.根据权利要求1所述的ー种基于FPGA的立体视频到多视点视频的3D重构方法,其特征在于所述的步骤3)为1)立体匹配依据光学成像中关于场景、光照以及成像过程中的若干假设,在立体图像对中根据相似性測度选择图像的对应点。对于左右两路相机图像中的对应点P0^,yL), P' (xE, yK),两对应点位于同一扫描行,其坐标满足如下关系Xr = xL-d(x,y),yK = yL其中d(x, y)称为点pOl· yL)和ρ' (χΕ, yE)之间的视差;2)采用动态规划算法进行立体匹配,其中,全局能量方程为E(d) = Edata (d)+Esmooth (d)式中Edata (d)为初始代价,以自适应代价聚合方法进行处理,设定亮度差阈值,窗口内的所有像素点亮度值与目标像素点的高度差的绝对值之和小于阈值,就扩大窗ロ,直到达到阈值,窗ロ大小停止扩大,在这个窗ロ大小基础上,计算初始匹配代价。Es_th(d)为平滑项;3)基于FPGA的方法,将多个像素点的立体匹配算法中涉及到的高度差计算和匹配代价计算并行处理,并记录下来,避免重复运算。
3.根据权利要求1所述的ー种基于FPGA的立体视频到多视点视频的3D重构方法,其特征在于所述的步骤4)为1)基于深度图像的绘制方法分两个步骤a)利用深度信息,将參考图像上所有的像素点重投影到对应的三维空间中;b)将这些三维空间点再投影到目标图像平面,在平行相机模型下,像素点坐标的映射关系为u = x+pn+qnXd/cXF,ν = y其中,U、ν为基于深度图像的绘制方法映射后的横坐标和纵坐标,x、y为原横坐标和纵坐标,P、q为与相机參数相关的两个參数值,η为生成虚拟视点号,d为原坐标位置的视差值,c为两路相机的基线距,F为相机的焦距;2)采用双ロSRAM进行操作,将一行相机图像像素坐标数据均分为两部分处理,两个时钟周期内,先将相机图像像素坐标数据在第一个时钟周期写入SRAM,在第二个时钟周期从 SRAM读出相机图像像素坐标数据,然后进行判断如果该坐标没有被计算过,则将该坐标对应的像素值记录下来;如果该坐标没被计算过,则比较这两次对应的深度值,将深度值较大的对应的像素值记录下来;3)利用FPGA的并行架构,将左右两路相机图像序列和左右两路相机图像的深度信息进行并行处理,两块SRAM进行数据读写的乒乓操作,当ー块SRAM处于写入状态时,另ー块 SRAM处于读出状态。
4.根据权利要求1所述的ー种基于FPGA的立体视频到多视点视频的3D重构方法,其特征在于所述的步骤5)为1)同时利用左右两路相机图像序列和左右两路相机图像的深度信息,对每ー个像素点添加空洞标示位,根据空洞标示位进行融合处理,在空洞位置进行判断如果左图空洞位置,对应右图为非空洞,则将右图信息填充至左图;如果左图空洞位置,对应右图也为空洞, 则将此位置标志为空洞;2)将空洞填补划分为非空洞点位置的捜索与空洞位置像素值的计算两个子模块,細分流水级数,空洞位置的像素值以水平方向上左右最近的两个非空洞点像素值加权平均计算得出,其中,加权值为非空洞点像素坐标距离到空洞位置的像素坐标距离的倒数;3)采用双ロSRAM存储虚拟视点图像数据,其中ー个ロ用于融合时的储虚拟视点图像数据写入操作,另ー个ロ用于空洞填补时的储虚拟视点图像数据读写操作。
全文摘要
本发明公开了一种基于FPGA的立体视频到多视点视频的3D重构的方法,它的步骤如下1)双目相机立体拍摄自然场景;2)通过千兆以太网,将两路彩色图像信息,以BT1120数据格式,传送到FPGA进行处理;3)通过立体匹配,获得两路相机图像的深度信息;4)根据算法,进行多视点重构和视点合成运算;5)通过HDMI接口输出,并在裸眼3D显示设备提供多视点立体显示。本发明采用双目相机立体拍摄,可实现真实场景的立体显示;高效的算法以及FPGA的并行架构可以实现实时显示;3D立体显示设备可提供多人多角度的裸眼多视点立体显示效果。
文档编号H04N13/00GK102572482SQ20121000303
公开日2012年7月11日 申请日期2012年1月6日 优先权日2012年1月6日
发明者付航, 姚少俊, 张明, 李东晓, 王梁昊, 金鹏飞 申请人:浙江大学