一种基于cuda的全景视频监控系统的制作方法
【技术领域】
[0001] 本发明属于视频图像处理及并行计算领域,涉及一种基于CUDA的全景视频监控 系统。
【背景技术】
[0002] 人类每天都会获取大量信息,其中视觉信息对人类非常重要。图像作为人类获取 视觉信息的重要途径由此显得十分重要。然而随着人们对更广视觉范围的场景信息需求越 来越多,普通的相机或摄像机能够拍摄到的场景的角度和视野范围是非常有限的,很多时 候需要得到更大更完整的视频图像来获取信息。因此,为了获得更宽阔的视角,多摄像头视 频拼接技术是极其必要的。
[0003] 视频拼接即是从多个视频图像采集设备上同步获得位置及角度不同并有部分重 叠区域的视频图像,通过配准及融合等技术而得到全景视频图像。视频拼接技术的基础是 图像拼接。图像拼接的基本步骤包括:图像采集、图像配准、投影变换、图像融合。其中最算 法最复杂也是计算最耗时的步骤为图像配准和图像融合。
[0004] 图像配准是图像处理的一个基本问题,用于将不同时间、不同视角、不同传感器及 不同拍摄条件下获取的图像进行匹配,其最终目的是建立两幅图像之间的对应关系,以确 定一幅图像与另一幅图像的几何变换关系式。
[0005] Kuglin在1975年提出了相位相关配准法,该方法利用了傅里叶变换的平移性质 对图像进行配准,但该方法只适合于存在纯平移关系的两幅图像之间的像素级别配准由于 傅里叶变换的基本性质,决定了该配准模型也只适合平行视角,在仿射和透视变换模型中, 该方法就不能成功配准。而实际过程中还很难做到相机位置以及其成像平面的绝对平行, 一般成像平面都有一定的夹角,故需要采取新的办法。
[0006] 2004年,David. Lowe总结了已有基于不变量技术的特征检测算法,正式提出了一 种基于尺度空间的,对图像平移、旋转、缩放、甚至仿射变换保持不变性的图像局部特征,即 SIFT (Scale Invariant Feature Transform)特征检测算法。该算法的基本思想:首先利 用高斯差分金字塔从图像中提取候选极值点,然后使用候选点邻域梯度的主方向作为该点 的方向,最后提取出稳定的特征描述符。2006年,在SIFT算法研究的基础上,Bay等人提出 SURF (SpeededUp Robust Transform)特征检测算法。SURF特征检测算法的主要优点是保 持了 SIFT高鲁棒性的同时,大大降低了特征检测的时间,这对整个视频拼接系统来说是很 重要的。
[0007] 图像融合技术是将前一步配准好的图像融合成一幅全景图像,在图像的融合中, 由于不同的图像之间存在着曝光差异,使得直接拼接后的图像存在着明显的拼接细缝。因 此,Szeliski提出了用对重叠区域的像素值做加权平均,通过赋予一个权重函数,使得图像 之间的过渡平滑。
[0008] 通过对像素值进行加权平均处理可以一定程度上解决过渡问题,但是当两幅图像 的曝光差异过大时,可以利用Uyttendaele提出的基于块的曝光调整技术,它可以把图像 分成若干块,将每一块进行曝光校正,然后再把这些校正过的块进行融合。该方法能够较好 的解决因曝光而产生的过度不连续问题,但是若配准的时候存在误匹配的话,即投影矩阵 有误差,则之后的融合将会造成图像的模糊,使得重叠区域产生重影。
[0009] 针对重叠区域出现的模糊和虚影问题,一个较好的解决办法就是在重叠区域找出 一条周围像素变换最小的缝合线,在这条线的左右两边只选择一幅图像中的像素值进行投 影,而不再将两幅图像进行简单加权融合。Efros利用了动态规划的思想来进行最优路径求 解。
[0010]目前使用最广泛的一类融合方法就是利用图像不同尺度的多分辨率特性进行融 合。多分辨率融合法最初是由Brown和Burt提出的,其主要思想是利用高斯-拉普拉斯金 字塔分解图像的高频部分和低频部分。不同部分采用不同的融合策略。低频部分采用加权 求和,起到模糊的效果;高频部分则利用最大权值的信息,保留边缘等变化的信息,最后将 两部分组合起来,得到融合效果相对较好的结果。但是对于实时的视频流拼接来说,这个算 法的处理速度尚不能满足实时性要求,而且同样的在配准不好的时候,会存在虚影。
[0011] 视频拼接由于视频图像本身的像素点较多,处理速度一直是一个难点,算法阶段 的优化很难保证拼接的实时性。所以从编程模型出发,对视频拼接系统利用CUDA对视频图 像融合阶段的算法进行优化加速。CUDA是由英伟达公司提出的一个并行计算架构,它是基 于高速图像处理单元GPU的,在GPU上高速并发执行,极大的提高了程序算法的运行速度。 在CUDA编程环境中,主要包括CPU和GPU两个部分。CPU作为主机,即Host端,GPU作为设 备,即Device端。Host端与Device端有专用的通道进行数据通信,Host端负责对逻辑性事 务进行处理,以及对串行化运算的控制;Device端负责执行大规模的并行化处理任务。将 运行在图像处理单元GPU上的CUDA并行计算函数称为核函数,即kernel函数。
【发明内容】
[0012] 本文发明了一种基于CUDA的全景视频监控系统,在保证拼接效果的前提下,提高 了算法的效率,使得实时监控视频更加流畅。
[0013] 用三个相同的网络摄像头在同一水平面采集不同角度不同方位的视频图像,同步 抓取各个摄像头的首帧图像,图1从左到右为采集的相邻三路视频帧图像I 1U, y),I2 (X,y) 和l3(x,y)。首先,利用傅里叶变换计算出视频图像之间的平移位置关系(Αχ,Ay),通过 平移参数(A X,Ay)能够近似计算出视频图像之间的重叠区域。
[0014] 利用SURF算法原理,使用盒子滤波和积分图像为图像构建尺度空间金字塔,通过 改变盒子滤波器的大小,用不同大小的滤波器在原始图像的x、y和xy三个不同方向上做卷 积,即可形成多尺度空间函数D xx,Dyy,Dxy,如图2所示。选择6的倍数作为基本尺度间隔,下 一层的尺度间隔每次都会翻倍。
[0015] 构建完尺度空间金字塔后,需要对提取局部极值点。利用一个非常逼近det(H)的 表达式A (H)来判断,若△ (H)的值为正,则能够确定该点为局部极值点。得到局部极值点 后,对它们在3 X 3 X 3的领域内进行非最大值抑制,把符合条件的点选为特征点,图3是视 频帧图像I1 (X,y),I2 (X,y)和I3(X,y)在重叠区域内采集到的特征点。
[0016] 在特征点检测之后,为保证特征点具有旋转和尺度不变性,用Haar小波对特征点 分配主方向。在特征点周围60度的圆形邻域内(灰色区域),计算尺寸为4 〇的Haar小波 响应,其中σ是特征点所在的尺度。然后将响应以dx和dy建立坐标系,将各响应点映射 到该坐标系并进行累加。最后将获得最大响应的方向定义为主方向。
[0017] 以特征点为中心将坐标轴旋转到主方向,选取边长为20 〇的正方形窗口,将这个 窗口划分成4X4个子窗口。对于边长为5〇的子窗口区域,以采样间隔为〇,分别计算每 个子窗口水平和垂直方向上的小波响应,得到的小波系数记为dx和dy。然后对响应系数求 和得Σ dx和Σ dy,求响应系数绝对值之和得到
每个子窗口得到一个4 维向量
,特征点描述符由周围所有子窗口的向量构成,因 此特征向量长度为4 X 4 X 4 = 64。由此得到的描述符对旋转、尺度、亮度以及对比对都具有 较好的鲁棒性。
[0018] 在检测到SURF特征之后由于两幅图像的重叠区域是相似的,寻找SURF特征点的 匹配点时,把搜索区域限制在对应平移位置的一个邻域内。这个邻域可以为半径32的一个 圆形区域。只需要在这个圆形区域里寻找匹配的特征点,如图4所示。这样能够减少需要 进行比较的特征点数量,提高了算法速度。
[0019] 首先对图像I1 (X,y)的样本特征点P1,在I2(X,y)中对应重叠区域半径32的圆域 内寻找与它距离最近特征点P 12和次近特征点P J,然后计算这两个特征点与样本点之间 欧式距离的比值。对于比值小于阈值N的特征点,则认为是正确匹配的特征点,否则是错误 匹配的特征点。同理,对图像I 3(x,y)的样本特征点P3,在I2 (x,y)中对应重叠区域半径32 的圆域内寻找最近邻特征点P32和次近邻特征点P