石头剪刀布AI进化版

作者: 不堪行处且行人 | 来源:发表于2019-12-04 17:58 被阅读0次

石头剪刀布终极进化版

       虽然人工智能目前以席卷之势,渗透各行各业,但是大多数人还处在“百姓日用而不知”的状态里,作为一个创客教师,对于新技术总是有与生俱来的敏感嗅觉,同时也希望把这些新内容教给我的学生,人工智能到底怎么玩?我的学生可以玩的转么?我的学生年龄都比较小,只是学过一些scratch,这样的水平可以玩AI么?带着这些疑问,笔者开始了自己的探索之路,在看了编程猫、mind+、慧编程、Kittenblock、machinelearning for kids等等的软件及网站之后,终于找到了一个看起来简单清爽又有AI插件的网站,广问AI(https://open.thinklandai.com/)。

       今天笔者就带领大家一起来用AI制作一个中国人小时候都会玩的游戏——石头剪刀布,说起这个石头剪刀布,它经常会作为我get新技能的第一个试水案例,比如会玩scratch之后我第一个做的是它,会玩microbit之后我第一个做的也是它,这次AI的版本当然也要做一次啦。      在开始制作之前,需要注册并用邮件活,否则无法看到我们需要使用的AI插件,另外推荐大家使用GoogleChrome浏览器,其他浏览器似乎会有看不到工程模板的情况。

预备阶段

  在开始制作之前,需要注册并用邮件激活,否则无法看到我们需要使用的AI插件,另外推荐大家使用GoogleChrome浏览器,其他浏览器似乎会有看不到工程模板的情况。

顺利注册完毕之后,回到主页开始编程,进入后是标准的scratch3.0界面,唯一区别是菜单栏里多了一个叫工程模板的项目。

  这里面藏着十个案例,可以帮助我们初窥AI的门径,左下角的添加扩展里有我们心心念念的AI插件,有六、七种之多,找到它们之后,怎么用就成为了我们最关切的问题。

数据训练模式

     回到石头剪刀布的主题,我们之前编写的石头剪刀布都是在scratch上设计一个按键,或者手拿microbit摇一摇,让电脑知道我出拳了。我就想,人工智能里有一个分支叫机器视觉,简单来说就是让机器能够看懂一些图像,而机器视觉的一个重要分支是图像分类,即给机器一些打上标签的图像让机器学习过后,去对没有打标签的其他图像进行分类,那么机器能否认出我们人类做出的剪刀、石头、布三种手势呢?

 这需要我们对三种手势进行采集,并打上各自的标签,然后发送给机器去学习,生成一个识别模型。那么如何采集并训练数据呢?

     首先加载图像分类插件,加载完毕之后关于训练的积木只有一条,那么肯定就是它了。

     因为我们有石头、剪刀、布共三种手势,所以当然也要训练三次了,训练时候要注意的是尽量保持背景一致,图像中只出现一种手势,否则电脑会混乱的,结果就是模型识别率不高。首先绘制一个叫训练的空白角色,为了操作方便我分别用按下A、S、D三个键来收集序号1到3的图像并在打上标签后进行训练,代码如下:

注意

为了保证训练效果,建议每一种手势图像要多一些角度和姿态,让机器尽可能多的学到各种石头、剪刀、布的手势,同时当有手势无法识别时,也可以回到训练角色来,添加机器无法识别的手势到对应标签下。一般建议训练至少40个数据。训练成功效果如下图。

数据清除模式

 如果我们发现训练有误,可以通过重置积木对现有数据进行重置,代码如下:

动画效果部分

生成模型之后,我们就要想办法把模型应用到游戏中去,下面我们要上传一个含有剪刀、石头、布三个造型的角色。通过以下代码做出三个造型快速切换的效果。并通过广播并等待去完成图像分类及判断输赢。需要注意的是图像分类需要使用到摄像头,所以系统会要求调用摄像头,我们要用开启摄像机的积木将摄像头启动,并按照需求设置透明度。

图像分类部分

下面就是我们的检测部分的代码和判断输赢部分的代码,我将用子程序的方式将两部分代码分开,这样会容易观看一些,首先是检测部分的代码。

判断胜负部分

       然后是判断胜负的代码。

注意

     为了截图方便,这段代码被分成了三个部分,分别是根据玩家出拳的三种情况进行判断,我们在真正使用过程中需要将这三段代码连接到一起,就是以上三个部分的顺序连接就好了,不存在判断嵌套。

尾声

至此我们所有代码都写出来了,可以试试我们采用图像分类方法做出来的可以识别手势的剪刀石头布了。

完整代码如下:

P.S

     我们还可以在此基础上再进行一些改进,如增添语音播报功能,让你直接可以听到胜负结果。增添姿态识别功能,判断你的手腕确实进入了摄像头范围才开始图像识别,具体代码怎么写大家可以自己试试,也可以参考工程模板里的案例。

     另外有任何疑问欢迎大家扫码加入微信群交流。

       或者大家也可以加我的微信13772884134,注明加群交流。

相关文章

  • 石头剪刀布AI进化版

    石头剪刀布终极进化版 虽然人工智能目前以席卷之势,渗透各行各业,但是大多数人还处在“百姓日用而不知”的状态里...

  • 石头剪刀布的联想

    小时候-石头剪刀布,你出剪刀我出布,糖果是你的;长大后-石头剪刀布,你出石头我出布,快乐是我们的;石头剪刀布,一个...

  • noip 2014总结

    生活大爆炸版石头剪刀布 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,...

  • 玩转石头剪刀布

    你用肚子玩过石头剪刀布吗?你用膝盖玩过石头剪刀布吗?你用脚掌玩过石头剪刀布吗?你用舌头玩过石头剪刀布吗?你用眼睛玩...

  • 2020-05-27

    “石头剪刀布” 哈哈,你输了,再来再来 “石头剪刀布” 你又输了,怎么回事,再来再来 “石头剪刀布” 你有心事,说...

  • 《自卑与超越》读书笔记

    (一)面对失败 “石头、剪刀、布!石头、剪刀、布!石头、剪刀、布!” “我赢了!”游戏规则是,赢了的人可以前进一格...

  • [米·记]2017.09.06.阴雨

    “石头剪刀布,石头剪刀布,左边剪刀右边石头,变成一只小蜗牛;左边是布右边是布,变成花蝴蝶……”——由磨蹭的米拉刷牙...

  • 温暖的承诺:我帮蜗牛找朋友

    剪刀石头布 剪刀石头布 一把剪刀一块石头变成小白兔 一把剪刀两把剪刀亲亲小白兔 一块石头一块布抓住小白兔 一块布两...

  • 陪孩子玩游戏(4)

    “石头,剪刀,布,我出剪刀。” “石头,剪刀,布,我出剪刀。” “你这是剪刀吗?”孩子还不太会控制手指,只见他伸着...

  • 人机大战《石头剪刀布》你赢得过机器吗?

    人机大战《石头剪刀布》你赢得过机器吗? 《石头剪刀布》的游戏每个人都玩过,而你有没有玩过与机器对决《石头剪刀布》?...

网友评论

    本文标题:石头剪刀布AI进化版

    本文链接:https://www.haomeiwen.com/subject/afilgctx.html