基于亮度校正的航拍图像拼接融合算法
2019-12-11卿粼波何小海
伏 晓,卿粼波,何小海
(四川大学电子信息学院,四川成都610064)
无人飞行器航拍具有成本低、安全、高效和便捷的特点,其航拍的图像被广泛应用于遥感遥测、军事侦察、城市监控等方面。无人飞行器航拍图像时,可在按一定路线(如“Z”形)飞行的过程中拍摄,也可悬停空中相机以径向圆环扫描方式拍摄,如深圳光启有限公司的智慧城市空间信息平台“云端号”[1]悬停空中可实现通信、物联网监测和大数据收集等功能。无人飞行器航拍大视角图像时,因专业广角成像装置价格昂贵而多使用普通相机,但普通相机因需调节相机焦距等因素导致图像分辨率较低。因此,需采用图像拼接技术将无人飞行器拍摄的一组具有重叠区域的小场景图像拼接成全景图像。
图像配准算法中,Harris算法[2]利用移动的窗口计算灰度变化值,该算法具有一定的鲁棒性,但不具有尺度不变性且对亮度和对比度的变化敏感;尺度不变特征变换(scale-invariant feature transform,SIFT)[3-4]特征提取算法具有旋转不变性、尺度不变性和光照不变性,其鲁棒性较强但提取特征速度慢。基于SIFT算法,Bay等[5]提出了加速鲁棒特征(speed up robust feature,SURF)算法[5],将SIFT特征描述向量维数降低了一半,运算速度提升了3倍,但当在图像配准有一定误差或待拼接图像存在运动物体时,易出现“鬼影”,需进一步利用图切割技术解决。其中顶点覆盖法、最佳缝合线法[6]和流行拼接法是图切割的经典算法。
无人飞行器航拍过程中,由于光照以及高空相机曝光时间不一等因素的影响,易造成航拍图像亮度差异明显,直接拼接会导致图像存在明显拼接缝且色彩不一。对此,文献[7]提出一种基于最佳缝合线的拉普拉斯金字塔融合算法,其不仅可解决拼接图像的“鬼影”问题,还可使拼接缝两侧亮度差异更小,拼接更自然。但此算法复杂度较高,运行时占用内存较大,并且当待拼接图像亮度差异明显时,拼接缝仍会存在。针对上述问题,笔者对文献[7]中的算法进行改进,提出一种基于亮度校正的航拍图像拼接融合算法。
1 基于最佳缝合线的拉普拉斯分析
1.1 最佳缝合线搜索准则
最佳缝合线应遵循以下准则:使2张图像的颜色差最小;使2张图像的几何结构最相似。Duplaquet[8]提出建立最佳缝合线的公式,如
其中:Ec(x,y)表示图像重叠区域的颜色差;Eg(x,y)表示图像重叠区域的几何结构差。Eg(x,y)可通过Sobel算子计算图像梯度得到
其中Sx,Sy分别表示x,y 方向的3×3 的Sobel 算子模板;I1(x,y),I2(x,y)表示待缝合图像相应的灰度值。
1.2 基于最佳缝合线的拉普拉斯金字塔融合
搜索到图像的最佳缝合线之后,使用拉普拉斯金字塔融合算法拼接图像,步骤如下。
1)生成尺寸为拼接后图像大小的掩码图像M,缝合线左侧填充0,右侧填充1。
2)在配准和几何模型变换后的图像A、B 中,大量无效图像部分用0填充。
3)生成高斯金字塔图像G,然后生成扩展的A、B 的拉普拉斯金字塔图像LA、LB,LA、LB的金字塔层数相同。
4)对每一层进行融合,以获得融合的拉普拉斯图像Lf,像素值为
其中:(i,j)表示像素点坐标;l表示金字塔第几层。
5)从最高层开始扩展插值并将其添加到下一层图像,直至最后一层获得最终融合图像。
搜索最佳缝合线时,很难找到同时满足Ec(x,y)和Eg(x,y)最小的缝合线,根据式(1)搜索到的最佳缝合线往往不是亮度差异最小的缝合线,采用拉普拉斯金字塔融合算法无法实现所需的结果。若航拍图像亮度差异很小,采用拉普拉斯金字塔融合算法拼接图像可取得良好的拼接效果,拼接缝过渡自然;然而无人飞行器航拍时,光照变化较大或悬停空中旋转相机时,相机背光和向光均可能造成待拼接图像亮度较大差异,此融合算法不足以解决图像的拼接缝和色差的问题。此外,采用拉普拉斯金字塔融合算法拼接图像需分别对待融合图像A、B生成高斯金字塔,并构造拉普拉斯金字塔图像LA,LB。此算法步骤复杂,金字塔结构融合时所需内存较大。为此,对基于最佳缝合线的拉普拉斯金字塔融合算法进行改进,以解决图像拼接缝问题并且使其运算占用内存减小。
2 基于亮度校正的航拍图像拼接融合算法
基于最佳缝合线的拉普拉斯金字塔融合算法可较好地解决“鬼影”问题,但不足以解决拼接缝及运算占用内存较大等问题。基于此提出一种基于亮度校正的航拍图像拼接融合算法,即在融合前对航拍图像进行亮度校正预处理,并且减小拉普拉斯金字塔结构面积,其流程图如图1。对航拍配准的图像进行亮度校正预处理,搜索图像获得最佳缝合线,并将图像重叠区域划分出过渡区域。确定图像像素点是否在图像重叠区域中,若否,则直接填充原始图像;若是,则继续判断像素点是否在过渡区域。若图像像素点位于过渡区域中,则使用加权平均融合算法;否则使用拉普拉斯金字塔融合算法。
2.1 亮度校正
在色调、饱和度和亮度(HSI)彩色空间选取亮度基准图像,计算其与待校正图像重叠区域各区间亮度差平均值后,对图像进行整体亮度校正。亮度校正时,对图像亮度进行分段调整,提高图像低亮度区域对比度,最终获得均匀亮度的拼接图像。
2.1.1 亮度基准图像的选取
在HSI 空间统计待拼接图像亮度(I)直方图,结果如图2。计算图2 所示图像正常亮度区间比例及标准差,将其作为衡量图像曝光是否正常的标准,以选取亮度基准图像。
1)正常亮度区间比例
图像像素点位于正常亮度区间的数量占图像总像素点的比例越高,图像正常曝光可能性越高。根据经验选取[70,200)为正常亮度区间,该区间可根据不同应用场景修改以适应各类场景。统计图像正常亮度区间比例,图2(b),(d)所示方框内为正常亮度区间的图像像素点;图2(a)所示正常亮度区间比例为0.668,图2(c)为0.709,两图像正常亮度区间比例相近,无法确定亮度基准图像。
图1 改进算法的流程图Fig.1 Flow chart of improved algorithm
图2 待拼接图像及亮度直方图Fig.2 Images to be stitched and its brightness histogram
2)正常亮度区间标准差
若无法选定基准图像,则计算正常亮度区间标准差。标准差越大,选择的图像亮度在正常亮度区间分布越均匀。通过计算得出图2(a)所示正常亮度区间标准差为36.582,图2(c)为26.922,选取图2(a)作为基准图像。从人眼观察,图2(a)曝光适宜,细节清楚,宜作为基准图像。实验结果符合视觉选取结果。
2.1.2 亮度差值的计算
采用SURF算法提取基准图像及待校正图像的特征点并对特征点进行配准,结果如图3。匹配特征点对在理想光照条件下具有相同的亮度,因此可通过匹配特征点对亮度差异衡量航拍图像的亮度差异。统计基准图像及待校正图像匹配特征点对亮度差{ΔI1, ΔI2,…,ΔIn},计算亮度差平均值E和标准差σ:
图3 匹配的特征点对Fig.3 Feature point pairs of matched image
位于(-2σ,2σ)区间外的亮度差对应的匹配特征点对为误匹配,将其去除。将亮度区间划分为5 个区间,即低亮度区间[0,T1)、较低亮度区间[T1,T2)、正常亮度区间[T2,T3)、较高亮度区间[T3,T4)、和高亮度区间[T4,255](0 ≤T1≤T2≤T3≤T4≤255)。
文中将亮度区间划分为[0,30)、[30,70)、[70,200)、[200,230)和[230,255]。统计匹配特征点对位于各区间的亮度差值,当匹配特征点对不在同一区间时,以亮度基准图像特征点所在区间为准,计算出各区间亮度差平均值ΔI。
2.1.3 亮度校正
计算亮度基准图像及待校正图像的亮度差平均值ΔI 后,对待校正图像进行亮度校正。若只在重叠区域对待校正图像进行亮度校正,得到的最终拼接图像拼接缝过渡自然,但图像两端亮度差异明显。因此,需对待校正图像进行整体亮度调整,将HSI空间转换到RGB彩色空间以获得均匀亮度的拼接图像。亮度校正函数如下所示:
其中:I 表示待校正图像亮度;I1表示需调整的亮度值。
以待校正图像像素点亮度所在区间为基准,待校正图像像素点亮度I 需调整的亮度值为I1。值得注意的是,为增加图像低亮度区域对比度,在较低亮度区间将亮度变换函数设置为指数函数。根据本文划分的亮度区间,亮度校正函数如下:
图4 亮度校正函数示意图Fig.4 Diagram of brightness correction function
根据式(7),亮度校正示意图如图4。遍历待校正图像像素点,根据其亮度所在区间对待校正图像各像素点调整亮度。
2.2 过渡区域的划分
对航拍图像进行亮度校正可使待拼接图像亮度大概一致,避免出现过明或过暗的情况。但亮度仍存在差异,直接缝合会出现拼接缝,因此仍需使用融合算法在图像重叠区域划分过渡区域。通常拉普拉斯金字塔在获得最佳缝合线后需对整张图像构建金字塔,但亮度校正后不需对整张图像构建拉普拉斯金字塔,可在图像重叠区域划分过渡区域,如图5。
图5表示采用基于亮度校正的航拍图像拼接融合算法拼接后的图像。其中:a、b、c、d 表示图像重叠区域;e、f 表示非重叠区域;L 表示缝合线。e、f 区域为亮度校正后对应的原图像,e 为拼接左图,f 为拼接右图。在b、c 区域采用拉普拉斯金字塔融合算法,在过渡区域a、d 采用加权平均融合算法。区域a、d、b ∪c 宽度分别为重叠区域宽度的1/5、1/5、3/5。融合公式如下:
图5 过渡区域的划分Fig.5 Dividing of the transition area
其中:I(x,y)表示点(x,y)的像素值;Ie(x,y)表示拼接左图像素值;If(x,y)表示拼接右图像素值;de、df、db∪c分别表示点(x,y)距区域e、f、b ∪c 的距离;Ib∪c(x,y)表示采用拉普拉斯金字塔融合后的像素值。
3 实验结果及分析
为检验本文所提算法的有效性,对航拍图像(图2(a),(c))采用不同的算法进行拼接。算法分别为直接拼接、基于最佳缝合线的拉普拉斯金字塔融合、亮度校正后直接拼接、亮度校正后重叠区域拉普拉斯金字塔融合以及基于亮度校正的图像拼接融合等。以图2(a)为亮度基准图像,图2(c)为待校正图像。实验计算机CPU为Inter(R)Core(TM)i5-2320,主频为3.00,内存为8 GB,Windows 10操作系统,VS2015开发环境。实验结果如图6~11。
图6 直接拼接图像Fig.6 Image of direct stitching
图7 基于最佳缝合线的拉普拉斯金字塔算法拼接图像Fig.7 Stitched image based on Laplacian pyramid algorithm with optimal seam
图8 亮度校正后的拼接右图Fig.8 Right image to be stitched after brightness correction
图9 亮度校正后直接拼接的图像Fig.9 Image of directly stitched after brightness correction
图10 未划分过渡区域的融合图像Fig.10 Fusion image without transition region division
图11 划分过渡区域后的融合图像Fig.11 Fusion image after transition region division
由图6~11可看出:直接拼接图像由色彩差异大的两个色块组成;采用基于最佳缝合线的拉普拉斯金字塔融合算法拼接图像仍存在拼接缝,且拼接缝两侧存在明显亮度差异;亮度校正后,拼接图像拼接缝两侧亮度差异明显小于未校正直接拼接图像;在重叠区域进行拉普拉斯金字塔融合后,拼接图像出现明显的黑边,重叠区域内出现明显黑线;划分过渡区域后,黑边消失,拼接效果相较于采用基于最佳缝合线的拉普拉斯金字塔融合算法有明显提升;对航拍图像进行亮度校正,可避免出现图像过明或过暗的情况。
为进一比较基于最佳缝合线的拉普拉斯金字塔融合算法及本文算法的拼接效果,计算两种算法下图像重叠区域峰值信噪比(PSNR)和结构相似性(SSIM),结果如表1。其中:PSNR越大,图像质量越好;SSIM是根据图像间结构相似性评价拼接图像,SSIM越大,图像质量越好。由表1可知,本文算法运算时间和占用内存明显减小,其PSNR和SSIM均有提升,拼接图像有更好的视觉效果。本文算法中,拉普拉斯金字塔并非针对整张图像构建,仅需在重叠区域构造金字塔,故其在运算时间和占用内存方面较基于最佳缝合线的拉普拉斯金字塔融合算法有明显提升。
表1 算法性能Tab.1 Performances of algorithms
4 结 论
提出一种基于亮度校正的航拍图像拼接融合算法,在HSI空间对曝光差异较大的图像进行亮度校正,再对待拼接图像重叠区域划分过渡区域,并且在不同区域分别采用加权融合算法和拉普拉斯金字塔融合算法。实验结果表明,该算法能够提高航拍图像的拼接质量,有效改善曝光差异,减少拼接时占用的内存。但是,本文算法适用于较明亮的不同场景航拍图像拼接,对于整体亮度很低的航拍图像不具有通用性。下一步的研究是将自适应校正不同亮度的航拍图像,实现算法适用于复杂的外部环境。