目标检测 YOLOv5-7.0 详细调试&自制数据集实战

目标检测 YOLOv5-7.0 详细调试&自制数据集实战

一、项目介绍及环境配置

(一)项目解读





(二)版本选择

  • v1.0版本写的代码最为简单核心,后面越来越复杂,这是一个项目从想象到成熟必经的过程。高版本的看不懂,可优先去读低版本的
  • .pt(.pth)文件:Pytorch中常用的文件扩展名,用于保存和加载模型的权重或整个模型的状态

(三)环境配置

  • 解压完压缩包,在Pycharm中打开项目后,进行Python解释器的配置

注:最好一个项目一个环境!!!不然之后很容易依赖冲突!!!别问我是怎么知道的 🤕

  • 安装项目中需要用到的库
  1. 如果作者提供requirments.txt文件
    可利用PyCharm自带的智能提示进行安装,或者利用pip install -r requirments.txt 指令输入终端进行安装
  2. 如果作者没有提供requirments.txt文件
    根据运行报错信息,百度,手动安装缺少的库

二、如何利用YOLOv5进行预测(detect.py

(一)main函数中参数的解读

(二)小技巧

(1)网络模型 下载的太慢/直接下载失败 ,怎么办?

A:可以先在GitHub上下下来之后,再复制到当前文件夹(根目录)底下

Step1:Ctrl+C 暂停

Step2:找到项目的Release

Step3:往下翻,找到想要的模型,下载下来

Step4:粘贴到文件夹中

(2)图例

  1. resize的原理
  2. --iou-thres
    iou达到某个阈值后,从下面多个框中选一个最适合的
  1. 参数解析

  2. 设置固定参数配置的位置


三、如何训练YOLOv5神经网络(train.py

(一)本地上训练

(1)main函数中参数的解读

(2)可选参数


(3)训练生成文件的解读


(二)免费云端GPU上训练

(1)进入云端



(2)上传我们的项目

(3)解压缩












(三)运行时的常见报错&解决方法

(1)attributeerror: 'FreeTypeFont' object has no attribute 'getsize'

这是因为安装了新版本的 Pillow10 删除了 getsize 功能

  • 最容易想到的方法就是降级,降级到 Pillow 9.5 的确可以解决该问题,但有可能会造成其他库的依赖冲突。
  • 我们这里讲另外一个方法:
    因为 getsize 方法将在 Pillow10 中被 getbbox 或 getlength 代替
    所以我们可以在 utils / plots.py 文件 的第 91 行,找到 w, h = self.font.getsize(label) ,把他替换成 x, y, w, h = self.font.getbbox(label) ,就可以解决问题。

(2)requests.exceptions.ConnectionError: HTTPSConnectionPool(host='drive.google.com', port=443): Max retries exceeded with url: /uc?id=1Kkx2zW89jq_NETu4u42CFZTMVD5Hwm6e (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001A5052AE640>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))

这个问题的原因是因为 DeepSORT 里面需要一些权重文件,没有权重文件的话会访问 Google Drive 进行下载,而国内没办法正常访问 Google Drive

  • 那么需要我们手动下载权重文件放在 "C:\Users\31923.cache\torch\checkpoints" 里面,同时需要在DeepSORT源代码把联网下载部分注释掉,即可正常运行
  • 最好的方法就是把需要下载的文件下载好之后,直接复制到当前文件夹底下

四、如何训练与制作自己的数据集

(一)常见的几种情况

(1)有数据集 --> 标注

(2)手动获得数据集 - 人工标注

(3)手动获得数据集 - 半人工标注

用已经训练好的网络对数据集进行简单的标注,再在此基础上进行微调

(4)仿真数据集(GAN,数字图像处理)

参考:https://github.com/Unity-Technologies/SynthDet

(二)实操演练

训练与制作自己的数据集教程参考:tutorials/train_custom_data

(1)数据集的获取


(2)人工/半人工标注


标注工具1:https://github.com/cvat-ai/cvat

标注工具2:https://www.makesense.ai/

标注工具3:labelme/labelimg/roboflow......








(3)创建标准化目录


(4)创建 - - data 数据集参数


(5)训练模型检验

  1. 权重参数
  2. 验证数据参数
  3. 结果

(三)注意事项



相关推荐
千天夜2 分钟前
激活函数解析:神经网络背后的“驱动力”
人工智能·深度学习·神经网络
大数据面试宝典3 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
封步宇AIGC8 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
m0_5236742110 分钟前
技术前沿:从强化学习到Prompt Engineering,业务流程管理的创新之路
人工智能·深度学习·目标检测·机器学习·语言模型·自然语言处理·数据挖掘
HappyAcmen19 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea
噜噜噜噜鲁先森41 分钟前
看懂本文,入门神经网络Neural Network
人工智能
InheritGuo1 小时前
It’s All About Your Sketch: Democratising Sketch Control in Diffusion Models
人工智能·计算机视觉·sketch
weixin_307779132 小时前
证明存在常数c, C > 0,使得在一系列特定条件下,某个特定投资时刻出现的概率与天数的对数成反比
人工智能·算法·机器学习
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-3.4.1.6.A股宏观经济数据
人工智能·python·机器学习·数据挖掘
Jack黄从零学c++2 小时前
opencv(c++)图像的灰度转换
c++·人工智能·opencv