APP下载

汽车近光灯光形图像处理

2015-04-10金沛峰

照明工程学报 2015年2期
关键词:直方图算子方差

金沛峰

(延锋汽车饰件系统有限公司测试中心,上海 200233)



汽车近光灯光形图像处理

金沛峰

(延锋汽车饰件系统有限公司测试中心,上海 200233)

汽车近光灯光束投影的明暗截止线及其拐点是现行国标汽车安全性能的必检项目,由于图像噪点和边界模糊而难于直接确定。使用MATLAB数字图像算法对汽车近光灯屏幕光型图像进行处理。采用中值滤波算法进行平滑消噪,改善了图像清晰度。比较灰度直方图法和最大类间方差法,选择最大类间方差法确定阈值,将图像分割转换成交界明显的二值化黑白图像。采用Canny算子进行边缘检测,得到十分清晰的单像素明暗截止线;最后,采用最小二乘法对明暗截止线进行拟合,准确确定了拐点的位置。

近光灯;明暗截止线;汽车照明

1 近光灯光型要求

前照灯,是汽车在夜间或白天雾雨中行驶时,照明道路、辨认前方障碍物的汽车灯具,一般具有近光和远光两种照明功能。在使用近光时,不但应保证司机能看清车前40米范围障碍物,而且灯光不能让前面道路的其他使用者(如对面来车司机或行人)眩目或不舒适,以确保汽车行驶安全。[1-4]

在前照灯近光光束设计中,一般通过改变配光(改变光束分布即光形)来避免灯光照射到迎面行人和车辆司机的眼睛,从而不产生眩目。

我国与欧洲一样,采用的是非对称式近光前照灯系统,其光形分布的特点是它在前方道路的右侧形成一个延伸的视野(图1)。

这种非对称式近光前照灯系统的灯泡将近光灯丝布置在抛物面反光镜焦点的前上方,灯丝的光经反光镜反射向轴侧倾斜(图2)。近光灯丝的下方配有一个遮光罩,不让灯丝光线向下方照射到反光镜上,以免向上反光,影响对方来车。

图1 前照灯近光光形Fig.1 Car Low-beam light Shape

图2 前照灯近光结构Fig.2 Car Low-beam light structure

遮光罩的边缘形状可使光束照在路面上形成的一条明暗截止线(图3),左半部与灯光轴线成直角延伸,从而可以防止迎面车辆司机产生眩目;而在右半部分则向斜前方延伸,从而保证了己方道路照明。

图3 近光光束在屏幕上形成的明暗截止线Fig.3 The cut-off line of low-beam light on the screen

GB 4599—2007 《汽车前照灯配光性能》中近光配光性能要求是在前照灯基准端面前25m的铅垂配光屏幕上,近光应产生明显的明暗截止线。其水平部分在v-v线的左侧,右侧为HVH2H3线或HVH1H2H4(图4),我国目前汽车前照灯生产厂家多数采用v-v 线右侧HVH2H3标准。

图4 近光光束明暗截止线示意图Fig.4 Schematic diagram of cut-off line

根据国家标准,我们知道近光灯光形性能检测的要点是光束明暗截止线拐点的位置,近光的拐点即明暗交界水平线与15°斜线的交点。其测量关键在于寻找水平线与15°斜线。

本文使用数码影像设备采集屏幕光形的数码照片,调用MATLAB的图像处理工具箱(Image Processing Toolbox)[5][6]有关命令程序进行图像边缘检测和拟合,求出水平线与15度斜线的函数方程,最后用EXCEL求出两条直线的交点即拐点的位置,并画出截止线图形。

2 图像获取及预处理

2.1 图像的数字化和获取

图像的数字化包括两个方面:采样和量化。所谓采样是指将图像平面分割成离散点的集合,量化是指把亮度值划分为2N个区间,然后用单个值来表示这一个区间内的所有亮度值。

数字图像是连续图像的近似表示,由采样点的函数值所组成的矩阵来表示。

每一个采样点就是一个像素,把像素按照不同的方式进行存储,就得到不同的图像格式,按照图像格式把图像数据以文件形式存储就得到图像文件。

近光灯光型图像的获取一般采用数字摄像机拍摄,像素量超过500万就可。本文采用CCD数码相机采集近光光形图像。

2.2 图像预处理

图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。本文图像预处理将使用到图像灰度化和图像平滑处理。

2.2.1 图像灰度化

数码相机拍摄获取的图像一般是彩色图像。彩色图像包含着大量的颜色信息,增加了许多不必要的计算量,因此需要将彩色图像转换为灰度图像。转化后明暗分界线并不会消失,同时会使处理过程更加简单和省时。

数码相机采集的原始图像是24位真彩色的,首先需要将彩色图像转换为灰度级为256的灰度图像。由彩色图像变换为灰度图像的函数如下:

Y=R×0.2989+G×0.5870+B×0.1141

其中R、G、B分别是彩色图像中红绿蓝三个分量,Y是该像素在灰度图像中的灰度值。

在MATLAB中则是通过调用命令I=rgb2gray(‘彩色图像文件名’)函数来实现。转换后得到图5。

图5 近光灯光形灰度图34.bmpFig.5 Low beam light gray image of 34.bmp

2.2.2 图像平滑

图像平滑是消除图像中随机噪声的技术。对图像平滑应保证在消去噪声的同时不使图像轮廓或线条变得模糊不清。其原理是减弱或消除傅立叶频域空间的高频分量,但不影响低频分量,达到去除太小的细节,消除噪声的效果。常用的平滑方法有中值法、局部求平均法和k 近邻平均法。局部区域大小可以是固定的,也可以是逐点随灰度值大小变化的。此外,有时应用空间频率域带通滤波方法。

中值滤波器是一种去除噪音的方法,由Tueky在1971年提出[7],基本原理是把数字图像或数字排列中一点的值用其邻域中各点值的中值代替。中值滤波器的特点是在衰减噪声的同时,不会使图像的边界模糊。中值滤波器的去噪效果依赖于2个要素,邻域的空间范围和计算中涉及的像素数量。小于中值滤波器面积一半的像素值会被滤掉,而超过中值滤波器面积一半的像素值会被保留下来,所以,应根据图像特点调整中值过滤模版的维数。为了加快计算速度,可以采用对角稀疏矩阵模版或十字稀疏矩阵模版。

例如,中值滤波前的原始灰度矩阵如下:

矩阵中数字为灰度值。可以看出中间的6和周围的灰度相差很大,是一个噪声点。

经过3×1窗口(即水平3个象素取中间值)的中值滤波,得到以下矩阵,噪声点被去除了。

中值滤波可以调用MATLAB的F=medfilt2(E)命令实现,命令中E是滤波前的图像,这里是34.bmp,F是滤波后的图像。图5经中值滤波得到图6。

图6 中值滤波后近光灯光形灰度图Fig.6 Median filtering Low beam lights form gray image

图7 直接对灰度图像进行边缘检测的结果Fig.7 Result of directly edge detection on the gray image

图6的光形图像明暗边界模糊。直接对图6进行边缘检测处理后,得到图7。可以看到,得到的边缘线既粗又不连续,无法提取明暗转折线。

只有清晰的明暗边界才能得到好的边缘检测效果。最理想的边界是单像素边界(即对应于每一离散横坐标,只有一个离散纵坐标对应的像素灰度值不同于周围像素)。为此,需要对图6的灰度图进行图像分割和边缘提取。

3 图像分割

图像分割是从图像处理到图像分析的关键步骤,通过图像分割,可以凸显目标信息,以便对目标进行特征提取和参数测量,使得更高层的图像分析和理解成为可能。

图像分割是将整个图像区域分割成若干互不交叠的非空子区域的过程,每个子区域内部连通,同一区域内部具有相同或相似的特性,这里的特性可以是灰度、颜色、纹理等。

3.1 图像分割方法

根据利用图像信息的不同,分割方法主要分为:

(1)基于阈值的分割方法。利用图像灰度统计信息,如灰度直方图。

(2)基于区域的分割方法。包括区域分裂——合并法、区域生长法、纹理分割等,利用图像空间区域信息。

(3)边缘检测方法。利用图像中灰度变化最强烈的区域信息,确定边缘。

MATLAB的图像分割是把图像空间划分成若干个具有某些一致属性的不重叠区域,并提取出目标的技术。图像分割分为全局分割、边缘分割、区域分割。

本文采用二值化处理使明暗边界清晰。二值化处理按图像的灰度或亮度值分割图像区域,属阈值分割技术,形成只含灰度为0,1的区域的二值掩模。

3.2 图像的阈值化分割方法

基于阈值的分割方法是图像分割中十分古老而又简单有效的常用方法。

阈值分割法实质是利用图像的灰度直方图信息得到用于分割的阈值。阈值分割方法可以按照分割得到的结果分为二元阈值分割以及多元阈值分割。本文根据分割要求选择二元阈值分割,分割的结果是明与暗。

确定阈值通常有两种方法:利用灰度直方图直接确定阈值、通过最大类间方差法确定阈值。

3.2.1 灰度直方图确定阈值

阈值分割关键在于选取阈值,那么,应该如何求取阈值呢?

首先看利用灰度直方图特征确定灰度分割门限。其原理是:如果图像所含的目标区域和背景区域大小可比,而且目标区域和背景区域在灰度上有所差别,那么其灰度直方图会呈现双峰一谷状。其中一个峰值对应于目标中心灰度,另一个峰值对应于背景的中心灰度。双峰之间的谷点对应边界的灰度,可以将谷点的灰度作为分割图像的阈值。

具体做法是:将图像转变为灰度图像;计算直方图;计算直方图中谷底灰度值作为阈值。

MATLAB中做灰度直方图的命令为 imhist()。具体程序为

I=imread(P);

imhist(I)

其中P是光型图像,I是图像数据矩阵,得到灰度直方图如图8所示。

图8 34.bmp图像的灰度直方图Fig.8 34.bmp image gray histogram

图8有2个较明显峰位,但谷区过于平坦无法直接准确读出谷值。这时,一般通过二次曲线y=ax2+bx+c拟合2个峰位之间的部分,则x=-b/2a可以作为分割门限;也可以使用2个高斯函数来拟合直方图的2个峰,求出2个高斯函数的交点作为分割门限,但都有较大的误差。为比较起见,本文先根据灰度直方图将阈值估计为200。

通过灰度直方图求阈值虽然比较简单快捷,但当双峰一谷的谷过于平坦时,取值难以准确。并且在某些情况下,即使直方图是典型的双峰一谷特性,通过直方图分割的结果也有可能是错误的。例如:黑白像点随机分布的图像或一边黑一边白的图像就具有相同的直方图,前者的直方图就没有意义。所以为了得到更准确阈值,需要寻求另一种方法。

3.2.2 最大类间方差法确定阈值

最大类间方差法又叫大津法,简称OTSU,是一种自适应的阈值确定方法,被视为二值化全局算法的最为杰出代表之一,由日本学者大津展之于1979年提出[8]。它是在判决分析最小二乘法原理的基础上推导出来的,属于统计判决方法。其基本思路是将图像的直方图以某一灰度为阈值将图像分成两组并计算两组间的方差,当方差最大时,就以这个灰度值为阈值分割图像。其中方差是灰度分布均匀性的一种度量,方差越大,说明构成图像的两部分差别越大。部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小。该方法自适应性强,在一定条件下不受图像对比度与亮度变换的影响,因而在一些实时图像处理系统中得到了很广泛的应用。

通过调用MATLAB基于最大类间方差法求取阈值比率的命令Th=graythresh(I),我们得到Th为0.6667。由于灰度级数为255,所以实际灰度阈值为0.6667×255=170。图9 为所得阈值在直方图上的位置情况。

图9 最大类间方差法阈值在直方图上的位置Fig.9 The Otsu threshold value position on gray histogram

可以看到,虽然通过灰度直方图无法直接得到准确阈值,但通过最大类间方差法,我们得到了较为精确的灰度门限170。

4 明暗截止线及其转折点的确定

4.1 明暗截止线的明晰化

明暗截止线明晰化是通过阈值来实现图像二值化。

图像的二值化处理就是将图像上的点的灰度置为0或255,使整个图像呈现为黑白两色。所有灰度大于或等于阈值的像素被判定为属于特定物体区域,其灰度值为255,否则这些像素点被排除在特定物体区域以外,灰度值为0,表示背景或者例外的物体区域。

我们限定阈值170以上的点为亮区域,170以下为暗区域。

在MATLAB中,图像二值化的命令语句为:

J=im2bw(I,Th)

运行程序我们可得到二值化图像J。

图10为灰度直方图的阈值分割图像,图11是最大类间方差法的阈值分割图像。

图10 灰度直方图的二值图像Fig.10 Binary image of gray histogram

图11 最大类间方差法的二值图像Fig.11 Binary image of Otsu

经过二值化处理后,原本比较模糊的边界清晰可见。通过比较我们可以看到,虽然两种方法最终的二值化图像很相似,但是在边缘效果上,图11更准确。

4.2 通过边缘检测提取明暗截止线

边缘检测是利用物体和背景在图像特性上的差异,采用某种算法提取出图像中对象与背景的分界线。经过二值化处理的近光灯光形图像的明暗截止线就是黑白边界线。

由于噪声和模糊的存在,检测到的边界可能会变宽(如图7所示),或在某些点处发生间断。因此,边界检测首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。

边缘检测是建立在边缘检测算子的基础上的,边缘算子的种类很多,主要有:基于梯度的边缘检测算子、拉普拉斯算子、Log算子、Canny算子等。

1986年Canny从边缘检测算子应该满足的三个准则出发,推导出了目前理论上相对最完善的一种边缘检测算法:Canny算子[9]。所以本文采用Canny算子作为边缘检测算子。

在MATLAB中实现边缘提取的命令语句为:

I=edge(对象名, ‘算子名’)

由于这次使用的是Canny算子,实际程序段为:

BW=edge(J,‘canny’);

其中BW是经过边缘检测处理得到的图像,如图12所示。

可以看到利用Canny算子边缘检测图11后得到了十分清晰的单像素明暗边界截止线。

接下来则是采集边界线上各点坐标。由于检测出来的图像灰度值只有0与255,边界线上各点灰度值为255,所以用MATLAB中max语句求取边缘图像中灰度最大点(即边缘线上各点)的矩阵位置。由于矩阵的行是从上往下排序记数,所以得到的二维数组是以左上顶点为原点,像素为单位的坐标平面上的灰度矩阵,需要转换成以左下顶点为原点的灰度矩阵。提取及转换程序为:

图12 边缘检测后的图像Fig.12 Edge detection image

c1=max(BW);

c=max(c1)

[m,n]=find(BW= =c);

b=576-m

Z=[b,n]

W=[n,b]

W即为以左下顶点为原点的坐标平面上的灰度矩阵,其中边缘线位置元素灰度值为255。将矩阵数据导入EXCEL,绘制后得到图13。

图13 用EXCEL绘制的明暗截止线Fig.13 Cut-off line drawn with EXCEL

4.3 拟合截止线直线方程确定拐点坐标

图像经过平滑、图像分割和边缘提取后,明暗分界线清晰可见。下面就可以通过最小二乘法拟合两条直线方程(水平与15°线),其交点坐标就是近光灯光形的拐点位置。

由于明暗截止线为一条水平线方程和一条15°斜线方程相交而成,所以用边缘线左半部分数据拟合水平线方程,右半部分拟合15°斜线方程。拟合后的两条直线交点即为近光灯光形的明暗截止线转折点(即拐点)。

在MATLAB中直线拟合的调用语句为:

p1=polyfit(x,y,n)

其中x为拟合数据的横坐标,y为拟合数据的纵坐标,n为多项式的最大阶数。因为是直线拟合,所以最大阶数为1。

程序运行后,p1(1)变量为k值,p1(2)变量为b值,可直接提取显示。

经过直线拟合后的数据在MATLAB中得到显示效果见图14。

图14 拟合直线在MATLAB中的显示效果Fig.14 MATLAB image effect of the fitting straight lines

程序运行后的结果为:

k1 =0.0274,b1=390.2160;k2 =0.3689,b2 =280.1740。

分别代入y=kx+b得到:

水平线方程:y1=0.0274x1+390.2160

15°斜线方程:y2=0.3689x2+280.1740

解出交点坐标:x=322.231332,y=399.045139

该交点即是明暗截止线拐点。

将得到的两个直线方程导入EXCEL得到函数图像(图15)。

图15 EXCEL显示的拟合直线Fig.15 The fitting straight lines shown in EXCEL

5 结论

本文采用MATLAB数字图像处理算法对近光灯

屏幕光型图像进行处理,通过中值滤波进行图像平滑消噪,较好地消除了噪声,改善了图像清晰度;将彩色图像转换成的灰度图像,从阈值精确度和阈值自动获取要求出发,选择最大类间方差法将图像分割转换成交界明显的二值化黑白图像;采用Canny算子进行边缘检测,得到十分清晰的单像素明暗截止线;最后,将边界坐标输入Excel,采用最小二乘法对明暗截止线进行拟合,确定近光光束明暗截止线和转折点的位置,取得了很好的效果,为检测近光灯光形截止线和拐点提供了稳定、准确且简便的方法。

[1] 中华人民共和国国家质量监管检疫总局,中国国家标准委员会.GB 4785—2007汽车及挂车外部照明和光信号装置的安装规定[S].北京:中国标准出版社,2008.

[2] 中华人民共和国国家质量监管检疫总局,中国国家标准管管委员会.GB 4599—2007汽车用灯丝灯泡前照灯[S]. 北京:中国标准出版社,2008.

[3] 凌铭, 张建文, 黄中荣. 汽车灯具的发展趋势[J].照明工程学报,2013,24,(4):106-113.

[4] 文醉, 赵斌, 何云堂,等. 几种典型汽车前照灯用光源的性能试验研究[J].照明工程学报,2014, 25,(5): 116-120.

[5] 张倩.详解MATLAB图像函数及其应用[M].第一版.北京:电子工业出版社,2011.

[6] 王军, 朱继红, 冯醒,等. 基于CCD和MATLAB的等照度线绘制方法[J].照明工程学报,2013, 24,(4):40-44.

[7] Gonzalez R C, Woods R E. Digital Image Processing[M]. Second Edition.Beijing: Publishing House of Electronics Industry, 2002.

[8] Otsu N. A Threshold Selection Method from Gray-Level Histograms [J]. IEEE Trans: on Systems, Man and Cybernetics, 1979, 1: 62-66.

[9] Canny J. A Computational Approach To Edge Detection[J]. IEEE Trans: Pattern Analysis and Machine Intelligence, 1986, 8: 679-714.

Digital Image Processing on Car Low-beam Light Shape

Jing Peifeng

(TestingCenterofYanfengAutomotiveTrimSystemCo.Ltd.,Shanghai200233,China)

It is the necessary inspection items of existing vehicle safety performance GB, which is the cut-off line and its turning point of car passing beam light projection. Because of image noise and fuzzy boundaries, it is often difficult to directly determine them. This article uses MATLAB digital image algorithms to process the screen image of passing beam light. The image clarity is improved due to using the median filtering algorithm for smooth and denoising. For the purpose of automatically obtaining threshold value and ensuring accuracy, we compared gray histogram method and Otsu. Then we select Otsu to segment and convert the image into binary monochrome image with clear-cut boundaries. By using Canny edge detection operator, we get very clear single-pixel cut-off line. Finally, we make curve fitting of the cut-off line by the least squares method to identify the turning point accurately.

low-beam light;cut-off line;automobile lighting

TM 923

A

10.3969/j.issn.1004-440X.2015.02.025

猜你喜欢

直方图算子方差
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
符合差分隐私的流数据统计直方图发布
斜对角算子矩阵的Weyl谱
概率与统计(2)——离散型随机变量的期望与方差
基于FPGA的直方图均衡图像增强算法设计及实现
Domestication or Foreignization:A Cultural Choice
方差越小越好?
计算方差用哪个公式
用直方图控制画面影调
方差生活秀