赞
踩
摘 要
伴随着我国城镇化进程的加快,道路交通问题日趋突出,道路上的拥堵导致了道路上的安全隐患。在发达国家和发展中国家,不断增长的交通问题对人们的身体和生命都产生了很大的影响。因此,提升公路的容量是解决城市交通问题的最有效途径。所以,公路上的交通信息采集技术是影响 ITS(智能交通系统)智能程度的关键因素。
本论文设计了基于视觉的红绿灯自动识别系统,它是以计算机视觉为基础,对交通信号灯进行自动识别,它将获得的信号灯图像信息为基础,对图像进行预处理,运用图像处理技术,利用直方图均衡增强图像,提取图像目标区域,对图像进行二值化,利用HSV颜色分割,然后提取红绿灯形状,最后检测红绿灯位置,输出结果。可以在自然场景中,对交通信号灯的信息进行提取,并对其进行识别,为司机们提供了一个有效的参考。[lJ4]
关键词:红绿灯识别;机器视觉;图像处理
Abstract
With the acceleration of urbanization in China, road traffic problems are becoming increasingly prominent, and road congestion has led to safety hazards on the roads. In both developed and developing countries, the growing traffic problems have had a significant impact on people's bodies and lives. Therefore, increasing the capacity of highways is the most effective way to solve urban transportation problems. Therefore, the technology of collecting traffic information on highways is a key factor affecting the intelligence level of ITS. The key point of this paper is to conduct in.depth research on the traffic light Automatic identification system based on machine vision. It takes the obtained signal light image information as the basis, and uses image processing technology to extract the information of traffic lights in natural scenes, and identify it, providing an effective reference for drivers.
Key words: traffic light recognition; Machine vision; image processing
目 录
伴随着城镇化进程的加速和小轿车的广泛应用,城市道路上出现了大量的拥,导致了城市交通环境的恶化。在发达国家和发展中国家,不断恶化的交通问题对人们的身体和生命都产生了很大的影响。因此,提升公路的容量是解决城市交通问题的最有效途径。不过,不管是哪一个国家,都有自己的财力和发展空间。近年来,随着我国机动车保有量的不断增多和人类社会道路交通活动的日益密切,国内道路交通环境呈现出交通流量大、交通参与者类型多样化以及交通秩序混乱的发展趋势。因此,驾驶车辆行经道路交通路口时严格按红绿灯的指示信号进行有序通行显得尤为重要,是缓解交通拥堵、减少交通事故的有效手段。
正是在这样的大环境下,ITS(智能交通系统)这一新兴的高科技产物被认为是未来运输系统发展的必然趋势。ITS的发展离不开汽车、公路等各种数据的支持。所以,公路上的交通信息采集技术是影响ITS智能程度的关键因素。[lJ5] 在人类所能获得的一切资料里,眼睛是最重要的一部分。机器视觉[1]指的是利用计算机来模拟人眼获得信息的一门科学,它的工作方式是依靠摄像机来获得图像信息,之后将得到的信息发送到计算机的处理系统中,将图像信号转化为数字矩阵的形式,并利用不同的矩阵来展开相应的识别与判断[1]。机器视觉不但在工业领域[2],还在人脸识别、智能汽车、追踪定位等领域得到了广泛的应用。目前,关于ITS的研究已成为各个领域的热点[3]。
红绿灯的自动检测与识别既是汽车智能化的关键技术,也是国际上多个学科交叉的前沿热点问题,具有非常广泛的应用价值。但是,在实际应用中,对交通标志进行准确、快捷的检测,仍然存在着一系列亟待解决的问题,例如在气象条件较差的情况下,对于交通信号灯的识别效果不太良好,而且识别的速度需要进一步加强。在此基础上,本文针对红绿灯的自动识别问题,提出了一种基于计算机视觉技术的交通标志识别方法。
张珈铭[1]以交通信号灯的自动化探测为主要目的,以计算机视觉与图像处理技术为基础,通过采集实际环境下的交通工具的图像,并对其进行分析。本文[lJ6] 将为基于智能手机的辅助驾驶技术的发展开辟一条新的途径,也将为进一步开展道路交通信息的智能化获取奠定坚实的理论与试验依据。陈淅灿等人[lJ7] [2]对红绿灯的特征进行了分析,并根据红绿灯的特性,提出了一种利用多个红绿灯的显著度来进行红绿灯的识别新算法。乔允浩[3]对现有的交通信号灯识别算法进行了改进[lJ8] ,并结合时间序列的特征,研究了复杂交通场景、强干扰条件下的交通信号灯的检测和识别问题,从而提升了交通信号灯的识别精度和抗干扰能力。刘艳华[4]利用MATLAB/GUI(图形用户界面)设计了一个交通灯的信号识别系统,这个系统由GUI界面设计、图像预处理、BP(反向传播,backpropagation)神经网络设计组成。首先收集对象影像,并构建相应的资料库,然后对筛选出来的对象影像进行预处理,最终对资料库进行比对与判定,并输出辨识结果。
为了能够对两种类型的交通信号对象进行准确的探测,周臻浩[5]等人,提出并完善了一种深度学习的对象探测算法YOLOv4,从而获得YOLOv4.s和YOLOv4.m。YOLOv4.s从3级到4级,在减少漏检的前提下,进一步提升对多个目标的识别能力。基于YOLOv4.s的特征抽取网络和卷积模式,提出了YOLOv4.m算法,用深度可分卷积代替YOLOv4.s特征网络结构中的卷积神经网络,并利用MobileNetV3网络进行模型训练,以提取特征图。在保证总体探测准确率不下降的情况下,大幅度地减小了探测参数,从而提高了探测的效率。李琪[6]提出了一种能够在白天对红绿灯进行实时和稳定的检测和辨识的方法。同时,还对夜晚的交通信号灯的检测识别难度大,相关的研究较少,进行了一定的探讨与研究,并给出了一种实时检测的方法,将光晕给检测带来的难度转化为通过光晕的亮度逐渐变化的特征来验证检测的结果。
在多云、雾霾、黄昏等复杂环境下,信号源会受气象因素的影响,导致信号源的颜色发生畸变和分辨率降低。冯霞飞[7]采用了 Retinex的一种图像增强方法,在某种程度上还原并增强了图像的颜色,取得了良好的结果。郭朦[8]在对YOLOv5l进行改进的基础上,对YOLOv5l进行了改进,提高了对YOLOv5l的探测能力。宋永超、巨永锋[lJ9] [9]等人针对目前大部分交通灯的辨识方法并未充分顾及同一色彩下,同一地点、不同地点的交通灯之间的色彩差别,提出了一种离线辨识方法,并通过LARA、LISA等标准测试,取得了良好的辨识效果,其辨识准确率较高,能够达到真实交通灯辨识的实时需求。.汤新蔚[10]提出了一种以深度检测为基础,融合特征信道追踪为基础,结合道路级别的高准确率定位,实现了一种新型的交通灯辨识方法。本文提出的基于探测与追踪的红绿灯影像识别方法,可用于红绿灯影像的影像识别。相对于传统的基于模型的红绿灯检测法或者单个的深度学习算法,汤新蔚所研究的红绿灯检测技术在红绿灯检测中有着更高的准确率和效率。
柳胜超等[11]为解决红绿灯中小对象检测中出现的漏报、错误等问题,提出一种基于YOLOv3的红绿灯检测算法。利用一种新的基于多比例尺的红绿灯图像分割算法,并在红绿灯图像中引入四次降样本,实现红绿灯图像的四次降维,并进一步优化红绿灯图像边缘的卷积图像,使红绿灯图像更好地处理红绿灯图像,从而提升红绿灯图像小目标的识别精度。罗雯[12]为红绿灯的自动识别提供了一种新的思路,主要包括两个步骤:选择合适的目标,首先采用一种简便、高效的影像处理方式,从行车情景中抽取出红绿灯的候选区,再使用一种基于深度学习的神经网络对候选区内的红绿灯进行二次探测和辨识。谭思奇[13]在备选区域法的基础上,提出了一种新的交通信号灯检测和识别算法(DBA.FasterR.CNN),这一方法提高了网络对交通信号灯特征提取的能力,让它可以将注意力集中在图像中的交通信号灯上,进而降低了其它背景的影响,并可以提取到更加精确的交通信号灯的特征信息。
现有的基于深度数据的物体探测算法存在着计算复杂、无法满足实时性需求等问题。因此,崔灿[14]在此基础上,提出了一种以深度学习为基础的红绿灯检测和识别的方法,该方法首先通过一种图像处理的方式来确定红绿灯的候选区,然后通过一种深度学习的算法来对红绿灯的候选区进行识别。葛俊辉[15]为了改善红绿灯的检测处理,提出了一种级联匹配(classparallel)算法。在颜色空间中,分别对红绿灯和红绿灯的背景进行识别,采用级连匹配法实现红绿灯的精确定位。该方法可以很好地处理红绿灯设备的遮挡问题。楚婉艺、叶莹莹等人[lJ10] [16],提出了一种基于彩色分割与形态抽取的新型探测与辨识算法,该算法可有效地克服外界表面环境(如车辆灯光)的干扰,并根据交通信号灯图像与背景差异大的特性,从交通信号灯图像中抽取出一块黑屏,然后根据HSV彩色空间不容易受到光线的影响来辨识交通信号灯图像的颜色,并将其信息传送给MCU,根据传送的信息来调节蜂鸣器的工作频率,从而实现交通信号灯的功能。
NelsonH.C.Yung[17]和AndrewH.S.Lai[18]提出了一种基于视觉的自动检测闯红灯车辆方法。本文提出一种基于静态摄像头的交通违法行为检测新算法,利用静态摄像头跟踪交通流中的交通违法行为,实现了高精度、高稳定性的目标检测。Yun.ChungChung[19]等人提出的自动交通信号灯检测系统,主要是为智能交通系统而设计的,相机也为固定安装。它可以利用背景照片的生成来估算目前的光照强度,并对颜色模型和形态学操作进行模糊处理,从而获得交通信号灯候选区域。最后,以空间和时间信息为依据,包括区域比例、位置和信号灯转换时序,从而最终确定识别结果。该方法在不同光照条件下的交通信号灯识别方面展开了研究[lJ11] 。ZhangYue等人提取图像的亮度、颜色、blob和形状等特征并加以融合,提出了一个实时的智能汽车红灯和绿灯识别算法,在测试数据集中达到了85%的平均识别率[20]。RaouldeCharette等人主要采用模板匹配方法,将红绿灯分为圆形灯体、矩形框体以及矩形灯柱,设置权重,将匹配估值高的区域认定为交通灯。然后再判断颜色,确定信号灯状态,评测数据取自中国、法国和美国,该方法有较好的表现[21]。MarkP.Philipsen等人使用聚合通道特征的检测器,成功实现了基于学习的红绿灯识别,算法基于10个通道的特征,包括6个梯度直方图通道,1个无定向梯度强度通道,3个CIE.LUV颜色空间通道,使用正负样本训练AdaBoost分类器,最后对算法进行性能测试,得到了较好的AUC值[22]。
在智能交通系统发展过程中,对道路上的交通数据进行快速的抽取与辨识是一个十分重要的问题。本文对信号灯的智能提取展开了深入的探索,并将其作为一个核心内容,运用机器视觉、图像处理、模拟识别等方法,从图像预处理、特征判别与结果分析三个方面展开描述。[lJ12] 以Matlab为平台,基于图像识别技术,对信号红绿灯进行定位和颜色识别,实现红绿灯自动识别的同时,给出判断信号。
本文共有五章,各章节内容安排如下:
第一章,绪论。对红绿灯自动识别技术的背景及其意义进行了简单的阐述,分别介绍了各类红绿灯检测与识别方法的研究现状及优缺点,同时分析了当前红绿灯检测与识别技术的难点。
第二章,红绿灯图像预处理。介绍了红绿灯图像预处理的步骤流程,在研究基于颜色、形状、背板特征等红绿灯图像特征的基础上,引入红绿灯的空域尺度分布和位置分布特征进一步检测。
第三章,红绿灯自动识别的检测算法。针对红绿灯成像条件相对理想的简单情况,首先基于9维像素密度特征训练I级SVM,对红绿灯候选区域进行初步判别并快速删选干扰物;然后基于HOG特征训练Ⅱ级SVM,对I级SVM的判别结果进行精确判断。
第四章,系统的集成开发。以上研究成果为核心,利用matlab平台设计了GUI界面,设计了一个红绿灯检测与识别系统。
第五章,总结与展望。对本文的工作做全面的总结,详述本文算法或方案的优势和存在的问题,并针对存在的问题提出未来对于红绿灯自动检测和识别技术的研究方向。
图像预处理的根本目的就是要提取出图像中重要的信息,消除无关的信息,尽最大努力简化图片信息,然后将提取的信息进行识别匹配,达到预期目的。图像通常是JPEG格式的彩色图像,这样图片所占的空间往往很大,需要将其进行压缩处理,使其大小适应于计算机系统上的图像处理。为了方便处理,将彩色图像转换为灰度图像,这样图片的每一个像素点只需要占用一个字节,图像所占的存储空间变小。可是灰度转换后的图片仍然有噪声,这时就需要通过图像平滑处理消除噪声,使图片达到预期的效果,方便识别出其中有利信息
人眼可以感知到蓝色、绿色和红色这三种颜色,所以一般将这三种颜色称作三基色,只要将它们的比例稍作变换,就可以搭配出一种新的颜色。在计算机视觉中就采用了这种方法,每一幅图片都是由一个一个像素点组成,每一个像素点都包含了蓝、绿、红这三种颜色的信息,每一种颜色都由0~255表示,0代表了纯黑色,255代表了纯白色,一幅图像的信息由此构成。常见的颜色搭配如表2.1所示。
表2.1 常见的颜色搭配
颜色 | 红色 | 绿色 | 蓝色 |
黑色 | 0 | 0 | 0 |
白色 | 255 | 255 | 255 |
蓝色 | 0 | 0 | 255 |
绿色 | 0 | 255 | 0 |
红色 | 255 | 0 | 0 |
黄色 | 255 | 255 | 0 |
图像的灰度转换就是将图像的色彩信息去除,只保留亮度值,用来表示黑白像素之间的区分程度。色彩空间类型之间是可以相互转换的,但是灰度图像却不能转换为彩色图像,因为彩色图像在转换为灰度图像时,红、蓝、绿之间的颜色比例已经没有了,而且这些比例没有了就找不回来了。
灰度变换主要针对独立的像素点进行处理,通过改变原始图像数据所占据的灰度范围而使图像在视觉上得到良好的改变。如果选择的灰度变换函数不同,即使是同一图像也会得到不同的结果。因此,选择灰度变换函数应该根据图像的性质和处理的目的来决定。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻,容易识别。使用加权均值法对图像进行灰度化,即灰度化后按照一定的权值,对R、G、B的值加权均值法。如公式(2.1)所示。
R=G=B=(ω
RR+ωGG+ωBB)/3 (2.1)
ωRωGωB分别为R,G,B的权值,取不同的值形成不同的灰度图像。由于人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,因此使ωR>ωG>ωB将得到较易识别的灰度图像。当ωR=0.299,ωG=0.587,ωB=0.114得到的灰度图像效果最好。
图像二值化是将灰度图像转换为二值图像(黑白图像)的过程。可以利用阈值对图像进行二值化。首先需要确定一个阈值,将大于该阈值的像素值设置为255,小于该阈值的像素设置为0。处理后的图像只有两个像素值,0和255,这就是黑白颜色值,这样灰度图像就被转换为二值图像(黑白图像)。图像二值化主要用来提取图像中显著信息。下面介绍三种图像二值化的方法,并对其进行比较,分别是简单阈值法、自适应阈值法、Otsu二值化。
简单阈值法就是手动选择阈值T,将所有大于该阈值的像素设置为255,所有小于或者等于T的像素设置为0。
在简单阈值法中,会将全局阈值应用于图像中的所有像素。另外,全局阈值是已知的。如果要批量处理大量图像,并且根据图像类型和强度变化调整阈值,那么简单阈值法的效果不太理想。
自适应阈值法可以对具有不同像素强度的灰度图像进行二值化,因为单一阈值无法从图像中提取信息。在自适应阈值中,算法利用像素周围的区域确定像素阈值,同一图像中不同区域将获得不同阈值。当图像的像素强度发生变化时,自适应阈值法往往比简单阈值法的效果更好。
自适应阈值法(adaptiveThreshold),它的思想不是计算图像的全局阈值,而是根据图像不同区域亮度分布,计算其局部阈值,对于图像不同区域,能够自适应计算不同的阈值,因此被称为自适应阈值法(其实就是局部阈值法)。这种方法能够保证图像中各个像素的阈值会随着其周围邻域像素的变化而变化。
这样做的好处:
1.每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的;
2.亮度较高的图像区域的二值化阈值通常会较高,而亮度低的图像区域的二值化阈值则会相适应的变小;
3.不同亮度、对比度、纹理的局部图像区域将会拥有相对应的局部二值化阈值。
自适应阈值化处理中确定局部阈值的思路是,计算该像素其邻域(局部)的均值、中值、高斯加权平均(高斯滤波)来确定阈值。比这个阈值大,该位置像素置为255,比这个阈值小,则置为255,如此就实现了局部阈值分割。
选取好阈值之后,需要分配阈值权重,因为图像都是连续的,越靠近待处理位置的点关系越密切,越远离的点关系越疏远。因此,加权平均更合理,距离越近的点权重越大,距离越远的点权重越小。如图2.1、2.2所示红绿灯图像经过二值化处理后的效果。
图2.1 红绿灯原始图像
图2.2 高斯均值自适应阈值法的二值化图像
Otsu图像二值化是一种经典的自动阈值选择方法,它能够根据图像的直方图自动确定最佳阈值,将图像转换为二值图像。Otsu方法的原理基于最小化图像的内类方差或最大化类间方差的思想。
Otsu图像二值化的步骤如下:
1.计算图像的直方图:首先,对灰度图像进行直方图统计,统计每个灰度级别的像素数量。
2.计算类内方差:接下来,对不同的阈值进行循环遍历,根据当前阈值将图像分为两个类别:前景和背景。分别计算前景和背景的像素数量、像素平均灰度和像素方差。然后,根据这些值计算类内方差,作为该阈值的度量。
3.寻找最佳阈值:循环结束后,找到使类内方差最小的阈值,该阈值将图像分割为前景和背景两个类别。类内方差最小意味着同一类别内部像素的灰度相似性最高。
4.生成二值图像:根据得到的最佳阈值,将原始图像转换为二值图像,将大于或等于阈值的像素设置为前景,小于阈值的像素设置为背景。
Otsu方法的优势在于它能够自适应地选择阈值,无需用户提供先验知识或手动调整阈值。它适用于各种类型的图像,并且通常能够产生比固定阈值的方法更好的二值化结果。
这就是Otsu图像二值化的基本原理。通过计算图像的灰度直方图和类内方差,Otsu方法能够自动选择最佳阈值将图像转换为二值形式。如图2.3所示Otsu法处理后的二值化图像。
图2.3 Otsu法的二值化图像
图像去噪也叫做图像的模糊处理,它是图像增强的一种处理技术。图像平滑的主要目的就是在尽量保留原图的信息,去除其中的噪声,降低图片细节层次信息。在图像处理中,使用最广泛的平滑处理工具就是滤波器,通过调节其中参数,达到不同的降噪效果。本课题介绍三种常见的滤波器进行比较,分别均值滤波、中值滤波和高斯滤波。
均值滤波器也叫做低通滤波器,顾名思义,它是将图像中每一个像素点都当成滤波核的中心,计算所有像素的平均值,然后是核心像素值等于这个计算的平均值。如图2.1所示均值滤波计算过程。
图2.1 均值滤波计算过程
中值滤波器它的适用原理跟均值滤波器差不多,不同之处在于两种滤波器计算像素的方式不同。中值滤波不是计算像素的平均值,而是将所有像素值进行排序,取最中间的像素,赋值给像素核的中心。如图2.2中值滤波计算过程。
图2.2 中值滤波计算过程
最后介绍的是高斯滤波,也叫做高斯模糊或者高斯平滑,这是目前在图像领域所应用的最广泛的平滑处理算法。它可以最大限度的降低图像噪声,去除不重要信息的同时保留更多的图像信息。均值滤波在进行图像去噪处理时,像素核心中每一个像素都一样重要,所以只需要进行取平均值就可以,但是在高斯滤波中,越靠近滤波核中心像素的权重越重要,越远离就越小,所以就需要对像素进行卷积计算,滤波核中的像素跟卷积核进行卷积计算,最后将结果传递给滤波核中心。如图2.3所示高斯滤波计算过程。
图2.3 高斯滤波计算过程
红绿灯颜色分割常在RGB、HSV、HIS、YCbCr、LAB等颜色空间下进行,且都能取得一定的分割效果。事实上,红绿灯是一种具有确定颜色的自发光体,其色度不受外界光照影响。基于此性质,本文选取三个通道相互独立、对光照具有较好鲁棒性的HSV色彩空间进行红绿灯图像颜色特征提取。HSV空间模型如图2.4所示,其中色度H、饱和度S和亮度V的阈值是决定提取效率和效果的关键参数。
图2.4 HSV颜色空间模型
为了获得HSV颜色空间的图像,通常需要对RGB空间图像进行转换,转换公式如下所示,然后查询颜色模糊范围表确定阈值。
Vmax=maxR,G,B,Vmin=minR,G,B
H=60×R-GVmax-Vmin+240,Vmax=B60×B-RVmax-Vmin+120,Vmax=G60×G-BVmax-Vmin+360,Vmax=&R&&60×G-BVmax-Vmin+240,Vmax=R0,Vmax=Vmin
s=1-VminVmax0,otherwise
V=Vmax
本文为了获得准确的红绿灯图像像素H通道阈值,以200幅红灯和绿灯的前景图像为素材,借用Matlab分离HSV三通道,分别计算所有前景像素H通道值的分布情况,分布图如图2.5所示。
(a)红灯像素H通道分布图 (b)绿灯像素H通道分布图
图2.5 H通道概率统计
(a)原图 (b)阈值分割结果
图2.6 HSV颜色空间阈值分割效果
HSV颜色空间中色度与亮度独立,阈值分割时可以降低光线明暗的干扰,虽然图像从RGB颜色空间转换到HSV空间会有时间消耗,但对系统的整体影响不大,适合交通场景下红绿灯图像的分割。如图2.6所示。
红绿灯候选区域提取是进行红绿灯识别的前提。本节着重研究红绿灯图像的颜色特征分布规律和几何形状特征变化规律,并在此基础上设计一种基于颜色特征分割和几何形状特征过滤的候选区域提取算法。
如图2.6所示,在基于HSV颜色空间转换后的H阈值分割后,图像中大部分的非红绿灯像素区域被过滤掉,但仍有较多与红绿灯颜色相近的伪红绿灯区域被保留下来,如汽车制动灯、红灯笼、红色字体等。每个国家对红绿灯光源的形状都有严格的标准,所以在颜色分割过程之后,使用形状特征进一步过滤伪红绿灯区域。
(1)形状特征提取与过滤
首先,要获取图像的连通区域,并标记每一个独立的连通区域,获取其最小外接矩形。但在某些情况下,如图2.7所示因方向指示灯的“箭头”和“箭杆”之间有空隙,特别是当汽车靠近红绿灯时,部分红绿灯图像“箭头”和“箭杆”并不连通。
图2.7 方向指示灯图像获取最小外接矩形
为了避免不连通的红绿灯图像对形状特征检测造成影响,甚至导致红绿灯漏检,我们发现如图2.7所示,在获取最小外接矩形时总是存在“箭头”对应的最小外接矩形(蓝色)与“箭杆”对应的最小外接矩形(红色)相交的部分,且求取两外接矩形的并集像素区域的最小外接矩形(黄色)即为红绿灯像素区域的最小外接矩形,通过此方法对不连通的红绿灯图像进行处理,可以准确地提取箭头红绿灯的最小外接矩形。
接下来,利用几何形状特征过滤掉伪红绿灯区域,常用的有高宽比和轮廓像素密度特征,计算过程如式3.2所示:
Rhw=Rh/Rwρ=ARh×Rw
(3-2)
其中Rh
是最小外接矩形的高度,Rw
是最小外接矩形的宽度,A是轮廓的区域面积,由于红绿灯的最小外接矩形近似为正方形,当取0.8<Rhw
<1.2时,0.5< ρ
<1对示例图 像进行几何形状过滤效果如图2.8所示。
(a)日间原图 (b)颜色分割结果
(c)几何形状过滤效果
图2.8 几何形状过滤效果示例
由图2.8(c)所示,通过以上提取的两个形状特征,可以很好的保留红绿灯区域,并过滤掉大部分的伪红绿灯区域。但在环境复杂的情况下,仅仅通过外接矩形长宽比、像素密度等几何形状特征过滤还是会保留较多伪红绿灯区域,所以还需要引入其它有效特征进一步过滤。
(2)夜间连通区域获取
特别地,对如图2.9所示夜间交通红绿灯图像呈现光晕的情况,很难直接获取红绿灯的连通区域,无法进行几何形状过滤,反而光晕中的孔洞是红绿灯灯体,因此本文提出使用包围零点筛选法去光晕。
(a)夜晚光晕原图1 (b)夜晚光晕原图2
图2.9 夜晚成像光晕图
首先,对夜间颜色分割后的图像进行连通区域标记,获得彼此独立的连通区域,如图2.10(a)所示光晕被标记为连通区域(图2.10)为使打印效果清晰图像分割后经过了取反处理)。然后统计连通区域的空洞大小即零点数:对某一连通区域,从连通区域一端的第一行开始,遍历每个像素点,保存该行中像素值为零的数量记为Zi
。然后遍历下一行,直到遍历完整个连通区域,将所有像素值为零的数量求和可得孔洞像素个数记为Z。
(a)颜色分割效果图
(b)包围零点筛选结果 (c)外接矩形局部取反效果图
图2.10 去光晕效果图
由图2.10(c)可见孔洞(即红绿灯灯体)已经被提取出来,同时引入了外接矩形和光晕连通区域的差集干扰,不过,紧接着进行上文所述几何形状过滤,便可以完全剔除掉差集干扰,获得更准确的待定区域图像。
3 红绿灯自动识别的检测算法
在红绿灯候选区域提取的基础上,本章主要针对红绿灯成像条件相对理想的简单情况(红绿灯未被遮挡、无表面脏污或灯珠破损不亮等局部缺陷,背板未被遮挡且相对清晰,不存在与红绿灯具有相似颜色、形状和背板轮廓的强干扰),设计一种基于两级SVM的静态红绿灯识别算法,为后续的复杂情况研究奠定基础。算法流程如图3.1所示。
图3.1 红绿灯识别算法流程
在实际交通场景中,可能存在大量颜色特征和几何形状特征都符合红绿灯条件的干扰,而真实红绿灯图像数量仅占少数。为了快速滤除大部分干扰,本文对各指向箭头灯、圆形灯和叉形灯的几何形状进行了深入剖析,发现不同类型红绿灯的点亮区域的像素点具有各自的分布规律。为此,本文将二值模式下的红绿灯图像平均分成B1×B2个矩形子块。通过计算每一个矩形子块区间内的红绿灯前景像素占比,定义了一种新的低维特征。其中,B1和B2的取值决定了最终的分类效果。通过大量测试发现,当B1和B2都取值为3时分类效果最优,于是我们将自定义的低维特征命名为9维像素密度特征。
然而,很多情况下红绿灯外接矩形的宽和高并不能进行3等均分。针对此类情况,常规做法是对图像进行大小归一化或进行边界扩充,使得红绿灯图像外接矩形的宽和高为3的倍数。考虑到大小归一化操作的耗时成本,本文采用边界扩充方法使得红绿灯外接矩形的宽和高为3的倍数后再进行3等均分。
9维像素密度特征提取过程如图4.2所示,提取步骤如下:
步骤一:计算Φ3中每一个候选区域Φ3 (i)的外接矩形Rect3 (i),并判断矩形宽度w3 (i)和高度h3 (i)能否进行 3 等均分,若不能则进行边界扩充。然后基于w3 (i)和h3 (i)的 3 等均分比例,将图像分割成 3×3 个矩形子块Rect3 (x,y),其中x,y∈{0,1,2}。
步骤二:根据公式(3.1)计算各矩形子块的像素密度,并将其归一化为一维向量。其中,p(u,v)表示坐标(u,v)处的像素灰度值。
ρx,y=0.035×p(u,v)/[w3i×h3i]
(3.1)
步骤三:基于
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。