研0暑假被老师安排到公司实习两月,期间要我用yolov10对图片进行目标分类。我本科期间从未接触过深度学习方面的知识,看了很多大佬的帖子也迅速上手了v10。在这里感谢各位大佬!然后下面我也会写下我的心得帮助后来者快速上手。这是我的第一篇博客,欢迎各位大佬指出我的不足。
首先下载yolov10项目
项目地址如下:
GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection
点击code,然后点download zip下载v10
然后下载权重文件
只需要下载红框中pt结尾的文件
然后把权重文件放在你的v10项目目录下 ,这里我放的v8的权重文件是看到有个大佬说v10会调用v8的文件,你们可以把v10和v8的都下载放在这里。然后我的v10文件放在自己建的weights目录下,至于原因也是跟随某位大佬,你们可以忽略。
代码下载完成后使用anaconda创建虚拟环境
打开anaconda终端输入
conda create -n yolov10 python=3.9
激活虚拟环境
conda activate yolov10
然后进入你的yolov10所在项目目录
然后安装相关依赖包
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
终端输入
yolo predict model=yolov10s.pt
如果无异常表示环境搭建完成
yolov10的使用
首先 打开pycharm,打开你的v10项目
创建test文件,写入如下代码,onnx那里可以忽略
from ultralytics import YOLOv10
# train
# model = YOLOv10('./runs/detect/train20/weights/best.pt')
# model.train(data='/home/dl/TestCode/YOLOV10/datasets/data/Data2013/data.yaml', epochs=100, batch=8, imgsz=640,device=0,patience=1000)
# test
# model = YOLOv10('./runs/detect/train23/weights/best.pt')
# results = model.predict(source='/home/dl/TestCode/微信图片111036.jpg', imgsz=640, conf=0.7,save=True)
# nnx
model = YOLOv10('./runs/detect/train22/weights/best.pt')
model.export(format='onnx')
test下面两行代码负责识别图片物体,train是训练模型,nnx是导出onnx模型。
训练模型首先得有自己的数据集(创建自己的数据集在文档末尾),数据集文件结构如下,train是训练集数据,valid是验证集数据,test是测试集数据,一般他们的数据量是7:2:1比列。制作自己的训练集请大家看看其他大佬文章,我这里的数据集都是公司的不方便写在文章中。
运行上面代码训练模型(把test注释掉留下train),data是你的数据集配置文件,epocho是轮次(越多训练时间越长但是模型准确),device=0是用你的第一个gpu,如果你有多个gpu,可以[0,1,2,3]这样开多个。训练结果一般放在项目目录/runs/detct/train+第几次,这里的路径训练结束控制台会显示。
如果你的训练集训练完毕,运行下面代码可以测试你想测试的图片,conf是置信度表示只显示高于该置信度的框,save=true是保存预测结果,如果不需要可以删除该参数。
如果你的预测结果保存了,可以在输出栏看到保存路径,进入就可以查看模型的预测结果。