所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

AI棒球高手

Anders项勇 Anders项勇 2019-12-21 22:17:53

Mind+1.6.1新增“AI图像识别模块”。通过图像识别模块,可以进行人体关键点识别等功能。 利用这个功能我设计了一个AI棒球高手的游戏,大家可以参照此方式类推编出各种互动游戏,比如足球守门高手、射门高手等

步骤1 步骤1
整体思路

通过AI功能获得手腕坐标,用两个虚拟物体跟随手腕坐标移动。按空格键击球人击球,用手去抓球,虚拟物体跟随手腕移动,判断碰到球就加分并欢呼,没碰到就大笑。

步骤2 步骤2
Mind+添加扩展网络服务--AI图像识别模块
步骤3 步骤3
注册百度AI服务独立账号

首先登录百度AI开放平台,http://ai.baidu.com,点击页面右上角“控制台”,“注册”百度账号。登录成功后进入控制台页面,点击左边栏“人体特征分析”,右边其他功能也可以一一选择。在新页面中点击“创建应用”。在“应用管理”中复制AppID、API Key、Secret Key的参数,填到Mind+中的“切换至独立账户”功能中。 

步骤4 步骤4
取得手部特征点赋给变量

在背景中增加以下代码。通过特征点识别获得左右手腕xy值,由于没有手指坐标,所有有点误差,可以进行修正,不处理也可以大致满足要求。

projectImage
步骤5 步骤5
模拟左右手

添加两个不同颜色圆圈,颜色浅些(避免过多干扰实际图像),模拟左右手在背景中的位置,跟随上一个步骤获得的手腕坐标。

projectImage
projectImage
projectImage
步骤6 步骤6
棒球运动员击球

按空格后棒球运动员按每个造型切换形成循环击球,在击球造型发出击球广播。每次循环开始的时间设长一点,因为实际测下来Ai的识别还是有点慢(这个希望Mind+后续版本功能改善阿,不然体验不好),虚拟手部跟随有很大延迟,所以这里时间长点可以等待接球结束。

projectImage
步骤7 步骤7
棒球动作

接收到棒球手击球的广播后,让棒球移动到随机位置,注意调整滑动时间,太短时间模拟手跟不过来。判断棒球碰到模拟左手或模拟右手就发出大笑广播,这里注意用广播,否则直接在里面播放声音,因为一直在循环,会导致声音很乱。没碰到就发出大笑广播。接收到对应广播发出对应声音。

projectImage
步骤8 步骤8
总结

通过人体特征点识别,可以把我们的主要特征点获得坐标,然后让虚拟物跟随这个坐标。虚拟物再跟程序里面的其他物体进行互动游戏。按照这个模式可以把之前需要用鼠标键盘控制的游戏都改造成AI游戏。但要解决AI识别延迟的问题,否则体验会不好。

Makelog作者原创文章,未经授权禁止转载。
1
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]