APP下载

基于SLIC0超像素分割的阴影检测算法

2021-03-21雷坤鹏冯新喜余旺盛

空军工程大学学报 2021年6期
关键词:阴影像素分类

雷坤鹏, 冯新喜, 余旺盛

(空军工程大学信息与导航学院, 西安, 710077)

阴影广泛存在于图像与视频中,往往会对图像及视频处理产生不利影响,例如:①导致图像伪彩色、图像信息丢失以及图像分割错误[1];②在航空影像中干扰影像中信息的提取、识别和判读[2];③在城市车辆跟踪检测时,会影响车辆的形状和大小,降低车辆检测的准确度,给后续的跟踪、分类等工作带来困扰[3]。因此阴影检测就成为图像处理中的重要一步,具有重要的研究意义与价值。

目前根据检测技术的不同,阴影检测可以分为基于模型的方法[4-5]、基于阴影特征的方法[6-7]和基于机器学习的方法[8-9]。本文采用一种超像素算法与分类器结合的机器学习方法,超像素算法由Ren等人在2003年提出[10],经过十几年的发展,主要分为两大类:一类是基于图论的方法[11-12],一类是基于聚类的方法[13-14]。SLIC超像素算法是一种代表性的基于聚类的方法,该方法由Achanta等人[15]在2010年提出,因其快速、简单近几年被广泛地应用于图像处理的多个领域,基于SLIC的改进研究也是近年来图像分割领域的热点问题。

针对阴影检测过程中存在的边缘纹理检测率不高,阴影检测过程中易出现像素空洞及检测结果误差大等问题,本文提出了一种基于SLIC0[16]超像素分割与SVM相结合的单幅图像阴影检测算法。在此基础上设计了融合光照与彩色特征的分类特征向量构造方法,有效提高了阴影检测的精度。

1 SLIC超像素分割算法

SLIC超像素分割算法是一种思想简单、快速、实现方便的算法,其生成的超像素具有紧凑、近似均匀等特点,能够较好地保持物体轮廓,符合人们对图像分割的要求。算法步骤如下:

1)颜色空间转换

SLIC超像素分割算法为保证分割精度,需先将RGB空间图像转换为CIELab空间图像,同时生成一个5维向量V=[L,a,b,x,y],该向量由每个像素的光照与彩色分量(L,a,b)和空间坐标(x,y)构成。

2)生成种子点

在进行分割前需要人为设定K个超像素,将超像素的种子点均匀地分配在像素点个数为N的图像上,每个超像素包含的像素个数为N/K,则相邻种子点的距离S近似为:

S=sqrt(N/K)

(1)

3)调整种子点位置

在生成种子点时,种子点可能会落在梯度较大的超像素边缘与噪声像素点上,影响聚类效果。因此需要重新定位种子点,一般选取初始种子点3×3邻域内梯度最小的点。

4)计算距离度量

像素点与种子点间的相似度通过空间距离与颜色距离表示,采用欧氏距离度量准则:

(2)

(3)

(4)

5)局部迭代聚类

SLIC超像素分割算法将搜索范围限制在种子点邻域2S×2S的范围内,在限制范围内计算所有像素点到种子点的距离度量,重复迭代并赋值,将相似特征像素生成超像素。

6)增强连通性

经过局部迭代聚类后一般会出现分割后超像素块过小、超像素块中存在其他类面积较小的超像素块等。通过增强连通性可以有效解决这些问题。

传统SLIC算法分割的结果图中,每一个超像素采用的紧凑性参数为固定值,超像素在平滑区域是平滑的,而在不规则区域是高度纹理化的,即SLIC在平滑区域产生大小规则的光滑超像素,在纹理区域产生不规则、边界粗糙的超像素。当固定超像素个数K=500时,改变参数m,可以看出,当m较小时,分割得到的超像素区域杂乱无章,毫无规律;随着m增大,超像素区域的规则性越来越强,见图1。

图1 不同紧凑性参数对超像素分割的影响

为达到更好的检测效果,需根据不同的图像人工调节参数m,增加了人机交互的负担。SLIC0算法通过自适应的修改参数m,很好地解决了这一问题。因此本文选取SLIC0分割算法对原图像进行超像素分割,提取阴影边界。

2 本文算法

2.1 基于SLIC0的阴影边界检测

传统SLIC对图像中的所有超像素使用相同的紧凑参数m,同一张图像中SLIC在光滑区域产生规则的光滑超像素,在纹理区域产生高度不规则的超像素。SLIC0则可以自适应地为每个超像素分配紧凑性参数。SLIC0算法对式(4)进行了改进,采用上一次迭代过程中最大的颜色距离mLab和空间距离mxy,作为下次迭代的紧凑性参数m与超像素边界长度S。改进后的距离度量公式为:

(5)

SLIC0算法根据图像不同区域纹理复杂度,自适应调整紧凑性参数,使分割出的超像素块形状更加规则、大小相近,同时并不影响分割的精度与效率。

2.2 基于融合特征与SVM的区域合并

SLIC0算法分割生成的是大量的超像素块,并不能直接反映图像的阴影区域,因此需要选取合适的合并方法对超像素块合并,来得到所需的图像阴影区域。本文采用分类合并的思路,提出一种基于融合特征的支持向量机作为区域合并的分类器,采用基于亮度特征与颜色特征融合的方法,将融合后的特征作为SVM分类器的训练样本,将SLIC0分割结束后的种子点色度与亮度融合信息作为测试数据,对种子点进行分类。最后对种子点及其超像素块内的像素点赋以阴影标签与非阴影标签以达到区域合并的目的。

图像中的阴影区域是光线在传播过程中被遮挡而产生的,其亮度较非阴影区域低。亮度改变,则像素的色度也会发生改变。在阴影识别过程中只通过色度或明度进行判断,这类基于单一特征的分类算法鲁棒性较差。本文采用Lab颜色空间基于亮度(L)与色度(a、b)特征融合的SVM分类方法来增加超像素分类合并的准确性。

首先,在光照特征的基础上增加彩色补偿量[17],即:

Q=L+LC

(6)

式中:LC为彩色补偿量,其计算方法为:

LC=x·sgn (30×a)·|30×a|α+

x·sgn (30×b)·|30×b|α

(7)

得到光照与彩色融合信息后,将其作为支持向量机的训练样本与测试样本。

支持向量机通过定义核函数将低维向量映射到高维空间中,以此解决低维空间线性不可分问题,同时避免了向高维映射时产生维度灾难的问题。其原理见图2,是在高维空间中找到使两类数据的数据点间隔最大的平面,并在此平面两侧找到互相平行的两个临界超平面,临界超平面的距离越大,该分类器的误差越小。

图2 SVM分类原理图

超平面通过公式(8)线性方程描述:

wTx+c=0

(8)

式中:wT=(w1,w2,…,wn)为最大间隔平面的法向量;c为位移项;x=(x1,x2,…,xn),其中xi到超平面的距离为:

(9)

为了求出最大间隔的超平面,用(w,c)表示临界超平面,由于超平面满足式(8),则必然满足:

ζwTx+ζc=0

(10)

此时,存在ζ使临界超平面能够建立如下不等式方程:

(11)

位于临界超平面上的点使式(11)等号成立,也称为“支持向量”,两个不同类别的支持向量到超平面的距离之和为:

(12)

式(12)应满足式(11)。

要求“最大间隔”地划分超平面,即能满足式(12)中约束的参数w、c,使得γ最大,仅需||w||-1最大,即可求得最大间隔划分超平面所对应的模型,令:

f(x)=wTx+c

(13)

通过上述融合特征的SVM分类算法,实现超像素块的二分类,阴影区域为黑色,非阴影区域为白色,从而达到阴影检测的目的。

2.3 算法整体流程

本文算法采用机器学习的思想,先通过聚类算法将输入图像分割处理,再通过分类算法将聚类分割后的区域分类,得到阴影掩膜,来达到阴影检测的目的。算法基本流程如图3所示。

图3 本文算法基本流程图

3 实验结果与分析

本文算法在i5-4210H处理器、2.90 GHz主频CPU、8.00 GB内存的PC机上使用MATLAB 2017a软件编程实现。目前,用于图像阴影检测算法性能评估的公开数据集主要有SBU[18]、Guo[19]等。本文采用SBU数据集中的图像对单幅图像阴影检测算法进行仿真实验比较与性能分析,其部分代表性测试图像如图4所示。

图4 SBU数据集部分测试图像

3.1 阴影检测结果的定性分析

将本文算法与Otsu阈值法检测方法、传统SVM分类检测法进行对比,超像素个数为K=500,SVM采用RBF核,惩罚因子为1,检测结果见图5。

图5 实验结果

从图5中可以看出,Otsu阈值法在颜色较为单一的图像中效果较好,如实验2、5、7,能够较好地检测出阴影,得到阴影掩膜,但在颜色较为复杂的图像中检测性能明显下降,出现像素空洞与误检,如实验1、3、4、6,阴影检测效果差。从实验中可以看出,采用单一特征SVM分类的方法对超像素块分类合并,其对色度相似的区域分类效果不理想,易出现误分类,阴影检测效果相较于本文算法较差。本文采用SLIC0聚类分割能够很好地将像素点问题化为区域性问题,可较好地解决识别过程中的像素空洞问题,同时通过光照与色度融合的SVM分类器对超像素块分类合并,以提高超像素块分类的准确度。实验结果表明,本文算法在色彩相对复杂的图像中阴影检测的效果也比较理想。

3.2 阴影检测结果的定量分析

为更加客观地评价所提算法,本文以SBU数据集标注的阴影掩膜作为标准,以结构相似度(structural similarity,SSIM)与峰值信噪比(peak signal to noise ratio,PSNR)作为性能指标对实验结果进行定量分析,二者表达式如下:

(14)

式中:MSE为图像X和参考图像Y的均方误差:

(15)

SSIM(X,Y)=L(X,Y)·C(X,Y)·S(X,Y)

(16)

其中L(X,Y),C(X,Y),S(X,Y)表示如下:

(17)

(18)

(19)

式中:uX,uY分别表示图像X和Y的均值;σX,σY分别表示图像X和Y的标准差;σXY代表图像X和Y协方差;C1、C2和C3为常数。

本文算法与参考算法的定量分析结果见表1~2。

表1 不同检测算法阴影检测的PSNR值比较

表2 不同检测算法阴影检测的SSIM值比较

从表中数据比较可以看出,本文算法检测出的阴影掩膜无论是PSNR指标还是SSIM指标均优于其他两种参考算法,说明本文算法的阴影检测效果较参考算法更具优势。

4 结语

本文提出了一种基于SLIC0超像素分割的单幅图像阴影检测算法,首先利用SLIC0算法对图像进行超像素分割,再利用设计的基于色度特征与亮度特征融合的SVM分类器将超像素块分类合并,得到阴影检测结果。与Otsu阈值法和基于单一特征SVM分类的图像阴影检测算法相比,本文算法能够较好地适应复杂颜色环境,取得更具鲁棒性的阴影检测结果,同时具有较高的检测精度。

猜你喜欢

阴影像素分类
像素前线之“幻影”2000
你来了,草就没有了阴影
“像素”仙人掌
按需分类
教你一招:数的分类
说说分类那些事
阴影魔怪
高像素不是全部
给塑料分分类吧