YOLOv5项目搭建(AI识别皮卡丘)

简介: 在网上看了很多关于yolov5的博客,很多都是解读参数配置,或者是解析它的底层原理什么的,对新手不是特别友好,我认为学一样东西,先不管其他的,先把这个东西做出来,然后再去学习内部的原理,这样学习起来就不会那么枯燥乏味了,本篇博客就是纯手把手教你yolov5的搭建、训练、识别。

目录

前言

一、环境搭建

1.下载安装Anaconda

2.下载安装 pytorch

3.下载安装 yolov5 源代码

二、训练

1.下载安装 lableImg

2.训练

3.训练命令

三、训练结果与识别

总结


前言

在网上看了很多关于yolov5的博客,很多都是解读参数配置,或者是解析它的底层原理什么的,对新手不是特别友好,我认为学一样东西,先不管其他的,先把这个东西做出来,然后再去学习内部的原理,这样学习起来就不会那么枯燥乏味了,本篇博客就是纯手把手教你yolov5的搭建、训练、识别。


一、环境搭建

1.下载安装Anaconda

    下载以后一直 next 即可

    安装完成后通过cmd 执行 conda -V 命令即可检测是否安装成功

    接下来是配置清华镜像源,执行以下命令即可

    执行命令通过windows开始菜单找到  Anaconda Prompt (Anaconda3) 作为入口

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

    conda config --set show_channel_urls yes

    执行以后可以提高安装包的速度

    2.下载安装 pytorch

    官网Start Locally | PyTorch

    image.gif编辑 注意:这里的compute platfrom根据你电脑的cuda版本来选,我的电脑没有cuda,因此选cpu

    选好后执行下面那句代码

    默认情况下 conda 的环境是 base

    在 conda 下创建一个虚拟环境, 环境名称: yolov5 或者其他, python版本选择3.8 或者其他

    conda create -n yolov5 python=3.8

    中途会有提示,输入 y 即可

    然后激活刚刚创建的虚拟环境

    conda activate yolov5

    激活后 base 环境会变成 yolov5

    在yolov5虚拟环境下 安装 pytorch

    (这个文件在线安装的有点大,需要等待一段时间)

    pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

    3.下载安装 yolov5 源代码

    github仓库地址:ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com)

    1、点击 tags 标签

    2、找到 v3.1 进去

    3、点击code,将项目代码克隆或者下载下来

    4、conda在yolov5 环境,并且路径在这个项目文件位置下执行命令👇下载必要的文件

    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

    5、下载程序提供的默认权重文件,文件和 源码在同一个地方(yolov5x.pt 、yolov5m.pt 、yolov5l.pt 、yolov5s.pt )

    5、下载后拷贝到程序的 weights 目录

    二、训练

    1.下载安装 lableImg

    执行以下三句命令 ,会弹出如下工作窗口,自己找一些图片进行标注

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple labelImg

    python -m pip install --upgrade pip

    labelimg

    image.gif

    Save下面的选项调成yolo,这样标注完后Save就会得到txt文件

    image.gif

    2.训练

    首先要进行模型选择

      • S 模型:S 模型是 YOLOv5 中的小尺度模型,其输入大小为 1920x1080,适用于检测较小尺寸的物体,例如人脸、车辆等。S 模型有 11 个卷积层,检测速度较快,但精度相对较低。
      • M 模型:M 模型是 YOLOv5 中的中尺度模型,其输入大小为 2560x1440,适用于检测中等尺寸的物体,例如轿车、卡车等。M 模型有 19 个卷积层,检测精度较高,但检测速度相对较慢。
      • L 模型:L 模型是 YOLOv5 中的大尺度模型,其输入大小为 3840x2160,适用于检测较大尺寸的物体,例如货车、公交车等。L 模型有 29 个卷积层,检测精度非常高,但检测速度相对较慢。

      image.gif

      根据需要识别的目标大小选择模型,然后去官网下载预训练模型

      yolov5/README.zh-CN.md at master · ultralytics/yolov5 (github.com)

      1.在yolov5代码目录下data文件夹下 复制 voc.yaml 文件(名字自己定,我这里是voc-lbh)

      在 YOLO 中,训练、验证和测试三个路径下都需要存放标注后的文件

        1. train:     # 训练的图片路径 (txt结果与图片一起放该路径下)
        2. val:      # 验证的图片(txt结果与图片一起放该路径下)
        3. test :   #用于测试模型(txt结果与图片一起放该路径下)
        4. names:  标注时的数值和他的别名

        image.gif

        train 路径用于训练模型,val 路径用于验证模型,test 路径用于测试模型。在训练和验证期间,模型将在不同的数据集上进行训练和验证,以便评估模型的性能。在测试期间,模型将使用整个数据集进行测试,以确定其性能指标

        注意:训练过的图片通常不能用于验证数据。这是因为在训练期间,模型已经对这些图片进行了训练,并学会了识别这些图片中的对象和场景类别。

        如果你有100张标注了的图片,大约 70 张图片用于训练数据,约 10 张图片用于验证数据,约 20 张图片用于测试数据

        2.在yolov5代码目录下models文件夹下 复制 yolov5s.yaml 文件 该名称为 yolov5s-***.yaml (名字自己随意定)

        注意:以下命令中的yolov5s是因为我选择了s的预训练模型,如果选择了其他把yolov5后的字母更换就好了。

        第四行nc是类的数量,在做标记的时候一共有多少种类这里就设置多少

        image.gif

        3.训练命令

        打开conda

        image.gif

        1.到源代码的路径下:

        如  cd C:\Users\user\yolov5-master\yolov5-master

        2.进入虚拟环境:

        conda activate yolov5

        3.执行命令👇

          • batch-size :就是一次往GPU哪里塞多少张图片了。决定了显存占用大小,默认是16。
            • epochs :执行多少次。

            注意下列命令红色处是自己刚刚改的名字,weights weights/yolov5s.pt 是预训练模型的位置

            python train.py --data data/voc-lbh.yaml --cfg models/yolov5s-lbh.yaml --weights weights/yolov5s.pt --batch-size 16 --epochs 200

            三、训练结果与识别

            在runs目录下可以找到训练的结果

            image.gif

            weights下有两个.pt文件,这是我们的训练结果权重文件

            image.gif编辑

            识别命令👇

            标红两处根据自己的实际路径更改,best.pt就是上面的权重文件路径

            python detect.py --source 需要识别的图片目录 --weights runs/exp/weights/best.pt --conf 0.4

            image.gif

            识别结果也是在runs文件夹里面,如下是我的识别结果image.gif


            总结

            以上就是yolov5的项目搭建了 ,这是我自己做的一个皮卡丘识别,需要资料或者还有什么不明白的可以评论区留言,我看到后会第一时间答复

            目录
            相关文章
            |
            1月前
            |
            机器学习/深度学习 人工智能 监控
            AI威胁检测与识别
            AI在网络安全中扮演关键角色,实现实时监控、异常检测、高级威胁识别和自动化响应。通过机器学习和深度学习,AI能分析大量数据,预测攻击,智能支持决策,并评估风险。然而,随着攻击手段进化,AI系统的抗攻击性研究和持续升级至关重要。
            25 2
            |
            2月前
            |
            机器学习/深度学习 人工智能 监控
            AI算法分析,智慧城管AI智能识别系统源码
            AI视频分析技术应用于智慧城管系统,通过监控摄像头实时识别违法行为,如违规摆摊、垃圾、违章停车等,实现非现场执法和预警。算法平台检测街面秩序(出店、游商、机动车、占道)和市容环境(垃圾、晾晒、垃圾桶、路面不洁、漂浮物、乱堆物料),助力及时处理问题,提升城市管理效率。
            AI算法分析,智慧城管AI智能识别系统源码
            |
            4月前
            |
            传感器 人工智能 监控
            Springcloud+Vue智慧工地管理云平台源码 AI智能识别
            “智慧工地管理平台”以现场实际施工及管理经验为依托,针对工地现场痛点,能在工地落地实施的模块化、一体化综合管理平台。为建筑公司、地产公司、监管单位租赁企业、设备生产厂提供了完整的数据接入和管理服务。
            66 2
            |
            16天前
            |
            机器学习/深度学习 数据采集 人工智能
            【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
            【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
            |
            3月前
            |
            人工智能 开发者
            AI Earth ——开发者模式案例9:OpenAPI调用AI识别能力
            AI Earth ——开发者模式案例9:OpenAPI调用AI识别能力
            43 0
            |
            10天前
            |
            机器学习/深度学习 数据采集 人工智能
            【AI 场景】设计一个 AI 系统来识别和分类图像中的对象
            【5月更文挑战第3天】【AI 场景】设计一个 AI 系统来识别和分类图像中的对象
            |
            3月前
            |
            人工智能 文字识别 Java
            AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提取方法分享)
            【2月更文挑战第1天】Lept4J和Tess4J都是基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,本次介绍Tess4J
            122 0
            |
            3月前
            |
            传感器 人工智能 监控
            Java智慧工地管理云平台源码 带AI识别、桌面管理+大屏指挥+手机APP
            智慧工地平台支持项目级、公司级、集团级多级权限划分,可根据企业的组织架构进行项目权限、功能权限、数据权限设定。
            85 0
            |
            8月前
            |
            人工智能 文字识别 自然语言处理
            探索古彝文AI识别技术:助力中国传统文化的传承与发扬
            随着科技的不断发展,OCR(Optical Character Recognition,光学字符识别)技术在各个领域得到了广泛应用。 近年来,古彝文作为一种具有悠久历史和独特魅力的文字,逐渐受到了学者们的关注。探索古彝文识别OCR技术,不仅有助于挖掘、整理和传承中国传统文化,还能为现代科技与文化的交流搭建桥梁。
            199 0
            |
            3月前
            |
            人工智能 开发者
            AI Earth ——开发者模式案例5:鄱阳湖水体区域识别
            AI Earth ——开发者模式案例5:鄱阳湖水体区域识别
            40 6