首页 > 技术知识 > 正文

折腾了大概一个星期, 最大的问题就是python的版本的问题.

按照下面的步骤来, 不行的话, 你抽我…

最重要感谢小蒋提示了我, 转模型要3.6, 训练要3.8, 顺这个这思路走.

设计py36 跟py38切换, 所以最好弄个conda来方便你切换环境.

一般情况下, 你训练模型是在物理机的window上面, 就用windows安装conda, 具体安装方法百度一下, 我这里说说ubuntu的安装

ubuntu下载并安装minicondawget https://repo.anaconda.com/miniconda/Miniconda3py38_4.12.0Linuxx86_64.shbash Miniconda3py38_4.12.0Linuxx86_64.sh

一步步往下走就行, 中间什么用户协议输入yes

是否初始化选择yes

关掉终端, 重新打开.

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

跟windows版本一样, 终端前面可以看到conda目前的环境.

创建并切换py38环境conda create n train_yolo_py38 python=3.8conda activate train_yolo_py38 下载rk优化后的yolov5git clone https://github.com/airockchip/yolov5.git

接着修改data/下面的yaml的配置, 训练模型, 就像平时训练一样

比如我想训练个看人有没有带安全帽的模型, 就新建个yaml, 取名叫safe_hat_detect.yaml path:../datasets/safe_hat # dataset root dirtrain: images/train # train images (relative to path) 128 imagesval: images/val # val images (relative to path) 128 imagestest: images/test # test images (optional)# Classesnc:2# number of classesnames:[person,hat]# class names

把你的模型的训练数据, 做好的标记文件, 测试集, 都放在对应的位置, 这里的目录组织有点别扭, 是在yolo的目录外面, 新建一个datasets目录, 然后模型一个目录, 然后里面再分别建image/train image/val image/test, 跟image同层建立labels目录放标签的txt文件.

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

python train.py weights cfg safe_hat_detect.yaml data safe_hat.yaml epochs 300batchsize 16

训练自己的yolov5样本, 并部署到rv1126 <二>-yolov3训练自己的模型1

修改一下batch-size, 使得显卡内存利用率更高, 让训练速度更快, 我是8G的显存, batch-size设置成32.

训练自己的yolov5样本, 并部署到rv1126 <二>-yolov3训练自己的模型2

训练的目标就是让mAP@.5 跟mAP@.5:.95尽量的高

每个epoch即整个训练集, 约4000张图片, 每次32张图片(batch-size), 进行一次前向传播, 再用损失函数, 反向传播, 对每一个参数求偏导数, 这样就是一个epoch, 暂时定为重复300个epoch, 如果中间程序发现长时间mAP没有提升, 会提前停止训练.

训练自己的yolov5样本, 并部署到rv1126 <二>-yolov3训练自己的模型3

50轮的时候, mAP已经是0.914了, 因为我的val跟train的样本集是分开的, 所以应该不会出现过拟合的问题.

训练自己的yolov5样本, 并部署到rv1126 <二>-yolov3训练自己的模型4

可以看到, 训练在275轮就提前结束了, 因为最近100轮都没有啥提升.

生成的权重文件, 就在runs\train\expX\weights\best.pt

X是个会自增的数字, 每训练一次都会加1

训练自己的yolov5样本, 并部署到rv1126 <二>-yolov3训练自己的模型5结果图 还挺理想的.

直接detect一下, 看看效果如何

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

训练自己的yolov5样本, 并部署到rv1126 <二>-yolov3训练自己的模型6

嗯, 好了, 下一步可以开始转换模型了.

猜你喜欢