赞
踩
yolov5模型结构:
下载链接:https://github.com/ultralytics/yolov5
目录结构如下:
卷 OS 的文件夹 PATH 列表 卷序列号为 0000001E 1A52:341F C:\USERS\User\DOWNLOADS\YOLOV5-MASTER │ .dockerignore │ .gitattributes │ .gitignore │ .pre-commit-config.yaml │ CONTRIBUTING.md │ detect.py │ Dockerfile │ export.py │ hubconf.py │ LICENSE │ README.md │ requirements.txt │ setup.cfg │ train.py │ tutorial.ipynb │ val.py │ ├─.github │ │ dependabot.yml │ │ FUNDING.yml │ │ │ ├─ISSUE_TEMPLATE │ │ bug-report.yml │ │ config.yml │ │ feature-request.yml │ │ question.yml │ │ │ └─workflows │ ci-testing.yml │ codeql-analysis.yml │ greetings.yml │ rebase.yml │ stale.yml │ ├─data │ │ Argoverse.yaml │ │ coco.yaml │ │ coco128.yaml │ │ GlobalWheat2020.yaml │ │ Objects365.yaml │ │ SKU-110K.yaml │ │ VisDrone.yaml │ │ VOC.yaml │ │ xView.yaml │ │ │ ├─hyps │ │ hyp.finetune.yaml │ │ hyp.finetune_objects365.yaml │ │ hyp.scratch-high.yaml │ │ hyp.scratch-low.yaml │ │ hyp.scratch-med.yaml │ │ hyp.scratch.yaml │ │ │ ├─images │ │ bus.jpg │ │ zidane.jpg │ │ │ └─scripts │ download_weights.sh │ get_coco.sh │ get_coco128.sh │ ├─models │ │ common.py │ │ experimental.py │ │ tf.py │ │ yolo.py │ │ yolov5l.yaml │ │ yolov5m.yaml │ │ yolov5n.yaml │ │ yolov5s.yaml │ │ yolov5x.yaml │ │ __init__.py │ │ │ └─hub │ anchors.yaml │ yolov3-spp.yaml │ yolov3-tiny.yaml │ yolov3.yaml │ yolov5-bifpn.yaml │ yolov5-fpn.yaml │ yolov5-p2.yaml │ yolov5-p34.yaml │ yolov5-p6.yaml │ yolov5-p7.yaml │ yolov5-panet.yaml │ yolov5l6.yaml │ yolov5m6.yaml │ yolov5n6.yaml │ yolov5s-ghost.yaml │ yolov5s-transformer.yaml │ yolov5s6.yaml │ yolov5x6.yaml │ └─utils │ activations.py │ augmentations.py │ autoanchor.py │ autobatch.py │ benchmarks.py │ callbacks.py │ datasets.py │ downloads.py │ general.py │ loss.py │ metrics.py │ plots.py │ torch_utils.py │ __init__.py │ ├─aws │ mime.sh │ resume.py │ userdata.sh │ __init__.py │ ├─flask_rest_api │ example_request.py │ README.md │ restapi.py │ ├─google_app_engine │ additional_requirements.txt │ app.yaml │ Dockerfile │ └─loggers │ __init__.py │ └─wandb log_dataset.py README.md sweep.py sweep.yaml wandb_utils.py __init__.py
这里直接使用pip进行安装,所需依赖包都在./requirement.txt中,只需在cmd中进入当前目录,运行下面代码即可自动安装
pip install requirement.txt
https://github.com/ultralytics/yolov5/releases,可根据自己的电脑配置和需求,选择对应模型,后缀名为.pt,不同版本的速度和精度会有所不同。下载完后可在yolov5-master目录下新建一个目录weights用于保存模型。
在cmd中运行./detect.py,用默认提供的图片进行识别,默认图片保存在./data/images,输入以下命令即可。(还有更多参数可见附录)
python detect.py --weights yolov5s6.pt --source ./data/images/bus.jpg
运行成果后会在./runs/detect/exp1目录下生成检测结果图片
在这里我将教会模型识别人参的性状,首先我上网爬取了149张人参的图片并使用labelImg
进行标注(可自行上网查找并安装)。在这里我将图片保存在./data/images/renshen/images目录下,将标签存放在./data/images/renshen/labels目录下。
标注前图片:
标注后图片:
labelImg标注软件可将所标注区域的矩阵保存为yolo模型认识的标签。
打完标签以后,可运用脚本或者手动将数据集分为训练集、验证集、测试集,由于数据量少,我在这里只分了训练集和测试集,文件目录树如下
├─train
│ ├─images
│ └─labels
└─valid
├─images
└─labels
自行建立一个配置文件,在这里我命名为renshen.yaml,输入以下内容
path: ./data/images/renshen # dataset root dir
train: train/images # train images (relative to 'path')
val: valid/images # train images (relative to 'path')
#test: test-dev2017.txt
nc: 1 #有几类就写几
names: ["人参"] #此处为具体类别,如果是中文,则需要修改一些编码,此处忽略。
输入以下代码并运行
python train.py --img 640 --batch 16 --epochs 5 --data ./data/data.yaml --cfg ./models/yolov5s.yaml --weights ./weights/yolov5s6.pt
# epochs 训练次数
# img 输入图片大小
# data 模型配置
# cfg 训练数据配置
# ... 更多参数见附录
如果出现以下错误,参考文章https://blog.csdn.net/weixin_51697369/article/details/120101292解决:
OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\....
模型训练完成后会在./runs./train./exp1目录下生成训练结果,在这里我使用了tensorboard进行了可视化展示,训练完成的模型会保存在./runs./train./exp1/weights文件夹下。
训练完成后,我随意找了一张模型没有见过的图片进行探测,这里依然用官方提供的detect.py脚本进行测试,输入以下代码
python detect.py --weights ./runs/train/exp3/weights/best.pt --source ./data/images/renshen/images/000298.jpg
检测结果如下,由于使用了中文,可能遇到了编码问题,暂时还未解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。