本发明涉及计算机视觉与数字图像处理技术领域,特别是关于一种基于聚焦堆栈单体数据子集架构的全局计算成像方法。
背景技术:
聚焦堆栈计算成像是计算成像的一种手段,可实现深度重建、全聚焦成像和光场重建。聚焦堆栈数据的获取是从固定角度拍摄一组聚焦在不同平面的图像,可通过移动被拍摄物体、移动(或改变)成像镜头、或者移动成像探测器实现。
聚焦堆栈数据蕴含着丰富的场景信息,比如:利用聚焦测度逐像素处理聚焦堆栈数据,可以实现场景深度和全聚焦图的重建;利用投影模型,可以由聚焦堆栈数据重建出任意角度分辨率的光场,实现光场显示和立体显示。
由于聚焦堆栈数据的数据量大,在一些应用场景中需要在较高的时间分辨率完成数据采集,减少聚焦堆栈数据的数据量,高效计算深度和全聚焦图,是聚焦堆栈计算成像应用研究的重点。目前,对于提升聚焦堆栈计算成像的计算效率,主要是通过减少聚焦堆栈数据的数据量来实现,然而,在减少聚焦堆栈数据的数据量的同时,却带来了重建精度下降的问题。
技术实现要素:
本发明的目的在于提供一种基于聚焦堆栈单体数据子集架构的全局计算成像方法,从而提升聚焦堆栈重建的计算效率以及实现三维场景的高精度重建。
为实现上述目的,本发明提供一种基于聚焦堆栈单体数据子集架构的全局计算成像方法,该方法包括:
步骤1,从场景图像聚焦堆栈数据
步骤2,利用如下式(6),在每一幅所述场景图像中划分出每一个单体j所在区域dj对应的区域图像hj(x,y),j=1,2,...,j;
式(6)中,hj(x,y)表示第j个单体的区域图像,supp(*)表示*所在的图像区域,dj表示第j个单体区域图像在(x,y)空间上的支集,d表示聚焦堆栈数据在(x,y)空间上的支集;
步骤3,在步骤1获得的最大聚焦测度值的场景图像
步骤4,利用步骤3中得到的第j个单体的单体区域dj,找出第j个单体的聚焦堆栈数据,则第j个单体的第i个图像表示为式(7):
步骤5,在第j个单体的单体区域dj中选定代表区域,以从第j个单体的聚焦堆栈数据的i个场景图像中筛选出v个场景图像,筛选后得到第j个单体的第v个图像
其中,
步骤6,对步骤2获取的聚焦堆栈单体数据子集进行单体进行深度重建和全聚焦成像;
步骤7,对步骤6重建的单体进行局部一致性优化;
步骤8,将步骤7优化后的单体进行全局融合。
进一步地,步骤3具体包括:
步骤31,采用alphamatting方法,在步骤1获得的聚焦测度值最大的场景图像
步骤32,利用扫描线种子填充算法,对步骤31获得的初步的单体区域内部进行填充,得到最终的单体区域。
进一步地,步骤1通过下式(4)计算像素点的聚焦测度值:
上述各式中,
进一步地,步骤6具体包括:
步骤61,利用式(4),在步骤5获得的聚焦堆栈单体数据子集的每一个单体区域内,逐个像素点计算聚焦堆栈单体数据子集的聚焦测度
步骤62,根据步骤61计算得到的聚焦堆栈单体数据子集的聚焦测度
式(10)中,s(x,y)表示深度,a0、a1、a2均为待求解的参数;
步骤63,根据步骤62获得的系数,拟合出深度上连续的场景图像上第j个单体的像素点(x,y)在深度s下的聚焦测度θ(s,j)(x,y),进而利用下式(11),求解拟合曲线中的最大聚焦测度对应的深度:
式(11)中,
步骤64,根据步骤63求得的深度,利用式(12)将单体聚焦堆栈数据子集中最大聚焦测度所对应的像素点组合成全聚焦图:
式(12)中,
进一步地,步骤7具体采用全变差正则化或其它现有方法,对单体聚焦堆栈数据子集重建的结果进行优化,优化方法比如采用如下式(13)所示的方法:
其中,depthj(x,y)为全变差正则化后的深度,
进一步地,步骤8具体是在(x,y)空间上,利用式(14)和式(15),融合所有单体得到全局的深度和全聚焦图:
其中,depth(x,y)和allfocus(x,y)分别为整个场景的深度和全聚焦图。
本发明由于采取以上技术方案,其具有以下优点:
通过采用本发明提供的基于聚焦堆栈单体数据子集架构的全局计算成像方法,可以提高聚焦堆栈重建的计算的效率、实现三维场景单体的高精度重建,同时还可以为大视场成像基础数据的处理、计算方法的改进提供参考和理论依据。
附图说明
图1为本发明实施例提供的构建单体区域和获取聚焦堆栈单体数据子集对示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
本发明实施例所提供的基于聚焦堆栈单体数据子集架构的全局计算成像方法包括如下步骤:
步骤1,从场景图像聚焦堆栈数据
如图1中a示出了场景图像聚焦堆栈数据
“找出场景图像聚焦堆栈数据中聚焦测度值最大的场景图像”的方法可以采用如下方法实现。
第一种方法,对图像中的单个像素点的聚焦测度基于边缘信息进行描述,如下式(2)所示:
式(1)中,(x,y)表示场景图像中单个像素点的坐标,
第二种方法,采用以像素点(x,y)为中心、边长为n的矩形区域的边缘信息进行描述聚焦测度如下式(2)所示:
式(2)中,
第二种方法相较于第一种方法,描述聚焦测度鲁棒性更好。
第三种方法,对场景图像中单个像素点的聚焦测度基于特征点密度进行描述,如下式(3)所示:
式(3)中,
第四种方法,融合式(2)和式(3),通过下式(4)描述像素点的聚焦测度:
式(4)中,
场景图像在聚焦时像素点具有相同的点扩展函数,则整幅图像的聚焦测度表示为式(5):
式(5)中,rarea(x,y)表示步骤11中选取单体代表区域的聚焦测度,选取单体代表区域是单体区域中的一部份区域,来代表单体区域,w表示选取单体代表区域的宽度,h表示选取单体代表区域的高度,
步骤2,在场景图像聚焦堆栈数据
式(6)中,hj(x,y)表示第j个单体的区域图像,supp(*)表示*所在的图像区域,supp(f)中的f指的是f(x,y),supp(hj)中的hj指的是hj(x,y),dj表示第j个单体区域图像在(x,y)空间上的支集,d表示聚焦堆栈数据在(x,y)空间上的支集。
步骤3,在步骤1获得的最大聚焦测度值的场景图像
每一个单体j的单体区域为后文将步骤中的“提取聚焦堆栈单体数据子集”提供准确的区域信息。通过提取聚焦堆栈单体数据子集,一方面可以有效利用单体内部物点的空间连续性,以提高物体内部物点的重建精度、提高计算效率;另一方面可以有效避免物体边界处深度跳跃带来的重建误差,能够提高物体的外轮廓边界线的重建精度。
步骤3具体包括:
步骤31,采用alphamatting或现有的其它方法,在步骤1获得的聚焦测度值最大的场景图像
步骤32,利用扫描线种子填充算法或现有其它方法,对步骤31获得的初步的单体区域内部进行填充,得到最终的单体区域,该单体区域为如图1中d示出的黑色区域所包围得空白区域。
步骤4,利用步骤3中得到的第j个单体的单体区域dj,找出第j个单体的聚焦堆栈数据(如图1中的f所示),则第j个单体的第i个图像表示为式(7):
步骤5,在第j个单体的单体区域dj中选定代表区域,该代表区域通常是单体区域中特征和/或边界比较清晰明显的区域,利用聚焦测度对代表区域的聚焦清晰程度进行判断,以从第j个单体的聚焦堆栈数据的i个场景图像中筛选出v个场景图像,筛选后得到第j个单体的第v个图像
其中,
在(x,y)空间上构建场景的单体,在深度方向上对i个场景图像筛选出v个图后,如图1中g所示,得到j个单体的聚焦堆栈数据,即表示为式(9)的聚焦堆栈单体数据子集:
步骤6,对步骤2获取的聚焦堆栈单体数据子集进行单体进行深度重建和全聚焦成像,其具体包括:
步骤61,利用式(4),在步骤5获得的聚焦堆栈单体数据子集的每一个单体区域内,逐个像素点计算聚焦堆栈单体数据子集的聚焦测度
步骤62,根据步骤61计算得到的聚焦堆栈单体数据子集的聚焦测度
通过式(10)给出的二次曲线表达式,描述聚焦测度
式(10)中,s(x,y)表示深度,a0、a1、a2均为待求解的参数。
根据步骤61计算得到的每一个像素点的聚焦测度和对应的深度,根据最小二乘法解出式(10)中的系数a0、a1、a2。
步骤63,根据步骤62获得的系数,可以拟合出深度上连续的场景图像上第j个单体的像素点(x,y)在深度s下的聚焦测度θ(s,j)(x,y),进而利用下式(11),求解拟合曲线中的最大聚焦测度对应的深度:
式(11)中,
步骤64,根据步骤63求得的深度,利用式(12)将单体聚焦堆栈数据子集中最大聚焦测度所对应的像素点组合成全聚焦图:
式(12)中,
步骤7,对步骤6重建的单体进行局部一致性优化:采用全变差正则化或其它现有方法,对单体聚焦堆栈数据子集重建的结果进行优化,优化方法比如采用如下式(13)所示的方法:
其中,depthj(x,y)为全变差正则化后的深度,
步骤8,将步骤7优化后的单体进行全局融合:在(x,y)空间上,融合所有单体(j个单体)得到全局的深度和全聚焦图。
其中,depth(x,y)和allfocus(x,y)分别为整个场景的深度和全聚焦图。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。本领域的普通技术人员应当理解:可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。