yolov5训练自己的数据集(缺陷检测分类——看了就懂系列)

yolov5--datasets.py --v5.0版本-数据集加载 最新代码详细解释2021-7-5更新 https://www.jianshu.com/p/938ec124ad39 阅读详情

这里记录一下将yolov5用于训练自己的数据集,这里v5的github地址

Environment

本文是直接 pip install -r requirement.txt直接安装成功,如果不容易成功,就一个个安装即可。如果出现报错,多关注一下torch的版本即可。

Data preparation

label的格式:
<object-class> <x_center> <y_center> <width> <height>

举个🌰:
414_735_0.txt

7 0.503 0.499 0.098 0.451
7 0.465 0.633 0.033 0.053

 

数据集格式
data
├──coco.yaml
├──coco128.yaml
├──defect_data
   ├──images
      ├──train
      ├──val
   ├──labels
      ├──train
      ├──val
├──…

然后制作自己的defect.yaml配置文件(直接复制coco.yaml修改或者新建一个文件将一下代码copy进去):

train: ./data/defect_data/images/train  # absolute_path_train_img
val: ./data/defect_data/images/val  # absolute_path_val_img

nc: 8 # 类别数量

names: [‘quexian1’, ‘quexian2’, ... ‘quexian8’]

修改models/xxx.yaml,有s, m, l, x四个模型供选择,需要修改类别nc数目;同时最好把anchors也修改为自己数据对应的anchors(需要自己提前聚类),不改也可train。

Pretrained Model

建议爬梯子下载最新的预训练权重,这个repo经常更新,可能和以前的预训练模型不适应。下载好放在weights下,在train.py里修改相应路径。

Training

配置train.py

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', type=str, default='weights/yolov5s.pt', help='initial weights path')
    parser.add_argument('--cfg', type=str, default='models/yolov5s.yaml', help='model.yaml path')
    parser.add_argument('--data', type=str, default='data/defect.yaml', help='data.yaml path')
    parser.add_argument('--epochs', type=int, default=300)
    parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')
    parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='[train, test] image sizes')
    parser.add_argument('--device', default='0,1,2,3', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    opt = parser.parse_args()

 

训练好的模型会被保存在./runs/train/exp3/weights/last.pt和best.pt

Inference

配置detect.py

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', nargs='+', type=str, default='runs/train/exp3/weights/last.pt', help='model.pt path(s)')
    parser.add_argument('--source', type=str, default='data/defect_data/images/val', help='source')  # file/folder, 0 for webcam
    parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
    parser.add_argument('--device', default='0,1,2,3', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    opt = parser.parse_args()

 

如果需要inference 自己数据集原图大小,需要修改utils/dataset.py中

class LoadImages:  # for inference
		# Padded resize
        img = letterbox(img0, new_shape=self.img_size)[0]

修改为:

class LoadImages:  # for inference
		# Padded resize
        img = letterbox(img0, new_shape=(math.ceil(img0.shape[0]/32)*32, math.ceil(img0.shape[1]/32)*32))[0]

Visualization of Training

利用tensorboard进行可视化,训练开始会在主目录生成一个runs文件,利用tensorboard打开:
tensorboard --logdir=./runs

Thanks

欢迎评论,每天回复☼

基于yolov5的PCB缺陷检测 使用北京大学公开的PCB数据集,包含1386张图像,具有6种缺陷类型分别为:漏孔、鼠咬、开路、短路、杂散、杂铜。北京大学智能机器人开放实验室。 阅读详情

相关推荐

代码实战:YOLOv5实现钢材表面缺陷检测

目前,基于已经在各个工业领域广泛取代人工视觉检测,包括3C、汽车、家电、机械制造、半导体电子、化工、制药、航空航天、轻工等行业。许多基于深度学习的缺陷检测方法也被广泛应用于各种工业场景。本文的代码实战,是基于YOLOv5目标检测算法,在NEU表面缺陷数据集上实现钢材表面缺陷检测。要求Python>=3.7.0,PyTorch>=1.7。

qq_41587754的博客 1994

yolov5/v7训练报错build target indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1)

参考:https://blog.youkuaiyun.com/weixin_41012767/article/details/125779972。在loss.py文件下修改。

weixin_41012399的博客 2848

深度学习之基于YOLOv5的铁轨表面缺陷检测识别系统

一、项目背景随着现代铁路交通的快速发展,对铁轨表面质量的要求也日益严格。铁轨表面缺陷,如裂纹、磨损、剥落等,若不及时发现和处理,将严重威胁列车运行的安全。传统的铁轨检测方法往往依赖于人工巡检,存在效率低下、易受人为因素影响等问题。因此,开发一种基于深度学习的自动化铁轨表面缺陷检测识别系统具有重要的现实意义和应用价值。二、项目目标本项目旨在利用YOLOv5(You Only Look Once version 5)算法,开发一个高效、准确的铁轨表面缺陷检测识别系统。

Q1744828575的博客 1692

Yolov5训练模型时报错RuntimeError: result type Float can t be cast to the desired output type long int

这种问题通常发生在 PyTorch 中,因为 PyTorch 张量具有动态数据类型,而在某些情况下,对数据类型的隐式转换可能会导致问题。确保在处理张量时,特别是在构建元组或列表时,要确保数据类型的一致性,以避免此类错误。返回的张量可能包含浮点数,而在你的元组中,它们需要被转换成整数。在 Python 中,将浮点数强制转换为整数可能会导致数据类型错误,因为浮点数不能直接转换为整数。这样就避免了直接修改原始张量,并且在构建元组时,所有的值都是整数类型。函数时,它会原地修改张量,并确保张量中的值在指定的范围内。

qq_57371368的博客 1818

【图像分类】基于yolov5的钢板表面缺陷分类(附代码和数据集)

手把手教程:首次使用yolov5训练图像分类模型

学无止境、积少成多、厚积薄发 3339

【表面缺陷检测】基于yolov5的PCB表面缺陷检测(附代码和数据集)

今天手把手带大家做一个深度学习实战项目:基于yolov5的PCB(印刷电路板)表面缺陷检测(附代码+数据集)。

学无止境、积少成多、厚积薄发 5292

阅读utils/loss.py,掌握YOLO算法的loss计算过程(build_target)

这个损失函数跟YOLO-V5的损失函数相同,最关键的函数是。想要读懂耗时大概2~3天。由于学长时间有限,所以就只把最关键的部分讲一下。

深度学习 437

基于YOLOv8的缺陷检测任务模型训练

本文介绍了基于YOLOv8算法的工业缺陷检测任务模型训练过程。文章从数据准备、模型训练到性能评估,详细解析了如何利用YOLOv8提升工业缺陷检测自动化水平。通过PCB缺陷检测数据集的实际案例,提供了技术参考和指导,旨在帮助研究者和工程师掌握这一先进技术。同时,文章还提供了完整的代码资源和训练环境说明,方便读者实践学习。

weixin_44063529的博客 4513

目标检测YOLOv5运行遇到的问题及解决方法

解决YOLOv5-v5.0中常见错误。

jinguangxia123的博客 3407

trae使用playwright MCP方法流程

trae使用playwright MCP方法流程

MAILLIBIN的专栏 1677

图数据挖掘 ECC K-core core number truss number clique

K-core:什么叫k-core,给定一个正整数k(k>=0),k-core是一个G的最大子图(也就是说k-core是一个图的限制),将这个子图定义为Hk,对于Hk中的每个顶点v,他的度数都是大于等于k的。 k-core是内嵌的,如下图所示,集合{ABCD}是H3,也就是3-core的子图。而集合{ABCDE}是H2,也就是2-core的子图,集合{ABCDEGF}是H1,也就是1-core的子图,而从集合的角度来讲H3<H2<H1。 core number:什么叫kcor

weixin_45193103的博客 1685

基于YOLOv5的PCB板缺陷检测

基于YOLOV5的PCB版缺陷检测 一、数据集介绍 印刷电路板(PCB)瑕疵数据集:数据下载链接,是一个公共的合成PCB数据集,由北京大学发布,其中包含1386张图像以及6种缺陷(缺失孔,鼠标咬伤,开路,短路,杂散,伪铜),用于检测,分类和配准任务。选取其中445张图像进行了训练(下载了别人的)。 数据样本示例: 二、环境配置 1、github官网下载yolov5源码:https://github.com/ultralytics/yolov5 2、Anaconda安装(省略) 3、创建新的环境(pytho

weixin_45679938的博客 4万+

ADS与MATLAB数据互通全指南:从Snp文件导入到TXT导出完整流程

本文详细介绍了在射频与微波工程中,实现ADS与MATLAB高效数据互通的完整流程。核心内容包括利用SPOutput控件、数据显示窗口及测量方程等多种方法,将ADS仿真数据(如S参数)导出为Touchstone或TXT格式,并导入MATLAB进行深度分析与可视化;同时指导如何将MATLAB处理后的数据回灌至ADS,用于模型验证与协同仿真,旨在构建自动化、无损的数据交换工作流,提升工程师的工作效率。

pluto的博客 393

YOLOv5实战之PCB板缺陷检测

在前面的文章中已经详细介绍了在本机上安装YOLOv5的教程,安装YOLOv5可参考前面的文章YOLOv5训练自己的数据集(超详细)https://blog.youkuaiyun.com/qq_40716944/article/details/118188085 一、数据集介绍 本教程主要是利用YOLOv5算法实现对PCB板上的缺陷进行检测识别。使用的DeepPCB缺陷数据集中的所有图像都是从线性扫描CCD获得的,分辨率约为每1毫米48个像素,以上述方式从采样图像中手动检查,测试图像的原始大小约为16...

qq_40716944的博客 2万+

聚宽策略实盘新路径:不开通QMT , 小资金自动化交易解决方案

聚宽策略实盘新路径:不开通QMT , 小资金自动化交易解决方案

u011111246的博客 1467

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1003

基于yolov8、yolov5的道路缺陷检测系统(含UI界面、Python代码、数据集)

道路缺陷检测在提升交通安全、延长道路使用寿命以及推动智慧城市发展中发挥着至关重要的作用。在智能城市建设过程中,快速且精准地识别道路缺陷,能够有效提高检测效率,降低维护成本,尤其是在自动化道路检测系统中,准确识别路面裂缝、坑洞等缺陷是其维护与修复工作的基础。同时,道路缺陷检测系统也为管理部门提供了重要的实时数据反馈,帮助相关部门及时采取修复措施,确保道路安全。道路缺陷检测已在多个领域得到了广泛应用,如城市管理、道路维护、交通安全、基础设施管理等应用场景中,均依赖于高效准确的道路检测技术。

Python_csdn_csdn的博客 5635

ROS机器人里程计模型

3.5 移动机器人系统模型 相信大家的机器人平台STM32端底层控制和机器人urdf建模都已经顺利完成了,在正式开始ros端编写机器人启动功能包之前,我们还不得不学习一些必要的理论知识。别担心数学不好,这里基本都是高中数学。下面我们开始,Are you ready? 没准备好也开始了。 3.5.1 常用坐标系系统模型 在移动机器人技术研究中,最为常用的坐标系统是笛卡尔坐标系统。而在SLAM算法研究中,有如下几个比较常见的笛卡尔坐标系统,它们分别为机器人坐标系XR YR OR 、传感器坐标系XS YS OS

「小白学移动机器人」一个专注分享移动机器人相关知识的公众号! 1万+

基于YOLOv5的输电线路绝缘子缺陷检测项目

本项目基于YOLOv5算法,针对488幅绝缘子缺陷图像,开展其缺陷的智能检测和识别研究。

爱分享数据的一个人的博客 7583

【2025软考高级架构师】基础知识部分——6、软件架构设计

(1)架构是对系统的抽象(2)架构由多个结构组成(3)任何软件都存在架构(4)元素及其行为的集合构成架构的内容(5)架构具有“基础”性(6)架构隐含有“决策”

qq837993702的博客 1万+

nRF52832——大量数据传输时导致蓝牙断开连接,且无法被搜索到的解决方案(广播参数的设置、程序设计方法)

有时蓝牙通信单次发送数据量较大,且连续发送多次的时候,你会发现蓝牙就会出现异常,可能运行30min,40min,或者1h后,蓝牙就不能传输数据了,且无法被搜索到,用主机扫描蓝牙时可能会提示类似这样的DEBUG信息:bta_gattc_mark_bg_conn unable to find the bg connection mask for bd_addr=xx:xx:xx:xx:xx:xx。

数字世界 万物互联 2004

YOLOv8实战PCB电路板缺陷检测【数据集+YOLOv8模型+源码+PyQt5界面】

本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对PCB电路板缺陷数据集进行训练和优化,该数据集包含丰富的PCB电路板缺陷图像样本,为模型的准确性和泛化能力提供了有力保障。通过深度学习技术,模型能够自动提取PCB电路板缺陷的特征并进行分类识别。PyQt5界面设计简洁直观,便于用户操作和实时查看检测结果。本研究不仅提高了PCB电路板缺陷识别的自动化水平,还为生产系统的构建提供了有力支持

weixin_40280870的博客 5654

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

基于yolov8、yolov5的PCB板缺陷检测系统(含UI界面、数据集、训练好的模型、Python代码)

项目中所用到的算法模型和数据集等信息如下:算法模型:yolov8yolov8 + SE注意力机制或yolov5yolov5 + SE注意力机制直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU,无法自行训练。数据集:网上下载的数据集,格式都已转好,可直接使用。界面:PyQt5以上是本篇博客的简单说明,添加注意力机制可作为模型的创新点。摘要。

Python_csdn_csdn的博客 2744

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的木材表面缺陷检测系统(深度学习+Python代码+UI界面+训练数据集)

本文展示了一个基于深度学习的木材表面缺陷检测系统,该系统采用了最新的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5进行了性能对比。文章详细介绍了YOLOv8的工作原理,并提供了Python实现代码和训练数据集下载。系统配备了PySide6图形界面和SQLite数据库的用户登录功能,支持对图片、视频和实时摄像头捕获的内容进行缺陷检测。它还具备热力图分析、检测框标记、类别统计等可视化功能。

思绪无限的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的钢材表面缺陷检测系统(Python+PySide6界面+训练代码)

使用深度学习构建钢材表面缺陷检测系统,并提供完整代码。系统基于YOLOv8算法,对比了YOLOv7、YOLOv6、YOLOv5的性能,包括mAP、F1 Score等指标。文章深入讲解YOLOv8原理,提供Python代码和训练数据集,集成了基于PySide6的UI界面。系统精确识别钢材表面缺陷,支持选择图片、图片文件夹、视频文件及开启摄像头检测,包含热力图、标记框、类别统计、可调Conf、IOU参数和结果可视化等功能。还包括基于SQLite的用户管理界面,支持模型切换和UI自定义。代码和数据集见文末。

思绪无限的博客 1万+
上一篇: Ubuntu20.04 安装qq和微信
下一篇: ubuntu下小键盘不能用
凌风探梅
博客等级 码龄19年 2575粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值