相机标定
为什么要进行相机标定?学习图像拼接步骤(一)——相机标定
由于安装设计(透镜和成像平面不平行)及摄相机间的差异,会造成视频图像之间存在缩放(镜头焦距不一致造成)、倾斜(垂直旋转)、方位角(水平旋转)差异。这些均属于物理差异,因此我们需要对物理差异预先校准,从而得到一致性好的图像,便于后续图像拼接。
在实际应用中,全景视频图像的获得往往需要单个或者多摄像机以不同的位置排列和不同的倾角拍摄。 例如由于机载或车载特性,相机的排列方式不尽相同,不能保证相机在同一面上,如柱面投影不一定在同一个柱面上,平面投影不一定在同一平面上;另外为了避免出现盲区,相机拍摄的时候往往会向下倾斜一定角度。这些情况比较常见,而且容易被忽略,直接投影再拼接效果较差。因而有必要在所有图像投影到某个柱面(或平面)之前,需要根据相机的位置和角度信息来获得坐标变换后的图像。
摄像头的安装
如下是车载的相机安装图,并进行畸变校正。 前视摄像头位置,一般在车标附近;左右摄像头一般在倒车镜附近;后视摄像头在车牌上方。四个摄像头水平位置基本相同。根据不同车型来调整摄像头的安装位置和高度。
传感器图像畸变校正
畸变校正也称为图像拼接的预处理操作。除此之外,采集过程中可能让图像包含噪声,因此我们还可以加入去噪算法进行处理,以得到更好的拼接效果。
图像投影变换
理论上只要满足静止三维图像或者平面场景的两个条件中的任何一个,两幅图像的对应关系就可以用投影变换矩阵(单应性矩阵H)表示,换句话说只要满足这其中任何一个条件,我们就可以以其中一个相机为参准,然后即可让相机拍摄的图像可以通过矩阵坐标变换,表示为另一个虚拟相机拍摄的图像。简言之,我们可以**通过单应性矩阵将不同视角拍摄到的图像,转换成同一视角下**。
单应性矩阵H
单应性矩阵H的理解
本文单应性矩阵都是指平面单应性矩阵,单应性矩阵主要解决如下两个问题:
- 描述真实世界中,一个平面与它对应图像的透视变换。
- 一种视图通过透视变换即可转换到另一种视图上。
如图所示,a0和b0向量分别表示a1,a2 和 b1,b2这两个点对应的两个方向上的线性向量,同时通过这些点,我们即可得到两个平面之间的关系,最终两个平面之间的关系能用单应性矩阵H来表述。 单应性矩阵H这里不进行推导,直接给出最终的矩阵H如下,该矩阵能进行不同变换的表述,有8个自由度,同时这8个参数可控制图像的缩放、平移、旋转以及xy方向的拉伸。
单应性矩阵的应用场合
可用于解决全景图像拼接对齐的问题。(将从不同位置拍摄的图像都转换到同一视角下完成拼接操作) 还可进行图像内容的替换。 解决拍摄图像扭曲的问题。(图像校正) 用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。
如下是描述物体在世界坐标系和像素坐标系之间的位置映射关系的理解 如下是通过H矩阵变换进行不同视角的转换 将不同视角拍摄的同一平面的图像转换到相同视角下得到拼接图: 由此我们可看出,该拼接方式为平面投影拼接,同时单应性矩阵的投影方式就属于平面投影,它就是以序列图像中的一幅图像的坐标系为基准,将其图像都投影变换到这个基准坐标系中,使相邻图像的重叠区对齐。
注意:单应性矩阵变换是理论推导出来的,没有考虑相机成像过程中畸变的情况,因此我们在前面介绍了相机标定,以此完成畸变校正,这样才能获得更好的拼接效果。
特征点提取与匹配
由于特征点的方法有着缩放旋转、尺度不变性等,因此被广泛使用,特征点包括图像的角点以及相对于其领域表现出某种奇异性的兴趣点。常用的特征点提取的方式有SIFT、SURF等。 图像的特征点的数量以及匹配率都直接影响图像拼接的精度和效率,因此应该选择合适的算法来处理。 另外再匹配的时候,存在误匹配对的情况,我们可以引入NCC算法或者RANSAC算法进行误匹配对的剔除。学习精匹配——Opencv实现RANSAC算法进行误匹配对剔除,并和最小二乘法对比
图像拼接融合
拼接主要包含配准和融合两大部分,其中配准就是我们前面所提到的几何模型,例如:平移模型、旋转模型(相似性模型)以及透视变换模型(单应性矩阵变换)等。 而图像融合技术有基于变换域的图像融合(小波变换、傅里叶变换等)、线性加权的图像融合(直接平均融合、帽子函数以及加权平均融合等)、最佳缝合线融合算法、泊松融合以及多分辨率融合算法(高斯金字塔等)。比较常见的是线性加权的图像融合方式,计算简单且融合效果好。 如下是拼接融合效果:
亮度与颜色的均衡处理
由于相机和拍摄光照强度的差异,会造成图像之间亮度不均匀的情况,因此若拼接成一幅图像后,那么拼接图图像会出现明暗交替现象,也称为拼接缝,会影响视觉效果。因此我们引入了亮度与颜色均衡处理。 通常的处理方式是通过相机的光照模型,校正一幅图像光照不均匀性,然后通过相邻两幅图像重叠区域之间的关系,进行直方图统计,最终建立相邻两幅图像之间直方图映射表,通过映射表对两幅图像做整体的映射变换,最终达到整体的亮度和颜色的一致性。 如下是亮度差异调整的数学公式,对亮度的调整,也就是对灰度值的调整。
拼接质量客观评价
最终我们需要对拼接质量进行客观评价,学习图像拼接融合质量的客观评价指标——matlab实现MSE、均值误差、RMSE、SNR、PSNR,SSIM,熵值计算以及归一化互相关系数
硬件实现的思考
- 采用硬件实现多路视频拼接的时候,如果分别计算每一帧图像间单应性矩阵操作复杂且计算慢,同时由于摄像机的位置是固定不动的,且进行了标定,因此我们就可以采用离线查找表的方式进行计算。
- 我们可以预先采样一些摄像机拍摄的图像,根据这些图像来计算单应性矩阵变换参数,从而将这些参数映射为查找表的形式,这样的话,多路视频流的每一帧数据无需再次配准,只需要查询查找表并结合插值算法进行计算即可得到配准对齐后的图像,然后再结合融合算法对拼接缝进行平滑消除,配准融合以及插值部分都可进行硬件加速(算法拆解成硬件适应的形式,从而便于进行流水并行处理),从而最终实现实时拼接。
- 另外对于OV5640摄像头来说,内置白平衡、色彩校正、降噪等预处理功能,也可以简化了硬件系统的设计负担。
全景视频拼接关键技术参考
|