【深度学习】基于卷积神经网络的铁路信号灯识别方法
基于卷积神经网络的铁路信号灯识别方法
- 摘 要:
- 1 引言
- 2 卷积神经网络模型
- 2.1 卷积神经网络结构
- 2.2.1 卷积层
- 2.2.2 池化层
- 2.2.3 全连接层
- 3 卷积神经网络算法实现
- 3.1 数据集制作
- 3.2 卷积神经网络的训练过程
- 3.2.1 前向传播过程
- 4 实验
- 5 结语
摘 要:
目前中国货运铁路和既有线铁路采用的仍是司机通过瞭望铁路沿线信号灯来指导行驶。本文介绍了一种基于卷积神经网络(CNN)的铁路信号“三显示”通过信号机识别方法,为司机二次甄别信号灯颜色。本文制作“三显示”信号灯数据集,在 TensorFlow 平台搭建卷积神经网络,建立以卷积层数、数据集大小以及迭代次数为变量的对比实验。在样本条件下,4 层卷积网络特征提取效果最优,进一步进行卷积层中卷积核的深度对网络收敛性和收敛速度与识别精度的影响的实验,最终,最优网络下识别率可
达 99.16%。
1 引言
铁路运输是我国交通运输领域的重要组成部分,目前,我国既有线铁路仍有部分线路需司机瞭望以获取信号灯颜色。为保障铁路运输安全,同时为司机提供准确参考信息,本文采用卷积神经网络对铁路信号色灯进行识别。
本文着重阐述在以下两种卷积神经网络的基础上自行设计的网络结构提出、进展和最终效果。随着Hinton 等[1]人解决了深度学习模型优化问题,深度学习得到迅速发展。基于 1998 年 LeCun 等[2]提出并首先成功应用于数字识别问题的卷积神经网络 LeNet-5和 2014 年由牛津大学提出并准确进行图像分类和目标 检 测 的 卷 积 神 经 网 络 VGG (Visual geometrygroup)[3]设计出能够准确识别信号灯信号卷积神经网络。其中,LeNet-5 由以 32321 的单通道图像像素作为输入,经 2 层卷积 3 层全连接组成,并在小规模手写数字识别中取得较好结果。VGG以 2242243的三通道图像像素作为输入,经 13 层卷积 3 层全连接组成,并在 2014 年的 ILSVRC 比赛中,在 Top-5中取得了 92.3%的正确率。不同于其他深度学习框架,卷积神经网络具有位移、畸变鲁棒性,并行性等特点,是基于深度学习理论的人工神经网络,其中的卷积结构既可减少深层网络占用空间,也可减少网络参数数量,缓解模型过拟合。本文通过制作“三显示”信号灯数据集,在TensorFlow 平台搭建多层卷积神经网络,建立以卷积层数(4、5、6 层)、卷积层中不同卷积核个数为变量的对比实验,最终找到最优卷积神经网络结构并完成对铁路信号色灯的正确识别。
2 卷积神经网络模型
2.1 卷积神经网络结构
卷积神经网络由多个神经网络层构成,每层神经网络由多个神经元组成,其结构如图 1 所示。

卷积神经网络可分为:输入层、卷积层、池化层、全连接层和输出层。具体介绍如下:
(1)输入层:通过对输入图像进行读写操作,将原图转化成像素值传入到输入层。
(2)卷积层:卷积核滑动进行卷积运算,提取输入层图像特征。卷积核维度和个数均会对输入特征提取量产生影响。
(3)池化层:同样有与卷积核相似的池化核对卷积层图像进行子抽样,在保证了有用信息不降低的前提下,减少数据处理量。
(4)全连接层:可含有多个全连接层,代表神经网络中的隐藏层部分,第一层与上一层池化层输出相连。
(5)输出层:输出层的设计取决于卷积神经网络所需结果,一般为分类器。

2.2.1 卷积层
通过一个可学习卷积核和一个激活函数,即可得
到一个输出特征图。卷积核的维度和个数不同使得特
征图不同,卷积层计算公式为
2.2.2 池化层
池化的原理是将上一层输出特征图进行缩小,即

2.2.3 全连接层
全连接层中,将上一层所得特征图数据拉伸为一维特征作为全连接层输入。全连接层输出通过对输入加权求和并通过激活函数的响应得到

3 卷积神经网络算法实现
3.1 数据集制作
本文信号灯数据集来源于铁路信号实验室,拍摄铁路信号灯视频,运用 AdobePremiere Pro CC 2015 分帧得到大量图片。将数据集中信号灯图片分为红色、绿色、黄色共 3 类。每类选出 300 张图片作为训练集,100 张图片作为测试集。该数据集包含不同视角的铁路信号灯图片,
3.2 卷积神经网络的训练过程
3.2.1 前向传播过程
本实验卷积层网络初始化主要采取两种方式,分别为 Xavier 方式和正则化方式,偏置初始化为0.00001。全连接层权重初始化采取 Xavier 方式,偏
置初始化为 0. 1。本 实 验 前 向 传 播 训 练 过 程 中 , 卷 积 层 采 用
Softmax 分类输出,loss 采用交叉熵求平均,优化器采用梯度下降 GDO 优化器,并使用最小 minimize 取出损失。其中,全连接层使用 Dropout 随机损失函数可避免网络过拟合,学习率固定,未采用自适应学习率。输入图片数据时,批尺寸的图片输入采用训练样本随机抽取形式。3.2.2 反向传播过程在反向传播算法中,主要训练的网络参数为:卷积层、全连接层网络权重和各层网络偏置参数。反向传播算法主要基于梯度下降法,网络参数被初始化后通过梯度下降法向训练误差 loss 减小方向调整。通过所有网络层的灵敏度建立总误差对所有网络参数的偏导数,进而得到使训练误差减小的方向。训练流程图如图 4 所示。

4 实验
针对 4 层卷积神经网络的结构,进一步修改网络参数,对比不同卷积层卷积核的个数对测试精度的影响,对卷积网络训练过程中收敛速度,测试精度进行对比试验。
表 1 是我们设计出的几组卷积核对比组,前面 6组按每个池化层分界组,按比例增加卷积核的个数,后面 3 组对比不同层卷积核的排列顺序,由少到多、由多到少的顺序和均匀分布顺序对实验结果的影响, 由于选取的初始化方式可能导致的出现拟合现象,每个数量经过多次的对比,可能存在实验上的读取数据出现误差,以下网络数量的选择提供出了网络收敛及稳定性的比较。上表显示了上述网络经过迭代以后最终趋于稳定时我们用测试集测出的精度结果,由于迭代到后期训练 loss 损失很小接近于 0,所以我们选取
的是迭代次数在25000次以内的测试精度趋于不变时的网络的转折点作为网络的稳定时测试精度,其中网络随着迭代次数的增加测试精度增加,逐渐趋于不变。
由上述实验对比发现,1-6 类的对比中随着网络中卷积核的增加收敛速度变慢,由于计算量的增加以及深度的增加网络中参数的更新变得缓慢卷积核个
数为 80 个时可见针对本数据集大小与特征,网络存在最优值如图 4 所示。其中网络结构为均匀分布总数为 68 个的卷积核排列得到最快的收敛,倒叙排列的网络在 25000 次迭代次数内,没有收敛,而且网络的个数增加的过程中,需要迭代次数增大才能达到相同收敛结果,同时前期训练过程中网络训练精度波动增大,多次训练同一网络出现过拟合现象次数增多,表
明网络损失未能按梯度进行下降。

第 7 类卷积核个数按照增序变化,网络训练过程中前期训练中损失下降较少,中期过程时,有一阶跃变化如图 4,后期 loss 接近于 0。第 8 类时卷积核个数按照降序变化,网络训练过程中损失下降较快,在4400 轮迭代次数时,网络陷入局部最优,此时损失已经接近于0,网络的测试精度在25000次时徘徊在0.5,可知网络训练采用降序影响网络收敛较大,较难得到较高的测试精度。第 9 类卷积核选择的是均匀顺序,网络收敛速度较为理想在 2500 轮迭代时已经达到了0.89 的测试精度,并在 25000 轮时测试精度达到0.9324。由于卷积网络层数多、训练数据较少、训练模型结构复杂及 Overtraining 拟合训练数据中噪声和训练样例没有代表性特征等原因,导致网络易出现过拟合现象。为更好的避免这种现象,可在原数据集基础上
进行图像锐化、明暗度调整等操作随机加入噪声;可采用合适的卷积模型卷积预处理后的数据集;也可添加正则项将权值大小加入损失函数以减少过度拟合。
5 结语
本文建立卷积神经网络对铁路信号色灯图片进行神经网络训练,使用卷积神经网络提取铁路信号色灯特征,通过目标特征提取池化,最终在信号灯样本
图片集下经过对比试验,在最优范围内的 4 层卷积神经网络,卷积核个数为 80 时,按照增序排布、分布较均匀的方式测试最高识别率为 99.16%,可通过在小范围内进一步优化得到更高的识别率。CNN 网络在铁路信号色灯识别上的应用将为铁路司机提供信号灯信息参考,同时更大程度的保障铁路行车安全。
相关文章:
【深度学习】基于卷积神经网络的铁路信号灯识别方法
基于卷积神经网络的铁路信号灯识别方法 摘 要:1 引言2 卷积神经网络模型2.1 卷积神经网络结构2.2.1 卷积层2.2.2 池化层2.2.3 全连接层 3 卷积神经网络算法实现3.1 数据集制作3.2 卷积神经网络的训练过程3.2.1 前向传播过程 4 实验5 结语 摘 要: 目前中…...
DR IP-SoC China 2023 Day演讲预告 | 龙智Perforce专家解析芯片开发中的数字资产管理
2023年9月6日(周三),龙智即将亮相于上海举行的D&R IP-SoC China 2023 Day,呈现集成了Perforce与Atlassian产品的芯片开发解决方案,助力企业更好、更快地进行芯片开发。 D&R IP-SoC China 2023 Day 是中国首个…...
解决github连接不上的问题
改 hosts 我们在浏览器输入 GitHub 的网址时,会向 DNS 服务器发送一个请求,获取到 GitHub 网站所在的服务器 IP 地址,从而进行访问。 就像你是一名快递员,在送快递前要先找中间人询问收件人的地址。而 DNS 就是这个告诉你目标地址…...
# DevOps名词定义梳理
DevOps名词定义梳理 极限编程座右铭:如果它令你很受伤,那么就做更多的练习(If it hurts, do it more often) 经常人们会把这些名词用错: 构建:就是把源代码制成成品的过程,这个过程一般会有单元…...
Redis Cluster
文章目录 一、集群搭建1 节点规划2 集群启动 二、配置一致性1 基本分工2 更新规则 三、Sharding1 数据分片分片实现分片特点 2 slot迁移迁移原因迁移支持集群扩容迁移错误背景现象问题分析验证猜想 集群缩容 3. 请求路由client端server端migrating节点的读写importing节点的读写…...
Pandas常用指令
astype astype的作用是转换数据类型,astype是没办法直接在原df上进行修改的,只能通过赋值的形式将原有的df进行覆盖,即df df.astype(dtype) astype的基本语法 DataFrame.astype(dtype, copyTrue, errorsraise) dtype参数指定将数据类型转换…...
FPGA实战小项目3
基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DDS sin和cosine波形的产生...
mysql创建用户
创建用户 创建 -- 创建用户 itcast , localhost只能够在当前主机localhost访问, 密码123456; create user test01localhost identified by 123456;使用命令show databases;命令,只显示一个数据库,因为没有权限 -- 创建用户 test02, 可以在任意主机访问…...
程序员写好简历的5个关键点
程序员就业竞争大?找不到工作?也许,从简历开始你就被淘汰了.... 在很多的公司中,HR的招聘压力是很大的,浏览每个人的简历的时间可能只有20几秒,所以即使你的工作能力十分的强,但如果你没有在简…...
Vue:关于如何配置一级路由和二级路由的方法
路由的嵌套配置 文章目录 路由的嵌套配置配置一级路由 配置一级路由 创建router文件夹,里面添加index.js文件配置以下代码: import Vue from vue import VueRouter from "vue-router"; import Layout from /views/Layout import ArticleDeta…...
【论文绘图】seaborn分类数据绘图
参考:https://seaborn.pydata.org/tutorial/categorical.html 分类变量关系图中的catplot类似于连续变量中的relplot,默认是stripplot。 分类变量图种类 分类散点图 stripplotswarmplot (kind‘swarm’) 类别分布图 boxplotviolinplotboxenplot …...
KubeSphere Namespace 数据删除事故分析与解决全记录
作者:宇轩辞白,运维研发工程师,目前专注于云原生、Kubernetes、容器、Linux、运维自动化等领域。 前言 2023 年 7 月 23 日在项目上线前夕,K8s 生产环境出现故障,经过紧急修复之后,K8s 环境恢复正常&#…...
mysql场景题:最近7天连续3天登陆用户,字段,id,date(已去重)
1.最近7天连续3天登陆用户,字段,id,date(已去重) 思路: lag对时间开窗(注意时间得转换为时间戳(int类型才可以添加后续条件),跳行为2(连续3天&am…...
华为OD机试 - 最差产品奖 - 双端队列 deque(Java 2023 B卷 200分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…...
【校招VIP】前端算法考察之链表算法
考点介绍: 链表是一种物理存储结构上非连续的数据结构,数据的逻辑顺序是通过链表中的指针链接次序实现相互勾连。链表相对数组而言有很多不同之处,在特定场景下能发挥独特的优势。例如链表的插入和删除操作比数组效率高,数组需要改变其他元素的位置,而链表只需要改变…...
uni-app之android离线自定义基座
一 为什么要自定义基座 1,基座其实就是一个app,然后新开发的页面可以直接在手机上面显示,查看效果。 2,默认的基座就是uniapp帮我们打包好的基座app,然后我们可以进行页面的调试。 3,自定义基座主要用来…...
【AWS】实操-保护 Amazon S3 VPC 终端节点通信
文章目录 实验概览目标实验环境任务 1:探索并启动实验环境任务 1.1:探索 Amazon VPC 资源任务 1.2:探索 Amazon EC2 资源任务 1.3:创建 Amazon VPC 终端节点任务 1.4:连接私有 EC2 实例任务 1.5:探索 Amazo…...
C# Color颜色RGB对照表
序号Color色系颜色RGB图例1Color.AliceBlue蓝色艾丽丝蓝240,248,2552Color.AntiqueWhite白色古典白色250,235,2153Color.Aqua,Color.Cyan青色浅蓝色,蓝绿色,青色0,255,255 C# Color颜色RGB对照表_旭东怪的博客-CSDN博客 C#颜色和名称样式对照…...
Thread中几个常用的api详解join,interrupt
1.join() join方法可以在多线程中帮我们实现调用线程的同步效果,比如,现在有三个线程,a,b,c a中启动了b和c线程异步去执行一件事,但是a希望他们做完以后再继续往下执行,那么就可以在调用b和c启…...
Golang项目实战(三)
Golang项目实战(三) 该项目是使用grpcgin来构建的一个电商微服务项目,使用consul来注册和发现微服务。 项目简介创建项目架构创建货币服务创建货币微服务处理器将货币微服务注册到consul下载安装consul并发布服务创建商品微服务准备商品数据…...
TypeScript实战:手把手教你实现4种不依赖第三方库的UUID生成器(附完整代码)
TypeScript实战:4种零依赖UUID生成器的实现与优化 在小程序开发或特殊环境下,我们常常面临无法使用第三方库的困境。UUID作为分布式系统中唯一标识符的核心组件,其生成逻辑却往往被封装在uuid这样的第三方库中。本文将带你从零实现四种不同格…...
从需求到SQL:手把手教你将‘住院管理系统’的ER图转化为可运行的数据表(附建表语句)
从需求到SQL:住院管理系统数据库设计实战指南 在医疗信息化快速发展的今天,一套设计良好的住院管理系统数据库不仅能提高医院运营效率,更能为患者提供更精准的医疗服务。本文将带你从零开始,完整实现一个住院病人信息管理系统的数…...
电子技术——MOSFET的电流-电压特性解析
1. MOSFET基础:从结构到导电机理 要理解MOSFET的电流-电压特性,我们得先拆解它的物理结构。想象MOSFET就像个三层夹心饼干:最下层是硅基底(p型或n型半导体),中间是薄如蝉翼的绝缘层(二氧化硅&am…...
VisualVM安全监控指南:敏感数据保护与权限管理
VisualVM安全监控指南:敏感数据保护与权限管理 【免费下载链接】visualvm VisualVM is an All-in-One Java Troubleshooting Tool 项目地址: https://gitcode.com/gh_mirrors/vi/visualvm VisualVM作为一款强大的Java应用性能监控与故障诊断工具,…...
免费开源钥匙建模终极指南:快速生成3D打印钥匙模型
免费开源钥匙建模终极指南:快速生成3D打印钥匙模型 【免费下载链接】keygen OpenSCAD tools for generating physical keys 项目地址: https://gitcode.com/gh_mirrors/ke/keygen 在数字化制造时代,开源钥匙建模工具Keygen为技术爱好者和实践者提…...
喜马拉雅音频下载工具:技术实现与高效使用指南
喜马拉雅音频下载工具:技术实现与高效使用指南 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字化学习与娱乐场景…...
VeraCrypt加密卷功能解析与个性化配置指南
VeraCrypt加密卷功能解析与个性化配置指南 【免费下载链接】VeraCrypt Disk encryption with strong security based on TrueCrypt 项目地址: https://gitcode.com/GitHub_Trending/ve/VeraCrypt VeraCrypt作为一款基于TrueCrypt的开源磁盘加密工具,提供了强…...
VRCX:重新定义VRChat社交管理的智能伴侣工具
VRCX:重新定义VRChat社交管理的智能伴侣工具 【免费下载链接】VRCX Friendship management tool for VRChat 项目地址: https://gitcode.com/GitHub_Trending/vr/VRCX 在虚拟社交平台VRChat的生态中,社交关系管理常常成为用户体验的痛点。传统方式…...
Android WebView视频播放全屏实战:从黑屏到完美适配的完整解决方案
Android WebView视频全屏播放的深度优化指南:从黑屏修复到多机型适配 当你在WebView中嵌入视频播放功能时,是否遇到过这样的场景:用户点击全屏按钮后画面突然黑屏,或者在某些机型上视频声音无法正常停止?这些问题往往…...
如何7天免费使用Cursor Pro:无限制AI编程助手完整指南
如何7天免费使用Cursor Pro:无限制AI编程助手完整指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tri…...
