Mind+人工智能之影子火柴人(1)

2019-11-274.2万
AI 快速预览详细 收起
本文介绍了如何使用Mind+ 1.6.1版本的AI图像识别模块创建一个影子火柴人项目。通过摄像头捕捉动作,实时控制火柴人的动作。项目包括主程序和其他可动身体部位的程序,通过位置、大小和角度的变化来模拟真实动作。最终效果是一个能够跟随用户动作的影子火柴人,适合STEM教育场景。


Mind+人工智能之影子火柴人(1)

前情提要:

       本帖内的所有程序均在Mind+1.6.1版本下编写与运行。

Mind+人工智能之影子火柴人(1)图1

       首先,这篇帖子的主角就是Mind+最新推出的AI功能模块,更新完之后在实时模式下点开拓展,大家可以在网络服务一栏中找到AI图像识别模块。

Mind+人工智能之影子火柴人(1)图2

       这功能是不是有点太丰富了,随便点开一个下拉框就像打开了一个新世界一样,还没等我研究完,突然人在家中坐锅从天上来,我接到了一个神秘任务,要我围绕这个图像识别的主题搞事情,整俩狂拽酷炫的项目分享一下。“这不是信手拈来?”嗯,当时我的确是这么想的,现在我像是走火入魔了。不吹了不吹了,赶快进入正文。


项目简介:

Mind+人工智能之影子火柴人(1)图3

       大家看了我的标题也就大概能明白我想做的是啥了,大概就是上图这个玩意。

问:那影子又是什么意思呢?

答:哎呀就是我在摄像头前面怎么动,火柴人它也也怎么动。

问:为什么手臂粗细怪怪的?

答:哎呀就是算法会计算摄像头画面里面的手臂长短来缩放长方形,小臂靠近摄像头显得长一些,对应的长方形也就被放大一点所以会显得粗。

问:给我解释一下这个猫耳朵是什么鬼。

答:因为可爱因为萌!

答:啊不不不,是因为没有耳朵没法表现出歪头的动作。


程序思路:

Mind+人工智能之影子火柴人(1)图4

       首先是主程序,我把它放在了Mind+角色中,并隐藏该角色。我这里就简述一下主程序的作用,为了让各个角色的程序条理清楚,我将所有关于数据接收和赋值的语句都放在了主程序,与其他需要运动的火柴人肢体区分开来,这样其他的角色在系统运行时只需要调用各自所需的变量就可以了。

       啊这里跟大家说一下,这儿从图像识别指令得到的坐标系位置就可以照搬到舞台上哦。

       这里我再解释一下我的变量命名规律:

       l/r + nose/ear/jian/wan/zhou + x/y

       左右 + 鼻/耳/肩/腕/肘 + 横竖坐标

       请原谅我的灵魂命名。

Mind+人工智能之影子火柴人(1)图5

Mind+人工智能之影子火柴人(1)图7

       首先我们看角色造型,黑色的椭圆就是火柴人的头,其实本来是想用椭圆的头来呈现歪头动作的,但是试过之后效果实在是不好,因此加上了粉色的猫耳(原谅我的恶趣味)。还有个比较重要的点就是画布上的定位点,就像上图我将椭圆拖到了画布中央,确保定位点和圆心基本重合,这个点是用来干什么的呢,简单来说就是角色位置的准心和角色转动的轴心。

       再看程序,我所有可动身体部位的程序几乎是相同的,我们从三个方面来变换我们的角色,第一就是位置,火柴人头的位置我直接取用了鼻子的横纵坐标,经过调试又在纵坐标上做了少许调整。第二个是大小,我们离摄像头的距离不同就会导致我们的躯体在图像上的大小长度发生变化,因此在这里通过计算两耳之间的距离按照一定的比例系数来缩放火柴人的头,就能模拟近大远小的感觉了。最后就是角度,关于怎么计算角度大家看程序就好了,定义域值域那些算了我半天的东西我也不想再回忆了。

       满满的三角函数,不想回忆。

Mind+人工智能之影子火柴人(1)图8

       其他的也就没啥了,注意一点是肩、大臂、小臂他们的定位点可不是形状中心,应该选在长方形的一端方便定位与旋转。还有就是小臂的程序,一眼就能看出多了一句判断语句用来将小臂的转动角度拓展到360°,其实大臂也应该这么写,但我就是嫌麻烦所以默认大臂不会转到另外半边,也就不需要分类讨论了。

       至于所有角色的程序跟造型,观众老爷们可以下载程序来看,下载之前记得要更新Mind+哦。


       最后按照惯例上视频。

视频环节:


程序下载:



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(6)
木子李3163
木子李3163
测试时火柴人没反应是什么问题呢?
IvanDMido
IvanDMido
评论内容
壮梽棱云
壮梽棱云
天哪,牛逼
前世听花今随风
前世听花今随风
我来蹭地板了
DFrJ5KYVQaH
DFrJ5KYVQaH
好文章,要学习
gray6666
gray6666
检测关键点的时候,摄像头拍采集卡顿吗?
samci
samci回复gray6666
我也遇到这个问题,请问解决了吗
Luke
Luke
作者
回复gray6666
采集照片上传到百度进行分析,然后再将关键点数据下载的这个过程还是会被网速影响,有时会有难以避免的卡顿。
- 没有更多了 -