3422浏览
查看: 3422|回复: 2

[《Huskylens趣味AI入门》] 【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站

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

流浪动物补给站


5.1 项目介绍

5.1.1背景导入

宠物给我们带来了很多快乐和慰藉,但是也有许多毛孩子遭遇弃养或不幸走丢,最终流落街头,居无定所、忍饥挨饿。很多有爱心的人士建立了救助站,但是居高不下的流浪动物数量让很多救助组织举步维艰。那我们能做什么来帮助更多的流浪小动物呢?

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图1

我们可以在街边设置流浪动物补给站,使用Huskylens识别经过的猫狗,给它们提供食物等生活补给,让它们在流浪中能有一个歇息的地方。还可以监测区域内流浪动物的数量,积累数据,以便为小动物们提供更好的帮助。

5.1.2任务拆解

在流浪动物补给站项目中,使用视觉传感器Huskylens的物体识别功能,识别出小猫或小狗,根据识别的结果,控制Mind+不同角色的运动及角色间的互动,在画面中显示相应的动物数量并投放猫粮或狗粮。

STEP1:使用Huskylens的物体识别功能,学习狗和猫

STEP2:上传角色,调整大小与位置,布置补给站的场景

STEP3:用Huskylens识别猫和狗,获取识别数量

STEP4:克隆角色,让相应数量的小动物显示在画面中,并能够自由行走。

STEP5:根据识别的动物让对应的食物掉入碗中

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图2

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

5.2 项目准备

5.2.1 软件设置

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

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图3

5.2.2 硬件连接

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

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图4

5.3 程序思路

在本项目中,我们先以小狗识别的效果作为示例。创建“小狗”和“狗粮”两个角色以完成所有功能。

在小狗的程序中,让Huskylens检测画面中是否有物体并记录识别到的狗的数量,存储为变量dog。当识别到多于0只狗的情况下,克隆角色并让角色在场景中移动一段时间后消失。克隆次数与变量dog相同,这样Huskylens识别到几只狗就会有相应数量的小狗出现在Mind+画面中。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图5

当小狗作为克隆体启动之后,广播消息dog,在“狗粮”的角色中触发狗粮投放动画。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图6

5.4 功能实现

5.4.1 Huskylens物体识别

(1)功能设置

切换Huskylens算法模式:向左或向右拨动“功能按键”,直至屏幕顶部显示“物体识别”。长按”功能按键“,进入颜色识别功能的二级菜单。选中“学习多个”,然后短按“功能按键”,接着向右拨动打开“学习多个”的开关,即:进度条颜色变蓝。确认该参数并返回。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图7

(2)侦测物体

把 Huskylens 对准目标物体,在屏幕上,会有白色框自动框选出识别到的所有物体, 并显示对应的物体名称。目前只能识别并框选 20 种物体,其余物体无法识别和框选。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图8

(3)学习物体

把Huskylens对准目标物体,当屏幕上显示的物体被检测到并显示其名字时,将屏幕中央的“+”字对准该物体的白色框中央,短按“学习按键”进行标记。此时,框体颜色由白色变为蓝色,并显示其名字和ID1,同时有消息提示:“再按一次继续,按其他按键结束”。如要继续标记下一个物体,则在倒计时结束前按下“学习按键”,可以继续标记下一个物体。如果不再需要标记其他物体了,则在倒计时结束前按下”功能按键”即可,或者不操作任何按键,等待倒计时结束。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图9

Huskylens显示的物体ID与标记物体的先后顺序是一致的,也就是:ID会按顺序依次标注为“ID1”,“ID2”,“ID3”,以此类推,并且不同的物体ID对应的边框颜色也不同。本课程请按狗、猫的顺序学习两个物体,对应ID1与ID2。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图10

(4)识别物体

Huskylens再次遇到标记过的物体时,在屏幕上会有彩色的边框框选出这些物体,并显示物体名称与ID。边框的大小随着物体的大小而变化,自动追踪这些物体。同类物体,有相同颜色的边框、名字和ID。支持同时识别多类物体。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图11

但是请注意,此功能不能区分同类物体间的不同,比如:能识别出这是猫,但不能识别出这是什么猫。在物体识别中也有人的分类,但与人脸识别不同,在这个模式中不能区分不同的人脸。

HUSKLENS目前仅支持20种物体,分别为:飞机、自行车、鸟、船、瓶子、巴士、汽车、猫、椅子、牛、餐桌、狗、马、摩托车、人、盆栽植物、羊、沙发、火车、电视。20种物体的英文名称,分别为:aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor.

5.4.2 Mind+舞台场景布置

(1)添加背景

在“背景库”里选择背景“Wall 1”,如下图所示。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图12

(2)添加角色

删除默认的mind+角色,在“角色库”里选择”小狗2“、“球”和”碗“。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图13

上传好所有角色后,选中小狗角色,点击“造型”模块,删除第三个造型。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图14

将角色缩放到合适的大小,参照下图摆放在场景内,救助站就搭建完成啦。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图15

5.4.3 Huskylens物体识别

实现效果:点击绿旗,开始判断Huskylens中是否有物体出现,如果识别到学习过的狗时,摄像头画面会显示ID1,再判断一共有几只狗出现在画面中。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图16

使用如上的功能从请求到的“结果”中获取当前算法下相同ID的目标的数量,例如视野中有两只狗,此时的数量为2。创建变量dog记录当前镜头中狗的数量。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图17

5.4.4 克隆角色并控制克隆体运动

实现效果:每10秒进行一次识别,如果Huskylens检测到有狗出现,克隆舞台中的小狗角色,使画面中出现跟识别结果相同数量的小狗。小狗在舞台下方的地面上走来走去,经过一段时间后消失进入下一个识别周期。

先完成克隆角色部分。如果变量dog大于0,代表镜头识别到多于0只狗时,克隆小狗的角色变量dog次。设置等待时间,每10秒识别一次。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图18

再来完成克隆体的运动。我们希望角色可以在舞台下半部分的地面上走动,根据坐标系确认小狗可以移动的X坐标范围是-200至200,Y坐标的范围在-65至-180之间。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图19

使用随机数功能,使小狗随机出现在坐标范围内。通过重复执行和“移动”,让角色移动起来。切换造型,控制步伐动作变换。角色在左右移动时,会走出舞台区,我们让小狗碰到边缘时反弹并左右反转,实现往相反方向的移动。重复执行的次数用来控制角色在舞台上的持续时间,我们希望小狗走路的动画时长与Huskylens的识别时间相同,当克隆体消失时马上进入下一个识别周期、生成新的小狗。这样不会出现画面中的角色多于或少于识别到狗的数量的情况。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图20

5.4.5 根据识别的动物种类实现智能投食

实现效果:当克隆体启动,也就是舞台中出现新的小狗时,显示用小球模拟的狗粮,并向下滑落到碗中,实现智能投食。

在小狗角色的程序内,当作为克隆体启动时广播消息:dog。

在小球程序内,当接收到消息dog,控制角色的运动与显示隐藏。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图21

使用Huskylens识别小狗的图片,识别到几只狗就会有对应数量的小狗出现在舞台上的流浪动物补给站内,还有食物自动投喂,是不是很神奇!(完整程序见附录)

5.5 总结拓展

5.5.1 知识小结

硬件知识:Huskylens的物体识别功能;获取相同ID的目标数量

编程知识:Mind+中控制角色移动,碰到边缘就反弹,将旋转方式设为左右翻转;

变量存储数据功能的理解与应用;克隆和广播消息指令的应用

5.5.2 项目拓展

实现了流浪狗的识别和投喂之后,用相同的方式,导入流浪猫的角色,再增加一套猫粮碗。当Huskylens识别到ID2时,让对应数量的小猫出现在舞台上半部分(猫是会爬墙的!)并投放猫粮吧!

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图22

5.6 拓展阅读

5.6.1图像识别

图像识别,是指利用计算机对图像进行处理、分析和理解,以识别不同模式的目标和对象的技术,应用深度学习算法的一种实践应用。识别过程包括图像预处理、图像分割、特征提取和判断匹配。

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图23

图像识别的发展经历了文字识别、数字图像处理识别、物体识别。物体的识别主要是对三维世界的客体及环境的感知和认识,属于高级的计算机视觉范畴。

图像识别技术是立体视觉、运动分析、数据融合等实用技术的基础,在导航、地图与地形配准、自然资源分析、天气预报、环境监测、生理病变研究等许多领域重要的应用价值。

(部分图片来源于网络,只为课程内容配图,不做商用。如果您发现文章内有侵犯您知识产权的作品,请直接私信我们,我们会及时修改或删除。)

附录



【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图24

附录2:程序示例

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图25

【Mind+Huskylens趣味AI入门】系列课程—05 流浪动物补给站图26

附件:
下载附件项目五素材.rar

hmilycheng  高级技师

发表于 2021-9-16 18:31:27

感谢分享!
回复

使用道具 举报

 初级技匠

发表于 2022-6-9 14:51:16

万一做出来就麻烦了——你是小看了汪星人的破坏力
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

硬件清单

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

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

mail