基于MATLAB改进Otsu阈值分割的车道线检测

摘要:在判断车道偏离以防止车辆碰撞等危害时,车道标线检测需要通过图像处理来进行,检测方法是否适用于各种背景环境条件以及检测的及时性至关重要传统的Otsu方法在处理对周围环境影响明显、车道线污点明显的情况时,识别效果较差。在Otsu阈值分割算法的基础上,将预分割图像按灰度分为两类,通过比较它们的中心距离来确定最佳阈值,从而实现多灰度峰值条件下的标记识别。最后,利用MATLAB对实际采集的道路图像进行预处理,分别采用Otsu阈值分割算法和改进算法进行车道线图像分割实验结果表明,最大类间方差阈值分割算法的阈值T=144,改进的最大类间方差阈值分割算法的阈值最终为131。阈值相对较小,更能反映待标记的白色标记部分。白色标记和背景的交叉点更清晰,这表明可以很好地识别该标记。另外,处理速度在0.453秒以内,满足实时性要求。

关键词:车道线识别;图像处理;阈值分割

1简介

随着计算机技术和机器视觉技术在汽车研发中的应用,智能汽车正逐步走进人们的生活,越来越多优秀的汽车安全系统不断发展。车道偏离预警系统越来越受到汽车研究者的重视,因为它可以帮助驾驶员安全驾驶,避免由驾驶员因素引起的交通事故[1]车道标线的识别是车道偏离预警系统的关键问题之一。车道标线的快速准确识别可以极大地促进车道偏离预警系统的推广应用。

车道标识识别技术是指安装在汽车上的摄像头采集道路图像,处理器通过分析道路图像获取道路标识的位置信息,从而判断车辆在车道线上的行驶位置,为车辆的安全行驶和自动驾驶提供车道标识信息完整道路标志识别技术的处理流程如图1所示。

道路图像采集图像预处理图像分割标记识别与拟合

图1道路标记识别流程图

通过道路标记识别流程图,不难发现图像分割是实现标记识别系统的重要步骤之一。图

图像分割是一个从图像中分离感兴趣对象的过程。国内外学者从未停止过对图像分割算法的研究。图像分割主要包括基于阈值、区域和边缘的分割方法。阈值分割法以其计算量小、实现简单、性能稳定的特点成为图像分割中应用最广泛的分割技术。在研究最大类间方差法阈值分割算法的基础上,对算法进行了改进,提出了基于最大类间距离的Otsu阈值分割算法。

2道路图像预处理

图像预处理是所有数字图像处理工作的前提。由于天气、路况等因素的影响,采集到的道路图像含有大量不必要的噪声信息,这就要求系统对实时获取的车道信息进行必要有效的处理,剔除图像中不相关的信息,增强图像中有用的信息,实现车道标线检测的实时性和准确性[2]

安装在后视镜背面的摄像头采集的图像是彩色图像。为了加快处理速度,彩色图像应该转换成灰度图像。将彩色图像转换为灰度的过程称为图像灰度。在彩色图像中,如果R=G=B,颜色代表灰度颜色。灰度图像的每个像素只需要一个字节来存储灰度值,灰度范围为0~255图像灰度化的方法有:分量法、平均法、最大值法和加权平均法。这里,加权平均法被用来使图像灰度化,假设n?1矩阵Vgray表示图像各点的灰度值矩阵,

Ri、Gi和Bi分别表示图像点的红、绿、蓝三种基本颜色的色度值,n?3矩阵a代表色度矩阵,由每一点的r、g和b值组成。[cr,cg,cb]T代表权重向量,然后是

Vgray?a。c?[cr?Ri?cg。Gi?cb?毕] (1)

由于人眼对绿色最敏感,对蓝色最不敏感,经过大量实验发现,最符合人眼视觉的R、G和B的加权系数值分别为0.3、0.59和0.11。图像灰度化过程可以通过以下经验公式来转换

Vgra?y0.3?r?0.59?g?0.11?B (2)

图3(a)是采集的原始道路图像。不难发现图像上有许多噪声点。这是因为在图像的形成、传输、接收和处理过程中不可避免地存在着内部和外部的干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程中的量化噪声、传输过程中的误差以及人为因素。为了消除这些干扰,需要图像滤波技术。本文采用空域中值滤波对图像进行预处理其原理是将图像上某点邻域内所有像素点的灰度值按其大小排列,用序列的中值代替该点的灰度度值,取m为序列的中点数(通常为奇数),I为序列的中心位置公式如下:

为了更直观地理解中值滤波算法,滤波窗口大小为3?3.对二维窗口中的数据进行一维排序,找到中值m,然后用中值m替换窗口中心D22的原始灰度,如图1所示

图2中值滤波窗口

图3道路图像预处理

(a)原始图像(b)图像灰度化(c)图像中值滤波

2改进的Otsu阈值分割算法

Otsu,即最大类间方差,由日本学者Otsu于1979年在[3这是一种基于图像所有灰度值的全局阈值选择方法。基本思想是将整个图像的灰度值分成两组。分别得到两组灰度值的均值和方差以及两组之间的协方差。当两组灰度值除以某个阈值的协方差最大时,该阈值就是整个图像二值化的阈值

传统的最大类间方差法能够快速、自适应地分割灰度值分布理想的双峰图像。最理想的阈值是使目标部分和背景部分尽可能远离图像中值的灰度值,这也反映了Otsu阈值分割的局限性。在获取的车道图像中,由于天空、周围环境因素以及车道线上明显的污点的影响,图像的直方图分布会不规则。如图4所示,直方图分布是从中值滤波图像中提取的

图4道路图像直方图

车道标线图像直方图显示存在多个峰值,背景与目标部分的边界模糊,图像的中值难以确定,传统的Otsu阈值分割方法不再适用于标线分割4]为了解决这个问题,提出了以下改进方法

仍然假设图像的灰度值范围为0~L(L?255),将灰度为I的像素数定义为ni,将像素数定义为N,则必须有

N?不。n1???nL??ni (4)

i?归一化后,图像中每个灰度级像素的分布概率pi?价值??我?1?0ni/N,图像的总灰度为

1 pi,假设阈值t,图像函数f(x,y)中的像素被t分为c和c?i2类,

C1??f1(x,y)|fmin?f(x,y)?t?(5)

C2??f2(x,y)|fmax?f(x,y)?t?(6)

,其中fmin和fmax分别是图像f(x,y)中灰度的最小值和最大值

2年则C1部分的分布概率p1,灰色平均?1、方差?1

T p1??P1,p2?1?p1 (7)

i?0?1??伊妮。021吨?倪。02Ti (8)

T???(1?u1)nii?0?n(9)

2?同样,可以获得C2部分的分布概率p2和灰度平均值。2、方差?2

22

定义了类之间的差异?b和类内差异?在,

2?b?p1(?1??)2?p2(?2??)2 (10)

222 (11)?进去。p1?1?p2?2?b2p1(?1??)2?p2(?2??)2 (12) S?2?2?inp1?12岁?p2?2.计算满足最大{S}的阈值T1。现在考虑所获得的阈值是否能够最大化目标部分和背景部分之间的差异因此,提出用两部分中心与阈值之间的距离差来衡量。获得的阈值T1将车道标志图像分为两类D1(灰度值小于或等于T1)和D2(灰度值大于或等于T1)。两个类别的灰色平均值?1和?2、两种型号d

d之间的相对距离?(?2?T1)(T1??1) (13) 2(?2??1)那么最佳阈值th应该是使两个类别之间的相对距离d最大化的灰度值

3测试结果与分析

Matrix Laboratory是数学工程公司开发的一套高性能数值计算和可视化软件。MATLAB强大的矩阵计算能力对图像处理非常有利。有一个特殊的图像处理工具箱。工具箱中的函数源程序也是打开的,大多是M文件。用户可以查看这些文件的代码并进行更改。用户的应用程序也可以作为新函数添加到相应的工具箱中。本文将改进的算法编译成MATALB,并对采集的车道图像进行传统的Otsu阈值分割和改进的Otsu阈值分割[5],如图5所示, 分割后的图像是

(a) Otsu阈值分割算法(b)改进的Otsu阈值分割算法

图5中车道标线阈值分割的处理结果

通过上图中阈值分割算法的处理结果,不难发现传统的Otsu阈值分割方法在标线和标线之间没有得到理想的分割 黑洞出现在标记的边界和内部,灰度值较低的部分被分割到背景中,这将极大地影响标记的识别和跟踪。此外,Otsu阈值分割算法的阈值T为T=144,改进的Otsu阈值分割算法的阈值最终为131,相对较小,表明反映了更多的白色标记,可以清晰显示白色标记和背景返回的地方。改进的Otsu阈值分割算法该算法能在各种情况下准确识别车道线,处理速度达到0.453秒,满足实时性要求。这是一种有效的车道线识别算法。

4结论

改进了传统Otsu方法的应用局限性,提出了基于类间距离的Otsu阈值分割算法。该算法由MATLAB编程实现,通过阈值分割车道标志图像。通过对各种分割算法的比较,发现该方法能够提高车道标识识别的实时性,满足高速车辆实时控制的要求,也有利于抑制噪声,提高识别的可靠性和鲁棒性。

参考文献:

1]于。基于机器视觉的车道偏离预警系统研究[。长春:吉林大学,2006 [2]张德方等. MATLAB数字图像处理(第二版)[M]。北京:机械工业出版社,2012 3],,石永鹏,纪.一种改进的Otsu图像阈值分割算法[。激光与红外,2012,42 (5): 585-588

[4]洪敏蔡,钟洋,一种新的迭代三类阈值分割技术在图像分割中的应用,《图像处理学报》,第23卷,第3期,2014年3月

[5]冈萨雷斯r . c .北京:电子科技大学出版社,2005

通过以上图像阈值分割算法处理结果,不难发现传统的Otsu阈值分割方法,标记和背景没有得到理想的分割,标记边界和内部黑洞,灰度值较低的部分被分割成背景,这将大大影响标记的识别和跟踪。此外,Otsu阈值分割算法的阈值T为T=144,改进的Otsu阈值分割算法的阈值最终为131,相对较小,表明反映了更多的白色标记,可以清晰显示白色标记和背景返回的地方。改进的Otsu阈值分割算法该算法能在各种情况下准确识别车道线,处理速度达到0.453秒,满足实时性要求。这是一种有效的车道线识别算法。

4结论

改进了传统Otsu方法的应用局限性,提出了基于类间距离的Otsu阈值分割算法。该算法由MATLAB编程实现,通过阈值分割车道标志图像。通过对各种分割算法的比较,发现该方法能够提高车道标识识别的实时性,满足高速车辆实时控制的要求,也有利于抑制噪声,提高识别的可靠性和鲁棒性。

源码框架链接:MATLAB车道线检测.zip-专业指导文档类资源-CSDN下载

基于MATLAB改进Otsu阈值分割的车道线检测相关推荐

  1. matlab中图像的阈值分割,基于MATLAB的图像阈值分割技术汇总

    数字图像处理课程论文 基于MATLAB的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB的分析.通过双峰法,迭 代法以及OUTS法三种算法来实现图像阈值分割,并且就这三种算法做了 ...

  2. matlab人工选择阈值进行分割,基于MATLAB的图像阈值分割算法的研究

    [摘要]:图像分割是一种重要的数字图像处理技术.本文首先介绍了图像分割技术,其次总结了目前图像分割技术中所用到的阈值.边缘检测.区域提取等方法以及分水岭算法.针对各种阈值分割算法,本文在最后做了详细的 ...

  3. 空间中的语义直线检测_基于语义分割的车道线检测算法研究

    龙源期刊网 http://www.qikan.com.cn 基于语义分割的车道线检测算法研究 作者:张道芳 张儒良 来源:<科技创新与应用> 2019 年第 06 期 摘 ; 要:随着半自 ...

  4. 基于循环特征位移聚合器的车道线检测(RESA: Recurrent Feature-Shift Aggregator for Lane Detection)

    2021年的车道线检测新方法. 官方公开视频.论文.源码: https://www.bilibili.com/video/BV1664y1o7wg https://arxiv.org/abs/2008 ...

  5. matlab图像处理--Otsu阈值分割

    原文:https://blog.csdn.net/weixin_41721222/article/details/80207909 Otsu算法:取一个最优阈值把原图像分为前景色(A部分)与背景色(B ...

  6. otsu天空分割 matlab,matlab图像处理--Otsu阈值分割

    原文:https://blog.csdn.net/weixin_41721222/article/details/80207909 Otsu算法:取一个最优阈值把原图像分为前景色(A部分)与背景色(B ...

  7. 毕设题目:Matlab车道线检测

    1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Assistance System, 简称AD ...

  8. 论文解析:基于激光雷达的车道线检测 LLDN-GFC---K-Lane: Lidar Lane Dataset and Benchmark for Urban Roads and Highways

    1.摘要 车道检测功能是检测本车道和相邻车道的准确位置和曲率,为路径规划功能提供必要的输入. 出发点: 随着大量的基于图像的车道线检测数据集出现,基于摄像头的车道线检测网络发展迅速,但这些算法依赖于图 ...

  9. 无人驾驶汽车系统入门(七)——基于传统计算机视觉的车道线检测(2)

    无人驾驶汽车系统入门(七)--基于传统计算机视觉的车道线检测(2) 原创不易,转载请注明来源:http://blog.csdn.net/adamshan/article/details/7873330 ...

最新文章

  1. 交通注意:叉车和自行车
  2. Spring和JSF集成:选择项目
  3. 前端学习(1769):前端调试之什么是manifest
  4. Let‘s Encrypt 免费Https证书
  5. 【转】安卓开发经验分享:资源、UI、函数库、测试、构建一个都不能少
  6. spring cloud微服务分布式云架构简介
  7. python中socket.gaierr errno1104_“socket.gaierror:[Errno 11004]getaddrinfo失败”
  8. html设置css字体样式表,HTML 学习笔记 CSS样式(字体)
  9. 检定规程JJG687- 2008《液态物料定量灌装机》解析
  10. 计算机专业sci二区难吗,二区的sci有多难?sci二区版面费一般多少?
  11. java项目1(家庭收支记账软件)
  12. 台式计算机diy,DIY组装台式电脑经验分享学习篇
  13. win 10 添加网络位置提示【输入的文件夹似乎无效,请选择另一个】解决办法
  14. 从 Aave 到 Yearn:一文梳理 DeFi 中的「蓝筹股」
  15. CPU Machine Check Architecture Error Dump (CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz, CPUID: 0x
  16. 戴戴戴师兄-数据分析课程笔记(第一讲)
  17. 树莓派学习【不定时更新】
  18. openlayers绘制箭头线
  19. 网站专题页必做的10个策划技巧与方法
  20. 爬虫系列之新浪微博爬虫源码weibospider_v2

热门文章

  1. 连接linux服务器ip地址设置方法,linux下配置ip地址的方法
  2. 可以通过限定ip来限制用户重复登录么_饿了么到底有多“贼”?揭秘它一步步让你下单的套路!...
  3. Malicious URL Detection using Machine Learning
  4. VBScript里msgbox出现中文乱码的解决办法
  5. 数字化转型 财务部首当其冲
  6. Python爬取QQ音乐内地专辑
  7. 数据结构 深入理解二叉树的实现
  8. Kubernetes(k8s)CNI(Calico)网络模型原理
  9. 推荐的Qt论坛+个人博客+网站
  10. vscode全背景图设置技巧