【 地平线旭日X3派试用体验】【零基础】 关于实验室检查被扣分我用colab训练yolov5检测插线板这件事

参考资料:【Yolov5】1.认真总结6000字Yolov5保姆级教程(2022.06.28全新版本v6.1) 使用Colab训练YOLOv5 训练+测试

目标检测---利用labelimg制作自己的深度学习目标检测数据集

最近拿到了一块旭日派正打算决定要用它做点什么,然后就接到了这样的通知

视觉检测系统检测插线板???有点抽象。

但是转念一想好像可以用深度学习配合x3派以及我在咸鱼50块淘到的双目摄像头来尝试一下。

于是就有了以下的内容

注:本人纯小白,之前没有接触过深度学习相关的内容,如果有些地方存在问题请包涵

——————————————————分割线———————————————————

经过一番了解我确定了任务流程: 在主机端训练出一套模型——>转换格式导入进x3派——>运行模型在检测到违规摆放插线板后给老师发邮件提醒

  • 在主机端训练出一套模型
  • 转换格式导入进x3派
  • 业务代码

在主机端训练模型

1.标定我的数据集

要训练属于自己的模型首先要拥有训练模型所需要的数据集

为此我进行了一番拍摄,拍了一百多张实验室插线板的照片

在此期间我还不小心摔了我的双目摄像头然后再次开启它就不工作了....... 在我万念俱灰之际 我旁边的小伙伴提议到用热风枪吹吹芯片吧。试了一下,它就又可以正常工作了

接下来就可以快乐的标定数据集了这里我记得我好像参考了目标检测---利用labelimg制作自己的深度学习目标检测数据集

于是我直接打开win+r开启powershell

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

后面的步骤我就先省略了,我是跟这上面的博客一样子操作的

然后进入图片文件夹一顿标定就得到了我们需要的数据集

需要注意的是文件格式要改为yolo,这样输出的数据集格式就是txt文件,无需转换了

感觉还不戳 直接开始训练

2.用colab免费训练模型

因为我的电脑显卡是3050感觉有点小烂,但是网上租显卡又太贵,我听说google的colab训练模型挺不错也不要钱,于是我在网上看了一些别人的教程就开始白嫖(bushi)了

具体我参考了 使用Colab训练YOLOv5 训练+测试 的博客

为了体现x3派卓越的性能和加速功能,我选择了在树莓派上跑会比较吃力的yolov5。

一顿操作完感觉非常简单方便,对我这样的小白很友好

我是先将yolov5的文件更改好再整个移进google drive

具体更改如下

我打包了数据集文件为 VOC2007——images (存放图片)

——labels ( 存放标签 )

——ab.yaml

——predefined_classes.txt

ab.yaml文件代码

train: ../data/VOC2007
val: ../data/VOC2007
nc: 2
names: [ 'danger','safe']

predefined_classes.txt中存放标定的种类

最终我把VOC2007存放在了yolov5的data文件夹下

再修改一下train.py文件

这里我的修改参考了

具体的修改为

parser.add_argument('--weights', type=str, default=ROOT / 'yolov5s.pt', help='initial weights path')
parser.add_argument('--cfg', type=str, default=ROOT / 'models/yolov5s.yaml', help='model.yaml path')
parser.add_argument('--data', type=str, default=ROOT / 'data/VOC2007/ab.yaml', help='dataset.yaml path')

parser.add_argument('--epochs', type=int, default=100, help='total training epochs')//训练了100次

然后进入google的colab开始训练

首先链接上google dribe

import os
from google.colab import drive
drive.mount('/content/drive')

再cd到yolov5目录下,安装yolov5相关依赖

!pip install -r requirements.txt

然后直接开始训练

!python train.py

如果顺利的话就可以看见

这就是开始训练了

需要注意的是:

在train.py中的data这行代码一定要改成自己的数据集才可以训练出自己的模型,否则就会训练的别的东西

parser.add_argument('--data', type=str, default=ROOT / 'data/VOC2007/ab.yaml', help='dataset.yaml path')

至此训练部分已完成

2022.10.19

经过几天的尝试,终于成功的导出了目标bin文件可以准备部署开发板了

以下为我的操作

转化模型具体参照了

[BPU部署教程] 教你搞定YOLOV5部署 (版本_ 6.2) (horizon.ai)

(10条消息) [BPU部署教程] 一文带你轻松走出模型部署新手村_小玺玺的博客-CSDN博客

两篇文章

首先安装docker desktop 然后拉取地平线AI工具链

地址:openexplorer/ai_toolchain_centos_7_xj3 Tags | Docker Hub

docker pull openexplorer/ai_toolchain_centos_7_xj3:v1.14.3

然后漫长的等待14个G 属实吃不消

由于我之前没有仔细看,下的是老版本可能环境会有一些问题,后来再换为最新的xj3又经历了各种困难,我建议使用powershell拉取会比cmd效果稍微好一点 cmd我不知道为啥会非常的卡....

总之这个镜像我拉了快两天终于拉取下来了

然后我根据教程的办法挂载

docker run -it --rm -v "F:\BaiduNetdiskDownload\horizon_xj3_open_explorer_v2.3.3_20220727":/open_explorer -v "F:\BaiduNetdiskDownload\1- BPU开发\OpenExplorer\dataset":/data/horizon_x3/data -v "F:\BaiduNetdiskDownload\1- BPU开发\Codes":/data/horizon_x3/codes  openexplorer/ai_toolchain_centos_7_xj3:v1.14.3

我将onnx文件和训练照片放在了相应位置

我直接在sample文件夹内替换了图像集和onnx然后运行

./01_check.sh

./02_preprocess.sh

./03_build.sh

最终成功的输出了珍贵的bin文件,终于可以开始导入了

赞!短短三四天时间,从idea到动手实操,期待最后落地效果?

也可以尝试使用百度的aistudio,我们后面会发布一些相关的教程,从训练到部署全流程的打通,欢迎尝试

6666

啥时候发

预计11月份哈

今天11.26