训练自己的yolov5样本, 并部署到rv1126 <二>

折腾了大概一个星期, 最大的问题就是python的版本的问题.
最重要感谢小蒋提示了我, 转模型要3.6, 训练要3.8, 顺这个这思路走.
首先, 需要一个ubuntu 20的虚拟机或者物理机.
然后第一时间装上conda, 装mini的就行.

下载并安装miniconda

https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh
在ubuntu终端运行

$ bash Miniconda3-py38_4.12.0-Linux-x86_64.sh

一步步往下走就行, 中间什么用户协议输入yes
是否初始化选择yes
关掉终端, 重新打开.
在这里插入图片描述
跟windows版本一样, 终端前面可以看到conda目前的环境.

安装py38环境
$ conda create -n train_yolo_py38 python=3.8

激活py38环境

$ conda activate train_yolo_py38
下载rk优化后的yolov5
$ git clone https://github.com/airockchip/yolov5.git

修改data/下面的yaml文件, 就像你平时做的那样, 训练模型.


如果是用显卡进行训练的, 可以考虑安装windows版本的conda跟python3.8 以及对应的依赖, 然后在windows下面训练模型, 因为显卡没法挂载到虚拟机里面.
比如我想训练一个安全帽的模型

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/safe_hat  # dataset root dir
train: images/train  # train images (relative to 'path') 128 images
val: images/val  # val images (relative to 'path') 128 images
test: images/test  # test images (optional)

# Classes
nc: 2  # number of classes
names: ['person', 'hat']  # class names

用yolov5的训练方法训练, 这里生成的权重/模型, 其实已经被优化过了, 一会儿看pt文件就知道, silu已经被换成了relu

(py38torchgpu) D:\rkai\yolov5>python train.py --weights '' --cfg yolov5s.yaml --data safe_hat.yaml --epochs 300 --batch-size 16

在这里插入图片描述
修改一下batch-size, 使得显卡内存利用率更高, 让训练速度更快, 我是8G的现存, batch-size设置成32.

在这里插入图片描述
训练的目标就是让mAp@.5 跟mAp@.5:.95尽量的高
每个Epoch即整个训练集, 约4000张图片, 每次32张图片(batch-size), 进行一次前向传播, 再用损失函数, 反向传播, 求偏导数, 这样就是一个epoch, 暂时定为重复300个epoch, 如果中间程序发现长时间mAP提升, 会提前停止训练.

在这里插入图片描述
50轮的时候, mAP已经是0.914了, 因为我的val跟train的样本集是分开的, 所以不会出现过拟合的问题.
在这里插入图片描述
生成的权重文件, 就在runs\train\expX\weights\best.pt
X是个会自增的数字, 每训练一次都会加1
在这里插入图片描述
训练成果图片如上

直接拿python脚本测试一下

$ python detect.py --weights runs\train\exp4\weights\best.pt --source D:\\rkai\\datasets\\safe_hat\\images\\test\\person_hat_2_72.jpg

结果:
在这里插入图片描述
这个模型已经拿来做转换了.



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
训练自己的Yolov5部署RV1126上,可以按照以下步骤进行操作: 1. 首先,你需要在Yolov5的data目录下创建一个用于训练配置的yaml文件。在该文件中,指定训练集和验证集的路径,可以使用相对路径或绝对路径,确保训练集和验证集都是路径的子目录。 2. 在命令行中使用以下命令开始训练: ``` python train.py --epochs <训练轮数> --weights <模型权重> --data <配置文件路径> --batch <批量大小> ``` 其中,`--epochs`表示训练的轮数,建议设置为至少200;`--weights`表示使用的预训练模型,选择一个简单的模型如yolov5s可以加快训练速度;`--data`指定刚才创建的配置文件路径;`--batch`表示每次训练使用的样本数量,根据你的显卡显存大小适当调整。 3. 训练完成后,在`yolov5/runs/train/expX`目录下会生成训练权重和相关的训练日志文件,其中X是一个递增的数字,选择最大的数字对应的目录,即为最新的训练结果。 接下来是一些相关问题: 相关问题: 1. 如何在Yolov5中使用自己的数据集进行训练? 2. Yolov5的模型权重有哪些可选项?它们之间有什么区别? 3. 如何在RV1126部署训练好的Yolov5模型? 4. Yolov5训练轮数对结果有什么影响? 5. 如何选择合适的批量大小进行训练? 6. 如何评估训练好的Yolov5模型的性能? 7. 有没有一些优化训练过程的技巧或策略可以分享?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值