计导产学实验 2:利用 ModelArts 进行手势识别
产学实验 2:利用 ModelArts 进行手势识别
- 实验内容
1) 参与 华为云“云上先锋”·AI 学习赛,完成基本流程。
2) 训练一个手势识别模型。
1 参考学习赛的流程,利用数据集(gesture_recognition_data.zip), 在 ModelArts 开发平台中训练一个可以识别不同的手势模型(Yeah、Rock、 OK、Great、Other)。 2 自定义一个自己的专属手势,加到数据集中重新训练模型。
3 在线部署并进行预测自己的专属手势。
- 实验过程
- 华为云“云上先锋”· AI 学习赛
第一步,先注册一个华为云账号。然后登录OBS管理控制台https://storage.huaweicloud.com/obs/?®ion=cn-north-4&locale=zh-cn#/obs/buckets。
点击右上角的创建桶。
命名:自定义
数据冗余存储策略:单AZ储存
创建完成后,点击桶,选择”对象“,然后根据提示下载OBS Broswer+图形化管理工具。
安装OBS Broswer+后,登录华为云账号,即可上传文件。
接下来,将下载好的Garbage baseline压缩包解压,上传至OBS中,
接下来进入ModelArts环境中,先配置访问授权:
点击”全局配置->添加授权”,然后给你账户添加全局授权即可。
接下来,开始创建作业。在 ModelArts 左侧导航栏中选择“训练管理”,单击“训练管理 > 训练作业 > 创 建”按钮进入到“创建训练作业”配置页面,都在算法选择页面点击”创建”。
在创建算法中,AI引擎选择”显示旧版引擎”,选择”TensorFlow”,代码目录选择刚才上传的文件夹中的…code/,启动文件选择code/文件夹中的run.py文件。
在底下”输入数据配置”内代码路径参数输入data_url,在”输出数据配置”的代码路径中,输入train_url,提交,完成算法创建。
返回训练作业创建页面,选择创建新的训练作业,选择刚才创建的算法,在训练输入中,”选择数据存储位置”选择上传文件中的train_url/文件夹。在训练输出中,”选择”model_output/文件夹。下面的超参中,添加一个参数,参数名为deploy_script_path,其值为s3://obs-hand/codes/code/deploy_scripts/。即为s3://+OBS储存中的deploy_scripts文件夹的路径。信息确认无误后,提交
等待大概5分钟训练完成
训练完成后,在左侧的AI应用管理中,点击AI应用,点击创建:
在元数据来源中,选择”从对象存储OBS中选择”,选择刚才的model_output文件夹下的model文件夹。确认无误后,点击创建。
创建完成后,点击应用名,点击左上角的部署->在线服务,
选择默认参数,点击下一步
点击服务详情,查看部署进度。
部署完毕后,选择预测,上传图片进行预测。
可以看到,该模型对垃圾的识别准确率还挺高的。
- 手势识别
手势识别的代码可以从垃圾识别的代码中修改得到。首先,分析代码,发现在deploy_script/customize_service.py文件中,有关于垃圾分类代码,
在这里,我们把这个字典里的内容修改一下,改成手势识别的分类
这里我自己定义了一个新的手势,比心,取名为Love,在这里修改了代码之后,、再找到garbage_classify_rule.json文件
将分类规则修改为以下内容
最后,再修改数据集中的数据对应关系。通过观察,可以发现垃圾分类的数据集的txt文件与图片名称相同,其内容为 图片名+”, ”+图片类别
而手势识别里的数据集中的txt文件内容为该图片对应的含义,
数据格式并不相同,所以我得自己写一个py脚本来批量更改txt文件的内容:
跑了十几秒,几百个txt文件就被修改好了。
接下来,添加自己的专属手势,这里我选择的手势是比心,手势的键为6:
拍了十张图片,并写好txt文件。
准备工作到此结束,剩下的步骤和上文的垃圾分类训练相同。训练出来的效果:
可以看到,对手势的识别,倒没有垃圾分类那样准确,对手势的标准度要求比较高。
- 出现的问题及解决办法
1) 在网页端上传不了大量的图片
解决方法:下载OBS Broswer+图形化管理工具,就可以本地上传大量的图片
2) 找不到文件
:
解决方法:该问题是因为使用了新版AI引擎,换成旧版的TensorFlow即可解决
3) 训练过程中出现HTTP 404错误
解决方法:该问题是deploy_script文件夹中的resnet50.py文件中有条链接挂了。
只要把这条链接换成可以用的链接就好。通过文件中的一条链接,我在github上找到了该文件
我把它上传到了OBS上,并复制它的分享链接
把它加到resnet50.py文件中
问题解决
4) deploy_script_path is not exist
解决方法: 教程中的链接挂了,换成自己的OBS桶的deploy_script文件夹链接即可。
5) 手势识别数据集中txt文件内容与要求格式不同
解决方法:自己修改几百个txt文件显然不太现实,就写一个py脚本自动帮我修改成我需要的格式即可。
- 心得体会
这次实验,虽然难度比小车低一点点,但还是很难。这次训练人工智能,从数据处理开始,到模型配置和部署,都操作了一遍,让我体验的比较完整的人工智能训练过程,而且通过训练,让我了解华为云这个平台的使用方式,了解到了华为云这个功能强大的平台。
- 点赞
- 收藏
- 关注作者
评论(0)