基于分区域特征提取的单张图像天气识别
2020-07-14李鹏程吕昌峰2于向茹李金屏
李鹏程,吕昌峰2,于向茹,李金屏
(1.济南大学 a.信息科学与工程学院,b.山东省网络环境智能计算技术重点实验室,c.山东省“十三五”高校信息处理与认知计算重点实验室,山东 济南 250022;2.山东信通电子股份有限公司,山东 淄博 255088)
准确的图像天气识别是高压输电线路隐患检测[1]、汽车无人驾驶系统等正常工作的基础和关键。在图像天气识别过程中,常规方法大多是根据图像整体或天空区域的特征信息判定天气状况。这些方法仅把全局图像或者天空区域作为分析对象,忽略了部分地面区域独有特征对识别结果的影响,导致识别准确率不够高,对天空区域不明显的图像识别具有局限性。
目前,基于图像天气识别方法根据特征提取的区域可以分为2类,即基于全局特征提取的识别方法和基于局部特征提取的识别方法。
基于全局特征提取的天气识别方法是针对整幅图像提取全局特征,例如功率谱斜率、对比度、相对饱和度等。文献[2-3]中通过提取图像整体的光谱斜率、对比度、饱和度以及噪声等特征,训练分类器对测试图像进行识别。这种方法在特征提取上忽略了部分天空区域和地面区域独有的特征信息,例如天空区域的纹理特征、尺度不变特征变换(SIFT)、地面区域的阴影特征等,特征提取的不全面导致识别准确率不够高。
基于图像局部特征提取的天气识别方法主要是针对天空区域。通过对户外图像的大量观察可以发现,天空区域能够很直观地反映天气状况,例如晴天时天空是清晰的且纹理较为粗糙,阴天时天空是模糊的且纹理较为平滑。文献[4-5]中针对户外图像的天空区域进行分析,首先标记图像天空区域,然后提取天空区域的颜色特征、纹理特征等,最后利用分类器进行训练和测试。这种方法对于天空区域明显的图像识别准确率较高,但是对于天空区域不明显的图像识别准确率较低,具有很大的局限性。
本文中利用在高压输电线路隐患检测项目研究中固定于不同区域的高压输电塔上的摄像头定时拍摄的大量户外图像,构建了数据集,并以该数据集为研究对象验证分区域特征提取算法的有效性。通过对户外图像的观察发现:1)在天空区域中,天气越晴朗,天空的纹理特征越丰富,即晴天图像背景复杂纹理特征较为丰富,雾天图像背景平滑纹理特征相对较少;2)在地面区域中,天气越晴朗,地面的阴影特征分散越明显,即晴天图像地面阴影明显且分布分散,阴天图像地面阴影不明显且分布集中。
基于上述观察结果,本文中将综合考虑全局图像特征、天空区域特征、地面区域特征提出了基于分区域特征提取的单张图像天气识别方法(简称本文方法),通过分割图像区域提取每个区域独有的主要特征来进行天气识别。
1 算法设计
对于图像天气识别问题,充分、准确地提取特征信息是十分重要的。在特征提取前,对图像进行天际线分割处理,将图像分割为天空区域和地面区域并提取每个区域的特征,以确保充分提取每个区域的特征信息。在特征选择上,通过计算每个区域主要特征的信息增益,根据信息增益的大小选择出每个区域能够最直观反映天气状况的特征,以此保证特征选择的准确性,例如天空区域的局部二值模式(LBP)纹理特征、地面区域的SIFT特征和阴影特征、全局图像的对比度和相对饱和度。在分类器选择上,根据随机森林训练速度快、处理数据维度高的特点,构建训练集,然后利用随机森林作为识别分类器,实现对图像天气的准确分类。本文方法流程如图1所示。
图1 基于分区域特征提取的单张图像天气识别方法流程图
1.1 天际线分割
户外图像可以分为天空区域和地面区域,划分图像中的天际线并识别天空区域和地面区域是特征提取前的必要工作。目前,天际线分割常规方法有很多,例如边界跟踪法[6]、均值漂移算法[7]、导滤波[8]、边缘检测法[9]等。通过对不同算法文献的调研发现,虽然常规方法原理易懂并且分割效果好,但是针对的图像天空区域都是干净的、没有异物干扰的。由于图像数据集是通过高压输电塔上固定摄像头获取的,天空中的输电线路会对天空区域的分割产生干扰,因此常规的分割方法无法准确地分割数据集中的天际线。
基于以上原因,本文中在边缘检测前使用中值滤波对图像进行去噪处理,目的是消除天空中输电线对天际线分割的干扰,使天空区域更加平滑。之后,基于Canny算子的边缘检测具有较高的信噪比和检测精度的特点,将Canny算子的边缘检测与形态学相结合作为天际线分割的主要方法,具体步骤如图2所示。1)对户外图像原图(图1(a))进行灰度化处理,如图2(b)所示。2)对灰度化后的图像使用窗口大小为7像素×7像素的中值滤波做去噪处理,如图2(c)所示。3)利用Canny算子提取图像边缘信息,设定最小阈值为4,最大阈值为30,如图2(d)所示。4)对边缘提取后的图像采用形态学的膨胀操作获得二值图像。获取图中所有的连通区域并去除宽度、高度小于1的连通区域,保留宽度大于图像宽度2/3的连通区域。每一列图像中,寻找从某一点开始到图像底部全部为连通区域的点,并将这点向上的区域全部设置为天空区域,向下的区域全部设置为地面区域,如图2(e)所示。
(a)原图(b)灰度图(c)中值滤波效果图(d)Canny算子边缘检测(e)天际线分割图2 户外图像天际线分割效果图
1.2 特征提取
1.2.1 天空区域特征
户外图像的天空区域包含大量的纹理特征。通过对图像的分析和观察,发现晴天天气状况下的图像背景复杂,纹理特征相对丰富,如图3(a)、(b)所示。雾天天气状况下图像较为平滑,纹理信息相对较少,如图3(c)、(d)所示。由于LBP算法能够有效地提取及表征纹理特征并被广泛地应用于图像匹配、识别及分类[10],因此下一步将提取图像的LBP纹理特征。
针对天际线划分后的户外图像,将天空区域划分成多个大小为3像素×3像素的小区域,然后计算每块小区域的LBP特征,
(1)
式中:(xc,yc)为中心像素的坐标;p表示中心像素8邻域的第p个像素;ip为像素p的灰度值;ic为中心像素的灰度值。s(x)为符号函数,定义为
(2)
统计每个区域LBP值,计算出每个区域的直方图并对直方图进行归一化处理。将得到的每个区域的统计直方图进行连接成为一个特征向量,即得到整张图像天空区域的LBP纹理特征向量。
(a)晴天(b)晴天局部二值模式图(c)阴天(d)阴天局部二值模式图图3 不同天气状况下天空区域局部二值模式效果图
1.2.2 地面区域特征
1)SIFT特征。使用SIFT算法[11-12]提取的特征点对旋转、尺度缩放、亮度变化等因素影响保持不变,对视角变化、仿射变换、噪声具有一定的稳定性。基于以上因素选择SIFT算法提取图像天空区域中的特征点。SIFT算法大致包含4个步骤:①尺度空间的极值检测;②特征点定位;③确定特征点方向;④特征点描述。
①尺度空间的极值检测。利用高斯核函数与图像进行卷积得到高斯尺度空间L(x,y,σ),
L(x,y,σ)=G(x,y,σ)I(x,y),
(3)
式中:σ为尺度空间因子,可以通过改变σ来得到不同的尺度图像;I(x,y)表示灰度图像;G(x,y,σ)为高斯核函数,其表达式为
(4)
构造高斯差分尺度空间D(x,y,σ),
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))I(x,y)=
L(x,y,kσ)-L(x,y,σ),
(5)
式中k表示相邻尺度空间因子的尺度系数。在高斯差分尺度空间上对每一个像素点与其所在图像的3像素×3像素邻域8个像素点,以及其相邻的上、下2层的3像素×3像素邻域18个像素点,共26个像素点进行比较,判断是否为极值点,通过该方式得到的局部极值点就是特征点。
②特征点定位。通过拟合三维二次函数来确定关键点的位置和尺度,同时删除对比度低的关键点和不稳定的边缘响应点。
③确定特征点方向。利用特征点邻域像素的梯度方向求取局部结构的方向值。
④特征点描述。首先,校正旋转主方向,确保旋转不变性;然后,生成描述子形成一个128维的特征向量;最后,将特征向量长度进行归一化处理。
2)阴影特征。通过对户外图像的观察发现:晴天天气因为光照充足,所以图像中地面物体阴影明显且分布较为分散。相比之下,阴天天气由于光照不足且无方向性,因此图像中地面物体阴影不明显且分布较为集中,如图4所示。本文中选择提取户外图像的地面阴影作为非天空区域的基本特征。
首先,从数据集中选取大量的晴天图像并利用文献[13]中提出的阴影检测算法提取图像的地面区域阴影构造晴天户外图像的地面区域阴影集。然后利用文献[14]中提出的阴影距离计算方法,计算单个地面阴影与阴影集阴影的距离。提取训练集中每幅晴天图像10个最明显的地面阴影si,保存至阴影集S={s1,s2,…,sk,…,sN}。提取测试集中的待测图像20个最明显的地面阴影bj,通过下式计算待测图像一个地面阴影与阴影集S中的阴影距离Lij:
(a)晴天
(b)阴天图4 不同天气状况地面阴影的对比
(6)
该阴影与n个最近邻的平均距离将作为该图像地面区域的阴影特征。
1.2.3 全局图像特征
1)对比度。经过对全局图像的观察发现,在光照充足条件下拍摄户外图像的对比度较高,而在光照不充分的条件下拍摄户外图像的对比度较低。由于在不同天气状况下有不同的光线强度,因此可以通过提取图像的对比度特征来识别各类天气。
对比度的提取分为局部对比度提取和均方根对比度提取。局部对比度Cl可以定义为
(7)
式中Emax、Emin分别为像素亮度的局部最大值、最小值。由于局部对比度没有涉及图像中其他像素点亮度信息,只计算亮度最大和最小的像素点,而均方根对比度利用了图像中所有的亮度信息,因此选择均方根对比度作为全局图像特征之一。均方根对比度Cm定义为
(8)
式中:L(x,y)为像素点(x,y)的亮度;NI为图像I的像素点数量。
2)相对饱和度。由于饱和度可以反映图像在不同光照条件下的颜色组成特征,因此提取图像的相对饱和度[14]作为全局图像的另一个特征。对于每一幅户外图像,计算每个像素点的相对饱和度作为全局图像特征之一。
(9)
式中:Sx,y是像素点I(x,y)的饱和度;max(SI)是图像I的最大饱和度;min(SI)是图像I的最小饱和度。
1.3 分类器选择
提取图像特征后,利用随机森林[15-16]分类器进行分类训练。首先,为了使每棵树的训练集不同且里面包含重复的训练样本,利用Bootstrap抽样[17]从数据集中抽取5个训练集,每个训练集包含4 000幅户外天气图像;然后从SITF、LBP、阴影特征、对比度、相对饱和的5个特征中随机选k个特征(0 为了验证本文方法的有效性,以Visual Studio 2017和OpenCV3为实验平台,在中央处理器(CPU)为Intel i7-8750H,随机存储器(RAM)为8 GB的计算机上进行实验。实验数据集为高压输电塔上安装的摄像头采集的5 000幅户外图像(2 560像素×1 920像素),包含了54个不同的户外场景,并按照天气状况分为晴天、多云、阴天、雾天4个类别。样本图像如图5所示。 将数据集随机分为训练集和测试集。其中,训练集包含4 000幅图像,测试集包含1 000幅图像。实验中利用训练集训练随机森林分类器,并以该分类器在测试集上对图像天气状况识别的准确率作为衡量分类器性能的标准,测试结果如表1所示。 从表1中的数据可以看出,晴天和雾天的识别准确率比多云和阴天的识别准确率高,且晴天识别正确率最高达到93.5%。通过对天气图像分析发现,由于晴天和雾天的天气特征较为明显,因此晴天和雾天的识别准确率相对较高;由于多云、阴天的天气特征较为相似且分类界线较为模糊,因此正确率相对较低。对表1中的数据进行分析并通过式(10)计算本文方法的准确率Acc: (a)晴天(b)多云(c)阴天(d)雾天图5 不同天气状况的样本图像 表1 测试集测试结果 (10) 式中:N为正确识别图像数量总和;Ntot为测试集图像总数。通过计算,本文方法的准确率为92.6%。 为了检测算法的普适性与实用性,将本文方法分别与基于全局图像特征提取方法、基于天空区域特征提取方法进行比较。把测试集划分成天空区域明显和天空区域不明显的2个子集,并从2个子集中分别随机选取200张图像作为子测试集Ⅰ(天空区域明显)和子测试集Ⅱ(天空区域不明显)。分别使用2个子测试集对上述3种方法进行测试,识别正确率结果如表2、3所示。 由表2可以看出,在天空区域明显的情况下,本文方法比基于全局图像特征提取的图像天气识别方法的识别准确率提升约2.8%,与基于天空区域征特提取的方法在识别准确率上相差不大,仅为0.2%,本文方法在准确率上略高于其他2种方法。由表3可以看出,在天空区域不明显的情况下,基于天空区域特征提取方法的识别准确率较低,并且与天空区域明显的情况相比准确率变化幅度较大;本文方法在准确率上依然略好于其他2种方法,且准确率变化幅度不大,较为稳定。对比实验结果可以看出,本文方法可以比较准确地识别图像天气,具有较强的实用性和普适性。 表2 子测试集Ⅰ识别准确率对比 表3 子测试集Ⅱ识别准确率对比 针对现阶段图像天气识别技术在特征提取上的局限性,本文提出了基于分区域特征提取的单张图像天气识别方法。该算法首先对图像进行天际线分割处理,并识别天空区域和地面区域;其次分别提取了天空区域、地面区域、全局图像3个区域的形状特征、颜色特征及纹理特征;最后利用随机森林分类器训练分类模型,利用测试集进行测试。实验结果表明,本文方法可以准确地识别图像的天气状况,并且具有较强的实用性和普适性。 目前该方法的不足之处是只能识别晴天、多云、阴天、雾天4种天气类别,在天气识别的种类上有待扩展。例如:数据集拍摄的时间在夏季,缺少降雪、冰雹等冬季天气种类的数据集;数据集包含场景较少,缺少道路交通、城市场景的数据集。搜集冬季天气种类数据集并识别雨雪天及区分降雨、降雪的大小,搜集无人驾驶数据集扩充数据集场景是下一步的主要工作。2 实验结果及分析
3 结语