基于OpenCV+Python的道路结冰检测系统的设计

2017-04-10 08:48季雨薇王志鹏
陕西科技大学学报 2017年2期
关键词:树莓结冰小波

李 颀, 季雨薇, 王志鹏, 窦 轩

(陕西科技大学 电气与信息工程学院, 陕西 西安 710021)

基于OpenCV+Python的道路结冰检测系统的设计

李 颀, 季雨薇, 王志鹏, 窦 轩

(陕西科技大学 电气与信息工程学院, 陕西 西安 710021)

针对目前国内基于视频检测的道路结冰检测装置采集到的路面图像环境复杂、结冰信息提取不充分导致识别准确率低的问题,设计了一种道路结冰检测系统;通过设定ROI以及边缘检测与二值形态学结合的方法对车辆进行分割以获得仅有路面的图像,采用自适应小波去噪算法对路面图像进行预处理以提高图像识别的准确率,提取道路图像颜色H、I分量的三个低阶矩以及灰度共生矩阵中的能量、熵和方差的组合作为特征向量,使用SVM分类器对道路图像进行识别,结果通过以太网分级传输至监控中心对数据进行存储、查看以及显示.实验结果表明,该系统能够准确、有效地对道路状态进行识别,并能够将图像以及数据发送至监控中心供工作人员查看,为交通管理部门的决策提供了数据基础.

结冰检测; 图像处理; OpenCV; 自适应小波去噪; Python

0 引言

随着人民生活水平的不断提高,越来越多的人选择汽车作为出行的首选交通方式,但是如何保证行车安全,成为人们日益关心的问题.据统计在各种交通事故中,由于地面湿滑或结冰所引发的事故的发生比率占到了70%[1].尽管目前在国际市场上已经出现埋入式传感器等传感器及技术,在我国关于此技术的研究仍然处于初步阶段.由于路面环境的开放性以及结冰的不均匀性,埋入式结冰传感器存在可靠性差、成本高且安装困难的问题.基于图像处理的道路结冰检测技术的优势在于其功能强大,图像直观,由软件控制,便于升级,成本较低;安装维修时不破坏路面,不封闭车道,可以根据不同要求重新设定位置[2].

现有的基于图像检测的方式均以道路监控视频为基础,监控中心将各个道路摄像头采集到的图像进行处理识别,但是采集到的道路图像包含的信息不只有路面图像还包括车辆以及其他障碍物的遮挡,而且由于路面环境复杂在相机拍摄时出现噪声,这会导致图像识别准确率降低;一个普通的监控中心监测的道路的数量非常可观,而且道路状态分类算法较复杂,同时在上位机上进行处理会出现来不及处理的情况.针对该问题,本文设计了一种道路结冰检测系统,当检测到路面温度低于0 ℃时,使工业相机采集路面状态图像,在树莓派上对采集到的图像进行处理、识别、分类,将道路图像以及识别后的结果发送至道路监控分中心的数据库中,监控中心上位机接收到道路图像以及分类检测结果后进行显示.

1 系统方案设计

本系统实际应用在高速公路上,一段道路上需要布有一个或者多个采集点对道路上的状况进行检测.在高速公路上间隔50 km架设道路状况采集终端,该终端安装于道路中间的隔离带或者绿化带旁,利用光纤线路通过以太网进行分级传输,在每一个地区设有监控分中心,将这一地区中所有道路的状况信息进行汇总再上传至总监控中心,系统总体结构如图1所示.

系统整体设计分为两个部分:道路状态检测终端设计和监控中心监测子系统设计.道路检测终端完成的工作有道路状态采集、处理和传输;监控中心监测子系统由图形用户界面以及数据库组成,监测子系统将接收到的道路图像以及识别结果存入数据库中,并在图像用户界面中进行显示、查询.

图1 道路结冰检测系统框图

2 道路状态检测终端

图像采集、处理以及传输工作需要由道路状态检测终端完成,由于传统的DSP+FPGA/CPLD组合虽然能够完成采集及处理的工作,但是网络传输较复杂,还需要外加网络协议栈芯片.树莓派作为入门型的嵌入式平台网络传输方式简单灵活,本文选用的树莓派3,处理器为64位的1.2 GHz四核ARM Cortex-A53.终端需要提取道路图像特征以及分类,由于OpenCV中集成了大量的成熟算法,通过调用OpenCV中的函数可以实现图像处理,选择在树莓派中安装OpenCV软件,通过编写Python程序可以完成图像的处理工作,所以选用树莓派3作为主处理器可以满足终端的需求[3].

考虑到终端工作环境较差,对道路图像质量要求较高的原因,选用像素为500 W的工业彩色COMS相机作为道路图像采集单元,型号为MV-UB500,最大分辨率达到2592*1944,该工业相机支持Linux系统,也可以兼容OpenCV软件,与树莓派通过Universal Serial Bus(USB)接口相连.路面温度采集单元选用DS18B20温度传感器,利用树莓派General Purpose Input Output (GPIO)口搭建温度采集电路.由于高速公路一般铺设有光纤,所以通过树莓派的10/100以太网接口采用TCP/IP网络协议将图像与处理结果发送至监控中心,监控中心通过RJ45接口与以太网光纤相连.电源模块采用树莓派的独立供电装置PiJuice,通过micro-USB接口对树莓派进行供电,输入为5 V,能够连续供电6 h,且配有太阳能电池板方便在户外环境中使用.由于结冰的过程时间较长,本系统终端每2 h工作一次,其余时间均为休眠状态,所以PiJuice可以满足本系统的供电要求.终端硬件结构如图2所示.

图2 道路结冰检测终端硬件结构框图

2.1 道路温度及图像的获取

路面温度低于0 ℃是整个系统的触发信号,若检测到道路温度低于0 ℃时,采集路面图像以及后续的处理,工作流程图如图3所示.路面温度的测量通过树莓派的单总线驱动来驱动DS18B20获取温度数据,之后判断温度值是否低于0 ℃,若高于0 ℃,则进入休眠状态两小时后再进行温度采集;若低于0 ℃,则调用工业相机采集路面图像.在自然光条件下,使相机镜头距地面1.5米垂直拍摄,固定焦距以确保所拍摄的图像具有相同的初始条件,以保证分类结果的准确性.图像采用960*600分辨率,格式为JPEG,文件大概103 K,一次拍两张路面状态照片进行处理以保证识别结果的准确率.至此,道路图像已经采集至树莓派的内存中,以供后续图像处理步骤使用.

图3 道路结冰检测系统工作流程图

2.2 道路图像处理及分类

道路图像经过上述步骤已经保存至树莓派的内存中,所采集到的图像可能是干燥、积水、积雪、结冰中的某一种,所以需要对采集到的图像进行处理分类,道路图像识别分类的流程图如图4所示.本文进行图像处理时所选择的环境为OpenCV2+Python2.7.9.

图4 道路图像识别分类流程图

2.2.1 道路图像预处理

由工业相机直接采集到的图像会出现障碍物遮挡、噪声等干扰,影响图像特征提取以及分类结果的准确率,降低分类的速度,所以需要对采集到的图像进行预处理.道路图像的预处理包括对由于道路图像的分割以及去噪.道路图像在采集的过程中,图像上会出现车辆以及绿化带的遮挡,在道路图像特征提取的过程中会带入误差而且会导致提取的过程变慢,所以需要对道路图像进行分割.由于绿化带的位置是固定的,可以通过设定感兴趣区域Region of Interest(ROI)将绿化带与道路图像分离以减小计算量,在道路图像的分割中,车辆具有较多的边缘信息,所以可以通过边缘检测的方法将车辆与道路图像进行分割,在对比了Canny、Sobel、Prewitt、Robert、Laplace这五种边缘检测方法的效果后发现,Canny算子在检测车辆边缘连接最清晰,所以选用Canny算子进行车辆边缘检测再进行目标填充、形态学处理以及分割,道路图像分割效果如图5所示.经过分割后的图像由原来的103 K缩小至68 K,获得了仅有路面的图像,加快了图像特征提取的速度.

图5 道路图像分割效果对比图(左为原始道路图像,右为分割后道路图像)

在道路图像采集时相机由于曝光量过低、采集过程中摄像头震动以及路面不均匀性的影响,会出现明显的噪声引起图像质量下降,为了减少噪声对路面状态识别的影响提高识别的准确率,需要采用图像去噪算法改善图像质量,以保证路面纹理信息的完整性.路面图像有干燥、潮湿/积水、积雪、结冰,除积雪道路外三种图像的边缘信息都较为明显,使用单纯的滤波方式时会滤除图像中的高频部分,滤波的同时会使边缘模糊.图像的能量主要集中在低频部分,而边缘细节与噪声相对集中在高频部分,使用低通滤波器在对路面图像进行去噪的同时,也会使图像边缘变得模糊.由于小波去噪具有多分辨率的特性使得道路图像的细节、边缘等特征得以保留,道路图像经过小波分解后,通过运算消除高频系数中的部分系数值,再利用处理过的高频系数与图像分解后的低频系数进行重构从而达到去噪的目的.但是传统的小波去噪由于阈值选择是统一的,导致去噪后的路面图像细节不够清晰,小波自适应去噪方法通过选择小波分解后各层系数去噪的较优阈值,选取合适的阈值函数高频系数进行处理以保留路面图像细节信息[4-6],所以本文采用小波自适应阈值的方式对路面图像进行去噪.

(1)对含噪声路面图像进行3层小波分解.

(2)从分解后的高频子带中估计出噪声方差σ2.

(3)计算每一级尺度参数β:

(1)

式(1)中:k=1、2、3,Lk为k级子带长度,L为原含噪声图像长度.

(4)计算第1层到第3层的高频系数方差σy.

(5)计算阈值Tk,

(2)

式(2)中:σ2为估计噪声方差,σy为高频系数方差,β为尺度参数.

(6)根据改进的软阈值函数对从1层至3层的高频系数进行处理,

(3)

式(3)中:参数p=2c,c通常取10r,r为比阈值T大两倍的小波系数百分比.

(7)用阈值化后的小波系数对路面图像重构,得到去噪后的路面图像.

该种去噪方法与普通固定阈值小波去噪方法效果对比如图6所示.该种方法运算量较小,能够有效的滤除路面图像中的噪声,同时保留路面图像的细节信息,提高了路面图像识别分类的准确率.

(a)原始图像 (b)含噪图像

(c)普通小波去噪图像 (d)自适应小波去噪图像图6 自适应小波去噪效果图

2.2.2 道路图像颜色特征提取

在道路被雪覆盖时,呈现的是反射率较高的白色;路面积水时,呈现反射率较低的白色;结冰时,路面变得灰白或者透明.因此,可以根据观察路面颜色,提取各种路面状态下的颜色特征值,进行路面种类的识别.在机器视觉中,常用的颜色模型可分为RGB模型、HSI模型以及HSV模型[7].由于检测终端安装在户外环境下,白天光照强度对路面颜色的影响较大,但HSI模型相对于RGB模型来说受光照强度影响小,所以选择将RGB空间转换至HSI颜色空间,作为路面图像颜色提取的彩色空间.对HSI颜色空间中的H、S、I值分别做与路面状态的关系研究后发现,色调H、亮度I与路面状态之间存在明显的相关关系,如图7、8所示,所以可以通过判断路面图像的色调H与亮度I,对这四种路面状态进行分类.

图7 色调H与路面状态关系图

图8 亮度I与路面状态关系图

路面图像的HSI空间中H分量以及I分量的3个低阶矩阵,这三个低阶矩阵分别描述了图像颜色的平均值、方差和斜度.通过提取H、I两个分量与一、二、三阶矩阵,构造出一个含有6个分量的颜色特征向量(H分量的一阶矩HM、H分量的二阶矩HV,H分量的三阶矩HS,I分量的一阶矩IM、I分量的二阶矩IV,I分量的三阶矩IS),作为道路图像颜色特征的特征向量.计算这三个低阶矩的公式如下[8]:

(4)

(5)

(6)

式(4)中:μ为图像颜色一阶矩即颜色的平均值,pij是图像中第j个像素的第i个颜色分量,N为道路图像的总像素个数;式(5)中:σ为图像颜色二阶矩即颜色的方差;式(6)中:s为图像颜色三阶矩即颜色的斜度.

2.2.3 道路图像纹理特征提取

由于路面状态受地面层温度、湿度及大气等多方面因素影响,路面反射图像充满了大量的中高频随机信号,具体表现在路面图像多为微弱纹理图像,较难建立可用于物理测量的关于各种路面状态的纹理模型.目前对路面纹理提取的方法有:灰度共生矩阵、Gabor小波变换等[9].由于灰度共生矩阵与Gabor小波变换描述纹理准确率相差不大,但灰度共生矩阵计算复杂度较Gabor小波变换低,检索速度快,所以本文选用灰度共生矩阵描述图像纹理特征[10].本文分别采集了干燥、积水、积雪、结冰这4类路面状态各20幅图像,随机从中提取了50个图像样本进行纹理特征参数的筛选.为消除方向性的影响,灰度共生矩阵取0 °、45 °、90 °、135 °四个方向的平均值,进行特征参数选取试验所得结果如表1所示.

表1 特征参数选取试验结果

由表1可以看出,选用单一特征参数对路面状态进行分类时,分类的结果不是很理想,而选用多种特征参数对路面状态进行分类时,分类效果较单种特征参数分类正确率有了提高,在多种特征参数中,能量、熵和方差的组合分类正确率达到95.6%.因此本文使用灰度纹理共生矩阵对路面图像的纹理进行提取时,选择能量、熵以及方差的组合进行描述.

2.2.4 分类器设计

经过以上两步选择HSI颜色空间中HM、HV、HS、IM、IV、IS、灰度纹理共生矩阵中的能量、熵以及方差组成的特征向量作为道路图像特征描述量.现有道路状态分类器设计研究中,人工神经网络(ANN)和支持向量机(SVM)是分类准确率较高的两种分类器[11].由于本文中所采集的路面图像较少,ANN的训练需要大量的数据样本以保证分类的正确性;而且本系统应用至实际道路时路面情况复杂多变,ANN泛化能力不如SVM,所以本文选择SVM作为分类器.SVM分类器是一种与学习算法相关的监督学习模型,当样本线性不可分而非线性可分的情况下,需通过非线性变换把学习样本变换到高维空间,使样本在高维空间是线性可分的.用核函数K(u,v)代替原来的点积(x·xi),核函数K(u,v)通过与其相联系的非线性变换把特征向量映射到高维特征空间,使样本成为线性可分的[12-15].常用的核函数有:径向基(RBF)核函数,线性(LINEAR)核函数,多项式(POLY)核函数,Sigmoid核函数.

设样本集合为{(xi,yi),i=1,2,…,n},其中xi为样本点,yi为四种路面状态类别,n为样本个数.

其中,样本点xi(i=1,2,…,n)定义为:

(7)

(8)

式(8)中:αi为每个约束条件对应的Lagrange乘子.最优分类函数为:

(9)

本文采用OpenCV中基于lib-SVM的工具箱对图像识别生成分类模型,lib-SVM对多类别分类为一对一法,该算法将一个k类问题转换为k(k-1)/2个二分类问题,利用SVM工具箱对各类路面状态分类的大概流程如下[16]:

(1)设置训练样本集.选取干燥、积水、积雪、结冰四种路面状态下的预处理后的道路图像,提取最优特征向量值组合的前一半作为训练样本集,后一半为测试样本集.

train_cells=[i=[:50] for i in cells] //前50组为训练样本

test_cells=[i=[50:]for i in cells] //后50组为测试样本

(2)设置SVM参数.利用svm_params更改变量参数,包括内核参数,SVM的类型,惩罚系数C等.

svm_params=dict(

kernel_type=cv2.SVM_RBF,//设置内核函数为径向基函数

svm_type=cv2.SVM_C_SVC,//设置SVM分类器类型为C-SVC

C=2.98) //设置惩罚系数,根据实际分类效果寻找最优系数

(3)训练SVM.

svm=cv2.SVM()

svm.train(trainData,responses,params=svm_params) //第一个为训练数据,第二个为分类结果,最后一个是SVM参数

svm.save(‘svm_data.dat’)

(4)利用这个SVM模型分类,调用predict函数实现分类

result=svm.predict_all(testData)

3 道路监测中心子系统

至此道路终端处理节点已完成了图像检测分类的工作,还需要将分类检测的结果以及检测图像发送至道路监控子中心的数据库中.道路监测中心子系统的上位机软件主要由图形用户界面、数据库组成,完成的功能有:与道路终端的通信,数据的存储、查询显示、结冰报警等.通信模块采用TCP/IP网络协议分级传输的方式,实现远距离数据传输.由终端先将数据上传至监控子中心的数据库中,监控子中心再将数据打包后上传至监控中心的数据库中,网络传输结构图如图9所示.上下位机的以太网通信是基于异步非阻塞Socket封装类中的函数实现的,图形用户界面软件完成对数据的解析、保存、实时的显示以及曲线的绘制.

图9 道路结冰检测网络传输结构图

为了实现对道路终端处理节点的工作状态进行实时监测,以及路面结冰状态的监测和预警功能,在Windows操作系统下Delphi编程环境中设计和开发道路结冰检测系统的图形用户界面,如图10所示.道路交通监控人员可以通过该软件对各个地区内的交通道路的结冰情况进行查看,当系统检测到道路出现结冰会弹出警报提醒交通监控人员对相关道路采取相应的应急措施,并提供路面温度变化曲线帮助工作人员进行分析对比.

图10 高速公路路面结冰检测图形用户界面图

4 结果分析

取干燥、积水、积雪、结冰状态下的路面图像各100幅,经过预处理之后的图像作为A组,未经过预处理的图像作为B组.每组提取每种路面状态图像前50幅的最优特征向量作为训练样本集,后50幅的最优特征向量作为测试集,测试特征提取时间、SVM训练时间、分类结果正确率、MSE误差值,结果见表2所示.经过分析可得出,特征提取速度上A组图像比B组图像提取时间短4.105 s,而且A组图像分类准确率相比较B组图像分类准确率高出7.7%.由此可得出经过路面图像预处理提高了分类识别的准确率以及分类识别速度.

表2 经预处理图像样本性能对比

5 结论

本文设计了基于OpenCV+Python的道路结冰检测系统,由终端采集路面温度以及图像,首先使用边缘检测和二值形态学结合的方式对图像进行分割,采用自适应小波去噪方法以提高图像识别的准确率,然后提取路面图像的特征值通过SVM分类器进行识别,最后识别结果通过以太网将路面图像以及检测结果以分级的方式发送至道路监控中心.该系统解决了传统依靠交通监控视频对路面状态识别时由于采集到的图像环境复杂、结冰信息提取不充分导致识别准确率低,以及监控中心计算机处理量庞大、处理速度慢的问题.该系统能够准确有效的对路面结冰状态进行识别,并通过以太网将信息发送至监控中心,为交通监控部门提供了实时科学决策的依据.

[1] Symous L,Perry A.Predicting road hazards cause by rain freezing rain and wet surfaces and rok of weather radar[J].Meteoro,1997(4):7-21.

[2] 谭舒亚,葛俊锋,叶 林,等.非接触式路面结冰探测技术研究进展[J].公路,2015(6):244-249.

[3] 张怀柱,姚林林,沈 扬,等.基于树莓派的农作物低空观测系统设计[J].吉林大学学报(信息科学版),2015,33(6):625-631.

[4] 于笃发,邵建华,张晶如.基于小波自适应阈值图像去噪方法的研究[J].计算机技术与发展,2013,23(8):250-253.

[5] 郭中华,李树庆,王 磊,等.自适应阈值的小波去噪改进算法研究[J].重庆邮电大学学报(自然科学版),2015,27(6):740-744.

[6] 刘瑞祯,于仕琪.OpenCV教程[M].北京:北京航空航天大学出版社,2007.

[7] 万 剑,赵 恺,王维锋.基于高维特征和RBF神经网络的湿滑道路图像判别方法[J].交通信息与安全,2013,31(2):32-35.

[8] Burges J C.A tutorial on support vector machines for pattern recognition[J].Data Mining and Knowledge Discovery,1998,2(2):121-167.

[9] 张光新,崔 扬,周泽魁.基于小波包分解的纹理图像去噪[J].华南理工大学学报(自然科学版),2005,33(3):31-33.

[10] 杨晓伟,郝志峰.支持向量机的算法设计与分析[M].北京:科学出版社,2013.

[11] 唐 钦.基于颜色和纹理特征的植物叶片识别方法研究[D].杭州:浙江大学,2015.

[12] 郑 红,李 钊,李 俊.灰度共生矩阵的快速实现和优化方法研究[J].仪器仪表学报,2012,33(11):2 509-2 515.

[13] 肖 靓.基于支持向量机的图像分类研究[D].上海:同济大学,2006.

[14] 田有文,郑鹏辉,许童羽,等.基于安卓的黄瓜叶部病害程度检测系统的研发[J].计算机工程与设计,2016,37(5):1 411-1 416.

[15] 陈 强,田 杰,黄海宁,等.基于统计和纹理特征的SAS图像SVM分割研究[J].仪器仪表学报,2013,34(6):1 413-1 420.

[16] 刘新宇,黄德启.基于SVM分类器的道路湿滑图像分类方法研究[J].武汉理工大学学报(交通科学与工程版),2011,35(4):784-787.

【责任编辑:蒋亚儒】

Design of road icing detection system based on OpenCV+Python

LI Qi, JI Yu-wei, WANG Zhi-peng, DOU Xuan

(College of Electrical and Information Engineering, Shaanxi University of Science & Technology, Xi′an 710021, China)

In view of the shortcomings of the road icing detection device based on video detection in China,including the complex road environment image and the inadequate information extraction,the recognition accuracy is low.A road icing detection system is designed.ROI is set up and the method of edge detection and two value morphology is used to segment the vehicle to obtain the image of the pavement.Adaptive wavelet denoising algorithm is used to pre-process the road image to improve the accuracy of image recognition.The three low order moments of H and I components in HSI color space and the combination of energy,entropy and variance in the gray level co-occurrence matrix is extracted as a feature vector.SVM classifier is used to identify the road image.The classification results are transmitted to the monitoring system by Ethernet.The computer monitoring system can storage,query and analysis the road icing information.Experimental result shows:The system can classify the dry,water,snow and icy roads accurately and effectively,it also can send image and classification result to monitoring system,provide data foundation for traffic management.

ice detection; image processing; OpenCV; adaptive wavelet denoising algorithm; Python

2016-11-04 基金项目:陕西省科技厅农业科技攻关计划项目(2015NY028); 西安市未央区科技计划项目(201305); 陕西科技大学博士科研启动基金项目(BJ13-15)

李 颀(1973-),女,陕西西安人,教授,博士,研究方向:工业自动化与智能控制

1000-5811(2017)02-0158-07

TP391.4

A

猜你喜欢
树莓结冰小波
通体结冰的球
构造Daubechies小波的一些注记
基于MATLAB的小波降噪研究
基于树莓派的骑行智能头盔设计
冬天,玻璃窗上为什么会结冰花?
基于树莓派的远程家居控制系统的设计
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
鱼缸结冰
响应面法优化红树莓酒发酵工艺
基于FPGA小波变换核的设计