当前位置: 首页 > news >正文

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

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

    • 摘 要:
    • 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并发布服务创建商品微服务准备商品数据…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

windows系统MySQL安装文档

概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...