基于多通道梯度特征的彩色图像直线提取方法

2022-05-05 01:53徐辛超李涵坤
测绘工程 2022年3期
关键词:彩色图像梯度灰度

徐辛超,李涵坤

(辽宁工程技术大学 测绘与地理科学学院,辽宁 阜新 123000)

随着计算机视觉及遥感技术的发展,图像的特征提取在图像识别、遥感图像分析以及数字图像处理中发挥着重要作用[1]。图像的直线特征提取在城市三维建模技术中至关重要,对于人工地物,直线可以最直观、最稳定地反映出物体的特征。直线的特征提取在三维目标的识别、物体跟踪等领域中得到广泛应用,通过直线特征能够反映出目标物体的高层信息[2]。

国内外研究学者已经对直线检测算法开展研究。1962年,Paul Hough[3]首次提出经典的Hough变换直线提取理论。2012年,Rafael等人[4]提出经典LSD直线提取算法,与Hough变换方法相比,可以在较短的时间内得到亚像素级精度的直线提取结果。彭博[5]等人分别用经典LSD直线提取方法与Hough变换直线提取方法对高分一号遥感影像进行仿真实验,结果表明经典LSD直线提取方法具有较好的稳定性和适用性。齐永菊[6]等人将EDlines直线检测算法用于遥感图像的直线提取,具有较高的精度和计算速度。严少华[7]等人针对具有显著视角变化的宽基线影像的直线提取,提出一种较为稳健的直线特征匹配方法,提高直线匹配的正确率。刘肃艳[8]等人针对近景影像直线匹配,提出结合同名点及核线约束的近景直线匹配算法,得到可靠的直线匹配结果。闫兆进[9]等人针对如何从大量点云数据中准确提取道路的线,提出一种基于直线特征检测的道路边线自动提取方法。林火煅[10]等人针对电力线算法在复杂的环境下稳定性较差的问题,提出一种基于LSD算法与统计分析的航拍图像电力线提取算法。张平[11]针对近景影像的特征匹配方法,利用经典LSD直线检测算法对影像进行直线提取。上述方法虽然取得一定进展,但都是基于图像的单通道灰度特征,在对彩色图像处理时均将其转换为灰度图像,造成部分图像特征信息的缺失,导致部分直线段无法被检测或直线段不连续。针对彩色图像直线提取问题,李轩[12]等人利用模糊算法检测彩色图像的边缘信息。韩玲燕[13]等人提出一种基于二维直方图的彩色图像全局阈值分割算法,可以有效提高分割的精度,进而提高彩色图像特征提取的能力。鲍小丽[14]等人将提出的基于混沌初始化和反向学习策略的蜻蜓算法用于多阈值彩色图像的分割中,具有很好的实用性。李中健[15]等人将OTSU算法应用到多阈值彩色图像分割中,该方法能够快速对彩色图像进行阈值分割并且具有较强的抗噪性。但是上述方法的提取结果很大程度上依赖于边缘检测算法的结果,而且没有验证对彩色图像进行直线提取的效果。

综合上述各类方法的优缺点及彩色图像的多通道梯度特征,提出一种适合彩色图像的直线提取方法,充分考虑不同通道的梯度特征差异性,而且不需要对图像进行边缘检测,可以为直线匹配、相机标定、遥感图像处理等多个领域提供技术支持。

1 经典LSD直线提取算法的原理

经典LSD直线提取算法是一种局部的直线提取算法,输入是灰度图像,输出是直线提取结果,可以检测到目标图像中直线的轮廓。经典LSD直线提取算法首先对灰度图像进行下采样,计算灰度图像中每个像素点的梯度值,然后根据梯度值对所有像素点进行伪排序,伪排序后要剔除梯度值小于阈值的像素点,这些像素点不能参与线段支撑域和矩形的构建(矩形的主方向是线段支撑域的主轴方向,同时矩形的大小需要覆盖整个线段支撑域)。最后对得到的直线支撑域进行直线验证,得到满足条件的直线。

2 多通道梯度特征的直线提取

多通道梯度特征的直线提取,首先对彩色图像进行高斯降采样,目的是尽量减少图像出现锯齿效应,然后对多个通道进行梯度计算,对像素点的梯度最大值进行伪排序构建直线支撑域,最后利用Helmholtz准则对直线支撑域进行直线验证,不符合验证条件的丢弃,符合条件的记录存储,表示为一条检测到的直线。Helmholtz准则是由Desolneux等人建立的数学模型,这一模型可以抑制虚假线段的出现。

2.1 图像缩放

2.2 梯度计算

由于彩色图像的R,G,B 3个通道中存储的信息存在差异,导致每个通道的梯度特征与灰度图像的梯度特征各不相同,为充分利用彩色图像的多通道梯度特征,对每个像素的R,G,B和灰度4个通道分别进行梯度计算。为尽量减少在进行梯度计算时像素之间的彼此依赖,采用2×2的Robert算子进行梯度运算。假设i(x,y)为像素点(x,y)处的某一通道的灰度值,则像素的单方向梯度可以根据式(1)计算。

(1)

其中,gx和gy分别代表水平方向和垂直方向的梯度。

基于单方向梯度运算结果,得到该像素梯度的方向θ为:

(2)

根据像素的水平和垂直方向梯度,计算出像素的梯度幅值G(x,y)为:

(3)

2.3 梯度伪排序和生成直线支撑域

由于彩色图像中边缘部分的梯度值较高,位于边缘中间的像素通常有最高的梯度幅值,因此在进行彩色图像的直线检测时采用梯度最大值原则来提高直线检测的效果。由于采用1 024个.bin文件可以涵盖梯度0~255变化范围,因此,将图像的梯度强度范围设置为[0,1 023],即分为1 024个等级。统计每个像素在R,G,B通道及灰度通道的梯度最大值,即计算彩色图像3个通道以及灰度图像的梯度最大值,将图像的梯度强度范围设置为[0,1 023],即分为1 024个等级。统计每个像素在R,G,B通道及灰度通道的梯度最大值,并将所有像素的梯度最大值分配至1 024个等级中,将梯度最大值进行伪排序来构建直线支撑域(梯度最大值小于阈值ρ的点不能参与直线支撑域的构建)。排序算法最快的也需要n·logn次操作,而伪排序可以将时间缩短到线性时间内,并不是真正的进行梯度排序,只是按梯度值进行一定程度的排序。

取伪排序的首位像素当作种子点作为初始检查点,依次进行检查,将种子点的LLA(Level-Line-Angle)作为区域的初始角度,当加入新的像素到区域后,区域的角度就会通过式(4)进行一次区域的更新(j是遍历时像素的下标)。当LLA和区域角度之间的差值在容忍值内,则将该点加入到直线区域中,否则舍弃。依次检查直到直线支撑域构建完毕。直线支撑域是一个直线分割的备选区域,同时需要一个矩形与它进行一一对应,直线支撑域的主轴用来表示这个矩形的主方向。

(4)

2.4 直线验证

在进行直线提取时,受外界环境的干扰和采集设备的影响会使图像中存在噪声,导致错误检测直线的概率较高,因此,采用Helmholtz准则来降低在直线提取过程中由于噪声影响产生的伪直线检测。利用Helmholtz准则进行直线验证时,首先判断由直线支撑域构造的矩形R内同向点的密度是否满足阈值,如果不满足则截断R变成多个矩形框,直到密度满足条件为止。若条件满足则计算错误警报次数(Number of False Alarms,NFA),当NFA的值小于设定的阈值,可以判断提取的直线是正确直线,保留输出R,表示为一条检测到的直线。

(5)

当得到最终的直线支撑区域后,就可以完成直线段的提取。

3 实验流程

1)对彩色图像的R,G,B通道以及对应的灰度图像进行高斯降采样。

2)计算R,G,B通道及灰度通道的梯度,并统计其梯度的最大值,记录其对应的梯度方向。

3)根据梯度最大值进行伪排序,建立状态列表,将所有点的初始状态都设为unused。

4)将梯度最大值小于阈值ρ的状态设置为used。

5)取伪排序首位的点作为种子点进行区域扩散并做好标记。

6)将扩散后的区域进行矩形拟合,计算拟合矩阵的误差,根据式(5),计算NFA值,如果误差在阈值内,则满足条件,将拟合的矩阵进行记录,表示为一条检测到的直线,继续检测下一个种子点直至结束。

4 实验与分析

为验证文中方法对彩色图像的直线提取的效果,采用彩色棋盘格图像、York城市图像数据库[17]中的图像以及真实航拍影像进行实验。需要首先确定缩放、模糊等参数的大小,选取York城市数据库中的室内图像,对不同缩放尺度sca和不同大小的高斯滤波参数sig进行对比实验,实验结果如表1所示。

表1 经典LSD与文中方法不同参数下的直线提取结果统计

首先在高斯滤波参数sig等于0.6,缩放尺度sca等于0.9、0.8、0.7、0.6时对文中方法进行测试,直线提取结果如图1所示。

图1 同一高斯滤波参数下的直线提取结果

通过实验得到的结果可以看出当高斯滤波参数sig=0.6时,缩放尺度sca=0.9、0.8、0.7、0.6时,在sca=0.9时提取的效果最好,因此,最终确定文中方法在直线提取时的缩放尺度sca=0.9。

为确定高斯滤波参数的大小,在缩放尺度sca=0.9时,sig=0.6、0.7、0.8、0.9各4种情况进行了实验,直线提取结果如图2所示。

图2 同一缩放尺度下的直线提取结果

通过实验得到的结果可以得出,当缩放尺度sca=0.9时,高斯滤波参数sig=0.6、0.7、0.8、0.9时,直线提取的数量逐渐减少,在sig=0.6时提取的直线效果最好,因此,最终确定高斯滤波参数sig=0.6。

为证明文中对彩色图像的直线提取效果要好于经典LSD直线提取算法。选取一张彩色棋盘格图3(a)、两张YORK城市数据库中的图像,包括一张室内图3(b)和一张室外图3(c)以及一张航拍影像图3(d)进行实验分析,如图3所示。图4—图6为原始测试图像经过经典LSD直线检测和文中方法直线检测的结果对比。

图3 测试图像

彩色棋盘格在经过经典LSD直线提取算法和文中方法后的直线检测结果对比如图4所示。

由图4的直线提取结果可以得出,文中方法是基于多通道梯度特征的直线提取,提取结果明显优于基于单通道灰度梯度特征的经典LSD直线提取结果。从数量上讲,文中方法的直线提取结果多于经典LSD直线提取算法,而且文中方法的直线提取连续性更好。

图4 彩色棋盘格提取结果对比

室内外图像经过经典LSD直线提取算法和文中方法后的直线检测结果对比如图5所示。

由图5的直线提取结果及框选部分为典型区域提取,对于室内图像(b)中,在房顶和墙的交界处、房屋结构变化的区域,从红、蓝、绿、黄、紫、橙色框选出来的部分来观察能明显看出经典LSD方法出现了直线缺失或者断裂的情况,而文中方法比较完整的提取该直线,其它局部细节的提取效果也优于经典LSD方法。对于室外图像(c)中,墙面的装饰材料间的直线特征中,经典LSD方法缺失的部分比较多,而文中方法的实际提取效果更好,提取的直线数量更多,直线的连续性更好。

图5 York图像提取结果对比

航拍影像经过经典LSD直线提取算法和文中方法后的直线检测结果对比如图6所示。

由图6的直线提取结果可以得出,在实际航摄影像中,特别是房顶等直线特征较多的区域中,经典LSD方法没有提取出所有的直线,而文中的方法直线提取结果更优。

图6 航拍影像提取结果对比

对上述实验结果进行统计,结果见表2,表2中实验图像即为图3中测试图像。

表2 直线提取结果对比

由表2可得,在图3(a)进行试验时,提取的直线数量增加20%;在对York城市图像数据库中的室内图3(b)进行实验时,提取的直线数量增加37.9%;对York城市图像数据库中的室外图3(c)进行实验时,提取的直线数量增加26.5%;对航拍影像图3(d)进行实验时,提取的直线数量增加18.7%。

由上述实验结果与分析得到以下结论:

1)经典LSD直线提取算法是基于灰度图像的,在对彩色图像进行直线提取时,由于彩色图像中的不同色彩可能有相近似的灰度,当彩色图像转换为灰度图像时,容易使部分的直线段无法被检测到,所以文中提出基于彩色图像的LSD直线提取,防止当彩色图像转换为灰度图像过程中造成的彩色图像中信息丢失以至于直线段无法被检测到的问题。

2)经典LSD直线提取算法是基于梯度的,在对图像中像素的梯度值进行计算时需要计算灰度图像的梯度值,然后对所有的梯度值进行排序,当梯度大于一定阈值之后,判定可以参加直线区域的构建。当输入的是彩色图像转化为灰度图像后,容易将强边缘变成弱边缘,造成直线段无法被检测到。文中方法是取彩色图像R,G,B三通道以及灰度图像的梯度最大值,对每一维都取梯度的最大值,那么这个像素被判定可以参加直线区域构建的概率就增加,并且文中方法不会破坏彩色图像的信息,能够较好地提取到彩色图像中的直线。

5 结束语

直线提取是图像的特征提取中的重要部分,在对物体的轮廓提取,三维目标的识别以及物体的追踪等方面广泛应用。经典LSD直线提取算法在进行直线提取时仅仅采用了图像的灰度信息,当彩色图像转化为灰度图像时,容易导致原来图像中的直线无法被检测到或者检测到的直线长度不连续等问题,因此文中提出一种基于多通道梯度特征的彩色图像直线提取的方法,通过计算彩色图像R,G,B三通道以及其对应灰度图像的梯度值,取这4种梯度最大值及其对应梯度方向作为初始梯度值进行直线检测。通过对彩色棋盘格图像、York城市图像以及航拍影像进行实验验证,结果表明文中的方法能够更好利用图像中的彩色信息,提取的直线数量更多,且可靠性更好,为目标识别、相机标定等技术奠定更好的基础。

猜你喜欢
彩色图像梯度灰度
带非线性梯度项的p-Laplacian抛物方程的临界指标
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于二维直方图的彩色图像全局阈值分割方法研究
Arduino小车巡线程序的灰度阈值优化方案
基于FPGA的实时彩色图像边缘检测
一个具梯度项的p-Laplace 方程弱解的存在性
基于AMR的梯度磁传感器在磁异常检测中的研究
基于DCT—DWT—SVD的彩色图像安全存储方案
基于数字虚拟飞行的民机复飞爬升梯度评估