179浏览
查看: 179|回复: 0

[《Huskylens趣味AI入门》] 【Mind+Huskylens趣味AI入门】系列课程—08 神奇宝贝图鉴

[复制链接]
本帖最后由 木子呢 于 2021-9-26 10:17 编辑

课时8:神 奇 宝 贝 图 鉴


8.1 项目介绍

8.1.1背景导入

神奇宝贝是一部非常好看的童年动漫,讲述了主人公小智收服神奇宝贝的冒险故事。旅程中会遇到各种各样的奇妙生物,而神奇宝贝图鉴能够帮助了解所遇生物的资料、属性和技能等信息,是新手训练家的必备装备。

qw1.jpg

在“星座识别”项目中,我们已经学习了Huskylens的物体分类功能,了解物体分类功能的算法原理——KNN算法。通过本节课程,我们将深入学习KNN算法的实现过程,制作属于我们的神奇宝贝图鉴。带上你的Huskylens一起来试试吧~~

8.1.2任务拆解

打开Mind+软件里的AI可视化工具,使用Huskylens摄像头画面获取神奇宝贝图片,分别加入不同的分类器以学习不同物体。完成模型训练后,部署模型到Huskylens。使用Huskylens识别神奇宝贝,当识别到学习过的ID时,显示对应神奇宝贝信息。

STEP1:上传角色和背景,初始化启动场景

STEP2:Huskylens和KNN功能初始化

STEP3:通过按键操作,分类训练模型

STEP4:部署模型至Huskylens

STEP5:Huskylens物体分类,识别神奇宝贝并展示资料

qw2.jpg

(目标功能实现效果示意)

8.2 项目准备

8.2.1 软件设置

打开Mind+软件,确认软件为“实时模式”。点击“扩展”,在“功能模块”里加载“Huskylens教育版”。点击“返回”到主界面可以看到功能模块添加成功。

qw3.jpg

8.2.2 硬件连接

用USB线把Huskylens连接到电脑,接着点击扩展功能旁的橙色感叹号,进行连接。连接成功后感叹号会变成绿色对勾(如下图),“返回编辑器”就完成连接啦。

qw4.jpg

8.3 程序思路

我们需要创建三个角色:启动页,圆圈和神奇宝贝。在启动页中初始化Huskylens和KNN功能,并通过键盘输入将摄像头图片加入分类器,实现模型训练和部署。当模型部署完成后,场景切换至神奇宝贝的识别,根据识别结果展示不同的神奇宝贝信息。圆圈用来增加酷炫的画面效果。

点击绿旗,分别设置启动页、圆圈和神奇宝贝角色的初始状态。在启动页角色中进行Huskylens初始化。

qw5.jpg

在启动页中学习物体,训练模型并完成部署。当识别准备就绪后,隐藏启动页画面并广播消息“开始识别”。

qw6.jpg

当接收到消息“开始识别”,在神奇宝贝的角色中判断Huskylens的识别结果,获取已学习的物体ID,显示相应的神奇宝贝形象。旋转的圆圈与神奇宝贝同时出现。

qw7.jpg

8.4 功能实现

8.4.1 舞台场景布置

(1)添加背景

把鼠标移到“背景库”,点击“上传背景”,打开文件夹上传背景文件“背景”。

qw8.jpg

在“背景”模块里编辑背景图片大小和位置,让图片覆盖整个画布。

qw9.jpg

(2)添加角色

删除mind+角色。在“角色库”选择“上传角色”,打开本地文件夹选择“启动页”“圆圈”和“皮卡丘”完成上传。

qw10.jpg

选择“皮卡丘”角色,进入“造型”模块,选择“上传造型”,打开本地文件夹选择“杰尼龟”“可达鸭”和“火恐龙”作为造型上传。

qw11.jpg

调整角色在舞台中的位置,让三个角色的圆圈中心对齐,舞台布置如下图所示:

qw12.jpg

  • 初始化启动场景

实现效果:点击绿旗,舞台中显示角色“启动页”,播放背景声音pokemon(在声音模块中选择文件夹内的音乐上传)。显示角色“圆圈“并不断旋转,隐藏神奇宝贝角色。

qw13.jpg

qw14.jpg

qw15.jpg

点击绿旗,舞台场景如图所示。

qw16.jpg

8.4.2 Huskylens和KNN功能初始化

实现效果:点击绿旗,Huskylens自动切换至物体分类模式,初始化分类器并清除之前的分类模型数据。

除了通过旋转Huskylens的按钮来改变识别模式之外,我们也可以在Mind+中通过代码控制算法模式的切换。

qw17.jpg


qw18.jpg

在程序中插入以上3行代码,点击绿旗会跳出AI可视化工具的空白窗口,说明初始化完成。

qw19.jpg

8.4.3 分类训练模型

实现效果:打开AI可视化工具,将Huskylens对准神奇宝贝的图片,按下键盘按键,把Huskylens画面中的物体图片加入不同分类器中。

qw20.jpg

使用以上指令从Huskylens摄像头获取一张照片并加入名称为tag1的分类中(名称可以修改但不能用中文字符)。注意图片传输需要几秒钟时间,且需要连接Huskylens。

qw21.jpg

将Huskylens对准神奇宝贝的图片,按照p/j/k/h的顺序按下按键学习4个神奇宝贝角色,学习结果分别为ID1,ID2,ID3,ID4。每个分类器中添加不少于10张图片。

qw22.jpg

学习完成后,在AI可视化工具中显示如下。

qw23.jpg

8.4.4 部署模型至Huskylens

实现效果:点击空格键,把训练好的模型部署到Huskylens。窗口中跳出”正在部署模型“的提示,当直到进度完成到100%后,提示可以开始识别,隐藏角色并广播消息”开始识别“。

qw24.jpg

qw25.jpg

8.4.5 识别神奇宝贝并展示资料

实现效果:Huskylens识别到不同神奇宝贝,舞台会显示不同神奇宝贝的信息。首先判断摄像头视野中是否出现物体,新建变量”ID“储存识别结果。根据获取结果切换造型显示不同的神奇宝贝,并广播”识别结果“,当识别到未学习物体时隐藏角色。

qw26.jpg

当角色”圆圈“接收到消息”识别结果“时,显示并不断旋转。如果Huskylens没有识别到学习过的神奇宝贝,这时ID=0,隐藏角色。

qw27.jpg


到这里,我们已经编写好了程序,快来运行一下你的程序,看看效果吧。(完整程序见附录)

8.5 总结拓展

8.5.1 知识小结

硬件知识:Huskylens物体分类功能的使用方法

编程知识:KNN算法的实现过程:采集数据、分类训练、部署模型

8.5.2 项目拓展

KNN分类功能,不仅可以用Huskylens摄像头获取图片数据,也可以使用mind+软件调取电脑摄像头实现。尝试通过电脑摄像头获取图片。

qw28.jpg

qw29.jpg

qw30.jpg

(课程中神奇宝贝的图片来源https://cn.portal-pokemon.com/play/pokedex/。部分图片来源于网络,只为课程内容配图,不做商用。如果您发现文章内有侵犯您知识产权的作品,请直接私信我们,我们会及时修改或删除。)

附录

附录1:程序指令

qw31.jpg

附录2:程序示例

qw32.jpg

qw33.jpg


附件下载:

项目八素材.rar (4.5 MB, 下载次数: 3)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail