欢迎光临散文网 会员登陆 & 注册

Yolov5-7.0机器视觉应用教程

2022-08-30 13:41 作者:CG游戏  | 我要投稿

1.安装anaconda 下载地址

https://www.anaconda.com/download

添加环境变量

默认安装后的路径

C:\ProgramData\anaconda3 

C:\ProgramData\anaconda3\Scripts 

C:\ProgramData\anaconda3\Library\bin

2.安装cuda

可先用nvidia-smi命令查看自己显卡最高支持的版本

https://developer.nvidia.com/cuda-toolkit-archive

选择并安装 CUDA Toolkit 11.8.0 (October 2022)

3.创建python环境 

安装anaconda完后打开cmd执行

创建一个名为yolo的环境

conda create -n yolo python==3.8

查看现有环境 

conda env list 

激活环境 (如果激活失败就执行conda init cmd.exe 然后关闭从新打开cmd再次执行)

conda activate yolo

删除环境命令

conda env remove -n yolo

4.安装torch

打开https://pytorch.org/get-started/locally/

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

或者使用

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

5.下载yolo源码(这里也可以直接下载源码使用vscode打开源码进行以下的环境安装)

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

6.安装onnx装换

pip install onnx -ihttps://pypi.tuna.tsinghua.edu.cn/simple

pip install onnxsim -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install onnxruntime -i https://pypi.tuna.tsinghua.edu.cn/simple

7.测试

YOLOv8n下载地址

https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n-pose.pt

YOLOv8s下载地址

https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s-pose.pt

选择并下载一个推理模型

本机新建一个文件夹目录,将推理模型(yolov8s.pt)放在里面,再放入一个图片A.jpg

使用cmd打开这个目录路径,执行

yolo predict model=yolov8s.pt source=A.jpg


源码报错处理:

cannot import name 'Callable' from 'collections'...

根据提示打开源码文件..\anaconda3\Lib\site-packages\keyring\util\properties.py

把第一行的

from collections import Callable

修改为

from collections.abc import Callable

CryptographyDeprecationWarning: Blowfish has been deprecated

根据提示打开源码文件..\anaconda3\Lib\site-packages\paramiko\transport.py:219

把这块注释掉:

# "blowfish-cbc": {

#     "class": algorithms.Blowfish,

#     "mode": modes.CBC,

#     "block-size": 8,

#     "key-size": 16,

# },

 No such command 'predict'

在根目录下执行

python setup.py install



=======================以下旧版教程 已过时==========

1.安装python 下载地址(必备的环境)

https://www.python.org/getit/


2.下载VScode(我们用这个工具写代码)

https://code.visualstudio.com/


3.下载YOLOV5(笔者用的7.0)

https://github.com/ultralytics/yolov5


4.下载YOLOV5 模型(笔者用的yolov5s.pt)下载后可以放在yolov5根目录里

https://github.com/ultralytics/yolov5/releases


5.添加Py环境变量(一般会自动添加上,防止意外还是自己手动添加一下)

如果是默认安装路径的话参考这两个地址,注意Python310是我自己起的python安装文件目录

C:\Users\vision\AppData\Local\Programs\Python\Python310\Scripts

C:\Users\vision\AppData\Local\Programs\Python\Python310


6.安装依赖的库

使用VScode打开YOLOV5源码 安装依赖库

pip install -r requirements.txt  # install

这个requirements.txt文件就在yolo5目录里

===================================================




7.下载标记工具LabelImg

https://github.com/heartexlabs/labelImg


8.收集要标记的图片、准备标记目录、开始使用Labelimg标记

建一个文件夹dataset,里面目录结构为:(笔者为了方便所以多建了一层目录)


然后temp文件夹下 新建jwt.yaml文件

文件内容如下:

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]

train: ../datasets/temp/images/

val: ../datasets/temp/images/

# number of classes

nc: 7

# class names

names: ['body','head','car','JT1','JT2','JT4','JT6']

#======

#注意nc代表你有几个标记,names代表你的标记name,上面的路径是对应你建立的images文件夹

下一步就把你的图片放在images里 

VS打开labelimg源码:修改里面的类别txt为你的标记,然后执行labelimg开启工具开始标记


打开目录为你的images文件夹,改变存放目录为旁边的labels文件夹

注意选择YOLO模式,快捷键W开始标记,导航栏点击查看把自动保存、单一类别都勾上(如果你只想标记一个类别的话),这样方便你快速标记,按D时进行下一张。

都标记完后我们就开始用YOLOV训练

9.开始对标记好的数据集训练

训练的时候:需要两个yaml文件


准备好yolov8.yaml文件

yolov8.yaml文件在源码的..\ultralytics-main\ultralytics\cfg\models\v8

记得修改标记数量nc


准备好jwt.yaml 可参考示例文件coco128.yaml

coco128.yaml文件在源码的..ultralytics-main\ultralytics\cfg\datasets

可以复制过来后修改数据集所在路径和标记


然后训练指令:这两个文件的路径可以是全路径

yolo detect train data=jwt.yaml model=yolov8s.yaml batch=-1 epochs=100 imgsz=640 resume=True


如果训练报错:

Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

则删掉或者重命名..\anaconda3\Library\bin下的libiomp5md.dll


最后

pt转换onnx

yolo mode=export model=runs/detect/train/weights/best.pt format=onnx simplify=True


到此就训练完成 就可以使用pt或者onnx去调用使用了。

===============以下是旧版的,可以不看================

py train.py --img 600 --batch 50 --epochs 300 --data ../datasets/temp/jwt.yaml --weights yolov5s.pt --cache --batch-size 8

yolo detect train data=../datasets/temp/jwt.yaml model=yolov8s.pt epochs=100 imgsz=600

说明文档:https://docs.ultralytics.com/usage/cli/

其中data就是你刚才标记好的数据集所在路径的那个yaml文件

model 可以指向你第4步下载好的模型yolov5s.pt

10.训练结束后

在train目录下会有你的训练结果

然后你就可以拿着这个去用代码调用啦

笔者用的python torch gpu调用的 速度很快

调用代码参考:

device = torch.device("cuda") #GPU 模型

model = torch.hub.load('F:\CG_Work\CG2022\YOLO5\yolov5-7.0', 'custom', 'F:\CG_Work\CG2022\YOLO5\yolov5-7.0\pt\last.pt',source='local', force_reload=False)  #模型位置


        results = model(img) #图像识别获取结果

        xmins = results.pandas().xyxy[0]['xmin'] #方框左上角x

        ymins = results.pandas().xyxy[0]['ymin'] #方框左上角y

        xmaxs = results.pandas().xyxy[0]['xmax'] #方框右下角x

        ymaxs = results.pandas().xyxy[0]['ymax'] #方框右下角y

        class_list = results.pandas().xyxy[0]['class'] #标记的分类索引

        confidences = results.pandas().xyxy[0]['confidence'] #识别权重






Yolov5-7.0机器视觉应用教程的评论 (共 条)

分享到微博请遵守国家法律