目标检测论文解读复现之二十:基于改进Yolov5的地铁隧道附属设施与衬砌表观病害检测方法

news2024/11/28 16:35:21

前言

此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注私信我。

一、摘要

随着地铁隧道服役时间增长,隧道衬砌在多因素影响下病害频发,对隧道结构及临近附属设施造成不良影响,严重危及到行车安全。因此,亟需精确高效的地铁隧道病害及设施检测技术。然而地铁隧道存在内部环境复杂,附属设施与衬砌病害纹理及灰度相似、目标尺度不一等检测难点,传统的人工巡检及数字图像处理方法均存在局限。针对上述问题,本文提出一种基于改进Yolov5的地铁隧道附属设施及衬砌表观病害检测模型。针对设施及病害的位置特征引入坐标注意力(Coordinate attention)引导模型对目标区域赋予更高权重,抑制背景噪声;采用BiFPN(Bi-directional Feature Pyramid Network)特征融合网络提升小目标病害检测效果;并利用GhostBottleneck替代部分卷积减少模型参数,提高检测效率。为验证改进后模型检测性能,进行了现场实验,构建了样本数量为843的地铁隧道衬砌图像数据集。并采用随机裁剪、镜像翻转等数据增强方法,将样本量扩充至4072。数据集上的实验结果表明,改进模型的平均精度均值(m AP)可达89.2%,较原模型提高了3.7%,有效提升了隧道环境中小目标病害的检测效果。且模型参数减少了12%,更有利边缘端部署。相比于其他隧道检测模型,改进后的模型在综合性能上更具优势,可为地铁隧道衬砌病害实时检测和附属设施数字化提供技术支持。

二、网络模型及核心创新点​​​​​​​

  1. Yolov5模型
  2. 面向地铁隧道的改进模型

三、应用数据集

采集到的单幅原始图像分辨率为6359×5883,每幅对应衬砌管片16-20环,在实际隧道中的尺寸比例为200像素/m。为保证数据集的标注有效性,对原图像沿环片及衬砌纹理进行自动分割。并建立了分割后图片与原图片间索引,保留里程及位置信息。分割后衬砌图像数据为843张,每张图片对应实际衬砌管片的横向尺寸为1.5m~1.7m,纵向尺寸为2m~5m,以此作为本次实验的基础数据集。

四、实验效果(部分展示)

1. 下表对比了改进模型与原模型在测试集上的表现。两模型对地铁隧道内的附属设施及螺栓孔目标均取得了较好的检测效果,其中改进后模型在测试集上的F1值及平均精度(AP)均稍高出原模型。

2. 下图列举了部分测试集中的图片在原模型及改进后模型中的推理结果。(左侧原模型 右侧改进模型)

五、实验结论

1)提出一种改进的Yolov5模型,用于快速、准确的检测地铁隧道中的附属设施及衬砌病害。改进后模型检测精度达89.2%,可自动识别隧道各类附属设施和表观病害。

2)在模型优化过程中,引入Coordinate attention以及BiFPN特征融合网络,充分利用了各类目标的位置特征,提高了对细微裂缝、设施遮挡下病害等小目标的检测能力,有效解决了地铁隧道复杂环境中背景噪声影响以及小目标病害检测等难点。

3)采用GhostBottleneck实现了检测模型的轻量化,将优化参数减少了12%,降低了模型参数,权重文件大小仅为12.2MB,更利于边缘部署,实现实时检测。

六、投稿期刊介绍

注:论文原文出自朱家松,郑澳,雷占占,练敏青,杨军伍,李林超.基于改进Yolov5的地铁隧道附属设施与衬砌表观病害检测方法[J/OL].铁道科学与工程学报.

https://doi.org/10.19713/j.cnki.43-1423/u.T20220712

解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注下面公众号,私信我。 

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

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

相关文章

14个SpringBoot优化小妙招

1. 定义配置文件信息 有时候我们为了统一管理会把一些变量放到 yml 配置文件中 例如 用 ConfigurationProperties 代替 Value 使用方法 定义对应字段的实体 Data // 指定前缀 ConfigurationProperties(prefix "developer") Component public class DeveloperPro…

力扣(LeetCode)813. 最大平均值和的分组(C++)

动态规划 本题需要用到前缀和,前缀和需要将下标 iii 后移一位,所以我们将状态的下标 iii 也后移一位;由于状态转移依赖于 j−1j-1j−1 ,我们将 jjj 的下标后移一位。 class Solution { public:double largestSumOfAverages(vecto…

2022天梯赛练习集(2022.9-2022.10)

使用函数判断完全平方数 没有加(int)过不了 int IsSquare(int n){if((int)sqrt(n) * sqrt(n) ! n) return 0;else return 1; } 使用函数求余弦函数的近似值 double funcos(double e, double x){double sum 1, item 1;for(int i 0; fabs(item) >…

Tmuxs -高效使用Linux terminal

Tmuxs -高效使用Linux terminal前言what?重要概念安装Tmux 常用命令Tmux 常用内部命令窗口(window)指令:面板(pane)指令:如何用鼠标调整pane大小配置生效参考配置参考前言 这个利器绝对可以提升…

eMMC编程基础 -(二)eMMC基础介绍

eMMC编程基础 -(二)eMMC基础介绍1 eMMC 简介1.1 eMMC系统概述1.2 eMMC 的整体架构如下图片所示:2 Flash Memory1 eMMC 简介 eMMC 是 embedded MultiMediaCard 的简称。 eMMC 是对 MMC 的一个拓展,以满足更高标准的性能、成本、体…

文件包含笔记

很多语言支持使用包含文件,这样允许开发者把可重复使用的代码存入单个文件中,在未来需要使用时,将它包含在其他代码文件中即可使用。 如果是像 C/C 这种编译语言,即使可以包含任意文件,若没有调用其中函数也不会有什么…

【从零开始学微服务】05.微服务的优势和不足

大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。 没有“银弹” 在一些电影中,“银弹”被视作能迅速杀死狼人的武器,是杀死狼人的灵丹妙药。“银弹”常被比喻为解决复杂问题的良方或高招。 由于软件的复杂…

11.27

一.进制转换 这道题的思路就是先把每个数模对应的进制.再除以,就得到对应的, 因为可能会有16进制,所以直接弄一个字符串数组,按照"0123456789ABCDEF"顺序存储,再用模找里面对应的就可以了 但是有可能是负数,所以我们需要在此之前判断一下 如果用字符串临时拼接会产…

2008年武汉高校630操作系统真题B卷

操作系统————核心系统软件 竞争计算机系统资源的基本单位————进程 UNIX————分时操作系统 操作系统中必不可少的调度————进程调度 进程和程序的本质区别————前者是动态后者是静态 磁带————顺序存储文件 某进程在运行过程中需要等待从磁盘上读入数…

tensorflow-serving docker模型部署(以mnist为例)

✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Tensorflow 文章目录前言一、环境介绍二、tensorflow-serving docker安装三、单模型部署 (以官方demo saved_model_half_plus_two_cpu为例)1、docker模型部署2、python requests模型预测四、多模型部署 (以mni…

算法提升:图的拓扑排序算法

目录 概念 思路 代码 概念 拓扑序列:一些活动,其中某些活动必须在另一些活动完成之后才能开始,一定是无环的有向图,称为AOV网。 拓扑排序,其实就是对一个有向图构造拓扑序列的过程。构造时会有两个结果&#xff1a…

Go中赋值和转换关系

Go中的赋值跟类型转换: 在java中反射是可以获取继承关系,而go语言实际是不支持继承的,所以必须是相同的类型才能使用AssignableTo(),ConvertibleTo() package mainimport ("fmt""reflect" )type User struct {Name string } func demo(){user:User{Name:…

C#语言实例源码系列-实现自定义屏保

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

Class文件结构

文章目录1.概述1.1 字节码文件的跨平台性1.2 Java的前端编译器1.3 透过字节码指令看代码细节2. 虚拟机的基石:Class文件3. Class文件结构3.1 魔数3.2 Class文件版本号3.3 常量池3.4 访问标识3.5 类索引、父类索引、接口索引集合3.6 字段表集合3.7 方法表集合3.8 属性表集合4. 使…

No.178# 混沌工程相关内容梳理

引言随着公司规模业务的快速增长,数以千计甚至万计的微服务,依赖的各类组件越来越多。分布式体系架构体系越来越复杂,没有任何一个人能够掌控所有复杂的耦合性。也就是说复杂性无法避免,不可能再回到单体应用,也无法彻…

西门子精彩触摸屏SMART V3组态配方的具体方法示例

西门子精彩触摸屏SMART V3组态配方的具体方法示例 本次和大家分享在精彩系列触摸屏中进行配方组态的具体方法,以下内容仅供大家参考: 如下图所示,首先,在连接中添加新的连接,这里以S7-200SMART为例,PLC和HMI的IP地址要设置在同一网段内, 如下图所示,在变量中,添加配…

【Java面试】来讲一讲你对String的理解

文章目录字符型常量和字符串常量的区别什么是字符串常量池?String 是最基本的数据类型吗String有哪些特性String为什么是不可变的?String真的是不可变的吗?String不可变的必要性是否可以继承 String 类数组有没有 length()方法?St…

windows线程 互斥锁CreateMutex、ReleaseMutex、CloseHandle

互斥 相关问题 多线程下代码或资源的共享使用。 互斥的使用 1.创建互斥 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,//安全属性(废弃参数,置NULL) BOOL bInitialOwner,//初始的拥有者TRUE/FALSE LPCTSTR lpName //命名 );…

集成电路技术——如何制造芯片(1)

1.概述 电子工业是现在高新技术的核心,它在人类的科技发展中发挥了巨大作用,电子工业已经成为成为当今世界发展最快的高新技术产业,在全世界各国国民经济中起着举足轻重的作用。当今的电子技术离不开集成电路,集成电路是电子工业…

hadoop集群迁移

集群迁移 主要是要找到两个集群中active状态的namenode 集群迁移不同于服务器之间的文件发送,在hdfs中,文件是以块的形式,只可以通过namenode访问文件,所以迁移时需要通过hadoop命令 主要命令是distcp distcp有很多参数&#xf…