5318| 0
|
[《Huskylens趣味AI入门》] 【Mind+Huskylens趣味AI入门】系列课程—08 神奇宝贝图鉴 |
本帖最后由 木子呢 于 2021-9-26 10:17 编辑 课程目录:
课时8:神 奇 宝 贝 图 鉴 8.1 项目介绍 8.1.1背景导入 神奇宝贝是一部非常好看的童年动漫,讲述了主人公小智收服神奇宝贝的冒险故事。旅程中会遇到各种各样的奇妙生物,而神奇宝贝图鉴能够帮助了解所遇生物的资料、属性和技能等信息,是新手训练家的必备装备。 在“星座识别”项目中,我们已经学习了Huskylens的物体分类功能,了解物体分类功能的算法原理——KNN算法。通过本节课程,我们将深入学习KNN算法的实现过程,制作属于我们的神奇宝贝图鉴。带上你的Huskylens一起来试试吧~~ 8.1.2任务拆解 打开Mind+软件里的AI可视化工具,使用Huskylens摄像头画面获取神奇宝贝图片,分别加入不同的分类器以学习不同物体。完成模型训练后,部署模型到Huskylens。使用Huskylens识别神奇宝贝,当识别到学习过的ID时,显示对应神奇宝贝信息。 STEP1:上传角色和背景,初始化启动场景 STEP2:Huskylens和KNN功能初始化 STEP3:通过按键操作,分类训练模型 STEP4:部署模型至Huskylens STEP5:Huskylens物体分类,识别神奇宝贝并展示资料 (目标功能实现效果示意) 8.2 项目准备 8.2.1 软件设置 打开Mind+软件,确认软件为“实时模式”。点击“扩展”,在“功能模块”里加载“Huskylens教育版”。点击“返回”到主界面可以看到功能模块添加成功。 8.2.2 硬件连接 用USB线把Huskylens连接到电脑,接着点击扩展功能旁的橙色感叹号,进行连接。连接成功后感叹号会变成绿色对勾(如下图),“返回编辑器”就完成连接啦。 8.3 程序思路 我们需要创建三个角色:启动页,圆圈和神奇宝贝。在启动页中初始化Huskylens和KNN功能,并通过键盘输入将摄像头图片加入分类器,实现模型训练和部署。当模型部署完成后,场景切换至神奇宝贝的识别,根据识别结果展示不同的神奇宝贝信息。圆圈用来增加酷炫的画面效果。 点击绿旗,分别设置启动页、圆圈和神奇宝贝角色的初始状态。在启动页角色中进行Huskylens初始化。 在启动页中学习物体,训练模型并完成部署。当识别准备就绪后,隐藏启动页画面并广播消息“开始识别”。 当接收到消息“开始识别”,在神奇宝贝的角色中判断Huskylens的识别结果,获取已学习的物体ID,显示相应的神奇宝贝形象。旋转的圆圈与神奇宝贝同时出现。 8.4 功能实现 8.4.1 舞台场景布置 (1)添加背景 把鼠标移到“背景库”,点击“上传背景”,打开文件夹上传背景文件“背景”。 在“背景”模块里编辑背景图片大小和位置,让图片覆盖整个画布。 (2)添加角色 删除mind+角色。在“角色库”选择“上传角色”,打开本地文件夹选择“启动页”“圆圈”和“皮卡丘”完成上传。 选择“皮卡丘”角色,进入“造型”模块,选择“上传造型”,打开本地文件夹选择“杰尼龟”“可达鸭”和“火恐龙”作为造型上传。 调整角色在舞台中的位置,让三个角色的圆圈中心对齐,舞台布置如下图所示:
点击绿旗,舞台场景如图所示。 8.4.2 Huskylens和KNN功能初始化 实现效果:点击绿旗,Huskylens自动切换至物体分类模式,初始化分类器并清除之前的分类模型数据。 除了通过旋转Huskylens的按钮来改变识别模式之外,我们也可以在Mind+中通过代码控制算法模式的切换。 在程序中插入以上3行代码,点击绿旗会跳出AI可视化工具的空白窗口,说明初始化完成。 8.4.3 分类训练模型 实现效果:打开AI可视化工具,将Huskylens对准神奇宝贝的图片,按下键盘按键,把Huskylens画面中的物体图片加入不同分类器中。 使用以上指令从Huskylens摄像头获取一张照片并加入名称为tag1的分类中(名称可以修改但不能用中文字符)。注意图片传输需要几秒钟时间,且需要连接Huskylens。 将Huskylens对准神奇宝贝的图片,按照p/j/k/h的顺序按下按键学习4个神奇宝贝角色,学习结果分别为ID1,ID2,ID3,ID4。每个分类器中添加不少于10张图片。 学习完成后,在AI可视化工具中显示如下。 8.4.4 部署模型至Huskylens 实现效果:点击空格键,把训练好的模型部署到Huskylens。窗口中跳出”正在部署模型“的提示,当直到进度完成到100%后,提示可以开始识别,隐藏角色并广播消息”开始识别“。 8.4.5 识别神奇宝贝并展示资料 实现效果:Huskylens识别到不同神奇宝贝,舞台会显示不同神奇宝贝的信息。首先判断摄像头视野中是否出现物体,新建变量”ID“储存识别结果。根据获取结果切换造型显示不同的神奇宝贝,并广播”识别结果“,当识别到未学习物体时隐藏角色。 当角色”圆圈“接收到消息”识别结果“时,显示并不断旋转。如果Huskylens没有识别到学习过的神奇宝贝,这时ID=0,隐藏角色。 到这里,我们已经编写好了程序,快来运行一下你的程序,看看效果吧。(完整程序见附录) 8.5 总结拓展 8.5.1 知识小结 硬件知识:Huskylens物体分类功能的使用方法 编程知识:KNN算法的实现过程:采集数据、分类训练、部署模型 8.5.2 项目拓展 KNN分类功能,不仅可以用Huskylens摄像头获取图片数据,也可以使用mind+软件调取电脑摄像头实现。尝试通过电脑摄像头获取图片。 (课程中神奇宝贝的图片来源https://cn.portal-pokemon.com/play/pokedex/。部分图片来源于网络,只为课程内容配图,不做商用。如果您发现文章内有侵犯您知识产权的作品,请直接私信我们,我们会及时修改或删除。) 附录 附录1:程序指令 附录2:程序示例 附件下载: |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed