【深度学习】基于卷积神经网络的铁路信号灯识别方法

基于卷积神经网络的铁路信号灯识别方法

    • 摘 要:
    • 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 网络在铁路信号色灯识别上的应用将为铁路司机提供信号灯信息参考,同时更大程度的保障铁路行车安全。

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

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

相关文章

maven基础学习

什么是maven 构建 依赖 maven核心概念坐标 在黑窗口使用maven命令生成maven工程 pom.xml 想导入哪个jar包把它的坐标放到dependency里就可以 maven核心概念POM maven核心概念约定的目录结构 执行maven的构建命令 清理操作,clean 编译操作 compile 测试操作 test 打包…

openGauss学习笔记-60 openGauss 数据库管理-逻辑存储结构

文章目录 openGauss学习笔记-60 openGauss 数据库管理-逻辑存储结构 openGauss学习笔记-60 openGauss 数据库管理-逻辑存储结构 openGauss的数据库节点负责存储数据,其存储介质也是磁盘,本节主要从逻辑视角介绍数据库节点都有哪些对象,以及这…

SpringMvc入门

目录 1.什么是SpringMvc 2.SpringMVC工作流程 3.SpringMVC核心组件 4.SpringMvc入门 添加依赖 编写spring-mvc.xml 编写IndexController类 编写jsp 编写web.xml 测试结果 5.静态资源处理 编写Spring-mvc.xml 测试结果 ​编辑 1.什么是SpringMvc Spring MVC是一个…

1688采集商品主图,价格,规格接口

采集1688商品主图,价格接口,点击测试 在如今的电商时代,越来越多的人开始选择在1688平台上寻找商品,而采集软件的方式也有很多种,但是在市面上,各种采集软件琳琅满目,令人眼花缭乱,…

EXPLAIN概述与字段剖析

6. 分析查询语句:EXPLAIN(重点) 6.1 概述 定位了查询慢的sQL之后,我们就可以使用EXPLAIN或DESCRIBE 工具做针对性的分析查询语句。DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。 MySQL中有专门负责优化SELECT语句…

ChatGPT数据分析及作图插件推荐-Code Interpreter

今天打开chatGPT时发现一个重磅更新!code interpreter插件可以使用了。 去查看openai官网,发现从2023.7.6号(前天)开始,code interpreter插件已经面向所有chatGPT plus用户开放了。 为什么说code interpreter插件是一…

2023-9-4 最大公约数

题目链接&#xff1a;最大公约数 #include <iostream>using namespace std;int gcd(int a, int b) {return b ? gcd(b, a % b) : a; }int main() {int n;cin >> n;while(n--){int a, b;cin >> a >> b;cout << gcd(a, b) << endl;}return …

会话跟踪技术学习笔记(Cookie+Session)+ HTTP学习笔记

一、会话跟踪技术&#xff08;CookieSession&#xff09; 1.1 预备知识 1. 会话&#xff1a;用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&#xff0c;会话结束。在一次会话中可以包含多次请求和响应。 2. 会话跟踪&a…

2023 最新前端面试题 (HTML 篇)

1. src 和 href 的区别 src 用于替换当前元素&#xff08;引入&#xff09;&#xff0c;href 用于在当前文档和引用资源之间确立联系&#xff08;引用&#xff09; &#xff08;1&#xff09;src&#xff08;source&#xff09; 指向外部资源的位置&#xff0c;指向的内容将会嵌…

系统架构设计师-计算机系统基础知识(1)

目录 一、嵌入式系统概述 1、基本概念 2、嵌入式系统软件组成架构 二、嵌入式软件开发 三、嵌入式硬件 1、嵌入式微处理器 一、嵌入式系统概述 1、基本概念 &#xff08;1&#xff09;嵌入式系统是以应用为中心、以计算机技术为基础&#xff0c;并将可配置与可裁剪的软、硬件…

51单片机DHT11温湿度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机DHT11温湿度控制系统仿真设计 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图元器件清单5. 设计报告6. 设计资料内容清单&下载链接 51单片机DHT11温湿度控制系统仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 仿真图proteus8.9及以上 程序编译器&…

经管博士科研基础【19】齐次线性方程组

1. 线性方程组 2. 非线性方程组 非线性方程,就是因变量与自变量之间的关系不是线性的关系,这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等。求解此类方程往往很难得到精确解,经常需要求近似解问题。相应的求近似解的方法也逐渐得到大家的重视。 3. 线…