首页专栏详情
打赏
训练自己的yolov5样本, 并部署到rv1126 <二>
训练自己的yolov5样本, 并部署到rv1126 <二>
易百纳技术社区 Marc 2022-11-22 09:57:52

折腾了大概一个星期, 最大的问题就是python的版本的问题.
按照下面的步骤来, 不行的话, 你抽我…
最重要感谢小蒋提示了我, 转模型要3.6, 训练要3.8, 顺这个这思路走.
设计py36 跟py38切换, 所以最好弄个conda来方便你切换环境.

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

ubuntu下载并安装miniconda
  1. wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh
  2. bash Miniconda3-py38_4.12.0-Linux-x86_64.sh

一步步往下走就行, 中间什么用户协议输入yes
是否初始化选择yes
关掉终端, 重新打开.

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

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

接着修改data/下面的yaml的配置, 训练模型, 就像平时训练一样
比如我想训练个看人有没有带安全帽的模型, 就新建个yaml, 取名叫safe_hat_detect.yaml

  1. path: ../datasets/safe_hat # dataset root dir
  2. train: images/train # train images (relative to 'path') 128 images
  3. val: images/val # val images (relative to 'path') 128 images
  4. test: images/test # test images (optional)
  5. # Classes
  6. nc: 2 # number of classes
  7. names: ['person', 'hat'] # class names

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

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

  1. python train.py --weights '' --cfg safe_hat_detect.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的样本集是分开的, 所以应该不会出现过拟合的问题.

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

生成的权重文件, 就在runs\train\expX\weights\best.pt
X是个会自增的数字, 每训练一次都会加1


结果图 还挺理想的.

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

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

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



声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。

522
收藏
点赞
打赏
给作者打赏,鼓励他抓紧创作吧~
评论
0个
内容存在敏感词
相关专栏
打赏作者
易百纳技术社区
Marc
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区