YOLO个人总结

1、(ultralytic)YOLOV8项目部署
1.1 YOLOv8项目获取
github链接:https://github.com/ultralytics/ultralytics

git拉取项目:
git clone https://github.com/ultralytics/ultralytics.git

1.2 cuda、cudnn、Pytorch等环境安装与卸载
(1)首先查看pytorch支持的最高版本
PyTorch
https://pytorch.org/

(2)然后查看N卡系统支持最高的版本
(3)然后权衡下载支持最高版本的CUDA和cuDNN

(4)CUDA工具包
https://developer.nvidia.cn/zh-cn/cuda-toolkit
nvcc -V:查看版本CUDA
(5)cuDNN工具包
https://developer.nvidia.com/rdp/cudnn-download

(6)配置对应的环境变量
需要在系统环境变量Path 下 增加下面几个路径即可
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\CUPTI\lib64
(7)Anacinda3 安装
(62条消息) Win10+Anaconda3 的详细安装教程(图文并茂)_anaconda安装_就是拾柒呀的博客-CSDN博客
以上七步全部完成后 打开项目

1.3给项目配置环境
(1)点击File->Settings->Python Interpreter->add Interpreter

(2)点击Conda Environment
(3)注意:这里 Python version 选择3.8及以上的版本
(4)Conda executable 这里选择你安装的anacinda3 安装目录下的 conda.exe 可执行文件
(5)选完之后点击ok ok ok

注意:环境配置没问题的话 打开下面的控制台 左边会显示你的项目名称。(大坑)

以上都没没问题的话 就可以继续啦

1.4安装项目依赖
1 pip install -r requirements.txt
2 pip install -e ultralytics
3 pip install ultralytics
4 pip install yolo
卸载项目依赖为你安装CPU版本pytorch,打开pytorch官网,使用对应命令下载GPU版本。

1.5训练数据集
数据集的话 官网上有需要公开的数据集,项目里面带的有,在这我不仔细讲了,主要讲一下如何训练自己的数据集。
训练自己的数据集:
1 先在项目文件夹下的dataset 文件夹下 建立一个存放图片和标签的 文件夹(例如:coup)
2 在coup 下 建立三个文件夹 test train val 以及 data.yaml yolov8n.yaml(这是你需要的模型,看自己的需求选择模型)名称也是随便命名的。这里的nc:就是你的类别的个数 我当时就一个类别。

        data.yaml                                yolov8s.yaml

3 在test train val 文件夹下 建立 images labels 两个文件夹 分别用来存放图片和标签
4 运行b.py 划分 图片和标签

1.6操作
(1)训练(训练完的结果保存在 runs->train)resume=True加上这个命令可以执行断训操作。
yolo task=detect mode=train data=ultralytics-main/datasets/coco/data.yaml model=ultralytics-main/datasets/coco/yolov8n.yaml epochs=100 imgsz=640 resume=True workers=2

(2)断训:(训练过程中 ctrl+c 可以停止 然后输入下列命令可以继续训练)
yolo task=detect mode=train model=runs/detect/train3/weights/best.pt epochs=100 imgsz=640 resume=True workers=2

(3)推理(推理完的结果保存在runs->detect)
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt conf=0.25 source=‘ultralytics-main/ultralytics/assets/bus.jpg’

(4)验证
yolo task=detect mode=val model=runs/detect/train3/weights/best.pt data=data/fall.yaml device=0

(5)导出
yolo task=detect mode=export model=runs/detect/train3/weights/best.pt

2、YOLOV5项目部署
2.1 YOLOv5源码获取
https://github.com/ultralytics/yolov5
2.2 YOLOv5环境搭建
YOLOv5的环境搭建跟YOLOv8的环境一样,主要yolov8的环境搭建好,可以直接运行yolov5。
2.3 训练数据集
训练自己的数据集:
1 先在data 下建立自己 data.yaml 里面 nc: 填入标签的数量 name:[’ ‘]:填入所有的标签
train: D:/yolo/yolov5-6.1/dataset/train/images
val: D:/yolo/yolov5-6.1/dataset/val/images
test: D:/yolo/yolov5-6.1/dataset/test/images
路径填绝对路径
2在model 文件夹下建立自己的data.yaml 里面 nc: 填入标签的数量 其他不动
3 建立dataset 文件夹 并在此文件夹下 建立三个文件夹 test train val 存放图片和标签
4 在test train val 文件夹下 建立 images labels 两个文件夹 分别用来划分好的存放图片和标签
5 运行split.py 划分 图片和标签 然后查看 test train val 文件夹
6 修改 train.py 里面的参数 --weights --cfg’ --data --epochs’ --device 右键运行
2.4 操作
(1)训练:
python train.py --data coco.yaml --cfg yolov5s.yaml --weights ‘’ --batch-size 8
(2)从指定的last.pt恢复训练(断训)
python train.py --resume runs/exp2/weights/last.pt # resume from specific weights
(3)推理:
修改 detect.py 里面的参数 --weights --cfg’ --data --epochs’ --device 右键运行
命令:
python detect.py --source ./data/images/bus.jpg
source 后面的参数0可以替换:
file.jpg # image 图片
file.mp4 # video 视频
path/ # directory 目录
path/*.jpg # glob
rtsp://170.93.143.139/rtplive
(4)导出ONNX格式:
python export.py --yolov5s.pt --img 640 --batch 1

3、标注数据集

  1. 工具:LabelImg

  2. Open Dir 选择你图片的文件夹

  3. Changes Save Dir 选择 存放标注完结果的文件夹

  4. 点击 YOLO格式

  5. 点击 W 建 开始画框 输入标签名称(第一次需要手动输入)

  6. Ctr+S 保存

4、YOLOV5 C++ TensorRT的部署(GPU)
4.1下载配置 TensorRT
地址:https://developer.nvidia.com/nvidia-tensorrt-8x-download=

我这边下的是tensorRT8.x,勾选 I agree 出现
下载完后
将 TensorRT-7.2.3.4\include 中头文件 copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include;
将 TensorRT-7.2.3.4\lib 中所有lib文件 copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64;
将 TensorRT-7.2.3.4\lib 中所有dll文件copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;

4.2下载配置 yolov5-tensorRT
地址:GitHub - Monday-Leo/Yolov5_Tensorrt_Win10: A simple implementation of tensorrt yolov5 python/c++
修改cmakelists 中的路径改成自己路径:

4.3下载CMake以及VS2017 、opencv454(直接百度步骤很简单)
(1)下载完成后打开CMake

(2)执行第三步时 需要选择VS的版本我的是VS2017

(3)执行完第4步后

(4)执行完第5步后

(5)修改参数

  1. 在yololayer.h中 输入自定义训练图像的尺寸大小,和检测类别数量
  2. 选择release或者debug,点击生成项目,
    (6)最后生成

4.4 pycharm下将.pt导出生.wts文件 并在yolo5-tensorrt生产.engine文件
1.将gen_wts.py文件复制到和train.py同级目录下
2.将要导出的,pt文件夹也复制到和train.py同级目录下面
3.修改device 把默认的GPU改成0
4.打开终端 输入以下命令:
python gen_wts.py -w exp8best.pt -o exp8best.wts
5.将生成的.wts 文件复制到build/release 下面 然后在文件夹下放入要推理的图片。
6.在当前文件夹下 打开CMD 输入如下命令代码:
yolov5 -s exp8best.wts yolov5sexp8best.engine s
7.生产.engine 后 在CMD中输入如下命令
yolov5 -d yolov5sexp8best.engine ./pictures
4.5 yolo5-tensorrt的dll 封装可以直接外部调用
1.还在原来的文件夹路径下 新建一个build_dill (这里我建议,大家可以重新把前面链接里下载好的文档再重新解压到一个新的文件夹,因为这里要重新cmake过,所以可能会导致我们之前生成engine 的项目出错,所以建议还是新建一个文件夹,解压下面文件,在新的文件夹下操作,)。
2.修改cmakelists 中的路径改成自己路径:

注意:这里也需要修改
#add_executable(yolov5 ${PROJECT_SOURCE_DIR}/yolov5.cpp ${PROJECT_SOURCE_DIR}/yololayer.cu ${PROJECT_SOURCE_DIR}/yololayer.h ${PROJECT_SOURCE_DIR}/preprocess.cu)
add_library(yolov5 SHARED ${PROJECT_SOURCE_DIR}/common.hpp ${PROJECT_SOURCE_DIR}/yololayer.cu ${PROJECT_SOURCE_DIR}/yololayer.h “Detection.h” “Detection.cpp” “framework.h” “dllmain.cpp”“pch.h” )
3. 在当前工程下建立
dllmain.cpp,framework.h,pch.h,Detection.h,Detection.cpp五个文件(文件内部参考下方链接)
4. 打开CMake 编译生产 与前面步骤一样。
5. 在VS中直接编译生产

  1. 建立测试项目
    建立 main.cpp(代码参考下方链接) 项目 把上面的三个文件放到此从工程中以及yolov5s.engine.
  2. 配置环境
    #将此路径加入项目属性包含目录中
    D:\yolov5_tensort\tensorrtx-yolov5-v4.0\yolov5
    Opencv的目录也放进去
    #将此路径加入项目属性的库目录中,也就是我们刚刚生成dll的文件目录
    D:\yolov5_tensort\tensorrtx-yolov5-v4.0\yolov5\build_dll\Release
    #在输入链接器添加依赖库
    yolov5.dll
    opencv_world4541.lib
    cudart.lib
    cudart_static.lib
    yolov5.lib
    myelin64_1.lib
    nvinfer.lib
    nvinfer_plugin.lib
    nvonnxparser.lib
    nvparsers.lib

5、 C++下部署YOLOv5模型(CPU)
6.1 导出模型.pt文件为.Onnx文件

  1. 打开export.py这两处换成自立的data.yaml 以及best.pt 文件。
  2. 输入一下命令(或者直接右键run export.py)
    python export.py --yolov5s.pt --img 640 --batch 1
    6.2 新建VS项目
  3. 新建yolo.h 和yolo.cpp 文件(代码参考下方来链接)
    注意:类别需要改成自己的
    https://github.com/UNeedCryDear/yolov5-opencv-dnn-cpp
  4. 把刚才生成的.onnx 文件放到此工程下
  5. 配置openCV环境
  6. 运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值