新闻列表
咨询热线:
187 - 6397 - 2757
上一次我们利用图像分类技术,让机器学会了识别石头剪刀布等三种手势,如果大家有试验的话,可能会发现识别率并不是太高,会有误判,问题主要在于我们给机器训练的数据量还是太少,不能完全覆盖三种手势的所有类型,如果数据量足够大,识别率会有明显提高的,机器也需要一场“题海战”啊。
在上周笔者参加了杭州市青少年科技节的闭幕式,看到小学生们用Switch玩体感游戏,玩的不亦乐乎。我就想能用人工智能插件实现体感玩法么?人工智能插件中有一个类型叫姿态分析似乎可以识别面部的关键点及人体的关键点,那么利用这个姿态分析插件中的关键点位置坐标,可以帮助我们实现用身体的某个部分控制游戏角色移动么?
带着以上问题,笔者开始了改造之旅,因为是初试身手,所以笔者希望选择动作相对简单的游戏。最后笔者敲定了打砖块这款游戏,说起打砖块这个游戏,它是雅达利公司开发,乔布斯及沃兹尼克参与设计的Breakout的改编版,当年也算是风靡一时的作品了。
那么打砖块这个游戏用Scratch如何实现呢?下面笔者就通过五个不同的角色来完成一个极简版的打砖块。其中分别用到挡板、球、砖块、gameover及youwin五个角色、其中挡板、球和砖块都是用的系统默认角色库里的内容,仅仅调节了大小,后两个角色为绘制角色,相信大家也可以轻松搞定。
下一步我们就一起来看看每个角色的程序如何编写:
01、弹球角色
弹球角色的程序主要有三个部分:一个用来控制弹球的运动轨迹,一个用来控制弹球的反弹方向,一个用来判断弹球是否落地(游戏结束) 。
01、控制弹球的运动轨迹
重复执行之外的部分为弹球的初始位置和初始面向方向,重复执行之内的移动积木控制弹球的移动速度,剩下三个判断反弹情况,为了程序可读性,我将碰到挡板的反弹程序写成了广播的形式。
02、控制弹球碰到挡板后的反弹方向
用来控制反弹方向及弹球的运行速度。
03判断弹球是否落地
用挡板所在的Y坐标来判断弹球是否落地。
02、砖块角色
砖块角色的程序一共包含两个部分,第一部分砖块阵列的生成,第二部分砖块部分被击中的消失及得分反弹。
01、砖块阵列生成
设置好砖块的起始位置及大小之后,隐藏本体并让克隆体通过循环排布为7*4的一个阵列,作为我们的弹球攻击目标。
02、砖块击中消失及得分反弹
当克隆体砖块显示在屏幕最上方之后,凡被弹球击中则加分并删除。
03、GameOver角色
用来控制游戏结束的代码。
04、YouWin角色
用来控制游戏胜利的代码。
05、挡板角色
终于来到了我们的重头戏,挡板角色,我们之前传统的打砖块玩法一般会采用鼠标来控制挡板,这时候的程序如下:
这时候只要我们鼠标左右移动,就可以控制挡板去拦截弹球了。
至此,整个打砖块游戏就算是完成了,但是我们说这次要做的是一个体感的打砖块,所以之前的部分是不合格的,我们需要再对控制挡板的程序进行一些修改,使它具备我们需要的能力。
那么如何利用姿态分析积木去控制我们的挡板呢?只需要对挡板角色的程序进行如下的改进即可。
由于姿态分析还是基于摄像头传送的图像来分析的,所以第一步还是要打开摄像头,设置好挡板的初始位置之后就是如何控制挡板的问题了,首先我们要重复执行姿态检测来判断你目前的姿态,因为姿态检测会同时检测多个点位,所以我们以鼻子这个点位作为我们的检测目标,同时也让挡板跟着鼻子的X坐标来移动,这里有一个叫置信度的名词,顾名思义就是可以相信为真的程度,最高为1,最低为0,以小数来表示,我们选择了0.5作为我们的判断依据,如果机器判断该点位为鼻子的可信度为0.5以上,则让挡板跟随我们的鼻子来进行移动。
那么今天我们的整个游戏就改编完成了,由于软硬件性能的局限,可能在姿态识别时会有一点延迟,大家可以通过改变弹球的速度来调整游戏的难度,同时如果大家觉得鼻子控制起来很累,也可以试试左右手腕等其他点位,毕竟姿态分析积木中可以使用的关键点位有17个之多。
速云少儿编程致力于 4 - 18 岁,山东少儿无人机编程教育机构,速云网络研发软件工程师授课少儿编程,教给孩子们不光要学习编程,还要结合编程知识给我们无人机写程序,实现我们无人机的自动启飞、人脸识别、智能跟随,包括更加高级的编程玩法,就是无人机编舞。可能家长想了!四岁孩子能学习无人机编程吗?那我们看个四岁的小同学吧,你自己看看能不能学习吧!
我们来看一看四岁小朋友的学习视频吧!
家长担心孩子们真的能听懂课程吗?在每节课即将结束的时候我们都会进行课程汇报展示,来看一下小童鞋的汇报成果吧!
这个时候家长可能说了,我们四岁的孩子,年龄辣么小,又不认字,那该如何学习呢?
其实四岁、五岁的孩子不认字怎么学习?只要孩子识别颜色就可以学习。通过颜色识别具体编程积木,比如:蓝色是运动、紫色是外观、黄色是事件等等,通过颜色识别文字,根据颜色先实现出程序做出卡通的效果,以激发孩子兴趣,使孩子产生兴趣后开始具体学习每个积木的作用,再学习积木上面的文字。如下图:
这个时候你还认为编程难吗?其实针对4岁起,就已经可以学习编程了。通过搭积木的方式让孩子学习编程。
当然,比如我们下面的无人机编程视频吧!
无人机能六架一起起飞?没错!那他又和数学有什么关系呢?
小云说啦!这是根据我们数学中的坐标轴的 x轴 y轴 初始化无人机位置,无人机与无人机之间的距离、架数的多少,全部需要通过精密的计算,否则无法编排出理想的造型。
现在作为家长的你!还在纠结无人机编程是否对孩子有帮助吗?
无人机编程能做什么?人脸识别?智能跟随?自动飞行?还有吗?
答案:有!那就是"无人机编舞"!不知道无人机如何编舞?快看下面我们速云小童鞋的无人机编舞吧!!
无人机编程都学习哪些内容呢?
让无人机与编程结合?
没错!就是要让孩子“动手”+“编程”实现无人机起飞。
重点培养孩子逻辑思维能力与动手操作能力,让孩子在编写无人机程序的时,无形的锻炼孩子的逻辑思维能力和前沿科技的运用能力,在飞行学习中,孩子们需了解飞机的机械结构,练习手眼协同能力,甚至自己组装飞行器;在编程中,无人机可以在三维空间中,用摄像头完成巡线、人脸识别等人工智能任务。
例如:人脸识别,智能跟随,红外线定稿,光流定位、无人机编舞等。
看我们小童鞋们上课视频吧
坦克编程都学习哪些内容呢?
动手组装”+“编写程序”
通过编程将抽象理论与实践操作合二为一,让孩子重新理解知识,体验人工智能,培养独立思考的习惯和动手解决问题的能力。
课程涉及机器人拼装、力学等数理知识,运用六类人工智能模块,编写专属的自动驾驶算法程序,让孩子更加深入理解人工智能技术。
例如:人脸识别、智能跟随等前沿技术。