CN104778454B - 一种基于亮度递减验证的夜间车辆尾灯提取方法 - Google Patents

一种基于亮度递减验证的夜间车辆尾灯提取方法 Download PDF

Info

Publication number
CN104778454B
CN104778454B CN201510171979.3A CN201510171979A CN104778454B CN 104778454 B CN104778454 B CN 104778454B CN 201510171979 A CN201510171979 A CN 201510171979A CN 104778454 B CN104778454 B CN 104778454B
Authority
CN
China
Prior art keywords
car light
layer
layers
innerrect
rectangle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201510171979.3A
Other languages
English (en)
Other versions
CN104778454A (zh
Inventor
徐向华
张骏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201510171979.3A priority Critical patent/CN104778454B/zh
Publication of CN104778454A publication Critical patent/CN104778454A/zh
Application granted granted Critical
Publication of CN104778454B publication Critical patent/CN104778454B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明提出了一种基于亮度递减验证的夜间车辆尾灯提取方法。本发明首先对图像进行ROI分割和尾灯宽泛阈值过滤等预处理,接着对预处理后的图像进行高亮白色区域提取,并进行长宽比等约束过滤,得到图像中的疑似车灯对象区域;然后,确定每个疑似尾灯对象的光晕范围并进行层次拓展,得到准确覆盖尾灯光晕区域的层次结构图;最后,对光晕的层次结构图进行亮度递减验证计算,保留验证计算通过比例高的车灯对象,得到可信度高的车灯对象。该方法适用于基于图像的夜间车辆检测系统,有很好的尾灯形态适应性和颜色适应性,提高了基于尾灯的夜间车辆检测方法的检测率和鲁棒性。本发明可用于自动驾驶和智能交通领域的夜间车辆检测算法。

Description

一种基于亮度递减验证的夜间车辆尾灯提取方法
技术领域
本发明属于基于计算机单目视觉的智能车(Intelligent Vehicle)领域,特别涉及一种基于亮度递减验证的夜间车辆尾灯提取方法。
背景技术
夜间车辆检测可以被应用于自动驾驶汽车,预警系统等。基于计算机视觉的夜间车辆识别以单目摄像头的实时视频作为输入,对前方车辆进行识别并判断车辆状态等。在车载的夜间前方车辆检测中,尾灯是夜间道路上车辆的唯一明显特征,因此,尾灯检测是夜间车辆检测方法的关键。
车辆尾灯提取方法主要分为三类:基于颜色阈值过滤的方法、基于亮度和尾灯形态过滤的方法和基于机器学习的方法。
基于颜色阈值过滤的方法主要依据车辆尾灯“类似红色,亮度较高”等先验特征,通过经验阈值过滤提取符合阈值范围的像素区域,接着通过对过滤结果进行连通域查找等步骤提取尾灯。此类方法计算量较小,实时性好。但是,固定颜色阈值过滤的检测方法易受环境光照、摄像头参数等影响,在复杂道路环境中,检测率较低或不稳定。
基于亮度和尾灯形态过滤的方法先依据亮度信息来过滤提取图像高亮区域,再通过尾灯形态过滤干扰对象,最后得到尾灯对象。此类方法不受图像颜色差异影响,算法的颜色适应性较好。该方法一般按照类似圆形进行形状过滤排除其他形态的干扰,而车辆尾灯形态还有其他很多形状,并且刹车、转向等行为也会影响同一个尾灯的形状特点,因此,这类方法对于车辆尾灯的形态适应性较弱,影响到算法的鲁棒性。
基于机器学习的尾灯提取方法通过建立大量尾灯样本库,构建尾灯的描述特征,通过训练检测模型实现尾灯检测。但是,尾灯的纹理不明显、轮廓特征变化大。目前,缺少一种描述能力强的特征来描述尾灯。因此,此类方法的检测效果较差,而且,由于计算复杂度高,通常实时性难以保证。
发明内容
针对上述车辆尾灯检测方法存在的问题,本发明提出了一种基于亮度递减验证的夜间车辆尾灯提取方法。首先对车灯图像进行感兴趣区域(ROI)分割、宽泛阈值过滤,提取白色高亮区域,依据高亮区域的外接矩形(记内矩形)的形态,对高亮区域进行初步过滤,得到疑似车灯对象。在假设验证过程中,本发明首先对疑似车灯对象进行内矩形拓展,得到疑似对象光晕区域的大致范围;接着基于车灯白色区域边缘向外不规则的层层拓展,从而对光晕区域进行精确覆盖;然后,基于“越远离白光区域的光晕点亮度值越低”的事实对疑似车灯对象的光晕区域的亮度分布进行验证,得到可信度较高的车灯对象。
本发明所采用的技术方案包括如下步骤:
步骤1:图像预处理,以原始图像imgSrc为输入,得到经过感兴趣区域分割和宽泛阈值过滤后的图像imgRGBfilter
步骤2:搜索高亮区域得到疑似车灯对象区域;
步骤3:对疑似车灯区域的内矩形拓展得到车灯光晕区域;
步骤4:层次拓展白色区域边界得到疑似车灯的光晕区域及其层次结构;
步骤5:对光晕区域层次结构进行亮度递减验证。
步骤1所述的图像预处理具体如下:
1-1、感兴趣区域分割;
对原始图像imgSrc进行ROI分割,得到分割图像imgROI
1-2、宽泛阈值过滤;
对分割图像imgROI采用宽泛阈值进行过滤,得到阈值过滤后的过滤图像imgRGBfilter
所述的宽泛阈值通过大量采样统计得到;具体的对不同摄像头在不同场景下拍摄的视频中车尾灯光晕像素点的RGB值做采样;采样包括通常状态下尾灯和特殊状态下的尾灯,特殊状态包括刹车状态和转向灯状态;统计光晕像素点的R,G,B取值分布,从而得出车尾灯光晕像素点的RGB值满足公式(1)中不等式共同确定的宽泛阈值约束;使用该宽泛阈值约束不等式组过滤分割图像imgROI,得到过滤后的过滤图像imgRGBfilter
(公式1)。
步骤2所述的搜索高亮区域得到疑似车灯对象区域具体如下:
2-1、搜索图中高亮区域;
搜索过滤图像imgRGBfilter中白色像素点,白色像素点的过滤阈值设定为245;通过过滤阈值对过滤图像imgRGBfilter进行处理,得到处理后的灰度图imgGrey;将灰度图imgGrey再进行二值化处理得到二值化图像imgBin,即将灰度图imgGrey中像素值高于245的像素点赋值为1,低于245的像素点赋值为0,产生二值化图像imgBin;搜索二值化图像imgBin中的连通区域,得到白色像素点连通区域的集合comps,假设连通区域的个数为n,则comps=[comp1,comp2,…,compn];计算comps中每一个连通域compi的外边界,得到一个外边界集合,该外边界集合即为所有高亮白色区域的轮廓集合,记contours,contours=[contour1,contour2,…,contourn];对contours中每一个元素contouri进行外接矩形计算,计算后得到每一个高亮区域轮廓的外接矩形,用一个集合储存称之为“内矩形”集合,记innerRects,innerRects=[innerRect1,innerRect2,…,innerRectn];
2-2、通过形态过滤内矩形,对疑似车灯对象进行筛选;
以内矩形集合innerRects为输入,对每一个内矩形对象innerRecti进行筛选,通过尾灯的几何先验特征约束条件过滤去除内矩形集合innerRects中明显不满足要求的元素,得到筛选后的内矩形集合;由于内矩形集合innerRects中的元素和contours中的元素是一一对应的,因此对内矩形集合innerRects进行过滤的同时外边界集合contours中的元素也被相应筛选;设一个内矩形的面积为SinnerRect,宽和高分别为WinnerRect和HinnerRect,阈值含义和数值设置如表1所示;内矩形初步过滤的规则定义如公式(2)所示:
SinnerRect>Thremin_area
HinnerRect≥Thremin_height
WinnerRect≥Thremin_width
公式(2)
表1阈值含义和数值设置表
阈值变量 阈值含义 取值
Thremin_area 内矩形面积下限 17
Thremin_height 内矩形高下限 3
Thremin_width 内矩形宽下限 3
Thremin_h_over_w 高宽比下限 5
Thremin_w_over_h 宽高比下限 5
公式(2)所示的约束对所有疑似车灯对象的内矩形进行了外形过滤,去掉面积过小的疑似车灯对象、高度太小或者宽度太小的疑似车灯对象、宽高比不满足阈值规定范围的疑似车灯对象;假设过滤之后,满足条件的内矩形个数为n_hg,则过滤之后得到满足条件的内矩形集合innerRects=[innerRect1,innerRect2,…,innerRectn_hg],与内矩形集合innerRects元素一一对应的高亮区域轮廓集合contours=[contour1,contour2,…,contourn_hg]。
步骤3所述的对疑似车灯区域的内矩形拓展得到车灯光晕区域具体如下
以内矩形集合innerRects为输入,对其中每一个元素innerRecti,按规则拓展得到包围该疑似车灯光晕区域大致范围的矩形,称为“外矩形”;输出结果同样用一个集合记录,记outerRects;outerRects=[outerRect1,outerRect2,…,outerRectn_hg],其中每一个元素都代表一个外矩形对象outerRecti;所述的outerRecti基本包含了尾灯的绝大多数光晕点;
外矩形outerRecti的计算如下:
以innerRecti的矩形中心为固定点,将innerRect的左右两侧边界向左和向右分别拉伸一个内矩形的宽度WinnerRect,同时,将内矩形innerRect的上下边界向上和向下分别拉伸一个内矩形的高度HinnerRect;具体地,XouterRect和YouterRect分别表示一个疑似车灯对象外矩形的X坐标和Y坐标,XinnerRect和YinnerRect表示其内矩形的X坐标和Y轴坐标,HouterRect和WouterRect表示外矩形的高和宽;如公式(3)所示,通过内矩形计算得到相对应的外矩形;
XouterRect=XinnerRect-WinnerRect
YouterRect=YinnerRect-HinnerRect
HouterRect=3HinnerRect
WouterRect=3HinnerRect (公式3)。
步骤4所述的层次拓展白色区域边界得到疑似车灯的光晕区域及其层次结构,具体如下:
以高亮白色区域的轮廓集合contours和外矩形集合outerRects为输入,输出为保存所有元素的光晕轮廓的集合Setlayers以及保存所有轮廓层数上限集合Setnlayer;由于contours中元素与outerRects是一一对应的,基于集合内每一个元素的高亮区域轮廓和外矩形,能够计算获得该对象的光晕层次轮廓结构和层数上限;其中,Setlayers=[layers1,layers2,…,layersn_hg],Setnlayer=[Nlayers1,Nlayers2,…,Nlayersn_hg],Setlayers和Setnlayer的个数与contours、outerRects中的一致,且其中的元素也一一对应;
4-1、确定拓展层数上限;
计算需要拓展的层数上限,记Nlayers;拓展层数多少根据车灯的大小决定;计算公式如公式4,其中Hinner表示内矩形的高,Winner表示内矩形的宽;通过实际观察,近处较大的车灯区域所需要的层数最多14层即可,因此最大拓展层数14;
Nlayers=min{Hinner,Winner,14} (公式4)
4-2、层次拓展方法
层次拓展方法的输入为外矩形集合outerRects、高亮区域轮廓集合contours和拓展层数上限集合Setnlayer;每次处理集合中对应的三个元素(outerRecti,contouri,Nlayersi),得到三个元素的光晕层次结构,记layers;其中,outerRecti表示该疑似车灯对象的外矩形,contouri表示该对象的中央白色高亮区域的轮廓点集合,Nlayersi表示该对象层数上限;
对于一个疑似车灯对象的层次拓展方法描述如下:
Step 1:对光晕层次结构layers中的每一个元素进行初始化,即layeri={},其中i表示从0到Nlayersi-1;
Step 2:对外矩形outerRecti中的每一个未迭代的像素点作迭代;判断该像素点是否在contouri内部,若在contouri内部,重复Step 2;否则前进至Step 3;
Step 3:计算Step 2所述的不在contouri内部的该像素点到contouri的最短距离,记dis;所述的最短距离不是指该像素点到contouri中心点的距离,而是指该像素点到contouri上的点的就近距离;
Step 4:根据距离值dis,并以1为间隔将该像素点分类到对应的层中,具体而言,分类为第i层的点,将自身坐标信息都存储至该层的数据对象layeri中,然后返回Step 2;
所述的像素点分类具体如下dis位于区间[-1,0)的点分类到第0层layer0,[-2,-1)的点分类到第1层layer1,[-3,-2)的点分类到第2层layer2,以此类推,所述的层数小于拓展层数上限Nlayers
Step 5:判断是否已经完成迭代,若是,则结束;否则,返回Step 2继续迭代过程;
通过层次拓展后,计算得到当前疑似车灯对象的光晕结构,对于光晕结构中的每个元素,layers中保存了被覆盖的该车灯的每一层光晕层信息,layers=[layer0,layer2,……,layerk],k=Nlayers–1;layeri中包含了在该层上的所有光晕像素点的坐标,即layeri是点的集合,layers是该疑似车灯对象中所有光晕层layeri的集合。
步骤5所述的对光晕区域层次结构进行亮度递减验证具体如下:
以过滤图像imgRGBfilter和光晕结构集合Setlayers作为输入,对光晕结构集合Setlayers中每一个元素进行处理,输出每一个疑似车灯对象的验证结果位图imgVerify和通过率Ppass;然后对通过率Ppass进行筛选,通过率Ppass较低的疑似车灯对象删除,得到置信度较高的车灯对象;
5-1、使用亮度递减验证得到当前疑似车灯对象的通过率;
对过滤图像imgRGBfilter进行处理,具体的基于“越远离白光区域的光晕点亮度值越低”的先验规则,通过亮度递减验证每个疑似车灯对象的层次结构layers中存储的光晕点的亮度分布是否符合上述先验规则;
验证规则如下:
对于任意一个疑似车灯对象的第i层layeri上的点(x,y),其周围8个方向包围它的点中R通道值最小的点minP(xmin,ymin)一定是在第i+1层或者更高的层数上;
单个疑似车灯对象的亮度递减验证的输入为过滤图像imgRGBfilter、光晕结构layers;输出为结果位图imgVerify和验证通过率Ppass;由于高亮区域轮廓集合contours、外矩形集合outerRects和保存所有元素的光晕轮廓的集合Setlayers这三个数据结构中,相同下标的数据均对应同一个疑似车灯对象;因此将同一个对象的三个数据合成一个向量结构表示对应的疑似车灯对象;记疑似车灯对象为tail,则tail=(wPoints,layers,Nlayers),其中wPoint表示该疑似车灯对象所有白色光亮区域内的点的集合;结果位图imgVerify是一个二值图,图中值为0的像素点表示该点未通过验证,值为1的点表示通过验证的点;具体验证步骤描述如下:
Step 6:初始化,清空搜索集合SSearch,将白色区域的点tail.wPoints加入搜索集合SSearch ,并将结果位图imgVerify中的所有点赋值为零;
Step 7:对疑似车灯对象tail第i层光晕层对象layeri上每一个像素点迭代,i从0开始;若8邻域内的最小值点minP∈SSearch,则代表当前点验证失败;否则该点验证通过,且通过计数Cpass加1,并对结果位图imgVerify中坐标相同的点赋值为1;在该层的像素点都验证之后,将layeri上的像素点都加入SSearch
Step 8:反复执行Step 7,直至最后一层即第Nlayers-1层的像素点都验证完后,前进至Step 9;
Step 9:计算通过率Ppass,即计算通过计数Cpass占layers上的点的比例;
5-2、删除通过率较低的疑似车灯对象;
对每个疑似车灯对象进行验证,滤除通过率小于30%的疑似车灯对象,最终获得可信度高的车灯对象;通过对疑似车灯对象进行跟踪以及车灯对匹配,完成夜间车辆检测。
与现有技术相比,本发明的有益效果是:
1.在预处理时,不使用滤波手段,只通过感兴趣分割,不会对车灯的像素区域造成破坏,能够更好地检测小车灯和较远距离车辆的车灯。
2.由于采用宽泛阈值过滤,算法能够检测特殊状态下的车灯,如转向灯状态,以及其他颜色略有差异的车灯,有较好的颜色适应性。
3.本发明提出的根据白色区域边缘向外层层拓展覆盖光晕的方法,具有良好的形状适应性,能够适应各种形状的车灯以及转向,刹车灯等各类轮廓形态的车灯。
4.通过亮度递减验证的方法对车灯光晕区域进行验证,能够很好地区分车灯对象和非车灯对象,使得尾灯提取方法整体具有很好的检测率;并且,算法计算复杂度低,有很好的实时性。
附图说明
图1为本发明进行夜间车辆车灯提取的系统流程图。
图2为源图像的感兴趣区域分割效果图。
图3为阈值过滤前后图像。
图4为白色区域提取效果图。
图5为白色区域初步过滤后的效果图。
图6为内矩形拓展效果图。
图7为尾灯层次拓展效果图。
图8为疑似对象亮度递减验证通过率统计图。
具体实施方式
下面结合附图对本发明进一步说明。
如图1所示,一种基于亮度递减验证的夜间车辆尾灯提取方法,具体步骤如下:
步骤1:图像预处理。
以原始图像imgSrc为输入,得到经过感兴趣区域分割和宽泛阈值过滤后的图像imgRGBfilter
1-1、感兴趣区域分割。
对原始图像imgSrc进行ROI(region of interest,感兴趣区域)分割。ROI分割指定了原始图像imgSrc中一定范围的图像为检测和计算范围,得到分割图像imgROI。原始图像imgSrc的上方、下方、左侧、右侧的无关区域被去除,图2中央矩形表示得到的分割图像imgROI
1-2、宽泛阈值过滤。
对分割图像imgROI采用宽泛阈值进行过滤,得到阈值过滤后的过滤图像imgRGBfilter
所述的宽泛阈值通过大量采样统计得到;具体的对不同摄像头在不同场景下拍摄的视频中车尾灯光晕像素点的RGB值做采样;采样包括通常状态下尾灯和特殊状态下的尾灯,特殊状态包括刹车状态和转向灯状态。统计光晕像素点的R,G,B取值分布,从而得出车尾灯光晕像素点的RGB值满足公式(1)中不等式共同确定的宽泛阈值约束。使用该宽泛阈值约束不等式组过滤分割图像imgROI,得到过滤后的过滤图像imgRGBfilter。过滤之后,分割图像imgROI中偏红色和黄色的点被留下。宽泛阈值过滤效果如图3所示。
(公式1)
步骤2:搜索高亮区域得到疑似车灯对象区域。
以过滤图像imgRGBfilter为输入,设最后得到的疑似车灯对象区域个数为n_hg,则最后输出为两个集合(contours,innerRects)。其中,contours=[contour1,contour2,…,contourn_hg],表示所有搜索到的高亮区域的轮廓集合,其元素为疑似车灯内部高亮白色区域轮廓;innerRects=[innerRect1,innerRect2,…,innerRectn_hg],表示所有高亮区域轮廓的外接矩形集合,其元素为集合contours中每一个元素所对应的外接包围矩形。
2-1、搜索图中高亮区域。
搜索过滤图像imgRGBfilter中白色像素点,白色像素点的过滤阈值设定为245;通过过滤阈值对过滤图像imgRGBfilter进行处理,得到处理后的灰度图imgGrey;将灰度图imgGrey再进行二值化处理得到二值化图像imgBin,即将灰度图imgGrey中像素值高于245的像素点赋值为1,低于245的像素点赋值为0,产生二值化图像imgBin;搜索二值化图像imgBin中的连通区域,得到白色像素点连通区域的集合comps,假设连通区域的个数为n,则comps=[comp1,comp2,…,compn];计算comps中每一个连通域compi的外边界,得到一个外边界集合,该外边界集合即为所有高亮白色区域的轮廓集合,记contours,contours=[contour1,contour2,…,contourn];对contours中每一个元素contouri进行外接矩形计算,计算后得到每一个高亮区域轮廓的外接矩形,用一个集合储存称之为“内矩形”集合,记innerRects,innerRects=[innerRect1,innerRect2,…,innerRectn]。白色区域提取效果图如图4所示。
2-2、通过形态过滤内矩形,对疑似车灯对象进行筛选。
以内矩形集合innerRects为输入,对每一个内矩形对象innerRecti进行筛选,通过尾灯的几何先验特征约束条件过滤去除内矩形集合innerRects中明显不满足要求的元素,得到筛选后的内矩形集合。由于内矩形集合innerRects中的元素和contours中的元素是一一对应的,因此对内矩形集合innerRects进行过滤的同时外边界集合contours中的元素也被相应筛选。设一个内矩形的面积为SinnerRect,宽和高分别为WinnerRect和HinnerRect,阈值含义和数值设置如表1所示;内矩形初步过滤的规则定义如公式(2)所示:
SinnerRect>Thremin_area
HinnerRect≥Thremin_height
WinnerRect≥Thremin_width
公式(2)
表1阈值含义和数值设置表
阈值变量 阈值含义 取值
Thremin_area 内矩形面积下限 17
Thremin_height 内矩形高下限 3
Thremin_width 内矩形宽下限 3
Thremin_h_over_w 高宽比下限 5
Thremin_w_over_h 宽高比下限 5
公式(2)所示的约束对所有疑似车灯对象的内矩形进行了外形过滤,去掉面积过小的疑似车灯对象、高度太小或者宽度太小的疑似车灯对象、宽高比不满足阈值规定范围的疑似车灯对象。假设过滤之后,满足条件的内矩形个数为n_hg,则过滤之后得到满足条件的内矩形集合innerRects=[innerRect1,innerRect2,…,innerRectn_hg],与内矩形集合innerRects元素一一对应的高亮区域轮廓集合contours=[contour1,contour2,…,contourn_hg]。
步骤3:对疑似车灯区域的内矩形拓展得到车灯光晕区域。
以内矩形集合innerRects为输入,对其中每一个元素innerRecti,按规则拓展得到包围该疑似车灯光晕区域大致范围的矩形,称为“外矩形”;输出结果同样用一个集合记录,记outerRects;outerRects=[outerRect1,outerRect2,…,outerRectn_hg],其中每一个元素都代表一个外矩形对象outerRecti。所述的outerRecti基本包含了尾灯的绝大多数光晕点。
外矩形outerRecti的计算步骤如下:
以innerRecti的矩形中心为固定点,将innerRect的左右两侧边界向左和向右分别拉伸一个内矩形的宽度WinnerRect,同时,将内矩形innerRect的上下边界向上和向下分别拉伸一个内矩形的高度HinnerRect。这样确定的外矩形能够包含不同距离下车灯光晕的主要部分。具体地,XouterRect和YouterRect分别表示一个疑似车灯对象外矩形的X坐标和Y坐标,XinnerRect和YinnerRect表示其内矩形的X坐标和Y轴坐标,HouterRect和WouterRect表示外矩形的高和宽。如公式(3)所示,通过内矩形计算得到相对应的外矩形。以图5为输入,对其中全部的疑似尾灯对象的内矩形进行内矩形拓展即得到图6。
XouterRect=XinnerRect-WinnerRect
YouterRect=YinnerRect-HinnerRect
HouterRect=3HinnerRect
WouterRect=3HinnerRect (公式3)
步骤4:层次拓展白色区域边界得到疑似车灯的光晕区域及其层次结构。
以高亮白色区域的轮廓集合contours和外矩形集合outerRects为输入,输出为保存所有元素的光晕轮廓的集合Setlayers以及保存所有轮廓层数上限集合Setnlayer。由于contours中元素与outerRects是一一对应的,基于集合内每一个元素的高亮区域轮廓和外矩形,能够计算获得该对象的光晕层次轮廓结构和层数上限。其中,Setlayers=[layers1,layers2,…,layersn_hg],Setnlayer=[Nlayers1,Nlayers2,…,Nlayersn_hg],Setlayers和Setnlayer的个数与contours、outerRects中的一致,且其中的元素也一一对应。本步骤从疑似车灯对象的白色区域边缘起向外层层拓展,较精确地覆盖疑似对象的光晕区域。外矩形标记出了车灯的大致范围。进一步的光晕分析和验证需要更精确地覆盖光晕。本发明提出了光晕区域覆盖方法,又称层次拓展方法。通过该方法能够进一步更精确地覆盖光晕区域。本方法以白色区域的边界为起点,向外层层拓展,每次拓展1个像素宽的距离。
4-1、确定拓展层数上限。
计算需要拓展的层数上限,记Nlayers。拓展层数多少根据车灯的大小决定。计算公式如公式4,其中Hinner表示内矩形的高,Winner表示内矩形的宽。通过实际观察,近处较大的车灯区域所需要的层数最多14层即可,因此最大拓展层数14。
Nlayers=min{Hinner,Winner,14} (公式4)
4-2、层次拓展方法
层次拓展方法的输入为外矩形集合outerRects、高亮区域轮廓集合contours和拓展层数上限集合Setnlayer。每次处理集合中对应的三个元素(outerRecti,contouri,Nlayersi),得到三个元素的光晕层次结构,记layers。其中,outerRecti表示该疑似车灯对象的外矩形,contouri表示该对象的中央白色高亮区域的轮廓点集合,Nlayersi表示该对象层数上限;
对于一个疑似车灯对象的层次拓展方法描述如下:
Step 1:对光晕层次结构layers中的每一个元素进行初始化,即layeri={},其中i表示从0到Nlayersi-1;
Step 2:对外矩形outerRecti中的每一个未迭代的像素点作迭代;判断该像素点是否在contouri内部,若在contouri内部,重复Step 2;否则前进至Step 3;
Step 3:计算Step 2所述的不在contouri内部的该像素点到contouri的最短距离,记dis;所述的最短距离不是指该像素点到contouri中心点的距离,而是指该像素点到contouri上的点的就近距离。
Step 4:根据距离值dis,并以1为间隔将该像素点分类到对应的层中,具体而言,分类为第i层的点,将自身坐标信息都存储至该层的数据对象layeri中,然后返回Step 2;
所述的像素点分类具体如下dis位于区间[-1,0)的点分类到第0层layer0,[-2,-1)的点分类到第1层layer1,[-3,-2)的点分类到第2层layer2,以此类推,所述的层数小于拓展层数上限Nlayers
Step 5:判断是否已经完成迭代,若是,则结束;否则,返回Step 2继续迭代过程。
通过层次拓展后,计算得到当前疑似车灯对象的光晕结构,对于光晕结构中的每个元素,layers中保存了被覆盖的该车灯的每一层光晕层信息,layers=[layer0,layer2,……,layerk],k=Nlayers–1。layeri中包含了在该层上的所有光晕像素点的坐标,即layeri是点的集合,layers是该疑似车灯对象中所有光晕层layeri的集合。图7展示了层次拓展效果。
步骤5:对光晕区域层次结构进行亮度递减验证。
以过滤图像imgRGBfilter和光晕结构集合Setlayers作为输入,对光晕结构集合Setlayers中每一个元素进行处理,输出每一个疑似车灯对象的验证结果位图imgVerify和通过率Ppass。然后对通过率Ppass进行筛选,通过率Ppass较低的疑似车灯对象删除,得到置信度较高的车灯对象。
5-1、使用亮度递减验证得到当前疑似车灯对象的通过率。
对过滤图像imgRGBfilter进行处理,具体的基于“越远离白光区域的光晕点亮度值越低”的先验规则,通过亮度递减验证每个疑似车灯对象的层次结构layers中存储的光晕点的亮度分布是否符合上述先验规则。
验证规则如下:
对于任意一个疑似车灯对象的第i层layeri上的点(x,y),其周围8个方向包围它的点中R通道值最小的点(xmin,ymin)(以下简称最小值点minP)一定是在第i+1层或者更高的层数上。
单个疑似车灯对象的亮度递减验证的输入为过滤图像imgRGBfilter、光晕结构layers。输出为结果位图imgVerify和验证通过率Ppass。由于高亮区域轮廓集合contours、外矩形集合outerRects和保存所有元素的光晕轮廓的集合Setlayers这三个数据结构中,相同下标的数据均对应(或者计算自)同一个疑似车灯对象。因此,能够将同一个对象的三个数据合成一个向量结构,表示对应的疑似车灯对象。记疑似车灯对象为tail,则tail=(wPoints,layers,Nlayers),其中wPoint表示该疑似车灯对象所有白色光亮区域内的点的集合。结果位图imgVerify是一个二值图,图中值为0的像素点表示该点未通过验证,值为1的点表示通过验证的点。具体验证步骤描述如下:
Step 6:初始化,清空搜索集合SSearch,将白色区域的点tail.wPoints加入搜索集合SSearch ,并将结果位图imgVerify中的所有点赋值为零。
Step 7:对疑似车灯对象tail第i层光晕层对象layeri上每一个像素点迭代,i从0开始;若8邻域内的最小值点minP∈SSearch,则代表当前点验证失败;否则该点验证通过,且通过计数Cpass加1,并对结果位图imgVerify中坐标相同的点赋值为1。在该层的像素点都验证之后,将layeri上的像素点都加入SSearch
Step 8:反复执行Step 7,直至最后一层即第Nlayers-1层的像素点都验证完后,前进至Step 9。
Step 9:计算通过率Ppass,即计算通过计数Cpass占layers上的点的比例。
5-2、删除通过率较低的疑似车灯对象。
通过统计采样疑似车灯对象,亮度递减验证通过比例如图8所示,大部分(90%以上)车灯对象的亮度递减验证通过率大于30%(可以根据实际应用统计确定)。
按照上述验证通过比例阈值,对每个疑似车灯对象进行验证,滤除通过率小于30%的疑似车灯对象,最终获得可信度高的车灯对象。
通过对疑似车灯对象进行跟踪以及车灯对匹配,完成夜间车辆检测。

Claims (5)

1.一种基于亮度递减验证的夜间车辆尾灯提取方法,其特征在于包括如下步骤:
步骤1:图像预处理,以原始图像imgSrc为输入,得到经过感兴趣区域分割和宽泛阈值过滤后的图像imgRGBfilter
步骤2:搜索高亮区域得到疑似车灯对象区域;
步骤3:对疑似车灯区域的内矩形拓展得到车灯光晕区域;
步骤4:层次拓展白色区域边界得到疑似车灯的光晕区域及其层次结构;
步骤5:对光晕区域层次结构进行亮度递减验证;
步骤4所述的层次拓展白色区域边界得到疑似车灯的光晕区域及其层次结构,具体如下:
以高亮白色区域的轮廓集合contours和外矩形集合outerRects为输入,输出为保存所有元素的光晕轮廓的集合Setlayers以及保存所有轮廓层数上限集合Setnlayer;由于contours中元素与outerRects是一一对应的,基于集合内每一个元素的高亮区域轮廓和外矩形,能够计算获得该对象的光晕层次轮廓结构和层数上限;其中,Setlayers=[layers1,layers2,…,layersn_hg],Setnlayer=[Nlayers1,Nlayers2,…,Nlayersn_hg],Setlayers和Setnlayer的个数与contours、outerRects中的一致,且其中的元素也一一对应;
4-1、确定拓展层数上限;
计算需要拓展的层数上限,记Nlayers;拓展层数多少根据车灯的大小决定;计算公式如公式4,其中Hinner表示内矩形的高,Winner表示内矩形的宽;通过实际观察,车灯区域所需要的层数最多14层即可,因此最大拓展层数14;
Nlayers=min{Hinner,Winner,14} (公式4)
4-2、层次拓展方法
层次拓展方法的输入为外矩形集合outerRects、高亮区域轮廓集合contours和拓展层数上限集合Setnlayer;每次处理集合中对应的三个元素(outerRecti,contouri,Nlayersi),得到三个元素的光晕层次结构,记layers;其中,outerRecti表示该疑似车灯对象的外矩形,contouri表示该对象的中央白色高亮区域的轮廓点集合,Nlayersi表示该对象层数上限;
对于一个疑似车灯对象的层次拓展方法描述如下:
Step1:对光晕层次结构layers中的每一个元素进行初始化,即layeri={},其中i表示从0到Nlayersi-1;
Step2:对外矩形outerRecti中的每一个未迭代的像素点作迭代;判断该像素点是否在contouri内部,若在contouri内部,重复Step 2;否则前进至Step 3;
Step 3:计算Step 2不在contouri内部的该像素点到contouri的最短距离,记dis;所述的最短距离不是指该像素点到contouri中心点的距离,而是指该像素点到contouri上的点的就近距离;
Step 4:根据距离值dis,并以1为间隔将该像素点分类到对应的层中,具体而言,分类为第i层的点,将自身坐标信息都存储至该层的数据对象layeri中,然后返回Step 2;
所述的像素点分类具体如下dis位于区间[-1,0)的点分类到第0层layer0,[-2,-1)的点分类到第1层layer1,[-3,-2)的点分类到第2层layer2,以此类推,所述的层数小于拓展层数上限Nlayers
Step 5:判断是否已经完成迭代,若是,则结束;否则,返回Step 2继续迭代过程;
通过层次拓展后,计算得到当前疑似车灯对象的光晕结构,对于光晕结构中的每个元素,layers中保存了被覆盖的该车灯的每一层光晕层信息,layers=[layer0,layer2,……,layerk],k=Nlayers–1;layeri中包含了在该层上的所有光晕像素点的坐标,即layeri是点的集合,layers是该疑似车灯对象中所有光晕层layeri的集合。
2.如权利要求1所述的一种基于亮度递减验证的夜间车辆尾灯提取方法,其特征在于步骤1所述的图像预处理具体如下:
1-1、感兴趣区域分割;
对原始图像imgSrc进行ROI分割,得到分割图像imgROI
1-2、宽泛阈值过滤;
对分割图像imgROI采用宽泛阈值进行过滤,得到阈值过滤后的过滤图像imgRGBfilter
所述的宽泛阈值通过大量采样统计得到;具体的对不同摄像头在不同场景下拍摄的视频中车尾灯光晕像素点的RGB值做采样;采样包括通常状态下尾灯和特殊状态下的尾灯,特殊状态包括刹车状态和转向灯状态;统计光晕像素点的R,G,B取值分布,从而得出车尾灯光晕像素点的RGB值满足公式(1)中不等式共同确定的宽泛阈值约束;使用该宽泛阈值约束不等式组过滤分割图像imgROI,得到过滤后的过滤图像imgRGBfilter
3.如权利要求1所述的一种基于亮度递减验证的夜间车辆尾灯提取方法,其特征在于步骤2所述的搜索高亮区域得到疑似车灯对象区域具体如下:
2-1、搜索图中高亮区域;
搜索过滤图像imgRGBfilter中白色像素点,白色像素点的过滤阈值设定为245;通过过滤阈值对过滤图像imgRGBfilter进行处理,得到处理后的灰度图imgGrey;将灰度图imgGrey再进行二值化处理得到二值化图像imgBin,即将灰度图imgGrey中像素值高于245的像素点赋值为1,低于245的像素点赋值为0,产生二值化图像imgBin;搜索二值化图像imgBin中的连通区域,得到白色像素点连通区域的集合comps,假设连通区域的个数为n,则comps=[comp1,comp2,…,compn];计算comps中每一个连通域compi的外边界,得到一个外边界集合,该外边界集合即为所有高亮白色区域的轮廓集合,记contours,contours=[contour1,contour2,…,contourn];对contours中每一个元素contouri进行外接矩形计算,计算后得到每一个高亮区域轮廓的外接矩形,用一个集合储存称之为“内矩形”集合,记innerRects,innerRects=[innerRect1,innerRect2,…,innerRectn];
2-2、通过形态过滤内矩形,对疑似车灯对象进行筛选;
以内矩形集合innerRects为输入,对每一个内矩形对象innerRecti进行筛选,通过尾灯的几何先验特征约束条件过滤去除内矩形集合innerRects 中明显不满足要求的元素,得到筛选后的内矩形集合;由于内矩形集合innerRects中的元素和contours中的元素是一一对应的,因此对内矩形集合innerRects进行过滤的同时外边界集合contours中的元素也被相应筛选;设一个内矩形的面积为SinnerRect,宽和高分别为WinnerRect和HinnerRect,阈值含义和数值设置如表1所示;内矩形初步过滤的规则定义如公式(2)所示:
SinnerRect>Thremin_area
HinnerRect≥Thremin_height
WinnerRect≥Thremin_width
表1 阈值含义和数值设置表
阈值变量 阈值含义 取值 Thremin_area 内矩形面积下限 17 Thremin_height 内矩形高下限 3 Thremin_width 内矩形宽下限 3 Thremin_h_over_w 高宽比下限 5 Thremin_w_over_h 宽高比下限 5
公式(2)所示的约束对所有疑似车灯对象的内矩形进行了外形过滤,去掉面积过小的疑似车灯对象、高度太小或者宽度太小的疑似车灯对象、宽高比不满足阈值规定范围的疑似车灯对象;假设过滤之后,满足条件的内矩形个数为n_hg,则过滤之后得到满足条件的内矩形集合innerRects=[innerRect1,innerRect2,…,innerRectn_hg],与内矩形集合innerRects元素一一对应的高亮区域轮廓集合contours=[contour1,contour2,…,contourn_hg]。
4.如权利要求1所述的一种基于亮度递减验证的夜间车辆尾灯提取方法,其特征在于步骤3所述的对疑似车灯区域的内矩形拓展得到车灯光晕区域具体如下
以内矩形集合innerRects为输入,对其中每一个元素innerRecti,按规则拓展得到包围该疑似车灯光晕区域大致范围的矩形,称为“外矩形”;输出结果同样用一个集合记录,记outerRects;outerRects=[outerRect1,outerRect2,…,outerRectn_hg],其中每一个元素都代表一个外矩形对象outerRecti;所述的outerRecti基本包含了尾灯的绝大多数光晕点;
外矩形outerRecti的计算如下:
以innerRecti的矩形中心为固定点,将innerRect的左右两侧边界向左和向右分别拉伸一个内矩形的宽度WinnerRect,同时,将内矩形innerRect的上下边界向上和向下分别拉伸一个内矩形的高度HinnerRect;具体地,XouterRect和YouterRect分别表示一个疑似车灯对象外矩形的X坐标和Y坐标,XinnerRect和YinnerRect表示其内矩形的X坐标和Y轴坐标,HouterRect和WouterRect表示外矩形的高和宽;如公式(3)所示,通过内矩形计算得到相对应的外矩形;
XouterRect=XinnerRect-WinnerRect
YouterRect=YinnerRect-HinnerRect
HouterRect=3HinnerRect
WouterRect=3HinnerRect (公式3)。
5.如权利要求1所述的一种基于亮度递减验证的夜间车辆尾灯提取方法,其特征在于步骤5所述的对光晕区域层次结构进行亮度递减验证具体如下:
以过滤图像imgRGBfilter和光晕结构集合Setlayers作为输入,对光晕结构集合Setlayers中每一个元素进行处理,输出每一个疑似车灯对象的验证结果位图imgVerify和通过率Ppass;然后对通过率Ppass进行筛选,通过率Ppass较低的疑似车灯对象删除,得到置信度较高的车灯对象;
5-1、使用亮度递减验证得到当前疑似车灯对象的通过率;
对过滤图像imgRGBfilter进行处理,具体的基于“越远离白光区域的光晕点亮度值越低”的先验规则,通过亮度递减验证每个疑似车灯对象的层次结构layers中存储的光晕点的亮度分布是否符合上述先验规则;
验证规则如下:
对于任意一个疑似车灯对象的第i层layeri上的点(x,y),其周围8个方向包围它的点中R通道值最小的点minP(xmin,ymin)一定是在第i+1层或者更高的层数上;
单个疑似车灯对象的亮度递减验证的输入为过滤图像imgRGBfilter、光晕结构layers;输出为结果位图imgVerify和验证通过率Ppass;由于高亮区域轮廓集合contours、外矩形集合outerRects和保存所有元素的光晕轮廓的集合Setlayers这三个数据结构中,相同下标的数据均对应同一个疑似车灯对象;因此将同一个对象的三个数据合成一个向量结构表示对应的疑似车灯对象;记疑似车灯对象为tail,则tail=(wPoints,layers,Nlayers),其中wPoint表示该疑似车灯对象所有白色光亮区域内的点的集合;结果位图imgVerify是一个二值图,图中值为0的像素点表示该点未通过验证,值为1的点表示通过验证的点;具体验证步骤描述如下:
Step 6:初始化,清空搜索集合SSearch,将白色区域的点tail.wPoints加入搜索集合SSearch ,并将结果位图imgVerify中的所有点赋值为零;
Step 7:对疑似车灯对象tail第i层光晕层对象layeri上每一个像素点迭代,i从0开始;若8邻域内的最小值点minP∈SSearch,则代表当前点验证失败;否则该点验证通过,且通过计数Cpass加1,并对结果位图imgVerify中坐标相同的点赋值为1;在该层的像素点都验证之后,将layeri上的像素点都加入SSearch
Step 8:反复执行Step 7,直至最后一层即第Nlayers-1层的像素点都验证完后,前进至Step 9;
Step 9:计算通过率Ppass,即计算通过计数Cpass占layers上的点的比例;
5-2、删除通过率较低的疑似车灯对象;
对每个疑似车灯对象进行验证,滤除通过率小于30%的疑似车灯对象,最终获得可信度高的车灯对象;通过对疑似车灯对象进行跟踪以及车灯对匹配,完成夜间车辆检测。
CN201510171979.3A 2015-04-13 2015-04-13 一种基于亮度递减验证的夜间车辆尾灯提取方法 Expired - Fee Related CN104778454B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510171979.3A CN104778454B (zh) 2015-04-13 2015-04-13 一种基于亮度递减验证的夜间车辆尾灯提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510171979.3A CN104778454B (zh) 2015-04-13 2015-04-13 一种基于亮度递减验证的夜间车辆尾灯提取方法

Publications (2)

Publication Number Publication Date
CN104778454A CN104778454A (zh) 2015-07-15
CN104778454B true CN104778454B (zh) 2018-02-02

Family

ID=53619907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510171979.3A Expired - Fee Related CN104778454B (zh) 2015-04-13 2015-04-13 一种基于亮度递减验证的夜间车辆尾灯提取方法

Country Status (1)

Country Link
CN (1) CN104778454B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557754A (zh) * 2016-11-21 2017-04-05 南宁市浩发科技有限公司 一种夜间车辆检测和状态判断方法
CN111368819B (zh) * 2017-03-21 2023-05-30 北京中安未来科技有限公司 光斑检测方法和装置
CN107992810B (zh) * 2017-11-24 2020-12-29 智车优行科技(北京)有限公司 车辆识别方法和装置、电子设备和存储介质
CN113723304A (zh) * 2021-08-31 2021-11-30 上海商汤临港智能科技有限公司 车灯检测方法、装置、电子设备及存储介质
CN117440581A (zh) * 2023-10-24 2024-01-23 广东中科光控能源科技有限公司 网关型物联网灯具的控制方法、系统、介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460691B2 (en) * 1999-11-03 2008-12-02 Cet Technologies Pte Ltd Image processing techniques for a video based traffic monitoring system and methods therefor
CN103020948A (zh) * 2011-09-28 2013-04-03 中国航天科工集团第二研究院二○七所 智能车载防撞预警系统中的夜间图像特征提取方法
CN103208185A (zh) * 2013-03-19 2013-07-17 东南大学 一种基于车灯识别的夜间车辆检测方法及系统
CN103984917A (zh) * 2014-04-10 2014-08-13 杭州电子科技大学 一种基于机器视觉的多特征夜间车辆检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460691B2 (en) * 1999-11-03 2008-12-02 Cet Technologies Pte Ltd Image processing techniques for a video based traffic monitoring system and methods therefor
CN103020948A (zh) * 2011-09-28 2013-04-03 中国航天科工集团第二研究院二○七所 智能车载防撞预警系统中的夜间图像特征提取方法
CN103208185A (zh) * 2013-03-19 2013-07-17 东南大学 一种基于车灯识别的夜间车辆检测方法及系统
CN103984917A (zh) * 2014-04-10 2014-08-13 杭州电子科技大学 一种基于机器视觉的多特征夜间车辆检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Vehicle Detection at Night Based on Tail-Light Detection;Ronan O’Malley 等;《1st international symposium on vehicular computing systems》;20080131;第1-5页 *
Vehicle Recognition and TTC Estimation at Night based on Spotlight Pairing;Steffen G¨ormer 等;《Proceedings of the 12th International IEEE Conference on Intelligent Transportation Systems》;20091007;第196页摘要,第199页B. Pair Classification部分,图6 *
基于团块几何和位置特征的夜间前方车辆检测方法;肖志涛 等;《河北工业大学学报》;20131015;第42卷(第5期);第13-18页 *

Also Published As

Publication number Publication date
CN104778454A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN105160309B (zh) 基于图像形态学分割及区域生长的三车道检测方法
CN104778454B (zh) 一种基于亮度递减验证的夜间车辆尾灯提取方法
CN106650553A (zh) 车牌识别方法及系统
CN103077384B (zh) 一种车标定位识别的方法与系统
Chen et al. Nighttime brake-light detection by Nakagami imaging
CN103927526B (zh) 一种基于高斯差分多尺度边缘融合的车辆检测方法
CN104778444B (zh) 道路场景下车辆图像的表观特征分析方法
CN101334836B (zh) 一种融合色彩、尺寸和纹理特征的车牌定位方法
CN105335716B (zh) 一种基于改进udn提取联合特征的行人检测方法
CN103971128B (zh) 一种面向无人驾驶车的交通标志识别方法
CN103530600B (zh) 复杂光照下的车牌识别方法及系统
CN108830199A (zh) 识别交通灯信号的方法、装置、可读介质及电子设备
CN104966066A (zh) 一种面向交通卡口监控的车内人脸检测方法及系统
Gomez et al. Traffic lights detection and state estimation using hidden markov models
CN106651872A (zh) 基于Prewitt算子的路面裂缝识别方法及系统
US20110081081A1 (en) Method for recognizing objects in images
CN111553214B (zh) 一种驾驶员吸烟行为检测方法及系统
CN107180230B (zh) 通用车牌识别方法
CN104809433A (zh) 一种基于最大稳定区域和随机采样的斑马线检测方法
CN105046218A (zh) 一种基于串并行处理的多特征交通视频烟雾检测方法
CN106407951A (zh) 一种基于单目视觉的夜间前方车辆检测方法
CN105893960A (zh) 基于相位对称性的道路交通标志检测方法
CN107704833A (zh) 一种基于机器学习的前方车辆检测与跟踪方法
Liu et al. Multi-type road marking recognition using adaboost detection and extreme learning machine classification
Ingole et al. Characters feature based Indian vehicle license plate detection and recognition

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180202

CF01 Termination of patent right due to non-payment of annual fee