【Mind+Huskylens趣味AI入门】系列课程—06 星座识别
本帖最后由 木子呢 于 2021-9-9 16:26 编辑课时6:星座识别
https://www.bilibili.com/video/BV1f341117Yq?share_source=copy_web
6.1 项目介绍
6.1.1背景导入
你是什么星座?你可以从满天的星星中分辨出自己的星座吗?
自古以来,人类抬头仰望星空,根据星象判断方位和时节。慢慢地,人们还加入了自己的想象,给一组组的星星连出形状,取了名字,编了神话故事,甚至用它们预测吉凶。
外国的黄道十二宫,中国的二十八星宿,都试图将散落在夜空中的闪烁光点归类。如果你渴望观测夜空,辨认星星,那么认识星座图是必不可少的功课。
6.1.2任务拆解
Huskylens的物体分类功能可以学习、识别任何有形状的物体,并使用机器学习算法进行训练。“星座识别”项目中,使用“物体分类”功能,让Huskylens学习不同的星座连线图,赋予对应的ID。短暂的初始动画过后,进入到星座识别场景。当识别出不同物体ID时,会在Mind+舞台上出现对应的星座图案和名称,辅助星座的学习。
STEP1:使用Huskylens的物体分类功能,学习不同的星座连线图。
STEP2:创建角色和场景,实现出场初始动画。
STEP3:当Huskylens识别到不同物体ID时,切换造型至星座图案。
STEP4:增加星座闪烁效果。
(目标功能实现效果示意)
6.2 项目准备
6.2.1 软件设置
打开Mind+软件,确认软件为“实时模式”。点击“扩展”,在“功能模块”里加载“Huskylens教育版”。点击“返回”到主界面可以看到功能模块添加成功。
6.2.2 硬件连接
用USB线把Huskylens连接到电脑,接着点击扩展功能旁的橙色感叹号,进行连接。连接成功后感叹号会变成绿色对勾(如下图),“返回编辑器”就完成连接啦。
6.3 程序思路
点击绿旗进入初始动画场景。创建文字和星星的角色,在舞台上相应移动。同时播放背景音乐。当动画执行完成后,广播消息。
当接收到广播消息后,显示星座的连线图并不断闪烁,当Huskylens识别到对应星座的ID时,切换星座造型并闪烁。
6.4 功能实现
6.4.1 Huskylens物体分类
(1)功能设置
将Huskylens切换到”物体分类“算法模式,进入二级菜单,打开“学习多个”开关。
(2)学习物体
把HuskyLens屏幕中的方框对准需要学习的物体,长按“学习按键”,从不同角度、距离学习。学习完第一个物体后,松开“学习按键”,屏幕提示“再按一次继续,按其他按键结束”,若要学习多个物体,就在倒计时结束前按下“学习按键”,然后学习下一个物体。如果不再需要学习其它物体了,则在倒计时结束前按下”功能按键”即可,或者不操作任何按键,等待倒计时结束。
本节课程请按以下顺序学习物体。
(3)识别物体
HuskyLens识别到已学习过的物体,屏幕会显示ID号,否则ID为0。
6.4.2 Mind+舞台场景布置
(1)添加背景
在“背景库”内选择背景“群星”。
(2)添加角色
删除默认的mind+角色。在“角色库”选择角色“星星”导入。然后在“角色库”中点击“绘制”,创建自定义角色Sprite1。
点击Sprite1,在”造型“模块中创建文本“星座知多少”,按喜好调整颜色和字体。
在“角色库”选择“上传角色”,打开本地文件夹选择“天蝎”“巨蟹”“狮子”“天枰”的连线图,完成上传。
点击星座角色,进入”造型“模块,将对应的星座图案作为造型二上传,调整两张图片的大小位置和角度,让图像基本吻合即可。
调整角色在舞台中的大小和位置,舞台布置如下图所示:
6.4.3初始动画场景
实现效果:点击绿旗,”星座知多少“的文字从上方缓缓滑出到舞台中心,星星如流星从画面右侧滑落。在”背景“里播放背景音乐。
首先实现文字的出场效果,当动画执行完成后,隐藏角色并广播消息。
接下来让星星角色在文字出现后,从舞台坐标外移动到相应位置然后隐藏。
点击背景,在背景中循环播放声音(进入声音模块选择声音”中世纪“)。
点击绿旗查看动画效果。
6.4.4 星座识别场景和Huskylens物体分类
实现效果:当初始动画完成后,切换至星座识别场景,显示四个星座的连线图。当Huskylens识别到学习过的ID时,对应的星座连线转变成星座图案并显示星座名。
我们在不同的星座角色内编写对应的程序,以”天蝎“的执行效果为例。当绿旗被点击时,先执行初始动画,此时隐藏星座角色。当初始动画结束,接收到消息1时,显示角色。循环判断Huskylens的识别结果,当结果为ID1时,切换星座造型。
6.4.5 增加闪烁效果
实现效果:改变外观里的亮度特效,实现星星忽明忽暗的效果。
其余的三个星座设置方法相同,只需要改变Huskylens的ID读数判断即可。(完整程序见附录)
6.5 总结拓展
6.5.1 知识小结
硬件知识:Huskylens的物体分类功能及实现原理
编程知识:自定义角色;添加背景音乐;特效功能的使用
6.5.2 项目拓展
在识别星座的过程中,受到环境光线、图片角度等因素影响,可能会出现屏幕中获取到星座ID不稳定的情况。可以进行”消抖“处理,使程序运行更平稳。
在第一次识别到星座ID后,等待0.5秒再进行一次判断。如果仍旧能够识别到与第一次相同的ID,那么再执行切换造型的指令。这里设置了”非“ID=2作为循环结束的条件。
6.6 拓展阅读
6.6.1物体分类
物体分类,就是为输入物体图像打上固定类别的标签,这是计算机视觉领域的核心问题之一。也就是要求回答一张图像中是否包含某种物体,对图像进行特征描述是物体分类的主要研究内容,一般来说,物体分类算法通过手工特征或者特征学习方法对整个图像进行全局描述,然后使用分类器判断是否存在某类物体。
物体分类方法多侧重于学习特征表达,典型的包括词包模型(Bag-of-Words)、深度学习模型。常用的分类器有支持向量机、KNN、神经网络、随机森林等,基于在线学习的线性分类器可以处理大规模的数据。我们Huskykens中使用的是KNN算法。
参考学习:
https://blog.csdn.net/lxy_2011/article/details/77747440
6.6.2KNN算法
K近邻(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。近邻算法就是将数据集合中每一个记录进行分类的方法 。
KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数是一个类别,那么这个样本也属于这个类别,并具有这个类别样本的特征。KNN算法在人工智能之机器学习、字符识别、文本分类、图像识别、医疗等领域有着广泛应用。
(部分图片来源于网络,只为课程内容配图,不做商用。如果您发现文章内有侵犯您知识产权的作品,请直接私信我们,我们会及时修改或删除。)
附录
附录1:程序指令
附录2:程序示例
附件:
好家伙,原来星座识别是这样来的
页:
[1]