发明内容
本发明针对现有技术的不足,提供了一种特征分类学习的结构稀疏传播图像修复方法。
在实验中发现,样本稀疏表示方法只将原始图像数据作为字典来稀疏表示待修复块,从而导致字典冗余性低,自适应性较差,与非局部平均算法一样会带来模糊;同时上述方法只将待修复块周围的有效信息用于稀疏编码,并没有分类考虑图像块特征,先验知识有限。
本发明采取以下技术方案:首先将图像块按特征分类,根据不同特征的图像样本进行样本训练得到相对应的过完备字典;然后,对不同特征的待修复图像块提取不同的有效信息进行稀疏编码,使得稀疏表示具有较强的自适应能力;最后,针对结构稀疏传播模型带来的偏差进行修改,完善结构稀疏的传播机制。按如下步骤进行:
第一步:采用聚类和分类相结合的方法,将图像块按照平滑、不规则纹理和结构三种特征进行细分。首先,采用局部方差来区分图像的平滑区域和非平滑区域,然后,采用均值漂移(Mean-Shift)来对图像进行聚类,通过最小化图像的纹理细节,突出边缘结构,当完成图像Mean-Shift聚类后,再将将非平滑的区域区分成不规则纹理部分和结构部分。
第二步:K-SVD分类学习字典。当对图像按特征进行分类之后,为了获得较好的稀疏逼近,将充分利用不同区域的图像块训练与之相适应的字典,使得训练后的这些字典能较好地稀疏逼近各个已知块。
在稀疏表示领域,K-SVD被用来构建一组信号的过完备字典,可以表述为:
其中,D={d1,d2,…,dL}是需要求得的过完备字典,T0<<L表示a中非零系数的最大上限,即给出了稀疏程度;是待训练的一组信号,即相同特征分类下的图像块组。对于结构区域块,选取原图像中的边缘图像块做为初始字典,以加快算法的收敛速度。
对于不规则纹理块和平滑区域块,选取各自的样本信号和初始字典,然后分别利用K-SVD算法进行求解。由此,我们可以得到三个不同特征的自适应字典:边缘字典De,不规则纹理字典Dt,平滑字典Ds。
第三步:分类稀疏表示图像块。对不同特征的待修复图像块提取不同的有效信息进行稀疏编码,使得稀疏表示具有较强的自适应能力。假设
为当前修复边界,由
开始逐步向内取块,直到完成所有块的修复。若Ψ
p为当前待修复块,给定字典D,则Ψ
p的稀疏表示问题可以表述为:
其中,Y
p是由Ψ
p转化而成的列向量,
为Ψ
p的相似块对Ψ
p的估计值,β是平衡系数,用来平衡Y
p和
的约束强度,
是淹没矩阵,将Ψ
p内的未知像素限定为0。为了使不同特征类型的图像块获得最优解,本发明针对各类特征图像块,用不同方法提取块的有效信息
以求得每个图像块的最佳稀疏表示。在对边缘结构块进行有效信息估计时,需要充分考虑图像的全局冗余,因此,采用非局部平均算法(Nonlocal-Means)估计边缘结构块的有效信息;为了避免细节上的模糊,采用传统的纹理合成技术来估计不规则纹理块的有效信息;对于平滑区域块,需要保持与周围像素的过渡平滑性,因此用周围信息的局部平均方法来估计其有效信息最为合理。
第四步:结构稀疏传播方式的改进。一个图像是否处在结构处的判断不仅依赖于它与周围块之间的相似程度(结构稀疏性),而且也依赖于图像块本身像素之间的相似程度。如果仅考虑结构稀疏性,当图像块所处区域存在与目标块夹角较小的边缘信息时,就会出现结构置信度的判断不当。因此,本发明修改结构置信度为:
其中
式(6)中,
为图像块Ψ
p内各已知像素与平均像素值的相似程度,Z是归一化系数,σ是衰减系数。式(5)中,s(p)为块内像素差异性度量,|numel
S(p)|为Ψ
p内的已知像素数,|numel(p)|为Ψ
p内的像素总数,计算得到的像素差异性s(p)与结构稀疏性ρ(p)相匹配。另外,为了保证定位的准确性,将Ψ
p的大小缩小至原来的1/2后再计算s(p)。因此新定义的结构置信度如式(4)所求得,大小由ρ(p)和s(p)决定,其中λ为平衡ρ(p)和s(p)的系数。
第五步:根据分类稀疏表示方式修复不同特征的图像块,并利用修改后的传播机制,将图像信息从修复边缘开始由外向内的各向异性传播,逐步完成图像的修复工作。
本发明的有益效果:
1.这种方法的综合性能较样本稀疏表示方法好,能够克服样本稀疏表示方法在纹理区域造成模糊的不足。
2.该方法的自适应性较强,可以有效修复图像结构边缘、不规则纹理和平滑区域的图像信息。
附图说明
图1给出了本发明的流程图。
图2为图像块的分类结果比较图,其中(a)原始图像,(b)直接采用局部方差分类结果,(c)Mean-Shift聚类后的图像,(d)采用Mean-Shift+局部方差的分类结果。
图3为采用K-SVD训练后的不同特征块所对应的字典,其中(a)平滑区域对应字典,(b)不规则纹理对应字典,(c)边缘结构对应字典。
图4为块结构稀疏性计算示意图。
图6为Criminisi方法、样本稀疏表示方法和本方法对Baboon图完成修复工作的效果比较图。其中(a)原始图像,(b)待修复图像,(c)Criminisi算法(PSNR=33.7192dB),(d)样本稀疏表示算法(PSNR=34.3273dB),(e)本算法(PSNR=35.2361dB)。
图7为采用上述方法对Lena图像完成修复工作的效果比较图。其中(a)原始图像,(b)待修复图像,(c)Criminisi算法(PSNR=43.4871dB),(d)样本稀疏表示算法(PSNR=44.0040dB),(e)本算法(PSNR=46.1232dB)
图8为采用上述方法分别对小块破损和大块破损的Barb图像完成修复工作的效果比较图。其中(a)原始图像,(b)小块缺损待修复图像,(c)Criminisi算法(3.7s)(PSRN=34.6375dB),(d)MCA算法(273.9s)(PSRN=35.3593dB),(e)样本稀疏表示算法(7.414547s)(PSRN=35.35.9555dB),(f)本算法(19.139719s)(PSRN=35.9668dB),(g)大块缺损待修复图像,(h)Criminisi算法(11.1s)(PSNR=29.0402dB),(i)MCA算法(10min)(PSRN=28.7273dB),(j)样本稀疏表示算法(21.9s)(PSNR=29.7766dB),(k)本算法(46.2s)(PSNR=30.3637dB)。
具体实施方式
在本实施例流程图如图1所示。
第一步:采用聚类和分类相结合的方法,将图像块按照平滑、不规则纹理和结构三种特征进行细分。首先,采用局部方差来区分图像的平滑区域和非平滑区域,然后,采用均值漂移(Mean-Shift)来对图像进行聚类,通过最小化图像的纹理细节,突出边缘结构,当完成图像Mean-Shift聚类后,再将将非平滑的区域区分成不规则纹理部分和结构部分。图2(b)给出了使用局部方差对图2(a)进行块分类的结果。图2(b)中灰色区域表示图像的平滑部分,白色区域表示图像的不规则纹理和边缘结构部分。可以看出,局部方差的分类能力有限,它无法识别出不规则纹理和边缘结构的区别。图2(d)给出了采用Mean-Shift算法聚类后的局部方差分类结果。从图2(d)可以看出该分类结果有效区分了图像的边缘结构块(白色区域),不规则纹理块(浅灰色区域),以及平滑区域块(深灰色区域)。
第二步:K-SVD分类学习字典。当对图像按特征进行分类之后,为了获得较好的稀疏逼近,将充分利用不同区域的图像块训练与之相适应的字典,使得训练后的这些字典能较好地稀疏逼近各个已知块。
在稀疏表示领域,K-SVD被用来构建一组信号的过完备字典,可以表述为:
其中,D={d
1,d
2,…,d
L}是需要求得的过完备字典,T
0<<L表示a中非零系数的最大上限,即给出了稀疏程度;
是待训练的一组信号,即相同特征分类下的图像块组。对于结构区域块,选取原图像中的边缘图像块做为初始字典,以加快算法的收敛速度。
对于不规则纹理块和平滑区域块,选取各自的样本信号和初始字典,然后分别利用K-SVD算法进行求解。由此,我们可以得到三个不同特征的自适应字典:边缘字典De,不规则纹理字典Dt,平滑字典Ds。图3给出了采用K-SVD训练后的不同特征块所对应的字典,分别对应平滑区域,不规则纹理区域和边缘结构区域。
第三步:分类稀疏表示图像块。对不同特征的待修复图像块提取不同的有效信息进行稀疏编码,使得稀疏表示具有较强的自适应能力。假设
为当前修复边界,由
开始逐步向内取块,直到完成所有块的修复。若Ψ
p为当前待修复块,给定字典D,则Ψ
p的稀疏表示问题可以表述为:
其中,Y
p是由Ψ
p转化而成的列向量,
为Ψ
p的相似块对Ψ
p的估计值,β是平衡系数,用来平衡Y
p和
的约束强度,
是淹没矩阵,将Ψ
p内的未知像素限定为0。为了使不同特征类型的图像块获得最优解,本实施例针对各类特征图像块,用不同方法提取块的有效信息
以求得每个图像块的最佳稀疏表示。在对边缘结构块进行有效信息估计时,需要充分考虑图像的全局冗余,因此,采用非局部平均算法(Nonlocal-Means)估计边缘结构块的有效信息;为了避免细节上的模糊,采用传统的纹理合成技术来估计不规则纹理块的有效信息;对于平滑区域块,需要保持与周围像素的过渡平滑性,因此用周围信息的局部平均方法来估计其有效信息最为合理。
第四步:结构稀疏传播方式的改进。一个图像是否处在结构处的判断不仅依赖于它与周围块之间的相似程度(结构稀疏性),而且也依赖于图像块本身像素之间的相似程度。如果仅考虑结构稀疏性,当图像块所处区域存在与目标块夹角较小的边缘信息时,就会出现结构置信度的判断不当。
如图4所示,假设Ψ
p为
上的一个图像块,Ψ
Pj为其邻域N(p)上的以pj为中心的已知块,给出Ψ
p结构稀疏性的定义:
其中,|N
S(p)|和|N(p)|分别表示邻域中已知块的数量和块的总数,
定义了它与邻域块的相似程度。结构稀疏性代表了块的结构置信度,置信度越高的块越先被修复。
如图5所示,假设黑色框表示当前待计算的图像块,白色区域为待修复部分Ω。从图5可以看到,图5(b)中的图像块b刚好处在结构边缘的中心位置,而图5(a)、5(c)、5(d)中的块a、b、c或多或少偏离边缘结构的中心(虚线框表示结构边缘的中心位置)。根据在图像修复中先修复结构后修复纹理的规则,处在结构中心的图像块b应该优先得到修复。然而从表1可以看出,上述块的结构稀疏性T(0.2,1)(ρ(p)),从a到d逐渐增加,决定了图5(d)中的块具有最高的结构置信度,会优先被修复,这与上述规则得出的结论不一致。事实上,图5(d)中的块确实拥有与邻域块的最大差异性,但其本身像素的差异性却较小,而处在结构中心的图像块,其本身像素之间的差异性会较大。块内像素的差异性可以用图像块的局部能量或局部方差来表示。因此,本发明修改结构置信度为:
其中
式(7)中,为图像块Ψp内各已知像素与平均像素值的相似程度,Z是归一化系数,σ是衰减系数。式(6)中,s(p)为块内像素差异性度量,|numelS(p)|为Ψp内的已知像素数,|numel(p)|为Ψp内的像素总数,计算得到的像素差异性s(p)与结构稀疏性ρ(p)相匹配。另外,为了保证定位的准确性,将Ψp的大小缩小至原来的1/2后再计算s(p)。因此新定义的结构置信度如式(5)所求得,大小由ρ(p)和s(p)决定,其中λ为平衡ρ(p)和s(p)的系数。因此,引入式(5)作为修改后的结构置信度计算方法。
表1
第五步:根据分类稀疏表示方式修复不同特征的图像块,并利用修改后的传播机制,将图像信息从修复边缘开始由外向内的各向异性传播,逐步完成图像的修复工作。
为了检验本发明修复效果,对图像进行了模拟仿真,并与其他算法进行了对比实验。仿真实验在MATLAB环境下进行。在对图像修复效果评时,除了采用主观评价外,同时也采用峰值信噪比(PSNR)进行客观评价。
图6为Criminisi方法、样本稀疏表示方法和本方法对Baboon图完成修复工作的效果比较图。从图中可以看到,Criminisi算法对鼻子的边缘部分保持效果不是很好,有延伸现象,而且眼睛部分有结构断裂现象。样本稀疏表示算法对传播机制的改进使得修复结果保持了良好的鼻子结构,但是由于采用了将原图像数据直接作为字典,自适应性较差,因此在细节纹理处产生模糊,如图6(d)中修复后的毛发处较为平滑,显得不自然。而且该算法用局部平均算法提取有效信息进行稀疏表示,在眼睛处产生结构错误延伸。从图6(e)可以看出,本发明克服了这两个缺点,在鼻子和眼睛处均取得了较好的修复效果。
图7给出了上述方法对Lena图像的眼睛局部区域的修复效果。在对图像细节进行放大后,可以看到Criminisi算法的修复结果对眼部结构产生了较为明显的破坏,而样本稀疏表示算法由于无法对细节进行较好的处理,使得修复后的眼睛产生了较大的模糊。而本发明由于分开描述了不同特征块的稀疏性,因此能够较好表达眼睛细节和眼部的整体结构,并且取得了较好的修复效果。
图8给出了对小区域修复和大区域修复的结果进行比较的结果。图8(c)~图8(f)分别给出了MCA算法和上述算法对小块缺损的barb图像的修复结果。可以看出,Criminisi算法的修复结果在脸部区域出现瑕疵,而其他三种算法对小区域的修复效果都较好。而图8(g)~图8(k)分别给出了上述四种算法对较大块缺损的图像的修复结果。可以看出,Criminisi算法的修复结果对许多结构造成了一定程度的破坏,在脸部产生一些结构延伸,在围巾的纹理部分产生了许多不自然的色块。MCA算法虽然对小面积区域的修复效果较好,但是面对缺损面积较大的情况,避免不了在扩散过程中产生的模糊问题,而且由于迭代次数较多,导致算法耗时大。样本稀释表示算法在对图像的纹理细节处理中同样不可避免的产生模糊,比如围巾上的纹理细节过于平滑,围巾与脸部交接区域结构信息不明显。而本发明在结构处能够保持良好的整体结构特征,在纹理处能够突出细节信息,综合性能较好,修复效果也得到了显著提高。
以上对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。