APP下载

基于物体分类项目的人工智能培训案例

2021-07-17刘敬

锦绣·中旬刊 2021年7期
关键词:舵机标签模型

摘要:为了在高校人才培养过程中融入人工智能的最新知识,开展了人工智能交叉领域师资培训,本案例以培训中的物体分类项目为例,介绍了从项目分析、硬件设计、数据集采集与处理、在线训练生成模型、脚本程序设计以及模型和脚本的运行等内容。

关键词:MaixDuino,标签,数据集,模型,舵机

一、引言

人工智能已成为引领新一轮科技革命和产业变革的战略性技术。以此为契机的人工智能及相关技术的发展和应用对于整个人类的生活、社会、经济和政治都产生重大而深远的革命性影响,人工智能已成为国家综合实力与核心竞争力的重要体现。高校各专业教师急需在学生培养过程中融入人工智能的最新知识,并开展人工智能相关研究,人工智能交叉领域师资培训迫在眉睫[1-2]。

本案例以人工智能培训中的物体分类项目为例,从项目分析开始介绍构建整个项目的培训内容,使参训教师掌握人工智能与嵌入式结合的项目开发与应用,提升专业技能和创新能力[3]。

二、项目分析

1、任务

对4类物体进行分类识别,并根据分类结果控制舵机动作。四类物体示例:box、magiccube、mouse、watch。

2、硬件准备

控制器:MaixDuino

配件:2.4寸屏,G44.2摄像头

执行机构:舵机*4(180°)

3、过程

采集四类物体的图片,进行预处理,训练生成模型,编写脚本文件,最后将脚本文件、标签文件、模型文件等拷贝到控制器中运行。

三、項目硬件设计

如图1所示,控制器的DVPD0-D7引脚与摄像头的D0-D7引脚直连,控制器的IO40-IO44分别与摄像头的NC、SCL、RESET、VSYNC、GND引脚直连 ,控制器的IO45-IO47分别与摄像头的HSYNC、MCLK、PCLK通过阻值为22欧姆的电阻连接。

如图2所示,控制器的LCDD0-D7引脚与LCD的DB0-DB7引脚直连,控制器的IO36-IO39分别与摄像头的CS、RST、RS、引脚直连。

如图3所示,控制器的IO11-IO14分别于四路舵机的输入信号引脚直连。

四、采集图片与预处理

1、准备数据集

用手机或其他摄像设备拍摄四类图片(box,magiccube,mouse,watch),每类图片不少于40张,将拍摄时高度和宽度分辨率设为相同。以REDMI 10X手机为例,分辨率设为2992×2992像素,每一类图片拍摄60张。将数据集按类保存为单独的文件夹, 子目录的名字为最后生成label的名字。整理后目录如下:

……>test>box

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg…………56.jpg 57.jpg 58.jpg 59.jpg

……>test>magiccube

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg…………56.jpg 57.jpg 58.jpg 59.jpg

……>test>mouse

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg…………56.jpg 57.jpg 58.jpg 59.jpg

……>test>watch

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg…………56.jpg 57.jpg 58.jpg 59.jpg

其中……>test>mouse的0.jpg图片见图4(a)所示。所以共四个分类: box、 magiccube、mouse和watch,我们也称之为标签(label),需要注意的是,分类名(标签/label)只能使用英文字符和下划线。

2、图片预处理

图片的分辨率十分重要,不管是在采集、训练还是使用时,都需要十分注意,稍不注意,模型可能就无法使用或者识别精度低。目标分类项目中,Maixhub在线训练目前支持的分辨率224x224(推荐),其它分辨率将会训练失败(使用推荐分辨率识别准确率更高)。

下载转换工具Image_tool.exe,对文件夹进行处理,工具界面如图5所示。选择我们准备好的数据集所在的文件夹,即选择前述的……>test文件夹即可开始转换,注意不要选择子目录的标签文件夹(如box)。

转换后的数据集目录如下:

……>test_out>box

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg……………56.jpg 57.jpg 58.jpg 59.jpg

……>test_out>magiccube

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg……………56.jpg 57.jpg 58.jpg 59.jpg

……>test_out>mouse

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg……………56.jpg 57.jpg 58.jpg 59.jpg

……>test_out>watch

0.jpg 1.jpg 2.jpg 3.jpg 4.jpg……………56.jpg 57.jpg 58.jpg 59.jpg

可见,与处理前的区别就是test文件夹在名称后面增加了”_out”后缀。其中……>test_out>mouse的0.jpg图片见图4(b)所示,分辨率为224×224像素。将转换完成后的数据集压缩成zip文件,在模型训练的网站上会有用到,数据集压缩后大小要求不超过20M。

五、训练生成模型

1、获取机器码

下载key_gen固件 key_gen_v1.2.zip,解压得到key_gen_v1.2.bin文件。然后下载kflash-gui软件,使用kflash-gui 烧录key_gen固件。选择正确的端口,速度设为低速模式,波特率为1500000,如图6(a)所示,点击“下载”按钮稍等即可。

如图6(b)所示,打开串口终端,选择正确的端口,波特率设为115200,重启开发板(按RESET键),可以看到打印出的机器码,其中42cbc**********************b32c4就是对应开发板的32位机器码。

2、提交训练任务

打开Maixhub模型训练平台(https://www.maixhub.com/ModelTraining),并创建一个任务。机器码即为前述32位的机器码,模型类别为模型分类,上传数据集(test_out.zip文件),进行训练即可。

训练完成后,邮箱将会收到训练完成后的模型。将邮箱收到的链接复制到浏览器打开,即可下载压缩包,解压压缩后的文件夹目录如下:

* boot.py: 在 maixpy 上运行的代码

* *.kmodel 或者 *.smodel: 训练好的模型文件( smodel 是加密模型 )

* labels.txt: 分类标签

* startup.jpg: 啟动图标

* report.jpg: 训练报告,包括了损失和准确度报告等

* warning.txt: 训练警告信息,可能有

其中labels.txt的内容为:labels = ["watch", "mouse", "magiccube", "box"]。

如图7所示,report.jpg展示了训练和验证集的模型准确率及损失,可以看到训练的效果是非常好的。图8还列出了误差矩阵(confusionmatrix)[4],由于数据集中的四类图片(box,magiccube,mouse,watch)均为60张,可见预测全部正确。

六、boot.py脚本程序设计

如图8 (a)所示,在main中,进行PWM、LCD和舵机的初始化后,如果标签内容为空,将读取labels.txt的标签内容,如果labels.txt文件中也没有标签,将报错。正常情况下将执行try语句,然后释放模型,如果中间有异常,将抛出异常e。

如图8 (b)所示,在try语句中,先加载模型,再循环进行运算、控制及显示。循环体中,用摄像头拍摄图片,调用模型计算特征图,得到每类标签对应的概率值,将最大概率值及其标签作为预测结果进行显示,以及根据结果控制舵机[5]。显示的内容包括摄像的图片、运算结果以及运算时间。

舵机动作如图9(a)所示,根据预测的值判断拍摄物体具体是哪一类,分别控制4个舵机的动作。图9(b)绘制了boot.py脚本的入口,将定义标签后调用main函数,main函数对标签的判断见图8 (a),如果出现异常,将打印异常内容并在LCD上显示异常,最后清理内存即可。

七、运行模型和脚本

程序编写完毕后,将之前的模型文件m. kmodel,分类标签labels.txt,启动图标startup.jpg(可选),以及修改过的脚本文件boot.py放到sd卡根目录后,重启MaixDuino即可。可以使用uPyLoder软件进行文件的传递,uPyLoder文件传递界面如图10所示。

程序运行时,将在LCD显示摄像头采集图像,并根据采集到的图片中是否包含box,magiccube,mouse,watch四类图片,控制4类舵机的动作。

八、总结

在本培训项目中,包括项目分析、硬件设计、数据集采集与处理、在线训练生成模型、脚本程序设计以及模型和脚本的运行等内容,项目成果可用于生活中的垃圾分类、工业生产中的瑕疵识别控制等场合。通过完整的过程培训和演练,使参训教师掌握人工智能中典型项目的设计、开发和应用,提升专业技能。

参考文献

[1]潘天君, 欧阳忠明. 人工智能时代的工作与职业培训:发展趋势与应对思考——基于《工作与职业培训的未来》及"云劳动"的解读[J]. 远程教育杂志, 2018(1):18-26.

[2]万占文, 陈宋平. 人工智能时代对教师培训的几点思考[J]. 宁夏教育, 2020(6):26-28.

[3]冯建. 人工智能实训中心构建的研究[J]. 信息记录材料, 2019, 20(01):85-87.

[4]罗雷. 矩阵回归模型与方法及其在稳健图像分类中的应用[D]. 南京理工大学, 2018.

[5]谢堂, 吴居豪, 温泉河. 基于机器学习的智能垃圾分类箱[J]. 现代计算机(专业版), 2020, 000(012):139-143.

作者简介:刘敬(1983-),女,河南新乡人,博士,实验师,主要研究方向为人工智能

[项目] 教育部2019年第二批产学合作协同育人项目:人工智能交叉领域师资培训(项目编号:201902312006);宁波市公益项目(项目编号:202002N3139)

猜你喜欢

舵机标签模型
自制空间站模型
模型小览(二)
圆周运动与解题模型
海太克HS—1100WP数字舵机
超音速舵机保护器
离散型随机变量分布列的两法则和三模型
让衣柜摆脱“杂乱无章”的标签
菜鸟看模型
科学家的标签
科学家的标签