APP下载

一种视差伪影最小化的视频拼接方法

2020-10-19郭泓邑张红民李萍萍

计算机工程与应用 2020年20期
关键词:缝合线视差伪影

郭泓邑,张红民,李萍萍

重庆理工大学 电气与电子工程学院,重庆 400054

1 引言

随着机器人技术、监控系统和无人驾驶的广泛应用,将多个同步视频流拼接成大场景视频图像的技术变得越来越重要[1]。与图像拼接技术不同,视频拼接需要更强的实时处理能力,同时还必须考虑移动前景引发的一些问题。

目前,视频拼接的方法主要分为两类:第一类是基于投影变形的方法[2-3],该方法通常使用SIFT或SURF[4-5]来提取图像中的特征,然后由相应特征点计算的全局2D 投影变换来对齐输入图像,这些方法可以保留全局图像结构,但是不能处理视差。最近的方法试图通过应用局部对齐来解决视差问题,Chen等人[6]提出了具有全局相似性的自然图像拼接方法,该方法使图像网格化,并计算每个网格的单应性,然后在目标函数中添加全局相似性约束每个网格的变形,从而获得更好的效果,这种方法可以处理视差但不能消除动态图像拼接中的伪影;杨毅等人[7]提出了融合图像语义的动态视频拼接方法,该方法用两个局部单应性矩阵拟合,并引入图像的语义分割,但算法实时性不高。第二类是基于缝合线的方法[8-9],这类方法通过计算视频图像的重叠区域中的最佳缝合线来缝合全景视频,Zhang 等人[10]将内容保护变形和缝驱动方法相结合来拼接图像,大幅提高了大视差场景的拼接性能,但该方法难以满足实时处理要求;Li 等人[11]提出了双缝选择方案搜索两个原始图像对应的缝合线以保持帧间的一致性,但该方法处理存在大量相似结构的场景时会出现明显视差伪影;Liu 等人[12]采用前景检测更新每一帧的缝合线,并利用高斯滤波器优化缝合线序列以消除视频抖动,但相对增加了计算成本。

总的来说,之前的视频拼接工作仍然存在着视差伪影不易处理的问题,故本文提出一种视差伪影最小化的在线视频拼接方案。其核心思想是使用基于动态规划思想的最佳缝合线搜索方法找到非移动前景区域的最佳缝合线,对重叠区域中的每个像素定义有关前景区域、灰度差、边缘结构和颜色差的能量项;同时为了降低计算复杂度,提出了缝合线更新方案,仅针对穿过移动物体的缝合线的视频帧重新计算缝合线;此外为限制由移动物体引起的重影效应并减少拼接视频颜色的不连续,采用自适应融合算法对视频序列图像进行缝合。

2 最佳缝合线搜索

最佳缝合线搜索方法也称为切缝方法[13],该方法是为了在对齐图像的重叠区域中找到一条接缝以连接两幅图像。本文在使用能量函数最小化的一般缝合线搜索方法的基础上采用以下四个能量成本项:前景区域项、灰度差异项、边缘项和颜色差异项。

(1)前景区域项

本文通过使用视觉背景提取VIBE[14]检测包含移动物体的区域,如行人、车辆等,将这些区域称为前景区域。M和R分别表示待拼接图和参考图,待拼接图像和参考图像的前景检测结果分别用FGM和FGR表示,其前景区域的值为1,背景区域的值为0。前景区域项定义为:

(2)灰度差异项

在输入图像经过图像配准之后,得到的图像通常可能未对齐。灰度差异项是为了限制缝合线穿过未对齐区域,计算图像间的像素灰度值的绝对差值以确定像素是否属于良好对齐的区域,较高的差值表示相应的像素位置属于未对齐区域。因此,为了使缝合线不通过未对齐区域,灰度差异项定义为:

式中,I(x,y) 指重叠区域中(x,y) 处的像素灰度值,max(⋅)为能量项中分子的最大值。

(3)边缘项

由于存在视差,同一物体的大小和形状在不同视图中是不同的,当缝合线穿过物体时,尺寸和形状的差异导致物体未对齐,边缘项旨在防止缝合线穿过具有明显边界的结构和场景不一致的元素,边缘项定义为:

式中,GS(x,y)为重叠区域的平滑度,GD(x,y)为两图像的梯度差异,α根据实验结果设定为0.3,∇I(x,y)为重叠区域中(x,y)处的梯度值,本文利用Canny 算子来检测物体的边缘,检测结果如图1所示,图1(a)为原图,图1(b)和图1(c)分别为前景检测和边缘检测结果。

图1 前景和边缘检测结果

(4)颜色差异项

为了使拼接图像更符合视觉感知,缝合线应穿过色差尽可能小的区域,颜色差异项等于像素点(x,y)附近不同列和不同通道的色彩之和,即:

式中,Ω={r,g,b} ,Ψ=[x-10,x+10] 。

一旦计算出上述四个能量项,就能得到最终的能量函数,如公式(7)所示:

其中,w1,w2,w3和w4表示每个能量项的权重,根据实验权重分别设为0.3,0.2,0.3,0.2。上述能量函数最小化问题由动态规划方法求解得到最佳缝合线。其具体步骤如下:

(1)将第一行每个像素的能量值作为缝合线的初始能量值。

(2)从第二行开始比较当前像素点正对的上一行中3个相邻点(左上、正上和右上方)的缝合线能量值,其中最小的缝合线能量值加上当前像素的能量值就是缝合线经过当前像素的最低能量值:

式中,C(x,y)表示接缝经过当前像素的最低能量值,E(x,y)表示当前像素的能量值,同时记录对应的上一行像素p。

(3)重复步骤(2),直到当前像素到图像中最后一行像素,找到缝合线能量最小值,点p所经过的路径即为最佳缝合线。

3 缝合线更新

对于存在移动前景的视频,如果初始缝合线是固定的,后续每帧按照先前的缝合线进行缝合将导致图像信息的丢失和伪影的出现,而逐帧进行缝合线搜索则难以满足实时性要求。本文通过使用VIBE 检测移动物体,并将前一帧的缝合线指定为模板,以缝合线上的每个像素为中心,以宽度为d水平拉伸缝合线的每个像素作为物体感测区,d设置为50。当移动物体进入该区域时,则重新计算最佳缝合线。图2 为一视频帧是否进行缝合线更新的拼接效果对比图,可以看出未进行缝合线更新的拼接图出现了明显的视差伪影。

图2 拼接效果对比

4 自适应融合算法

传统的视频拼接方法一般使用加权平均融合算法[15]对缝合线附近固定宽度范围的图像进行融合,但由于缝合线处的色差不尽相同,该算法偶尔会产生颜色失真。为了使拼接效果更加符合人的视觉感知,本文引入HSI 空间的色彩饱和度S 作为色彩强度值,通过色差自适应地调整算法的融合区域,可以减轻颜色失真。该算法的具体步骤如下:

(1)将图像从RGB 空间转换到HIS 空间,计算其S分量。

(2)计算缝合线的融合宽度。假设( )i,j为缝合线上某像素点的坐标,L为缝合线的融合宽度,计算公式如下:

式中,b表示初始值为10的融合宽度,λ为50的色差权重,S(i,j)为点( )i,j的色彩饱和度分量值。

(3)融合两幅图像。确定缝合线上每个像素的融合宽度后,对融合区域内的像素所对应的两图像进行融合拼接,融合公式为:

式中,‖ ⋅ ‖表示用于每个像素{r,g,b} 三通道灰度值的范数函数,(xi,y)表示缝合线上的像素。

5 实验结果与分析

为了验证本文算法的效果,进行了实验验证。硬件平台:Intel®CoreTMi7-8750H@2.20 GHz CPU,内存为16 GB;软件平台:Visual Studio 2017+OpenCV 3.0。实验中,本文首先使用SIFT从输入的图像中检测特征点,然后使用随机抽样一致算法(RANSAC)找到最佳匹配点,计算单应性完成图像预对齐。

5.1 静态图像拼接

为验证本文提出方法的效果,将本文方法与其他成熟的方法和拼接工具进行比较,如全景图像合成工具AutoStitch[16]、逼近投影变换图像拼接方法APAP[17]和形状保持半投影变换方法SPHP[18]。使用SPHP 提供的图像数据进行仿真实验,实验结果如图3所示。

图3 静态图像拼接结果

图4 视频拼接结果

图3(a)为输入图像,图3(b)~(d)的左图为地面部分局部放大图,右图为移动前景区域放大图,中图为拼接效果图。AutoStitch算法使用全局单应性和线性融合算法来拼接图像,当输入图像视差较大和存在移动前景时,该算法在重叠区域内无法完全对齐,如图3(b)所示,红色框内的行道存在明显的错位。APAP和SPHP算法使图像网格化,然后通过全局相似变换矫正图像,该算法在重叠区域内也不能完全对齐,并且有明显伪影现象,如图3(c)、图3(d)所示,红色框内移动前景区域存在明显的伪影并且地面的缝隙出现了重影和弯曲。图3(e)是本文拼接结果,本文方法可以尽可能地避免穿过对象,进行自适应融合后,输入图像的质量得到很好的保留。相比之下,本文方法的拼接结果在视觉上比其他三种方法更好。

5.2 视频拼接结果

为了证明视频拼接的有效性,本文在视频拼接中与AutoStitch、APAP 和 SPHP 进行了比较。APAP 和 SPHP都主要用于图像拼接,因此本文将比较方法应用于视频各个帧以进行公平比较,实验结果如图4所示。视频数据集由具有两个不同视图的两个固定摄像机同步采集,这里,选择四个视频帧并分别标记为t1、t2 和t3、t4,它们是相同时间间隔内的连续视频帧,图中右上角为绿色方框内局部路面放大图。从图4(a)和(b)中可以看出AutoStitch 和APAP 的结果存在错位问题,例如由绿色方框所指示的道路隔离线出现了扭曲、错位和锯齿的情况。如图4(c)所示,SPHP 虽然能较好地对齐图像但还是存在模糊、重影问题,降低了图像的视觉质量。而本文方法的结果能够无缝地拼接视频帧并保持视频的原始质量(如图4(d)所示)。图5 显示了本文方法的缝合线更新过程,从图5(a)~(c)可以看出,当上一帧的缝合线穿过移动前景时,缝合线进行了更新,而重叠区域中没有移动物体时则缝合线不更新(如图5(c)、(d)所示)。相比其他三种方法,本文方法可以有效避免由移动物体引起的伪影和错位问题。

图5 缝合线更新过程

为了评估所提方法的运算速度,本文将上述四个视频帧作为输入并测试不同方法的时间消耗,所有测试的算法都用C++实现,并利用CUDA并行编程对本文方法进行加速优化。所消耗时间见表1,相比APAP和SPHP方法,本文方法更能满足实时要求。

表1 不同方法耗时对比 ms

6 结语

针对视频拼接中移动前景易产生视差伪影的情况,提出了一种视差伪影最小化的视频拼接方法。本文结合最佳缝合线搜索和缝合线搜索方法对输入视频图像进行拼接,从而达到视差伪影的最小化,并且采用自适应融合算法,减轻拼接图像的色彩失真,提高视频拼接质量。实验证明,该方法不仅可以在重叠区域内有效抑制视觉伪影,还能实现实时处理。但本文方法也存在一定的不足,在移动前景目标移动缓慢的情况下,前几帧图像有可能前景检测错误导致拼接效果较差,在未来的工作中将进一步研究并解决以上问题。

猜你喜欢

缝合线视差伪影
基于自适应窗的立体相机视差图优化方法研究
多功能手术缝合线兼具高韧性与润滑性
医用倒刺缝合线的研究进展
夏泽洋团队提出一种基于分割的立体匹配视差优化方法
塔北哈拉哈塘地区奥陶系石灰岩缝合线发育特征及石油地质意义
核磁共振临床应用中常见伪影分析及应对措施
基于MR衰减校正出现的PET/MR常见伪影类型
基于梯度域引导滤波的视差精炼迭代算法
基于分割树的视差图修复算法研究
减少头部运动伪影及磁敏感伪影的propller技术应用价值评价