基于yolov5-v7.0开发构建汽车车损实例分割检测识别分析系统

news2025/1/19 16:55:08

在之前的文章中我们已经做了很多基于yolov5完成实例分割的项目,感兴趣的话可以自行移步阅读:

《基于YOLOv5-v7.0的药片污染、缺损裂痕实例分割检测识别分析系统》

《基于yolov5-v7.0开发构建裸土实例分割检测识别模型》

《基于yolov5-v7.0开发实践实例分割模型超详细教程》

《基于yolov5-v7.0开发构建工业机械齿轮瑕疵实例分割检测识别分析系统》

本文主要的目的就是基于官方的v7.0分支的模型来开发构建汽车车身损伤分割检测识别系统。话不多说,首先来看效果图:

简单看下数据集情况:

实例标注内容如下所示:

0 0.197265625 0.2802734375 0.17578125 0.3037109375 0.1748046875 0.34375 0.17578125 0.3896484375 0.197265625 0.3935546875 0.228515625 0.337890625 0.2734375 0.3046875 0.359375 0.3095703125 0.3974609375 0.337890625 0.4443359375 0.3076171875 0.4306640625 0.287109375 0.380859375 0.2822265625 0.3291015625 0.26953125 0.2578125 0.2734375 0.2177734375 0.2724609375
0 0.5244140625 0.2734375 0.5703125 0.2646484375 0.63671875 0.26171875 0.673828125 0.2822265625 0.703125 0.2958984375 0.6669921875 0.3037109375 0.5986328125 0.296875 0.55859375 0.294921875 0.5380859375 0.287109375
0 0.6474609375 0.3994140625 0.7158203125 0.400390625 0.7578125 0.3828125 0.82421875 0.384765625 0.869140625 0.396484375 0.869140625 0.408203125 0.8349609375 0.4228515625 0.7861328125 0.4228515625 0.7421875 0.42578125 0.66015625 0.416015625
0 0.3935546875 0.7001953125 0.44921875 0.697265625 0.4873046875 0.6904296875 0.52734375 0.7119140625 0.52734375 0.740234375 0.474609375 0.7421875 0.4345703125 0.7275390625 0.4072265625 0.7177734375
0 0.2392578125 0.3857421875 0.259765625 0.5068359375 0.3115234375 0.568359375 0.4033203125 0.6181640625 0.513671875 0.650390625 0.583984375 0.619140625 0.650390625 0.560546875 0.650390625 0.509765625 0.650390625 0.4150390625 0.591796875 0.3359375 0.5126953125 0.2626953125 0.435546875 0.2548828125 0.3564453125 0.2626953125 0.298828125 0.302734375 0.2685546875 0.3369140625 0.2431640625 0.3681640625
0 0.427734375 0.7705078125 0.3671875 0.7705078125 0.400390625 0.796875 0.4501953125 0.8017578125 0.4873046875 0.8134765625 0.5107421875 0.83203125 0.55078125 0.83203125 0.56640625 0.8095703125 0.5654296875 0.7783203125 0.595703125 0.740234375 0.5478515625 0.7666015625 0.4931640625 0.7705078125 0.47265625 0.7705078125
0 0.310546875 0.6904296875 0.35546875 0.69921875 0.384765625 0.7119140625 0.416015625 0.7333984375 0.3994140625 0.7451171875 0.3515625 0.740234375 0.3251953125 0.708984375

这里一共只有一个目标对象:

demage

在data目录下新建self.yaml文件,内容如下:

#Dataset
path: ./datasets/chesun-seg  
train: images/train 
val: images/train  
test:  images/train 



# Classes
names:
  0: damage

模型yaml文件如下:

#Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32
 
 
#Backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]
 
 
#Head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13
 
   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
 
   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
 
   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
 
   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

这里是基于s系列模型开发构建自己的应用的,主要就是修改nc符合自己的数据集类别即可。

默认执行100次的迭代计算,日志输出如下所示:

可以看到最终的效果还是蛮不错的,因为本身这里没有准备很多的数据。

接下来看下结果文件详情:

F1值曲线:

PR曲线:

LABEL数据可视化如下:

batch计算实例如下:

最后开发专用的界面实现可视化推理计算,如下所示:

上传图像数据:

分割推理计算:

可以看到在极小的数据集上面训练出来的分割模型分割效果还是可以的,后期增加扩充更多的数据集重新训练模型,效果会更好。

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

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

相关文章

NSThead的进阶使用和简单探讨

概述 NSThread类是一个继承于NSObjct类的轻量级类。一个NSThread对象就代表一个线程。它需要管理线程的生命周期、同步、加锁等问题,因此会产生一定的性能开销。 使用NSThread类可以在特定的线程中被调用某个OC方法。当需要执行一个冗长的任务,并且不想…

文件minio进阶 分页查询

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、minio使用二、代码1.mino版本是最新的,那么pom中也要最新的2. 部分代码总结前言 就是现在通过minio管理文件,然后不需要其他信息,所以我也就没有用传统方式…

探究视频标注如何支持自动驾驶汽车

自动驾驶汽车技术有望使我们的道路更安全,同时提高运输和交付服务的效率。安全性和可靠性是自动驾驶汽车广泛采用所必需的关键因素。为了保证汽车在现实复杂的交通条件下导航能够有效运行,必须使用标注数据来训练基于计算机视觉的模型,这些数…

verilog学习笔记- 10)按键控制 LED 灯实验

目录 简介: 实验任务: 硬件设计: 程序设计: 下载验证 : 总结与反思: 简介: 按键开关是一种电子开关,属于电子元器件类。我们的开发板上有两种按键开关:第一种是本实…

NeRF制作数据集最后的踩坑

之前对数据集渲染的时候一直出现模糊的问题: 学长说可能是摄像机和poses没有对应。但是为什么会这样呢 后来我发现,确实在制作的过程中,某一步出了问题,导致下标的数字,跟理想的不一样: 原来的12&#xf…

基于yolov5-v7.0开发构建工业机械齿轮瑕疵实例分割检测识别分析系统

在之前的文章中我们已经做了很多基于yolov5完成实例分割的项目,感兴趣的话可以自行移步阅读:《基于YOLOv5-v7.0的药片污染、缺损裂痕实例分割检测识别分析系统》《基于yolov5-v7.0开发构建裸土实例分割检测识别模型》《基于yolov5-v7.0开发实践实例分割模…

深度学习PyTorch 之 DNN-回归(多变量)

深度学习&PyTorch 之 DNN-回归中使用HR数据集进行了实现,但是HR数据集中只有一个变量,这里我们使用多变量在进行模拟一下 流程还是跟前面一样 #mermaid-svg-LN8ayy7UjtqZ6dSj {font-family:"trebuchet ms",verdana,arial,sans-serif;font…

计算机原理三_进程管理

目录儿四、进程管理4.1 什么是进程4.1.1 进程的结构4.1.2 进程的特征4.1.3 进程与线程4.1.4 线程的实现方式用户级线程内核支持线程组合线程的调度4.2 进程是怎么运行的4.2.1 进程状态4.2.2 进程控制4.2.2.1 原语的概念4.2.2.2 挂起与激活4.2.3 进程调度4.2.3.1 调度层次4.2.3.…

CSS入门一、初识

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)

前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员&…

Episode 02 对称密码基础

一、从文字密码到比特序列密码 1、使用对称密钥进行加密 为了使原来的明文无法被推测出来,就要尽可能地打乱密文,这样才能达到加密的目的。密文打乱的是比特序列,无论是文本,图片还是音乐,只要能够将数据转换比特序列…

MSF后渗透持续后门

持续后门 ○ 利用漏洞取得的meterpreter shell运行于内存中,重启失效 ○ 重复exploit漏洞可能造成服务崩溃 ○ 持久后门保证漏洞修复后仍可远程控制 Meterpreter后门 run metsvc -A #删除-r use exploit/multi/handler set PAYLOAD windows/metsvc_bind_tcp se…

[22]. 括号生成

[22]. 括号生成题目算法设计:回溯算法设计:空间换时间题目 传送门:https://leetcode.cn/problems/generate-parentheses/ 算法设计:回溯 括号问题可以分成俩类: 括号的合法性判断,主要是用栈括号的合法生…

【自然语言处理】Word2Vec 词向量模型详解 + Python代码实战

文章目录一、词向量引入二、词向量模型三、训练数据构建四、不同模型对比4.1 CBOW4.2 Skip-gram 模型4.3 CBOW 和 Skip-gram 对比五、词向量训练过程5.1 初始化词向量矩阵5.2 训练模型六、Python 代码实战6.1 Model6.2 DataSet6.3 Main6.4 运行输出一、词向量引入 先来考虑一个…

IDEA远程快速部署SpringBoot项目到Docker环境

1.LInux上先安装docker环境 https://blog.csdn.net/YXWik/article/details/128643662 2.配置Docker远程连接端口 1. vim /usr/lib/systemd/system/docker.service 2. 找到ExecStar 在后面添加 -H tcp://0.0.0.0:2375 3. 退出编辑界面:先按esc,然后"…

【JAVA程序设计】(C00100)基于Springboot+html的前后端分离停车场管理系统

基于Springboothtml的前后端分离停车场管理系统项目简介项目获取开发环境项目技术运行截图项目简介 基于SpringBoothtml的前后端分离的停车场管理系统,本系统分为二种角色:管理员和收银员。 1.登录:管理员可以通过系统分配的账号…

Android 系统框架结构

目录 1.应用层(System Apps): 2.应用框架层(Java API Framework): 3.系统运行库层(Native): 4.硬件抽象层(HAL): 5.Linux内核层(Linux Kernel): 大部分开发的同学是不太清楚Android的系统的…

解决企业微信启动报错:0x0000142无法打开

解决企业微信启动报错:0x0000142无法打开1.问题描述2.问题查找3.问题解决4.事后感悟系统:Win10 WXWork:4.0.20.6020 1.问题描述 不知道从啥时候开始,打开企业微信会报错(见下图),报错代码是&am…

【Redis】缓存穿透问题及其解决方案

【Redis】缓存穿透问题及其解决方案 文章目录【Redis】缓存穿透问题及其解决方案1. 缓存穿透概念及原因2. 解决方案2.1 缓存空对象2.1.1 缓存空对象的优缺点2.1.2 改进代码2.2 布隆过滤2.2.1 布隆过滤的优缺点1. 缓存穿透概念及原因 缓存穿透:客户端请求的数据在 缓…

HTML与CSS基础(十)—— 综合项目

应用前面技术知识 完成小兔鲜儿项目设计图素材下载:链接: https://pan.baidu.com/s/1o5mWkgEfaTAA5spxMLuXEQ?pwdex7e 提取码: ex7e 一、Header 部分开发 布局分析:header布局分析:xtx-shortcut ①布局分析:xtx-shortcut ②布局分…