一种大视差场景下的实时视频拼接系统

2020-04-23 11:18朱小勇
计算机与现代化 2020年4期
关键词:视差像素点摄像机

杨 丹,陈 君,朱小勇

(1.中国科学院声学研究所国家网络新媒体工程技术研究中心,北京 100190; 2.中国科学院大学,北京 100049)

0 引 言

普通视频拍摄的视场角度非常有限,难以在不降低视频分辨率的前提下,获取大视角及信息丰富的场景[1]。全景视频是通过全景摄像机或多个摄像机阵列在同一视点拍摄得到的具有全方位场景信息且高清晰度的视频,在沉浸式虚拟现实(VR)、广域视频监控、无人驾驶、视频会议等领域具有广泛的应用[2]。

将多个同步视频流拼接成单个全景视频是以图像拼接为基础的[3],国内外对图像拼接的研究已经相对成熟。然而,相较于图像拼接,视频拼接是一个更具有挑战性的问题,尤其是在非理想的输入环境下,譬如摄像机的光学中心不在同一位置、场景非平面、视场视角大以及相机抖动[4-5],这些情况都会造成视频拼接的复杂性大大增加。传统的视频拼接要求输入图像尽可能满足图像拼接的理想条件,即图像中场景只包含一个主平面,且图像本身只存在旋转差异[6]。在这种苛刻的条件下虽然拼接速率高,但是视场视角小,且将视角限制在了水平方向。而在配准视场视角大,且摄像机光学中心不在一个水平线上的大视差图像时,由于三维场景之间的复杂交互作用,传统的双单应性矩阵模型[7]和平滑仿射变换模型[8]处理这种复杂场景时配准误差会急剧上升,这往往会产生严重的扭曲效果。大视差场景需要使用多个局部的单应性矩阵对齐投影,算法复杂度高,逐帧拼接难以满足视频实时性要求。当前,研究人员已经在视频拼接方面做了大量的工作,文献[9-10]主要应用于刚性固定的摄像机组,该类方法需预先标定出摄像机组的几何关系,基本能实现实时性,但是该类方法通常视场视角小,拍摄场景需要远离摄像机并近似为一个平面才能达到较好的拼接效果,难以应用于实际视频监控、无人驾驶、视频会议等场景中。文献[11]以视频稳定为主,通过估计外部(摄像机之间)运动和内部(视频中相邻图像帧之间)运动求解最佳虚拟2D摄像机路径,并获得沿虚拟路径的放大视场。该方法有效地处理了大视差场景,但是算法复杂性仍然太高,对于分辨率为1280×720的2路视频的拼接速度为2 fps,无法达到实时效果。文献[12]提出了一种自适应背景建模和移动前景检测的视频拼接方法,有效抑制了动态前景造成的鬼影,并利用GPU硬件加速达到了实时效果,但是该方法需要利用强悍的硬件设备,难以得到推广和使用。

本文设计的系统以2路视频流作为输入,摄像机之间的相对位置固定,利用ORB(Oriented FAST and Rotated BRIEF)[13]和基于移动DLT(Direct Linear Transformation)的APAP(As-Projective-As-Possible)[14]算法建立背景模型,并改进一种基于最小能量检测的最优接缝选择方法,实时校准摄像机标定参数,可以处理大视差场景下的视频拼接并达到了较好的实时效果。

1 系统流程

传统的视频拼接[15]是对视频流进行逐帧拼接,为每一帧图像计算单应性矩阵,拼接效果虽好,但是难以在处理大视差场景的同时满足实时性的要求。为了解决上述问题,本文提出背景建模的方案,采用的方法是固定2路摄像头的相对位置,首先进行初始化,获取初始帧并进行背景建模计算,通过ORB特征检测算法快速提取2帧图像的特征点,再利用基于移动DLT的APAP算法建立大视差背景模型。接着改进一种基于最小能量检测的方法寻找最优接缝,找到接缝后将固定的图像变形数据存入索引表,用于后续帧的“循环使用”,以避免重复计算。最后对图像帧的重合区域进行加权融合。系统流程如图1所示。

预先计算的查表方法的主要开销在于第一帧图像的处理,在第一帧图像计算完成之后,即完成了背景建模,所得全局单应性矩阵、局部单应性矩阵以及接缝数据被保存至索引表,后续的视频帧利用索引表中的参数进行投影变换,减少了传统视频拼接中大量的重复计算,满足了高清图像帧拼接的实时性要求。

图1 系统整体流程

2 拼接模型计算

背景建模对于避免不稳定的前景至关重要,拼接模型计算模块的重点在于实现大视差场景下的图像配准,对于相对位置固定的摄像机组,本文仅在拼接模型计算阶段执行配准。首先采用输入视频的第一帧,利用传统ORB算法分别提取出初始2幅视频图像的特征点并将其匹配成对,再利用基于移动DLT的APAP算法完成图像配准,该方法实现了大视差图像的配准。拼接模型计算的具体步骤如下:

1)输入参考图像I1和待配准图像I2。

2)利用ORB算法提取2幅图像的特征点对。

3)利用DLT方法计算待配准图像帧的全局单应性矩阵H。

4)将待配准的图像帧分割成C1×C2个网格小块,利用移动DLT算法对每个块求解局部单应性矩阵H*。

5)根据局部单应性矩阵H*完成图像配准。

6)采用最小能量检测的方法搜索最优接缝。

7)将全局单应性矩阵H、局部单应性矩阵H*以及最优接缝数据传入索引表。

拼接模型计算流程如图2所示。

图2 拼接模型计算流程

2.1 ORB算法

常见的特征提取算法有ORB、SIFT[16]以及SURF[17]等。其中ORB算法是对FAST(Features from Accelerated Segment Test)角点检测算法与BRIEF(Binary Robust Independent Elementary Features)特征描述子的一种结合与改进[13],具有旋转不变性和很好的抗噪能力,拼接速度上比SIFT算法快2个数量级,比SURF算法快1个数量级。在视频拼接中,为了保证高效的拼接速率,本文将采用ORB算法提取2幅待配准图像I1、I2的特征点对集合。

2.2 基于移动DLT的APAP算法

直接线性变化(DLT)是计算原始图像与目标图像之间映射关系的一种基础算法,这种映射关系通常用单应性变换矩阵H表示,然而这种全局图像变换的方法对于视差图像配准效果不佳,易出现形状扭曲和重影等情况[8]。移动DLT方法是在DLT[18]方法的基础上进行改进,可以有效处理大视差场景。假设X=[xy]T,X′=[x′y′ ]T是原始图像I和目标图像I′中的点,首先根据DLT方法求取全局变换矩阵H如式(1)所示:

(1)

(2)

(3)

式(3)矩阵只有2行是线性无关的,令ai∈R2×9为式(3)的前2行,i代表第i个特征点对,则矩阵H的目标函数为:

(4)

(5)

wi*=exp(-‖X*-Xi‖2/σ2)

(6)

同时为了避免像素点远离特征点区域时产生的权重系数接近于0的误差,进行了规格化处理,取阈值γ为默认最小值,处理如下:

wi*=max(exp(-1‖X*-Xi‖2/σ2),γ),γ∈[0,1]

(7)

通过上述方法,可以求出图像重叠区域中每个像素点的几何变换模型,实现局部图像的精确配准。然而在实际应用中,由于整幅图像的像素点数量非常庞大,若每个像素点都与特征点进行距离计算,则算法复杂度会非常高,且邻近的像素点的变换矩阵H*相似。为了简化且避免不必要的计算,将图像分为C1×C2的网格,取每个网格的中心像素点X*,将整幅图像像素点单应性矩阵的求解过程简化成求取C1×C2个网格的中心像素点的单应性矩阵,本文选取的网格规模为60×40。

2.3 最优接缝计算

接缝路径是图像重叠区域中像素形成的连续曲线,以连接成对的弯曲图像[19]。虽然基于移动DLT的APAP算法具有视差鲁棒性,但该算法仅应用于提取背景场景中的拼接模型计算阶段,无法避免移动前景引起的鬼影和错位,通过合理的接缝选择,能较大程度地降低重影效果。常见的最优接缝有2类约束条件:1)在颜色强度方面,拼接缝上的像素点的颜色差值应最小;2)在几何结构方面,拼接缝像素点在2幅匹配图像上的结构应最相似[20-21]。见下式:

Ec(X)=I1(X)-I2(X)

(8)

Eg(X)=‖I1(X)-I2(X) ‖2

(9)

其中,Ec表示接缝点X在2幅匹配图像I1、I2重叠区域上的颜色差值,Eg表示接缝点X在重叠区域的梯度差,表示Sobel算子[22],其给出特定像素位置处的梯度信息。

本文在使用能量函数最小化的一般接缝寻找方法的基础上,提出新的约束项,加强最优接缝在结构上的相似性。通常,如图3所示缝合2个图像帧的时候将会产生2个交点XE、XS,它们分别代表接缝的起点和终点。如果重叠区域是平坦的,则接缝可以简单地确定为连接XE和XS的直线,即最短接缝线。因此,更靠近最短接缝线的像素被分配较低的能量成本,得到了新的交叉距离约束项:

(10)

(11)

其中,{λi}i=1,…,3分别表示3个约束项的权重,λ1+λ2+λ3=1。实验中,λ1、λ2、λ3分别被选取为0.4、0.4和0.2。

图3 交叉距离约束项参考图

3 图像融合

由于不同角度相机的采光不同,拼接图片之间存在色差和灰度差。若直接对图像进行覆盖,可能会导致明显的接缝,需要对图像重叠区域进行图像融合使拼接区域过渡自然,无明显接缝[23]。本文采用传统的加权图像融合方式[24],引入加权因子ω1和ω2,原理如公式(12)所示:

(12)

其中,I(x,y)为融合后的图像,I1(x,y)和I2(x,y)为2幅拼接的图像,ω1+ω2=1,ω1,ω2∈(0,1)。假设图像重叠区域的宽度为d,d1表示I1(x,y)到重叠区域左边界的距离,d2表示I2(x,y)到重叠区域右边界的距离,d=d1+d2,则ω1=d1/d,ω2=d2/d。这种渐入渐出的融合方式可以使得图像的过渡更自然。

4 实验结果

本文输入设备为2个Logitech C902e摄像机。由于室外场景多为远景,远景近似为一个平面可忽略视差带来的影响,室内环境更为复杂,故本文选择的实验场景为高度3.5 m的开放式室内环境。实验测试平台为VS2015,CPU为Intel Core i7-7700HQ 2.8 GHz,内存为8 GB。图4为视频拼接结果的若干帧展示图。从图4可以看出视频拼接结果基本没有重影,图像重叠处无明显接缝,且摄像头之间进行了良好的光照补偿。

(a) 第200帧拼接结果

(d)第350帧拼接结果

(e) 第400帧拼接结果

(f) 第450帧拼接结果

此外,为验证本文方法在大视差场景下拼接的有效性,将本文拼接算法同SPHP[25]方法(算法1)以及文献[26]提出的基于网格优化的大视差图像拼接方法(算法2)进行对比。图5展示了单帧图像的拼接结果,从图5可以看出,在处理大视差图像时,算法1出现了马赛克、伪影现象和较为明显的接缝,算法2顶部网格线出现较明显的伪影现象,而本文方法自然感观较好,有效地处理了大视差图像。

(a) 参考图像

(b) 待匹配图像

(c) 算法1

(d) 算法2

(e) 本文方法

通常在线视频播放每秒不会低于20帧,这就意味着实时视频拼接系统速度至少要达到20 fps。为了验证本系统视频拼接的实时性,分别对1920×1080、1280×720、960×720、640×360这4种分辨率的输入视频流进行实验,忽略初始化的时间开销,统计1200帧图像的平均拼接时间,实验结果如表1所示。从表1可以看出,2路视频的帧率达到23 fps~133 fps,基本满足了视频拼接实时性的要求。

表1 不同分辨率下的拼接速度对比

5 结束语

本文实现了一种大视差场景下的实时视频拼接系统。根据固定摄像机之间的相对位置这一先验条件,利用ORB算法和基于移动DLT的APAP算法进行图像配准,且结合所改进的最优接缝选择的计算方法,预计算出了拼接模型,最后采用加权融合的方法进行融合。实验结果表明,本系统能较好地处理大视差拼接场景且具有良好的实时性,具有一定的实际应用价值。

猜你喜欢
视差像素点摄像机
基于自适应窗的立体相机视差图优化方法研究
基于局部相似性的特征匹配筛选算法
基于5×5邻域像素点相关性的划痕修复算法
基于梯度域引导滤波的视差精炼迭代算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
摄像机低照成像的前世今生
新安讯士Q6155-E PTZ摄像机
基于分割树的视差图修复算法研究
立体视差对瞳孔直径影响的研究