目标检测 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. 结果

(三)注意事项



相关推荐
Elastic 中国社区官方博客2 小时前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
江_小_白3 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼4 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow
weixin_466202784 小时前
第31周:天气识别(Tensorflow实战第三周)
分类·数据挖掘·tensorflow
LNTON羚通5 小时前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
珠海新立电子科技有限公司6 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董7 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
曼城周杰伦7 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
吃肉不能购7 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
余炜yw8 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习