前言:
今天大家对“matlab psnr函数”大概比较讲究,各位老铁们都需要剖析一些“matlab psnr函数”的相关内容。那么小编也在网摘上搜集了一些关于“matlab psnr函数””的相关资讯,希望看官们能喜欢,各位老铁们一起来学习一下吧!利用真实图像生成虚拟驾驶场景视图时,首先要从图像中移除车辆、行人等前景目标,以便获得不包含移动目标的背景图像。针对原始Criminisi算法存在的图像破损区域在修复后会出现模糊效应、边界不够平滑的弊端, 提出了一种在处理掩膜图像环节使用开运算,并优化原始优先权函数的改进算法。运用MATLAB仿真平台进行实验分析,结果表明改进后算法修复时间平均缩短了16.5 s,峰值信噪比平均高出原算法1.65 dB。该算法还原了图像中更多的道路信息,弥补了Criminisi算法的不足。
1
引言
在自动驾驶领域,基于场景的仿真测试在算法研发、系统测试和安全验证等环节中必不可少。道路场景是自动驾驶仿真系统中驾驶场景的核心要素,传统的道路场景使用游戏引擎或计算机图形学模型来创建,不仅成本高、耗时多,而且所得场景图像缺乏真实世界图像的丰富性和真实性,不能满足自动驾驶测试的需要。数据驱动自动驾驶仿真道路场 景以移除了行人、车辆等前景目标的真实图像为基础,通过图像修复复原完整的背景图像,创建类似真实世界的模拟场景,可避免传统方法的不足,成为道路场景构建技术的发展方向。
目前,图像复原修复技术主要分为两种,分别是基于结构的修复和基于纹理的修复。基于结构的修复方法是由BERTALMIO等人提出的,利用图像分解模型将图像分解为 结构部分和纹理部分,先用偏微分方程(Partial Differenitial Equation, PDE)方法修复结构部分,再用纹理合成技术对纹理部分进行填充。基于此方法的还有CHAN等人提出的整体 变分(TV)模型和曲率扩散(CDD)模型。基于纹理的修复技术是以图像块为单位,用已知的图像信息合成图像缺损部分的信息,进而达到修复的目的,
它与第一种方法最明显的区别在于它修复大面积缺损的图像时效果更好。这类方法的代表是CRIMINISI等人在2004 年提出的新的修复算法。该算法首次引入了优先权的概念,利用数据项与置信项的乘积来决定处理的先后次序,而后利用最佳匹配搜索来填补空白区域,考虑了目标对象的结构与纹理。应用于自动驾驶仿真的背景图像通常需要移除行人、车辆等大面积复杂图像区域, 使用基于结构的算法修复时模糊效应严重,而使用Criminisi 算法修复相较前者效果有所改观,但图像缺损部分的边界修复后不够平滑。
本文根据自动驾驶仿真系统道路场景构建需要,提出一种改进的Criminisi算法移除并修复真实背景图像中的行人、车辆等目标,取得了较好的效果,为自动驾驶仿真中的静态场景构建提供了良好的基础。
2
Criminisi算法
2.1 Criminisi算法原理
其主要思想分为三步:在图像的已知区域中计算最大优先级目标快;在样本块中搜寻与待修复区域具有最佳匹配度的匹配块;将匹配块的信息复制到待修复区域中。
2.1.1 计算最大优先级目标块
若图像中含有具有较强的边缘性特征且已知信息的部分, 则这些部分(样本块)会被优先修复。p 点的优先权定义为:
如上所述,C(p) 能够使含有较多已知信息的目标块得到优先的修复,而 D(p) 能够使含有较多结构信息的目标块优先被修复。C(p) 和 D(p) 两项的结合,才能使图像的纹理与结构修复达到平衡,取得理想的效果。
2.1.2 搜寻最佳匹配样本块
由第一步计算出了具有最大优先权的目标块,接下来搜索与此目标块最佳的匹配块。匹配块与目标块之间的匹配准则是匹配块中的纹理信息要尽量与目标块中的纹理信息相一致,匹配公式如下(例如图1中为最佳匹配块):
2.1.3 复制信息和更新置信项
重复上述修复步骤,直至将所有待修复区域修复完。修复流程如图2所示。
2.2 算法存在的问题
在修复大区域破损图像时,Criminisi算法应用广泛。但CHENG等人指出,随着填充迭代过程的进行,置信值C(p)会迅速下降到零,这就使得计算出的优先值并不可靠,从而影响了修复顺序,进而影响最终修复的效果。此外,在修复图像时,Criminisi算法需要对图像中的待处理部分进行掩膜操作,可是人为创建的掩膜图像边界不够平滑,目标物间粘连严重,导致待修复区域边缘在修复后会出现模糊效应。数据驱动自动驾驶仿真道路场景以真实图像为基础,边界的模糊会使得仿真系统采集的道路场景数据不够真实,进而影响系统对真实道路的自动化还原。
3
改进的Criminisi算法
3.1 开运算处理
针对前述Criminisi算法的不足,在处理掩膜图像环节使用开运算,对Criminisi算法进行改进,提高待修复区域边界的清晰性和边界像素点优先权计算的精度。在数学形态学中,开运算被定义为先腐蚀后膨胀。
(1)腐蚀
(2)膨胀
开运算是先腐蚀再膨胀的运算,其算法仿真如图3所示,其中图3(a)是原始掩膜图像,图3(b)是开运算处理后得到的效果图。
经过对比可以看出,零碎的小白点物体被消除了,较大物体的边界变得平滑,同时物体面积没有明显改变。在原Criminisi算法处理掩膜图像的基础上加入开运算,能去除小 颗粒噪声以及断开目标物之间粘连,使得待修复的空白部分在修复后边缘平滑,模糊效应减轻。
3.2 优先权函数的改进
由公式(2)可知,当C(p)为0时,即使数据项D(p)的值很高,优先权P(p)的值也必然等于零,从而该目标块得不到优先修复。针对这一问题,对优先权P(p)的计算公式提出如下修改:
式中,α和β都为常数。由式(8)可以看出,即使置信项为0,只要数据项足够大,优先值的计算结果依然会比较高,那么目标区域就能被优先修复,这在一定程度上改善了原算法修复顺序混乱的问题。
本实验在AMD(R) Ryzen7-5800H CPU @2.30 GHz、16.0 GB内存,安装64 位Windows 10设备的笔记本电脑环境下实现,使用的算法平台为MATLAB 2017b。本次算法所使用的图像为实拍的真实世界道路图像。实验内容为运用改进的Criminisi算法来修复图像,与原算法修复的图像进行对比,并运用峰值信噪比(PSNR)体现出改进前后的修复效果差别。以下为两组移除图像中行人、车辆目标的修复效果对比图,如图4和图5所示。
由图4对比来看,掩膜图像经过开运算的处理,去噪效果明显且边缘更加平滑。此图片运用原Criminisi算法修复效果已经很好,与改进后的算法修复效果对比来看差别并不明显,引入PSNR来评价,如表1所示。
由表1评价结果来看,改进后的算法修复图片失真更小,效果更好,并且由于修复顺序混乱问题的改进,图像修复的时间减少了,提高了修复效率。
从图5车辆区域的填充不难看出,Criminisi算法在修复位于图像边缘的大尺度缺损的图像时,并不能轻易寻找到最佳匹配样本块,修复难度大,效果并不理想。原算法在修复车辆部分的缺损时,运用树木、路面及斑马线的颜色进行填充,有明显的修复痕迹,模糊效应严重,树和斑马线甚至出现了重影。在运用改进的算法修复原图片时,修复效果有明显改善,斑马线重影消失了,树木部分虽然仍然存在模糊效应,但比改进前的效果已有大幅提升。同样引入PSNR进行评价,如表2所示。
这组实验的修复效果差别明显,由表2客观评价结果可得出结论,改进后算法修复的图片失真更小,修复速度更快,使得道路图像更加真实,还原了更多的道路信息。仿真系统用它作为背景参考图像将更有利于实现对真实道路的自动化还原。
5
结论
仿真系统是自动驾驶技术开发和验证的基础,本文以真实图像为基础,研究移除前景目标后的背景图像修复方法,为仿真系统提供背景参考图像。Criminisi算法因其在修复大尺度破损图像时的优越性而适用于仿真系统的静态场景构建。本文针对它现存的缺陷进行改进,提出在处理掩膜图像的环节使用开运算,优化了待修复区域被人为扩大及边缘粗糙的问题;然后通过对优先权函数P(p)的修改,改善了修复顺序错乱的问题。实验证明,改进的算法不仅修复效率有所提高,同时去噪效果明显且使得破损区域的边界在修复后更加平滑,这将有利于仿真系统从图像中提取更为真实的道路场景信息。
标签: #matlab psnr函数 #cddmatlab算法