【CRAIC】工业缺陷检测实训平台 模型训练指导手册 V1.4
工业缺陷检测实训平台 模型训练指导手册[*]产品版本:创新版
[*]文档版本:01
版权声明
版权所有©EDUCN 2025。保留一切权利。未得到本公司的书面许可,任何人不得以任何方式或形式对本手册内的任何部分进行复制、摘录、备份、修改、传播、翻译成其他语言、将其全部或部分用于商业用途。
免责声明
本手册内容依据现有信息制作,由于产品版本升级或其他原因,其内容有可能变更。海云捷迅保留在没有任何通知或者提示的情况下对手册内容进行修改的权利。本手册仅作为使用指导,海云捷迅在编写本手册时已尽力保证其内容准确可靠,但并不确保手册内容完全没有错误或遗漏,本手册中的所有信息也不构成任何明示或暗示的担保。
[*]网址:https://www.awcloud.com
[*]邮箱:fpga-china@awcloud.com
目录
[*]模型训练流程说明
[*]1.1 基于铝片缺陷的模型训练流程
[*]1.2 系统检测流程
[*]开发环境需求
[*]图像采集
[*]3.1 方法一:通过工业缺陷检测实训平台终端采集图像。
[*]3.2 方法二:通过个人电脑采集图像
[*]数据集准备
[*]4.1 安装并运行标注软件
[*]4.2 进行图片标注软件
[*]4.3 数据集整理
[*]4.4 数据集打包
[*]模型训练
[*]5.1 环境准备
[*]5.2 训练流程
[*]模型评估
[*]6.1 模型精度评估(可跳过)
[*]6.2 模型预测(可跳过)
[*]6.3 模型导出
[*]模型转换
[*]模型部署
[*]8.1 上传模型文件SSD_MOBILENET_V1_OPT.NB 到控制终端(树莓派)
[*]8.2 拷贝模型文件到FPGA 开发板
[*]8.3 进入FPGA 开发板部署模型文件
[*]运行与测试
1 模型训练流程说明
环境准备、图像采集、数据标注、模型评估、模型训练、数据集制作、模型部署、运行与测试
1.1 基于铝片缺陷的模型训练流程
1.1.1 图像采集与数据集制作
[*]图像采集
[*]使用高分辨率的工业相机或摄像机捕获铝材表面的图像。
[*]确保在稳定的光照条件下进行图像采集,调试相机聚焦、光圈,以获得高质量的图像数据。
[*]数据标注
[*]使用labelImg 工具对采集到的图像进行标注。
[*]标注内容包括铝材表面的各类缺陷,如脏污、褶皱、划伤等。
[*]标注过程中,为每个缺陷区域创建边界框,并为其分配相应的类别标签。
[*]标注完成后,将标注信息保存为VOC 格式(XML 文件)。
[*]数据集制作
将标注好的图像和对应的标注文件组织成数据集,数据集应包含训练集、验证集和测试集。
1.1.2 PaddleDetection 平台训练
[*]环境准备
安装PaddlePaddle 框架和PaddleDetection 库,配置好训练所需的环境和依赖项。
[*]模型参数配置
在PaddleDetection 的配置文件中,设置模型的类型、训练参数、数据路径等。
[*]模型训练
运行PaddleDetection 的训练脚本,开始训练模型。训练过程中,可以实时监控模型的训练效果,如损失函数的变化、准确率等。
[*]模型验证
使用训练好的模型进行推理验证,根据评估结果,调整模型的参数或结构,以优化模型的性能。
1.1.3 模型转换与部署
[*]模型转换
使用所提供的opt 工具将PaddleDetection 训练得到的模型转换为FPGA 开发板可支持的格式(*.nb),转换过程中,可能需要对模型进行优化,以减小模型的大小、提高模型的运行速度等。
[*]FPGA 开发板部署
将转换后的模型部署到FPGA 开发板上。配置FPGA 开发板的环境和参数,确保模型能够正常运行。
[*]运行与测试
将检测铝片放在工业缺陷检测实训平台设备上,对部署在FPGA 开发板上的模型进行验证和测试。通过实际运行和对比结果,评估模型在FPGA 开发板上的性能和表现。
1.2 系统检测流程
[*]检测是否存在对应的sqlite 数据库,不存在则创建,并创建defect_list 表,用于保存检测铝片信息,包括铝片uuid,铝片保存路径,铝片缺陷名字,铝片推理时间,铝片识别准确率以及数据插入时间
[*]初始化相机,获取相机信息。
[*]通过计算黑白图片中黑白像素所占比例来判断铝片进入摄像头视野情况,进入视野里铝片面积越大,则白色像素所占比例越大,反之越小。
[*]设置一个固定的白色像素占比值来判断铝片是否大部分面积暴露在摄像头视野下,大于该固定值才进行模型推理。
[*]针对运动中的铝片,设置一个lv 参数来判断摄像头拍摄到的铝片是否是同一个铝片,初始值为0,lv由0–>1 表示视野由小变大,如果不是同一铝片则在defect_list 表插入一条数据,用于统计所有检测铝片个数。
[*]调用推理接口,用于推理当前视野下铝片是否存在缺陷。如果存在缺陷,设置一个lx 参数用来表示是否是同一个缺陷铝片,方法和lv 使用一致,然后调用机械臂自动抓取铝片接口,用于将识别到的缺陷铝片抓取出来。
[*]针对检测到的缺陷铝片进行画框,添加文字,并根据检测信息,在defect_list 表中插入数据,并将检测结果保存在检测结果目录以及历史检测目录下;如果是正常铝片,则在defect_list 表里插入正常图片信息,并将图片保存在历史检测目录下。
[*]设置一个固定的白色像素占比值来判断是否铝片很少部分或者不存在铝片暴露在摄像头视野下,小于该固定值就不再进行推理,将lv 和lx 都置为0,表示视野由大变小。
[*]前端页面显示视频流信息。
2 开发环境需求
[*]个人电脑端需安装Python 环境,建议安装3.7、3.8 版本;–用于数据标注的labelimg 软件运行、数据集制作等。
[*]电脑安装MobaXterm(建议)、XShell、XFTP 等相关软件(或者其它类似工具);–主要用于Windows 平台上与远程服务器进行交互(该软件操作方法请通过网络自学,不提供额外支持)。
3 图像采集
图像采集可以通过工业缺陷检测实训平台上的MVS 软件或个人电脑端的MVS 软件完成采集。
3.1 方法一:通过工业缺陷检测实训平台终端采集图像。
需要首先保证电脑和工业缺陷实训平台在同一局域网络,并且可以成功登录进入工业缺陷检测实训平台
3.1.1 链接树莓派
打开MobaXterm 软件,点击Start local terminal,输入如下命令进行链接
ssh root@172.16.68.1113.1.2 连接成功后如图所示
Spet MubExec Tunneing Packaoes Settings Help
4.root Dofoot~ +
(Xserver,SSH client and network tools) ?Mobaxterm Profess ional v24.2?
Your computer drives are access ible through the /drives path
Your USnLAS is yet treoze ot ow
Each command status is specified by a special symbol(orx)
Registered to huxy (1 user)
Last logn: wed pr 2 17:34:46202 rm 1267616.6.
前A3/04/2025 13:54.30/home/mobaxterm
xrandr:cannot find output"HDMI-1"
root Dofbot:~#3.1.3 停止检测服务,解除相机占用
systemctl stop detect-api.service
root@Dofbot:#systemctl stop detect-api root@Dofbot:~#3.1.4 进入MVS 路径
cd /opt/MVS/bin3.1.5 启动MVS 客户端
执行命令启动MVS 客户端,并按照图片指示的操作顺序,逐步打开相机
./MVS
root@Dofbot:/opt/Mvs/bin# pwd
/opt/MVS/bin
Ot pt tt
[*]双击打开相机
[*]点击开始采集图标,显示相机实时拍摄到的画面
3.1.6 调整环境设置
将缺陷铝片手动放置在传送带上,调整铝片位置于相机正下方和画面正中间。同时调整光源亮度和相机光圈、焦圈,使画面尽可能清晰。完成后效果如图所示:
3.1.7 设置图片保存路径
注意通过此处的路径是树莓派中的路径,不是个人电脑的本地路径,采集完成后需要手动拷贝到本地。可以使用默认路径:/opt/MVS/bin/Temp/Data
3.1.8 进行图像采集
点击抓拍图像按钮进行图像采集,点一次保存一张,保存路径是之前设置的路径,如果没有设置,就是默认路径/opt/MVS/bin/Temp/Data
3.1.9 结束图像采集
采集到足量图片后(每类缺陷图片采集数量建议不少于100 张),退出MVS 软件
3.1.10 打开XFTP 软件
根据下图输入树莓派的链接信息,点击确定建立连接
[*]主机(H) 172.16.68.111
[*]协议® SFTP,端口号(O) 22
[*]用户名(U): root,密码(P: 为空)
3.1.11 通过安全警告
显示SSH 安全警告时点击“接受并保存”
3.1.12 拷贝/下载图像
[*]左侧为个人电脑保存采集到的缺陷铝片的实际路径
[*]右侧为树莓派中通过MVS客户端采集图片时设置的图片保存路径,如果没有进行设置就是默认路径
[*]选中需要下载的文件,点击右键,再选择传输
3.2 方法二:通过个人电脑采集图像
将工业相机连接至个人Windows 系统的电脑,电脑端安装MVS 客户端进行采集,将采集的图片保存至个人电脑。操作方法和以上方法基本一致,也可以参考《用户手册》第六章节,此处不做详细介绍。
4 数据集准备
4.1 安装并运行标注软件
常用的制作数据集的软件有labelme,labelimg 等,这里主要介绍labelimg 的使用。在个人电脑上启动安装有Python 环境的终端,执行如下命令完成Labelimg 软件安装。
pip install PyQt5 pyqt5-tools lxml labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成后,执行labelimg 命令,打开labelimg 软件。
labelimg执行上述命令后,会自动弹出labelimg 的界面,其中:
[*]Open Dir:选择图像采集后保存到本地的文件夹,images 文件夹。
[*]Change Save Dir:选择标注信息存放的文件夹,annotations 文件夹(不存在则创建)。
[*]在view 菜单栏中打开auto save mode 格式,这个可以帮助我们自动地保存标记好的图片。
[*]点击creat RectBox 开始标记,在labelImg 中输入标签,如果感觉这个比较难检测,可以点击右上角的difficult
快捷键:W(创建方框),A(上一张),D(下一张)。
标注完成后会得到一些标签
xml 文件里面包含已标注图片的部分信息解释如下:
[*]folder:图片所在目录
[*]filename:图片名称
[*]path:图片所在路径
[*]size:图片大小
[*]object:标注信息
[*]name:标注类别
[*]bndbox:标注框坐标
4.2 进行图片标注软件
本文档提供的标注示例共五类,分别为正常(zheng_chang )、脏污(zang_wu )、划痕/擦伤 (ca_shang)、褶皱(zhe_zhou)、针孔(zhen_kong)。标注时可以删除某一分类,需要label_list 文件同步更新。但是请勿新增分类,如需新增,请联系我司商务或售后。
4.3 数据集整理
图片标注完成后,将其进行整理为如图所示两个文件夹,其中images 文件夹存放所有图片文件,annotations 文件夹存放所有标签文件。(注:图片文件应和标签文件一一对应)
再新建一个名为ImageSet 的空文件夹,再将提供的参赛资料中的label_list、dataset_processing_one.py、dataset_processing_two.等文件拷贝进来,得到如下结果:
在包含python 的终端中打开这个文件夹,并执行命令:
python dataset_processing_one.py会在ImageSets 文件夹下生成4 个文件,分别为test、train、trainval、val。
https://i-blog.csdnimg.cn/direct/675184ea9a2c433b9803397da4a6172b.png
在终端中执行命令:
python dataset_processing_two.py会在目录下生成4 个文件,分别为trainval、train、val、test。
4.4 数据集打包
最后检查数据集各部分内容是否正确(对照下图进行检查),如果检查无误则将整个目录进行打包(建议使用zip 格式),供训练过程中上传使用。
5 模型训练
方法一:采用智算中心AIStackDC(PaddlePaddle 框架),在其算力平台进行训练(参照以下步骤)。
方法二:自行搭建环境进行训练(该训练方式需要用户自己探索学习,不提供相关支持服务)。
5.1 环境准备
本章节主要介绍AIStackDC 平台进行模型训练的方法,AIStackDC 是一个高效、灵活的算力资源租赁平台。平台提供从“实例的租赁->模型的部署->实例管理->技术支持“的一站式算力租用服务,能够满足个人用户以及包括企业、院校、研究机构在内的各类组织对高性能计算资源的需求。用户可根据个人的具体需求(如GPU 型号、显存要求、预算、技术支持等)灵活配置,通过AIStackDC 的直观操作界面,快速完成容器实例租用流程,进行模型训练、推理、大数据处理、模拟实验等,让整个使用过程更加顺畅和高效。
5.2 训练流程
5.2.1 项目创建
[*]登录https://aistackdc.com/home,进入AIStackDC 官网,进入控制台(注册过程略)。
[*]选择“容器实例”,新建实例。
[*]根据个人需求选择显卡配置和计费规则,并点击镜像选择框,选择PaddlePaddle 2.1.2 框架相关的镜像
[*]选择SSH 密钥对:选择实例需要使用的密钥对用于远程链接,如果没有,点击“创建SSH 密钥对”根据提示进行创建,创建完成后密钥对会自动下载到本地以供后续使用
[*]完成实例创建后,页面跳转至下图页面所示,实例会进入“创建中”的状态,等待示例状态更新为“运行中”,表示实例成功创建
5.2.2 连接容器实例
5.2.2.1 平台JupyterLab 连接(建议)
点击平台JupyterLab 按钮,进入JupyterLab 连接页面,再点击左下角Terminal 进入终端
链接成功后如图所示
5.2.2.2 远程软件连接
点击远程链接按钮,根据弹窗信息在MobaXterm 软件中建立链接
链接成功后如图所示
5.2.3 依赖安装
[*]在终端中输入以下命令,进行源码下载,下载成功后如下图所示。
git clone https://gitee.com/paddlepaddle/PaddleDetection.git -b release/2.2
[*]跳转进入目录并分别完成以下依赖安装。依次执行以下命令。
cd PaddleDetection/pip install paddleslim==2.1.1sed -i -e 's/sklearn/scikit-learn/g' requirements.txtpip install -r requirements.txtpython setup.py installpip install pycocotoolspip install lappip install --user --upgrade pyarrow==11.0.0pip install "protobuf
页:
[1]