ModelBox - 使用YOLOX做垃圾检测
本文将使用YOLOX算法训练一个垃圾分类的检测模型,并将其部署到Windows/HiLens平台以及ModelBox(RK3568)开发板上。模型训练与转换的notebook已经放在AI Gallery中,感兴趣的小伙伴可以跟随此教程一步步训练出自己的目标检测模型,并使用ModelBox开发出自己的AI应用。
本案例所需资源(代码、模型、测试数据等)均可从garbage_det下载!
模型训练与转换
模型训练使用的是“华为云杯”生活垃圾图片分类数据集,该数据集包含一次性快餐盒、果皮果肉、旧衣服等44个类别,共14964张图片。其中,训练集与验证集划分比例为8:2,我们使用一站式AI开发平台ModelArts进行训练,下图为模型训练个100个Epoch取得的结果,感兴趣的小伙伴也可以增加训练的次数以取得更好的效果。
ModelArts提供了包括数据标注,训练环境,预置算法在内的丰富的功能,甚至可以通过订阅预置算法实现0代码的模型训练工作。当然你也可以在本地训练自己的模型。我们假设你已经拥有了训练好的模型,接下来我们需要将训练好的模型转换成为可以在开发板上运行的模型。我们发布了开发板模型转换案例,参见RK3568模型转换验证案例:
在这个案例中我们演示了从环境适配到模型的转换验证的全流程样例代码,开发者可以通过“Run in ModelArts”一键将Notebook案例在ModelArts控制台快速打开、运行以及进行二次开发等操作。
应用开发
打开VS Code,连接到ModelBox sdk所在目录或者远程开发板,开始进行垃圾检测应用的开发。如果对ModelBox还不熟悉的小伙伴可以参考ModelBox 端云协同AI开发套件(Windows)上手指南。
1)下载模板
使用如下命令下载hand_det_yolox手部检测应用模板
PS ███> .\solution.bat -s hand_det_yolox
...
下载下来的模板资源,将存放在ModelBox
核心库的solution
目录下。
2)创建工程
在ModelBox
sdk目录下使用create.bat
创建garbage_det
工程,末尾多了-s
参数,表示将使用后面参数值代表的模板创建工程,而不是创建空的工程。
PS ███> .\create.bat -t server -n garbage_det -s hand_det_yolox
sdk version is modelbox-xxx
success: create hand_det in ███\modelbox\workspace
3)修改推理功能单元
garbage_det
应用包含模型推理部分,在传统开发模式中,开发者需要学习推理框架的使用;而ModelBox
内置了主流的推理引擎,如TensorFlow,TensorRT,LibTorch,Ascend ACL,MindSpore,以及Windows版本中所用的ONNXRuntime。在开发推理功能单元时,只需要准备模型文件,并配置对应的toml文件,即可完成推理功能单元的开发,无需掌握推理引擎的开发接口。
4)修改后处理功能单元
a. 修改yolox_post.toml流程图,将其内容修改为(以Windows版ModelBox
为例):
b. 修改draw_hand_bbox功能单元的draw_hand_bbox.py内容如下:
5)用摄像头检测
打开工程目录下bin/mock_task.toml
文件,修改其中的任务输入和任务输出配置为如下内容:
即使用编号为0的摄像头(默认为PC自带的摄像头),输出画面显示到名为garbage_det
的本地屏幕窗口中。
7)运行应用
执行bin/main.bat camera
运行应用,将会自动弹出实时的垃圾分类检测画面:
HiLens部署
可以参考技能参数设置与部署这一章节!
ModelBox 端云协同AI开发套件(RK3568)
感谢华为云的赠送!
快速上手
1)开发板连接路由器即可实时联网(动态IP)
2)手机查看设备IP地址
3)电脑和设备处于同一WiFi,在VS Code中使用Remote-SSH
连接
应用开发
开发流程与Windows大同小异,真正做到了端边云无感上手!
我们可以将在Windows上写好的功能单元直接拖拽到VS Code的工程目录下进行编译:
打开工程目录下bin/mock_task.toml
文件,修改其中的任务输入和任务输出配置为如下内容:
将USB摄像头插到开发板上,双击任务栏上的ModelBox PC Tool
工具图标弹出主界面,在Step2界面上选择“使用开发板侧视频流”,点击“启动推流”,推流服务将启动,ModelBox PC Tool
工具也会再次最小化到任务栏上:
在VS Code
Terminal中执行bin/main.sh camera
运行应用:
此时,浏览器将会自动打开,网页中的视频窗口将输出应用的实时画面:
这样我们就完成了一个AI应用的开发,从模型的训练到转换再到开发到部署的全部流程,关于ModelBox核心概念、功能单元和流程图开发的更多介绍,可以查看ModelBox手册。
欢迎大家报名ModelBox实战营,感谢华为云老师的悉心指导!
参考教程:
ModelBox 端云协同AI开发套件(RK3568)上手指南
结尾彩蛋:适合打工人的“咖啡打盹法”
- 点赞
- 收藏
- 关注作者
评论(0)