改进的基于双向光流去除监控中动态场景模糊算法
2022-03-21孙晓宁胡长岭侯森垚
孙晓宁 胡长岭 侯森垚
1.西安石油大学电子工程学院;2.易事特集团有限公司
传统动态场景去模糊的方法都基于相邻帧之间的位移比较小,适用于处理平滑变化的模糊核,但难以处理包含多个运动物体的动态场景中经常出现的模糊核突变情况,而且对噪声很敏感。对于监控场景来说,摄像头的运动、环境光照等因素的变化相对可控,而物体的剧烈运动是引起模糊核突变的主要原因。当模糊图像的部分模糊核发生突变,在向更低金字塔层传播时会产生重构误差。在由粗到精的框架中,具有明显运动模糊的微小结构会导致严重的伪影。本文针对双向光流去模糊方法中存在的微小结构重构失误导致伪影的现象,提出了一种对多尺度分层处理的方法,有效地减少了振铃效应,使运动物体边缘更加清晰、运动边界处的光流精度更高,同时减少了计算开销。
盲去模糊是指在模糊核未知的情况下,将因摄像机抖动或物体运动而模糊的图像恢复为清晰图像的方法。不同的运动模糊类型对应不同的模糊核估计方法。目前研究最全面的是二维相机运动引起的全局模糊,通过模拟真实摄像机的运动来恢复模糊图像。但是这些全局模糊的方法应用于局部模糊却收效甚微。在各部分运动不同的情况下,试图用单个模糊核来反卷积整个图像会造成严重的伪影。
为了解决运动突变导致的模糊,Levin等人提出基于运动模糊类型分割的动态场景去模糊方法。通过自然图像统计区分模糊的程度,以模糊程度为分割标准将图像分割成不同的模糊层,并在每一层重建模糊核。但是分割失误可能会导致严重的伪影。还有部分学者利用视频能够提供长图像序列这一优势,用清晰的区域对模糊帧的相应区域进行插值来恢复清晰帧。对于快速移动的物体,物体的运动与背景相差较大,单应性全局参数化的模糊核无法应对这样的场景。另外,插值所具有的平滑效果会使中频纹理退化。
Kim等人创造性地提出了一种不分割区域也不限制运动模糊类型的方法,核心是将模糊核的计算转换成光流的计算。稠密光流场记录了每个像素的运动速度与方向,可以获得精确到像素级别的模糊核,有助于修复剧烈运动引起的模糊。但在金字塔由粗到精的传播过程中,具有明显运动模糊的微小结构在尺度较小的金字塔层上难以看到,待其传播到较大尺度层时就会导致严重的伪影。因此,本文提出了一种多尺度分层处理的方法,用于减少振铃效应,使运动物体的边缘更加清晰。由于只在金字塔的大尺度层进行精确处理,有效地提高了计算效率。
1 改进的双向光流去模糊算法
1.1 多尺度金字塔的建立
在图像金字塔的构建过程中,首先建立尺寸数据,然后在图像金字塔的每一层,将视频帧、由上一层传播而来的清晰帧以及上一层计算而来的光流进行尺寸调整。由于在所有尺度层使用双三次插值不仅浪费大量的计算资源,而且会使小尺度层灰度值的计算受到过多地临近像素的影响。因而对除最高层外的小尺度层采用最近邻插值,对中间层进行双线性插值,对金字塔大尺度层采用双三次插值。
1.2 利用光流估计模糊核
首先,我们假设帧间存在分段仿射运动。其次,假设运动模糊核是由线性分量控制的,局部变换的模糊核可以被近似为二维运动向量u=(u,v)
。现实情况中,有很多类型的运动可以被近似为线性运动。由于摄像机捕捉到的图像序列帧率很高,因此更适合将线性化的假设作为先验用于去模糊。利用光流估计模糊核的公式如下:其中,h(x,y)
为光流所对应的模糊核,δ
代表克罗内克函数。1.3 求解能量函数最小化
由于盲去模糊问题的高度不适定性,需要引入更多的约束以确保收敛到可靠解。能量函数包括三部分:
其中,E为保真度约束,E为时间一致性约束,E为空间一致性约束。
保真度约束E主要是通过L2正则化来估计模糊核和清晰图像,如式(3):
其中,λ参数用于控制数据项的权重,τ为相机占空比,B
代表模糊帧,L
代表清晰帧,K
代表模糊核矩阵,∂代表Toeplitz矩阵。空间一致性约束E主要作用是加强光流和清晰图像各自的平滑性。借鉴稀疏梯度先验在描述自然图像边缘统计中的优势,采用TV模型对两个变量进行正则化。同时,将L1范数应用于平滑度约束中的梯度,允许潜在清晰帧和光流的不连续性。E的公式如下:
时间一致性约束E是基于传统的光流约束条件—即亮度恒定,假设像素在运动前后的光强度不变:
其中,参数μ用于控制权重。在求解“能量函数最小化”这个问题时,将其分解为两个独立的子问题,一个是求光流u的问题,一个是求清晰帧L的问题,然后交替迭代求解。
1.3.1固定光流求解清晰帧
将光流u固定求解清晰帧L时,目标函数会变成凸函数,通过求解对偶问题解决凸优化问题,L的更新过程表示为:
在恢复清晰帧的过程中需要保留纹理结构,使最终得到的图像具有丰富真实的细节。在更新清晰帧的过程中,本研究选取较大尺度层进行非局部均值滤波处理,利用全局信息去除噪声,修复纹理区域和周期性结构。在实验过程中,选用的搜索窗口大小为5×5,匹配窗口大小为3×3。
1.3.2固定清晰帧求解光流
在计算稠密光流的过程中,需要去除光流场中的噪声,提高光流的平滑性。但是对于小尺度层,过早地对突变值进行滤波,会导致某些微小结构和锐利边缘在迭代过程中逐渐被平滑,不利于清晰图像的恢复。
通过不同尺度层采用不同尺寸的中值滤波处理,可以较好地保留了边缘及微小结构,同时对孤立噪声点的消除能力很强。实验过程中,在金字塔的3至10层,采用3×3的中值滤波器,在1至3层采用5×5的中值滤波器。通过图一(b)与(c)对比可以看到,本文的算法车尾部光流的精细结构恢复地更好。图1中光流以颜色编码的形式展示,色调代表角度,饱和度代表幅值。
图1 光流图对比Fig.1 Comparison of optical flow
2 实验结果和分析
2.1 实验细节说明
实验中选用的参数如下:μ=λ,v=0.08λ,N=1,σ
=25/255,λ值根据不同的图片数据选择不同的值,一般采用的λ值为250。实验时选择的金字塔层数为17层,尺度因子为0.9。2.2 对比与结果展示
为了便于对比,实验中使用了Kim等人的研究中所使用的视频序列。通过实验对比了两种算法对相同的50帧视频去模糊的结果。
在图2中主要对运动边界处去模糊效果进行对比。可以看到,对于两辆车的交界处,改进后的算法得到的边缘更加清晰,对细节的修复更细致。同时,对于视频序列第49帧,计算峰值信噪比(PSNR)由26.6提升至27.4。
图2 每组三幅图从左到右依次是:模糊图像、Kim[10]方法、本文方法Fig.2 From left to right: Blurry images, results of Kim[10],results of the proposed method
本文算法对振铃效应的抑制效果相较于双向光流去模糊算法有明显的提高。在图3中,对(a)中模糊图像车前部复原的过程中产生了振铃效应,(c)中的振铃效应相比于(b)有明显的减弱。
图3 算法对振铃效应的抑制对比Fig.3 Comparison of suppressing ringing artifacts
图3 智慧建造模块Fig.3 Smart construction module
3 结论
本文提出了多尺度分层处理的双向光流去模糊方法,能够放大多尺度金字塔由粗到精的优势,在兼顾光流平滑性的同时,获得的光流具有更加清晰的边缘,对物体的边缘信息保留地更加完整,对于恢复运动物体边界处的模糊有更好的效果。并且相比于原算法,本文改进的方法可以缩短9%的运行时间。目前该算法仅在CPU上实现,今后可以利用GPU的并行运算来提高算法效率。