CN103051908B - 一种基于视差图的空洞填充装置 - Google Patents
一种基于视差图的空洞填充装置 Download PDFInfo
- Publication number
- CN103051908B CN103051908B CN201210574221.0A CN201210574221A CN103051908B CN 103051908 B CN103051908 B CN 103051908B CN 201210574221 A CN201210574221 A CN 201210574221A CN 103051908 B CN103051908 B CN 103051908B
- Authority
- CN
- China
- Prior art keywords
- cavity
- parallax value
- pixel
- value
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 claims abstract description 7
- 230000007704 transition Effects 0.000 claims description 55
- 239000011800 void material Substances 0.000 claims description 45
- 238000013507 mapping Methods 0.000 claims description 5
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000012856 packing Methods 0.000 claims description 2
- 230000008030 elimination Effects 0.000 abstract 1
- 238000003379 elimination reaction Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 14
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 3
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 2
- 208000003464 asthenopia Diseases 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种基于视差图的空洞填充装置,如果目标图像为左视图(右视图),通过检测跃变模块、标记空洞模块对视差图的视差值从右向左(从左到右)逐行逐像素点进行跃变检测和空洞标记,得到像素点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M、差值D_M以及空洞标记送入填充空洞模块中进行空洞填充,得填充后的像素点视差值,然后再用填充较大空洞的视差值来代替该较大空洞边缘的背景像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2,最后,根据视差图M2生成目标图像。这样实现硬件以数据流的方式进行空洞填充的发明目的。
Description
技术领域
本发明属于基于深度图像绘制(Depth-Image-Based Rendering,简称DIBR)技术领域,更为具体地讲,涉及一种基于视差图的空洞填充装置。
背景技术
近年来的热播3D电影,给人类视觉带来了强烈冲击,促进了3D产业的发展。目前虽开通了3D频道,但3D影视资源依然匮乏,2D/3D技术仍有其广泛的应用市场。
基于深度图像绘制(Depth-Image-Based Rendering,简称DIBR)技术根据参考图像(reference image)及其对应的深度图像(depth image)来生成新视点图像(目标图像)。与传统的需要传递左右眼两路视频的3D视频相比,采用DIBR技术之后仅需要传送一路视频及其深度图像就可生成立体图像对,而且可以很方便的实现二维和三维的切换,正因为如此,DIBR技术在3D电视立体图像对(stereopair)的生成中得到了广泛应用,它也引起了人们愈来愈浓厚的兴趣。
采用DIBR技术来生成目标图像时,由于视点的改变,参考图像中不可能包含目标图像中的全部信息,从而产生空洞(holes),空洞严重影响了目标视图的质量,成为最主要也是最难解决的问题。
在本申请人申请的、2012年01月04日公布的、公布号为102307312A、名称为“一种对DIBR技术生成的目标图像进行空洞填充的方法”的中国发明专利公布中,提出了一种基于视差图的空洞填充算法。
1、视差图
视差图M表示的是目标图像(Destination Image)相对参考图像(ReferenceImage)的平移。
为避免视觉疲劳(Visual Fatigue),在形成目标图像时通常采用平行摄像机设置(Parallel Camera Configuration)。在该设置下,目标图像和参考图像上的点在垂直方向的位置不变,仅在水平方向有平移,称该平移被称为视差值,视差值是视差图上像素点的值,其定义如下
M(udes,v)=udes-uref(1)
其中(udes,v),(uref,v)分别表示目标图像上的点和其参考图像上的对应的匹配点,M(udes,v)表示目标图像上对应点的视差值。只需确定目标图像上的点的坐标(udes,v)和对应点的视差值M(udes,v),就可以找到参考图像上的点(uref,v),从而视差图建立了目标图像和参考图像的桥梁式,公式(1)定义了非空洞点的视差值,当目标图像对应点为空洞点时,在参考图像上找不到与之对应的匹配点,从而无法确定uref,为便于表示,将空洞点对应的视差值的定为-128(考虑到视觉舒适度,非空点的视差不能取到-128)。
2、空洞填充算法
由于视点的改变,深度图像的不连续等,参考图像里不包含目标图像里所需的全部信息,因而三维图像变换后生成的目标图像里将出现空洞,如图1所示。
从图1中可以看出,目标图像中存在较大空洞和较小空洞,较小空洞可以用滤波(中值滤波,或均值滤波)或插值的方法来填充,但较大空洞无法用滤波去除,且用插值的方法不能取得较好的效果。
基于视差图的空洞填充方法不需要预处理深度图,从而能够保持非空洞区域的真实性。该方法的核心思想是用较大空洞邻域的背景像素来填充该较大空洞,其实质是使参考图像中的背景像素点平移与其前景像素点一样的距离。
基于视差图的空洞填充方法的难点在于如何找到较大空洞区域对应的背景像素点。由于视差图M表示目标图像相对参考图像的平移,通过目标图像以及对应的视差图便可以找到参考图像上对应的匹配点,因此只需修改视差图M上的视差值便可以通过逆向映射来填充空洞。
除边缘空洞外,若目标图像在参考图像的左边(下文都以左视图代替),较大空洞出现在前景物体的左边,若目标图像在参考图像的右边(下文都以右视图代替),较大空洞出现在前景物体的右边。从而,对于左(右)视图来说,只需将较大空洞对应的视差值修改成离该空洞右(左)边缘最近的前景像素点对应的视差值便可。左(右)视图的较小空洞对应的视差值用空洞左(右)边缘非空像素点对应的视差值来代替。
基于视差图的空洞填充方法如图2所示。
第一步:标记空洞。区分大空洞和小空洞,以便于后续处理。
第二步:膨胀较大空洞,以消除匹配误差,并检测到该较大空洞右(左)边缘最近的前景像素点对应的视差值,用来填充该空洞的视差值。由于深度图像中前景物体的轮廓比参考图像中的轮廓要小,若未通过预处理深度图后,则生成目标图像中的较大空洞的边缘可能存在匹配误差(Matching error,也称为Ghost contour),通过区分较大空洞的左右边缘区域的前景像素点和背景像素点,并膨胀空洞边缘区域为背景像素点的较大空洞来消除匹配误差,膨胀的个数为l,膨胀过程的实质是将需要膨胀的这l个点的对应的视差值改成-128。
第三步:空洞填充,即用第二步得到的视差值d来代替较大空洞点的视差值,得到不含空洞(即-128)的新的视差图。需要注意的是若udes–d的值大于图像的宽度或小于1(即超过了参考图像的边界),则该像素点对应的视差值被修订为0。
第四步:像素拷贝,这是一个逆向映射的过程,主要根据公式(1)来生成目标图像。
但是现有技术的基于视差图的空洞填充方法如果采用软件处理方式是可行的,但如果采用硬件处理,则由于视差图是流的方式,则无法直接采用有的基于视差图的空洞填充方法进行空洞填充。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于视差图的空洞填充装置,采用硬件方式进行基于视差图的空洞填充。
为实现上述目的,本发明基于视差图的空洞填充装置,其特征在于,包括:
一配置寄存器单元,用于存储检测跃变时的阈值,以区分前景像素点和背景像素点,存储较大空洞膨胀的像素点的个数;
一存储模块,用于存储空洞填充需要的参考图像以及输出的目标图像;
一检测跃变模块,用于检测像素点视差值的跃变;
一标记空洞模块,用于标记空洞;
如果目标图像是左视图,则视差图的视差值从右到左、如果目标图像是右视图,则视差图的视差值从左到右逐行逐像素点以数据流方式输入检测跃变模块和标记空洞模块中,
配制寄存器单元的跃变阈值送入检测跃变模块中,检测跃变模块对输入的视差值的跃变进行检测,对于左(右)视图来说,如果在非空洞点处,跃变是较小(大)视差值跃变到较大(小)视差值,并且跃变的绝对值,表明前一像素点的视差值为背景像素点的视差值,当前像素点的视差值为前景像素点的视差值,将前景像素点的视差值修改为当前像素点的视差值并输出,其余情况保持不变,初始前景像素点的视差值为每一行的第一个像素点视差值,并以数据流的方式输出前景像素点视差值Forgroud_M到填充空洞模块;
同时如果检测的视差值不为空洞点,输出该视差值,如果为空洞点,则用前一像素点的视差值填充,如果前一像素点为空洞点,则用其填充的视差值填充,得到不含空洞的视差值Noholes_M,并以数据流的方式输出到填充空洞模块;
将像素点的前景像素点视差值Forgroud_M与不含空洞的视差值Noholes_M进行差值,得到差值D_M,并以数据流的方式输出到填充空洞模块;
标记空洞模块对输入的视差值进行检测,当检测到连续空洞点的个数大于等于设定的个数时,将该连续空洞点各点位置标记为2,当检测到连续空洞点的个数小于设定的个数时,将该连续空洞点各点位置标记为1,如果检测到的是非空洞点,则将该非空洞点标记为0,标记空洞模块将空洞标记以数据以数据流的方式输出到填充空洞模块;
填充空洞模块,用于根据标记空洞模块的空洞标记区分大小空洞以及像素点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M和差值D_M进行空洞填充:
像素点空洞标记若值为0,则不需要填充空洞,将该像素点不含空洞的视差值Noholes_M值赋给该像素点;
像素点空洞标记若值为1,则表明是较小空洞,需要根据视差图的视差值判断,该较小空洞之后的非空洞点,并用该非空洞点视差值来填充,即对左(右)视图来说,该较小空洞左(右)边的非空洞点视差值来填充;
像素点空洞标记若值为2,则表明是较大空洞,需要根据差值D_M判断,如果该值的绝对值大于设定的跃变阈值,表示该较大空洞右边缘(对左视图)或左边缘(对于右视图)第一个非空像素点为背景像素点,此时前景像素点视差值foreground_M记录了与之最近的前景像素点的视差值,用前景像素点视差值foreground_M填充该像素点,如果差值D_M的绝对值不大于设定的跃变阈值即没有跃变,则表明该空洞右边缘(对于左视图)或左边缘(对于右视图)第一个非空像素点为前景像素点,用noholes_M的值来填充该像素点;
一膨胀较大空洞模块,对填充模块填充后的视差值进行处理,用填充较大空洞的视差值来代替该较大空洞左边缘(对于左视图)或右边缘(对于右视图)像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2;
一像素拷贝模块,用于生成目标图像,根据目标图像像素点的坐标以及视差图M2中对应的视差值,通过逆向映射从存储模块存储的参考图像中拷贝相应的像素点来生成目标图像,并输出到存储模块中;
由于检测跃变模块、标记空洞模块都需要根据当前像素点以及之后的像素点视差值来确定当前像素点的跃变情况以及空洞标记值,因此输出都有一定的延迟,但只要两个模块的输出延迟相同,则能保证像素点的对应性。
本发明的发明目的是这样实现的:
本发明基于视差图的空洞填充装置,如果目标图像为左视图(右视图),通过检测跃变模块、标记空洞模块对视差图的视差值从右到左(从左到右)逐行逐像素点进行跃变检测和空洞标记,得到像素点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M、差值D_M以及空洞标记送入填充空洞模块中进行空洞填充,得填充后的像素点视差值,然后再用填充较大空洞的视差值来代替该较大空洞边缘的背景像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2,最后,根据视差图M2生成目标图像。这样实现硬件以数据流的方式进行空洞填充的发明目的。
附图说明
图1是空洞填充前的目标图像;
图2是基于视差图的空洞填充方法的流程图;
图3是本发明基于视差图的空洞填充装置一具体实施方式原理框图;
图4是图3所示标记空洞模块一具体实施方式原理图;
图5是图4所示标记空洞模块中各信号的时序实例图;
图6是图3所示标记空洞模块输入的视差图以及对应的空洞标记图;
图7是图3所示膨胀较大空洞模块对较大空洞进行膨胀示意图;
图8是ballet序列以及breakerdancer序列参考图像及对应的深度图;
图9是ballet序列以及breakerdancer序列左视图对应的视差图;
图10是ballet序列以及breakerdancer序列分别采用软件和硬件生成目标图像的对比图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图3是本发明基于视差图的空洞填充装置一具体实施方式原理框图。
在本实施例中,如图3,本发明基于视差图的空洞填充装置包括:配置寄存器单元1、存储模块2、检测跃变模块3、标记空洞模块4、填充空洞模块5、膨胀较大空洞模块6以及像素拷贝模块7。
配置寄存器单元1用于存储检测跃变时的阈值th,以区分前景像素点和背景像素点,存储较大空洞膨胀的像素点的个数l。
存储模块2为SDRAM,用于存储空洞填充需要的参考图像以及输出的目标图像,存储格式为RGB,数据量为图像的一行数据。
检测跃变模块3用于像素点视差值的跃变,标记空洞模块4用于标记空洞,具体为:
如果目标图像是左视图,则视差图的视差值从右到左、如果目标图像是右视图,则视差图M的视差值从左到右逐行逐像素点以数据流方式输入检测跃变模块3和标记空洞模块4中。
1、跃变检测
配制寄存器单元1的跃变阈值th送入检测跃变模块3中,检测跃变模块3对输入的视差值的跃变进行检测,对于目标视图为左(右)视图来说,如果跃变是较小(大)视差值跃变到较大(小)视差值,并且跃变的绝对值大于跃变阈值th时,表明前一像素点的视差值为背景像素点的视差值,当前像素点的视差值为前景像素点的视差值,将前景像素点的视差值修改为当前像素点的视差值并输出,其余情况保持不变,初始前景像素点的视差值为每一行的第一个像素点视差值,并以数据流的方式输出前景像素点视差值Forgroud_M到填充空洞模块5。
同时如果检测的视差值不为空洞点,输出该视差值,如果为空洞点,则用前一像素点的视差值填充,如果前一像素点为空洞点,则用其填充的视差值填充,得到不含空洞的视差值Noholes_M,并以数据流的方式输出到填充空洞模块5;
将像素点的前景像素点视差值Forgroud_M与不含空洞的视差值Noholes_M进行差值,得到差值D_M,并以数据流的方式输出到填充空洞模块5。
上述检测跃变模块3可以通过比较器比较视差值判断是否是空洞点,然后根据上述检测步骤通过寄存器延迟、减法器计算跃变,通过比较器比较得到前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M进行差值以及差值D_M。
2、空洞标记
标记空洞模块4对输入的视差值进行检测,当检测到连续空洞点的个数大于等于设定的个数时,将该连续空洞点各点位置标记为2,当检测到连续空洞点的个数小于设定的个数时,将该连续空洞点各点位置标记为1,如果检测到的是非空洞点,则将该非空洞点标记为0,标记空洞模块4将空洞标记以数据以数据流的方式输出到填充空洞模块5。
图4是图3所示标记空洞模块一具体实施方式原理图。
在本实施例中,空洞标记设定的个数为2。如图4所示,
空洞计数器用来记录空洞像素点的个数,当输入的视差值M[7:0]等于-128时,则认为该视差值对应的像素点为空洞,空洞计数器的值num1加1,当为非空点时空洞计数器的值清0,即num1变成0。num用来记录空洞的宽度,即当num1取最大值时,将该值输出,其余时刻都输出0。holes_marker用来标记空洞,当空洞的宽度小于3时即1或2,对应的空洞像素点标记为1,大于等于3时对应的空洞像素点标记为2,为非空点时对应的像素点标记为0。
具体实现原理如下:
首先通过与-128比较接收到的视差值M是否为空洞(即视差值为-128时为空洞)假设为空洞点,则空洞计数器加1,否则空洞计数器清零,假设空洞的长度为5,则空洞计数器的值(num1)将从0逐步累加到5,然后又变成0,从而要输出空洞的长度num就必须检测到num1再次变成的0时的最大值。在这里是通过比较器判断num1以及num1的上一时刻的值delay1_num1(即num1通过寄存器reg1的值),当num1的值为0(通过比较器c1与0比较,如果相同,比较器c1输出为1到与门and1),且delay1_num1的值不为0(通过比较器c2与0比较,如果不为0,则比较器c2输出为0,经过取反后输出到与门and1)时,即空洞结束,两个比较器c1、c2输出,经过与门and1后,输出给多路选择器mux1,将上一时刻的值delay1_num的值赋给num,否则将0赋给num。
对于左(右)视图来说,由于num只在检测到空洞的起(终)点时才输出空洞的宽度,要标记空洞,还需输出与空洞计数器的值,由于上上时刻的值delay2_num1(上一时刻的值delay1_num经过寄存器reg2得到)在输出最大值时,num刚好输出空洞的宽度,即假设当前空洞的宽度为5,则上上时刻的值delay2_num1将依次输出1,2,3,4,5,且当上上时刻的值delay2_num1为5时,num也为5,其余时刻为0。这样只需要通过比较器c3~c5分别比较上上时刻的值delay2_num1和空洞宽度的值num,就可以控制多选器mux2来标记空洞。
具体实现如下:
当上上时刻的值delay2_num1的值为0时,即当前像素点为非空洞点,即不满足大于0,比较器c1输出为0,取反后为1,此时多选器mux2将0赋值给holes_marker1即输出为0。
当上上时刻的值delay2_num1的值不为0即当前像素点为空洞点,且当前num的值为1或2时(通过比较器c4、c5、或门or以及与门and2实现),与门and2输出为1,多选器mux2将1赋值给holes_marker1即输出为1,当num取其他值(与门and2输出为0,比较器c3输出为1,取反为0,即多路选择器输入为00),多选器将mux2将2赋值给holes_marker1即输出为0。
由于当num为2时,该空洞为小空洞,但只将左(右)视图,空洞的终(起)点标记为1,起点(终点)被标记为4了,从而需要改写。在这里将holes_marker1通过寄存器reg3延迟后,输出多路选择器mux3,到且当num的值为2时,通过多路选择器mux3,将holes_marker1的值改为1,从而得到标记了空洞大小的空洞标记holes_marker。
图5是图4所示标记空洞模块中各信号的时序实例图。
在本实施例中,如图5所示,CLK是时钟信号,RST是复位信号,data_valid是来自前端的数据有效信号,在复位后,数据有效信号到来,视差图M输出视差值。但是标记空洞模块由于需要对当前空洞点前后的空洞情况进行标记,因此需要输入多个视差后才能标记空洞,在本实施例中,需要延迟5个时钟,其延迟来自空洞计数器、寄存器reg1、寄存器reg2(多路选择器mux1)、多路选择器mux2、寄存器reg3以及多路选择mux3。data_valid_out为输出信号,表示数据输出,用于后续处理模块。
从图5中,空洞标记holes_marker以及空洞的长度num都正确反映了视差图中的空洞情况,如第1个数为非空洞像素点,视差值为24,空洞标记为0,空洞的长度为0,第2个数是一个点的空洞,标记为1,长度为1,……。
标记空洞模块4将空洞填充基于空洞的处理变成了基于像素的处理,从而解决空洞长度不定带来的时序不定问题,减少硬件实现复杂度。标记后的视差图和空洞标记图如图6所示(为便于显示,将视差表的每一个像素都乘以122)。
3、填充空洞
填充空洞模块5根据标记空洞模块4的空洞标记区分大小空洞以及像素点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M和差值D_M进行空洞填充:
像素点空洞标记若值为0,则不需要填充空洞,将该像素点不含空洞的视差值Noholes_M值赋给该像素点;
像素点空洞标记若值为1,则表明是较小空洞,需要根据视差图的视差值判断,用该较小空洞之后(之前)的非空洞点的视差值来填充,即对左(右)视图来说,该较小空洞左(右)边的非空洞点视差值来填充;
像素点空洞标记若值为2,则表明是较大空洞,需要根据差值D_M判断,如果差值D_M的绝对值大于设定的跃变阈值,表示该较大空洞右边缘(对左视图)或左边缘(对于右视图)第一个非空像素点为背景像素点,此时前景像素点视差值foreground_M记录了与之最近的前景像素点的视差值,用前景像素点视差值foreground_M填充该像素点,如果差值D_M的绝对值不大于设定的跃变阈值即没有跃变,则表明该空洞右边缘(对于左视图)或左边缘(对于右视图)第一个非空像素点为前景像素点,用noholes_M的值来填充该像素点。
4、膨胀较大空洞
膨胀较大空洞模块6对填充空洞模块5填充后的视差值进行处理,用填充较大空洞的视差值来代替该较大空洞边缘的背景像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2。
膨胀较大空洞模块6对较大空洞进行膨胀,从而消除匹配误差。在本发明中,放在填充空洞模块5之后,是为了硬件的流水实现方便。若膨胀放在填充空洞之前则需要回写数据,即需要修改标记空洞模块4生成的空洞标记以及检测跃变模块3的数据。这里的膨胀是用填充较大空洞的视差值来代替该空洞边缘像素点的视差值,膨胀后将得到到目标图像对应的没有空洞和消除匹配误差后的新的视差图M2,膨胀示意如图7。
图7中,格纹的点表示视差图中的前景像素点,黑点表示背景像素点,白点表示空洞点。该视差图对应的目标图像为左视图,在前景像素点M(u+1,v)和背景像素点M(u-num,v)之间有num(>2)个空洞点,空洞填充后得到的新的视差图M1,这num个空洞点的视差值被相应的前景像素点的视差值所代替。在视差图M中,较大空洞的左边缘有l个背景像素点需要膨胀,则只需在空洞填充后的得到的视差图M1的基础上,用填充该较大空洞的前景像素点的视差值取代这l个背景像素点的视差值。得到视差图M2。其中膨胀点数l是由配置寄存器单元1根据深度图的准确性指定的。
5、像素拷贝
像素拷贝模块7用于生成目标图像,根据目标图像像素点的坐标以及视差图M2中对应的视差值,通过逆向映射从存储模块存储的参考图像中拷贝相应的像素点来生成目标图像,并输出到存储模块2中。这部分为现有技术,在此不必赘述。
由于检测跃变模块3、标记空洞模块4都需要根据当前像素点以及之后的像素点视差值来确定当前像素点的跃变情况以及空洞标记值,因此输出都有一定的延迟,在本实施例中,检测跃变模块3、标记空洞模块4均延迟5个时钟,则能保证像素点的对应性。
具体实例分析:
本发明基于视差图的空洞填充装置在FPGA实现,采用verilog语言编程。硬件结构的实现通过了ModelSim Xilinx的RTL门级验证,verilog代码通过ise在xc5vlx330t-1ffl738 Xilinx Vertex 5 FPGA上综合,采用的频率为200MHZ。
A、复杂度分析
(1)、时间复杂度
填充装置所有模块都是逐像素处理的,假设图像的尺寸为m*n,则算法的时间复杂度为O(s),其中s=m*n。
(2)、空间复杂度
包括输入输出数据所占的存储空间,程序运行以及代码所占的空间。其中存储空间计算如下:算法硬件实现按行存储数据,三维图像变换生成的视差图不需要外部存储器,只需存储参考图像的一行数据,则需要n*30bits的存储空间。本发明空洞填充装置使用的资源较小,假设输入的图像分辨率为1280*720只利用了620个LE,3个18K的BlockRAM,最大资源利用率为9%,从而硬件时间简单,且比较系统性能非常稳定。
同时硬件结构可以达到的最大频率为224.92MHZ,能够满足60帧/秒(像素时钟为148.5MHZ)全高清图像的实时性要求。
B、图像质量分析
采用“ballet”序列和“breakdancer”序列来进行实验,以摄像机4捕获的第0帧作为参考图像以及对应的深度图像,来合成目标图像(左视图),图像分辨率为1024×768,图8显示了ballet序列以及breakerdancer序列参考图像及对应的深度图,图9显示了其中左视图对应的视差图,黑的点表示空洞。
从图10,可以看出,软件和硬件实现结果基本一致,利用较少的硬件资源实现了基于视差图的空洞填充算法。
结论
本发明提出了一种基于视差图空洞填充装置,可用verilog语言在FPGA平台上实现了该装置。
本发明的硬件设计采用流水设计结构,能够满足实时性的要求。且是像素级的,按行处理,存储单元可只需存储一行数据,有效的减少了硬件实现占用的资源,有利于ASIC实现。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种基于视差图的空洞填充装置,其特征在于,包括:
一配置寄存器单元,用于存储检测跃变时的阈值,以区分前景像素点和背景像素点,存储较大空洞膨胀的像素点的个数;
一存储模块,用于存储空洞填充需要的参考图像以及输出的目标图像;
一检测跃变模块,用于检测像素点视差值的跃变;
一标记空洞模块,用于标记空洞;
如果目标图像是左视图,则视差图的视差值从右到左、如果目标图像是右视图,则视差图的视差值从左到右逐行逐像素点以数据流方式输入检测跃变模块和标记空洞模块中;
配制寄存器单元的跃变阈值送入检测跃变模块中,检测跃变模块对输入的视差值的跃变进行检测,对于左(右)视图来说,如果在非空洞点处,跃变是较小(大)视差值跃变到较大(小)视差值,并且跃变的绝对值大于跃变阈值时,表明前一像素点的视差值为背景像素点的视差值,当前像素点的视差值为前景像素点的视差值,将前景像素点的视差值修改为当前像素点的视差值并输出,其余情况保持不变,初始前景像素点的视差值为每一行的第一个像素点视差值,并以数据流的方式输出前景像素点视差值Forgroud_M到填充空洞模块;
同时如果检测的视差值不为空洞点,输出该视差值,如果为空洞点,则用前一像素点的视差值填充,如果前一像素点为空洞点,则用其填充的视差值填充,得到不含空洞的视差值Noholes_M,并以数据流的方式输出到填充空洞模块;
将像素点的前景像素点视差值Forgroud_M与不含空洞的视差值Noholes_M进行差值,得到差值D_M,并以数据流的方式输出到填充空洞模块;
标记空洞模块对输入的视差值进行检测,当检测到连续空洞点的个数大于等于设定的个数时,将该连续空洞点各点位置标记为2,当检测到连续空洞点的个数小于设定的个数时,将该连续空洞点各点位置标记为1,如果检测到的是非空洞点,则将该非空洞点标记为0,标记空洞模块将空洞标记以数据以数据流的方式输出到填充空洞模块;
填充空洞模块,用于根据标记空洞模块的空洞标记区分大小空洞以及像素点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M和差值D_M进行空洞填充:
像素点空洞标记若值为0,则不需要填充空洞,将该像素点不含空洞的视差值Noholes_M值赋给该像素点;
像素点空洞标记若值为1,则表明是较小空洞,需要根据视差图的视差值判断,该较小空洞之后的非空洞点,并用该非空洞点视差值来填充,即对左(右)视图来说,该较小空洞左(右)边的非空洞点视差值来填充;
像素点空洞标记若值为2,则表明是较大空洞,需要根据差值D_M判断,如果该值的绝对值大于设定的跃变阈值,表示该较大空洞右边缘(对左视图)或左边缘(对于右视图)第一个非空像素点为背景像素点,此时前景像素点视差值foreground_M记录了与之最近的前景像素点的视差值,用前景像素点视差值foreground_M填充该像素点,如果差值D_M的绝对值不大于设定的跃变阈值即没有跃变,则表明该空洞右边缘(对于左视图)或左边缘(对于右视图)第一个非空像素点为前景像素点,用noholes_M的值来填充该像素点;
一膨胀较大空洞模块,对填充模块填充后的视差值进行处理,用填充较大空洞的视差值来代替该较大空洞边缘的背景像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2;
一像素拷贝模块,用于生成目标图像,根据目标图像像素点的坐标以及视差图M2中对应的视差值,通过逆向映射从存储模块存储的参考图像中拷贝相应的像素点来生成目标图像,并输出到存储模块中;
由于检测跃变模块、标记空洞模块都需要根据当前像素点以及之后的像素点视差值来确定当前像素点的跃变情况以及空洞标记值,因此输出都有一定的延迟,但只要两个模块的输出延迟相同,则能保证像素点的对应性。
2.根据权利要求1所示的空洞填充装置,其特征在于,所述的较大空洞为连续空洞点个数大于等于3的空洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210574221.0A CN103051908B (zh) | 2012-12-26 | 2012-12-26 | 一种基于视差图的空洞填充装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210574221.0A CN103051908B (zh) | 2012-12-26 | 2012-12-26 | 一种基于视差图的空洞填充装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103051908A CN103051908A (zh) | 2013-04-17 |
CN103051908B true CN103051908B (zh) | 2014-11-05 |
Family
ID=48064391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210574221.0A Expired - Fee Related CN103051908B (zh) | 2012-12-26 | 2012-12-26 | 一种基于视差图的空洞填充装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103051908B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269438A (zh) * | 2013-05-27 | 2013-08-28 | 中山大学 | 基于3d视频和自由视点电视的深度图像绘制的方法 |
CN103384343B (zh) * | 2013-07-02 | 2015-08-19 | 南京大学 | 一种填补图像空洞的方法及其装置 |
CN103369342B (zh) * | 2013-08-05 | 2015-04-22 | 重庆大学 | 一种dibr目标图像空洞填充修复处理方法 |
CN103533327B (zh) * | 2013-09-22 | 2015-04-08 | 四川虹微技术有限公司 | 一种基于硬件实现的dibr系统 |
CN103606162A (zh) * | 2013-12-04 | 2014-02-26 | 福州大学 | 一种基于图像分割的立体匹配算法 |
CN103731657B (zh) * | 2014-01-26 | 2016-03-16 | 冠捷显示科技(厦门)有限公司 | 一种对dibr算法处理后的含有空洞影像的空洞填充处理方法 |
CN103916656B (zh) * | 2014-03-13 | 2016-01-20 | 华中科技大学 | 一种利用深度图进行图像绘制方法 |
CN104065946B (zh) * | 2014-06-17 | 2015-10-21 | 四川虹微技术有限公司 | 基于图像序列的空洞填充方法 |
CN104780355B (zh) * | 2015-03-31 | 2017-01-04 | 浙江大学 | 一种视点合成中基于深度的空洞修复方法 |
CN104822059B (zh) * | 2015-04-23 | 2017-07-28 | 东南大学 | 一种基于gpu加速的虚拟视点合成方法 |
CN111383185B (zh) * | 2018-12-29 | 2023-09-22 | 海信集团有限公司 | 一种基于稠密视差图的孔洞填充方法及车载设备 |
CN111432194B (zh) * | 2020-03-11 | 2021-07-23 | 北京迈格威科技有限公司 | 视差图空洞填充方法、装置及电子设备及存储介质 |
CN111314688B (zh) * | 2020-03-16 | 2022-05-17 | 北京迈格威科技有限公司 | 视差图空洞填充方法、装置和电子系统 |
CN116542938B (zh) * | 2023-05-09 | 2024-04-09 | 深圳聚源视芯科技有限公司 | 一种基于双目视觉的视差后处理系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1587035A1 (en) * | 2004-04-14 | 2005-10-19 | Koninklijke Philips Electronics N.V. | Ghost artifact reduction for rendering 2.5D graphics |
CN101271583A (zh) * | 2008-04-28 | 2008-09-24 | 清华大学 | 一种基于深度图的快速图像绘制方法 |
CN102307312A (zh) * | 2011-08-31 | 2012-01-04 | 四川虹微技术有限公司 | 一种对dibr技术生成的目标图像进行空洞填充的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272264B2 (en) * | 2003-09-11 | 2007-09-18 | International Business Machines Corporation | System and method for hole filling in 3D models |
-
2012
- 2012-12-26 CN CN201210574221.0A patent/CN103051908B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1587035A1 (en) * | 2004-04-14 | 2005-10-19 | Koninklijke Philips Electronics N.V. | Ghost artifact reduction for rendering 2.5D graphics |
CN101271583A (zh) * | 2008-04-28 | 2008-09-24 | 清华大学 | 一种基于深度图的快速图像绘制方法 |
CN102307312A (zh) * | 2011-08-31 | 2012-01-04 | 四川虹微技术有限公司 | 一种对dibr技术生成的目标图像进行空洞填充的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103051908A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103051908B (zh) | 一种基于视差图的空洞填充装置 | |
KR101452172B1 (ko) | 깊이―관련 정보를 처리하기 위한 방법, 장치 및 시스템 | |
CN102307312B (zh) | 一种对dibr技术生成的目标图像进行空洞填充的方法 | |
KR102504246B1 (ko) | 3d 재구성에서 구조 특징들을 검출하고 결합하기 위한 방법들 및 시스템들 | |
CN103430210B (zh) | 信息处理系统、信息处理装置、拍摄装置、以及信息处理方法 | |
EP2693393B1 (en) | Information processing device, information processing method, and data structure of location information | |
KR101096468B1 (ko) | 복잡성-적응형 2차원-대-3차원 비디오 시퀀스 변환 | |
US8953874B2 (en) | Conversion of monoscopic visual content using image-depth database | |
US8441521B2 (en) | Method and apparatus for determining view of stereoscopic image for stereo synchronization | |
CN103220545B (zh) | 一种立体视频实时深度估计系统硬件实现方法 | |
CN102547338B (zh) | 一种适用于3d电视的dibr系统 | |
CN104639933A (zh) | 一种立体视图的深度图实时获取方法及系统 | |
Zha et al. | A real-time global stereo-matching on FPGA | |
CN104270624B (zh) | 一种分区域的3d视频映射方法 | |
CN104065946A (zh) | 基于图像序列的空洞填充方法 | |
CN103049908B (zh) | 生成立体视频文件的方法和装置 | |
CN104185012A (zh) | 三维视频格式自动检测方法及装置 | |
Liu et al. | Texture-adaptive hole-filling algorithm in raster-order for three-dimensional video applications | |
CN102740093B (zh) | 将2d图像转换为3d图像的装置与方法 | |
Hadfield et al. | Scene Flow Estimation using Intelligent Cost Functions. | |
Patil et al. | Review on 2D-to-3D image and video conversion methods | |
Chen et al. | Live accurate and dense reconstruction from a handheld camera | |
Yao et al. | A real-time full HD 2D-to-3D video conversion system based on FPGA | |
CN103533329B (zh) | 一种2d转3d的视频自动评估方法 | |
JP2012253644A (ja) | 画像処理装置および方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141105 |
|
CF01 | Termination of patent right due to non-payment of annual fee |