代表机械 计算机技术的颜色,基于机器视觉识别的交通灯控制系统

1、引言

机器视觉又称计算机视觉,是用计算机来实现人的视觉功能,也就是用机器代替人眼来做测量和判断。机器视觉技术包含光源照明技术、光成像技术、传感器技术、数字图像处理技术、机械工程技术、检测控制技术、模拟与数字视频技术、计算机技术、人机接口技术等相关技术,是实现计算机集成系统的基础技术。

对于交通灯的识别,将使世界上7~8%的色盲、色弱患者驾驶汽车成为可能,也为无人驾驶汽车在技术上前进一步。因而将为汽车工业以及汽车电子工业带来更大的经济效益,和更大的社会效益,并可在国际上填补该领域的空白。

2、基于机器视觉的交通灯识别方法

2.1、交通灯识别方法的流程图如下所示

b2b1946076cada4f1f621b4adb407c51.png

2.2、交通灯定位

当获取一张原始的图像时,考虑到背景的变化及其他物体对交通灯识别的干扰,我们需要将图像中交通灯的部分提取出来。在此本文用交通灯的形状及灰度值来定位交通灯在图像中的位置。

2.2.1、交通灯形状的矩形度与圆形度

可以通过交通灯的矩形度来找出交通灯一定的范围,在此采用一种简单的矩形度计算方法rectangularity算子,即将上述低灰度值的分散区域作为输入区域,当得到某一矩形和输入区域有相同的一、二阶矩时,计算出输入区域的面积和该矩形面积的比,即为矩形度rectangularity的值。显然当输入区域为矩形时,得到矩形度的最大值1;输入的区域越接近矩形,则矩形度越接近与1(无输入区域时矩形度为0)。

通过上述矩形度的算法,可以在低灰度值的区域中筛选出一定范围(包含交通灯轮廓)的类矩形,最后通过交通灯在图像中占据的面积定位出交通灯的轮廓。

8a81767d415aa5f3626c18cf626f09ff.png

图2-1通过形状定位出交通灯的位置

然后在上图的基础上,采用一种简单的Circularity算子,确定出包含有交通灯的轮廓。

具体的算法如下:

假设F是一个闭合区域的面积,max这个区域内中心点到边界或轮廓的最大距离,那么:

circularity=F/(max^2*π)(2-1)

根据式2-1可得圆的circularity为1。由此可知对于一个轮廓或多边形包围的区域如果其circularity接近与1,那么这个轮廓近似于一个圆。可以通过一个阈值选取出与圆的相似的轮廓,例如可以选取circularity在[0.8,1]范围内的轮廓。如果有多个轮廓符合,则将这些轮廓所对应的区域存放入一个数组之内。

2.3、颜色空间变化

当确认交通灯的位置后,我们需要通过颜色识别来确定交通灯的状态。

由于RGB颜色空间的相似不能代表颜色的相似,HSI颜色空间则没有这个方面的问题,它们很适合人们肉眼的分辨,较好地反映人对颜色的感知和鉴别能力。因此可以先将RGB颜色空间转化为HSI颜色空间。

RGB空间转化为HSI空间的一般公式如下:

f439c515fca50d2db11b2d6604403cc4.png

图2-2通过饱和度提取的交通灯信息

2.4、颜色识别

本文通过图像分割来识别交通灯的颜色。将图像通过选定的阈值分割后,找出所需要的图形。

2.4.1、基于阈值的分割

这是一种最常用的区域分割技术,阈值是用于区分不同目

标的灰度值。如果图象只有目标和背景两大类,那么只需选取一个阈值称为单阈值分割。这种方法是将图象中每个象素的灰度值和阈值比较,灰度值大于阈值的象素为一类,灰度值小于阈值的象素为另一类。如果图象中有多个目标,就需要选取多个阈值将各个目标分开,这种方法称为多阈值分割。阈值分割的结果依赖于阈值的选取,确定阈值是阈值分割的关键,阈值分割实质上就是按照某个标准求出最佳阈值的过程。

在背景和目标图像的先验概率相等这一特定条件下,最佳阈值是背景灰度均值与目标图像灰度均值之均值。即:

cf825287ebaec7d9a547f9aad660ca0b.png

通常阈值化分割方法根据某种测度准则确定分割阈值。如果仅使用象素的灰度级确定分割阈值,则阈值化是点相关的;如果由每个象素邻域的局部特性决定门限,则阈值化是区域相关的。基于点相关的阈值化方法有P-TIle方法,直方图凹形分析法,最大类间方差法,最大熵法以及矩不变门限法等。基于区域相关的分割方法有直方图转换法,基于二阶灰度统计的方法,松弛法以及基于过度区提取的分割方法等。

9b5ef6e73ab3bf680100a5bc40c7b0c8.png

图2-3颜色识别的结果

2.5、数字识别

在本例中,OCR被用来识别出交通数字灯上的数字显示变化,使用OCR之前应先将图像的灰度值取反。

2.5.1、灰度值转换

灰度值转换是将图像的灰度值颠倒过来,其中图像的bite和cyclic类型的计算公式为g‘=255-g

图像的direcTIon类型转化公式为:

g’=(g+90)modulo180              ( 2-6)

d47c984c3b9809120d3ed59fef40a882.png

图2-4灰度值取反结果

2.5.2、OCR

OCR是英文OpTIcalCharacterRecogniTIon的缩写,意思为光学字符识别,通称为文字识别,它的工作原理为通过扫描仪或数码相机等光学输入设备获取纸张上的文字图片信息,利用各种模式识别算法分析文字形态特征,判断出汉字的标准编码,并按通用格式存储在文本文件中,由此可以看出,OCR实际上是让计算机认字,实现文字自动输入。它是一种快捷、省力、高效的文字输入方法。

1c50271202cdfea4d65650ccbbf7da62.png

图2-5  OCR识别数字结果

因OCR是通过检测暗的模式确定其形状,所以在上一步的灰度值转化过程中先将原图像的灰度值取反,把原本灰度值高的部分转换成灰度值低的部分,然后用字符识别方法将形状翻译成计算机文字,即对文本资料进行扫描,然后对图像文件进行分析处理,最后获取文字及版面信息。

3、结论

交通数字信号灯是指挥交通必不可少的、无人职守的公共交通设施,其重要性是人所共知的。本文建立的交通数字信号识别系统采用机器视觉技术,对交通信号灯的颜色及其数字进行自动识别。众所周知,色弱、色盲是一种遗传疾病。根据统计,全世界约有7%~8%的人患有不同程度的色盲、色弱疾病,这给患者的工作和生活带来了一定的障碍和困难,许多工作和专业都对色盲、色弱患者关闭了大门。在我国,色盲者从出生开始直至寿终正寝,驾驶机动车的权利就被硬性法规标准所剥夺!若能够运用机器视觉技术让色盲患者正确区分红绿等多种颜色,辨别彩色图像中的种种事物,赋予他们正常人的生活权利,意义深远。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java开发者工具开源版_JArchitect对Java开源贡献者免费

java开发者工具开源版JArchitect是用于Java代码库的静态分析工具,它提供交互式GUI和HTML报告,用于查找代码中过于复杂或有问题的区域,执行分析以重构并比较随时间的变化。 在版本3中,添加了类似LINQ的查询语言,该工具使…

有没有查计算机组成的答案得,计算机组成答案.doc

黄淮学院计算机科学系2008—2009年第二学期2007级《计算机组成原理》期终试卷(A)参考答案及评分标准命题人:王晓涓注意事项:本试卷适用于2007级软件工程专业本科学生使用一、单项选择题(每题1分、共15分)1、B 2、B 3、A 4、D 5、A 6、D 7、D 8、C 9、C 1…

使用JDK 8将收藏转换为地图

我多次遇到这样的情况,希望将多个对象存储在Map中而不是Set或List中,因为将唯一标识信息的Map应用于对象有一些优势 。 Java 8使用流和Collectors.toMap(…)方法使翻译变得比以往更加容易。 使用Map而不是Set的一种有用情况是&am…

计算机上没有启动程序怎么办,Win7开机不加载启动项怎么办

现在的电脑为了受到更好的保护,往往在开机的时候就加载了一些启动项,如:杀毒软件,安全卫士等等。可有时候会发现,在Win7操作系统中,安装后发现不能开机加载启动项。在注册表中,在msconfig中&…

车牌识别与计算机编程,基于计算机视觉的车牌字符识别技术的研究

摘要:车牌识别系统是现代智能交通管理系统的核心组成部分,是图像处理、神经网络和模式识别等技术的综合应用。 本文介绍了车牌识别系统的一般构成,包括车牌图像预处理、车牌字符分割和车牌字符识别等三个重要组成部分,并分别进行深入研究。 车牌图像预处理方面,针对…

线程同步,线程不同步_重新同步多线程集成测试

线程同步,线程不同步我最近在Captain Debug的Blog上偶然发现了一篇文章“ 同步多线程集成测试 ”。 那篇文章强调了设计涉及异步运行业务逻辑的被测类的集成测试的问题。 给出了这个人为的示例(我删除了一些评论): public class ThreadWrapp…

用户需求测试软件,用户需求和软件需求的区别

原标题:用户需求和软件需求的区别一些刚实施GJB5000A组织的开发人员,不是很理解软件研制任务书和软件需求规格说明的区别。这里再次解读下这个问题。软件研制任务书就是用户需求,而用户需求是从用户的角度,用用户熟悉的语言进行描…

在Java中使用可信时间戳

受信任的时间戳记是使受信任的第三方(“时间戳记权威”,TSA)以电子形式证明给定事件的时间的过程。 欧盟法规eIDAS赋予了这些时间戳合法的力量-即,如果事件带有时间戳,则没有人可以质疑事件的时间或内容。 它适用于多种…

无限滚动重置服务器,简单无限滚动的实现

在使用elementUI组件库的时候,用到了无限滚动这个功能。我没有看源码,直接在网上学习了下实现的思路,然后自己手动编码以下。在此总结下。假设页面上有一个盒子容器,容器内有一些子元素。容器的高度是固定的,有纵向滚动…

java配置openjdk_Java大新闻不断涌现:Java SE 6和OpenJDK

java配置openjdk我最近公布的最新的Java 8新闻 ,总结了一些最近的事态发展中的Java 8 。 自从发布该文章不到一周,就发布了更多重要的Java新闻报道,我在本文中总结了其中的一些内容。 共同的主题包括不同的Java SE 6实现和OpenJDK 。 Java安…

Fatjars,Thinwars以及为什么OpenLiberty很酷

法特哈斯 构建一个Fatjar(或Uberjar),其中包含将应用程序很好地打包在一起运行所需的一切,这意味着您可以: java -jar myapp.jar然后离开。 没有应用程序服务器。 没有类路径。 这种方法已经被诸如Springboot之类的微…

Spring Cloud Config Server简介

1.概述 在本教程中,我们将回顾Spring Cloud Config Server的基础知识。 我们将设置一个Config Server ,然后构建一个客户端应用程序 ,该客户端应用程序在启动时会消耗配置 ,然后刷新配置而不重新启动。 我们正在构建的应用程序与《…

朴素贝叶斯算法实现分类以及Matlab实现

开始 其实在学习机器学习的一些算法,最近也一直在看这方面的东西,并且尝试着使用Matlab进行一些算法的实现。这几天一直在看得就是贝叶斯算法实现一个分类问题。大概经过了一下这个过程: 看书→算法公式推演→网上查询资料→进一步理解→搜…

编写自定义的AssertJ断言

AssertJ是广泛使用的Hamcrest匹配器的替代匹配库。 实际上,对于我自己的项目,我已经更改为仅使用AssertJ-我只是发现流畅的界面和可扩展性非常吸引人。 您可以编写自定义断言,如下所示: 想象一下一种具有强度和饮料类型的咖啡 &…

LintCode-A + B 问题

文章转载 http://blog.csdn.net/wangyuquanliuli/article/details/47755461 给出两个整数a和b, 求他们的和, 但不能使用 等数学运算符。 您在真实的面试中是否遇到过这个题? Yes样例 如果 a1 并且 b2,返回3 注意 你不需要从输入流读入数据,…

位操作基础篇之位操作全面总结

转载自 http://blog.csdn.net/morewindows/article/details/7354571 Title: 位操作基础篇之位操作全面总结 KeyWord: C/C 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试 位操作篇共分为基础篇和提高…

机器学习中的算法-支持向量机(SVM)基础

机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleastgmail.com。也可以加我的微博: leftnotea…

使用JDK 8轻松进行细粒度排序

Java的8的推出流和有用的静态 / 默认的方法比较接口可以很容易地根据个人的领域两个对象比较“值,而不需要实现一个比较(T,T)在其对象的类方法被比较。 我将使用一个简单的Song类来帮助演示这一点,接下来显示其Song.j…

主成分分析以及应用:企业综合实力排序

这段时间一直在学习数据挖掘的一些算法,今天通过不断查阅资料,学习整理了一下主成分分析这个数据降维算法。并且结合一个实例进行matlab编程实现。 主成分基本原理 在数据挖掘中,经常会遇到一个问题就是一个问题出现了n多个变量,…

自定义MongoDB的Spring Social Connect框架

在上一篇文章中 ,我谈到了我面临的第一个挑战是更改数据模型并添加连接框架。 在这里,我想提供有关我如何做的更多详细信息。 Spring Social项目已经提供了基于jdbc的连接存储库实现,以将用户连接数据持久保存到关系数据库中。 但是&#xff…