回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

基于人体关键点识别的字符传输平台 简单

头像 kylinpoet 2020.02.14 973 1

步骤1 设计灵感:

在第一轮的比赛中,虽然使用了《旗语-基于区位码的汉字加密系统》作为标题,但实际上和旗语没有关系。主要是区位码和手势识别的功劳。

所以在第二轮的比赛中,准备加入真实的旗语系统。

旗语(英语:Flag semaphore),一种利用手旗或旗帜传递信号的沟通方式,可分单旗和双旗等两种,又称为“手旗信号”或“手旗通信”,距离较长时,借助双筒望远镜或望远镜,以延伸目视距离。国际通用一些旗帜表示如下图:

project-image

虽然Mind+提供的图像识别功能中没有确切的旗帜识别接口,但我们可以利用其提供的人体关键点识别接口来进行信号的识别。为了表示不同的旗帜位置,我们可以使用,肩部到手腕的连线和垂直平面的夹角来表示旗帜的不同位置,如下图所示:

project-image

利用肩部和腕部的数据点位置,就可以获得左右手的位置关系的。当然为了能正确识别,对于角度的关系处理还需要处理阈值,下面讲解代码的时候会说到。

当然对于中国来说,能使用中文当然是最好的。因此为了简化内容,此文还是准备利用四位数区位码进行汉字的传递。

步骤2 软件部分设计1:

人体关键点的识别在电脑上用Mind+网络服务模块里的AI图像识别功能实现。实际上,如果我们仔细看第二轮的要求会发现,只要能使用Mind+和DF的硬件就可以了,百度的语音识别等其他有趣的AI功能可以自写代码实现:比如脱离PC机在树莓派或者虚谷号上完成代码编写。

但鉴于时间关系,此文就不在树莓派上折腾了。

代码逻辑如下图所示:

project-image

因为要用到语音播报,所以需要选中“功能模块”下的“文字朗读”功能,和“网络服务”下的“MQTT”和“AI 图像识别”两个模块。

project-image
project-image

另外还需要使用百度智能云应用:

虽然Mind+ 内置了一个公用账户,但是公用账户有同时访问限制,因此最好还是使用自己注册的账户。首先登录百度 AI 开放平台,https://ai.baidu.com,点击页面右上角“控制台”,然后“登录”自己的百度账号。成功后进入控制台页面,点击左边栏“人脸识别”。

project-image
project-image
project-image

创建好以后会有 AppID、API Key、Secret Key 三个信息,记录下来,后续编程会用到。

project-image

做好以上准备后,我们通过上面的角度获取公式,然后利用百度人体关键点识别接口 ,通过:“函数识别旗语”,获取不同旗帜所表示的字符。四个字符识别完成后,利用一个确认旗帜,完成一个汉字的传输。

上图中的 “函数画图”主要是画出识别的大致形状,好进行判断。

当然这里为了模拟,旗语的识别过程。利用 MQTT协议发送到 掌控板使用的接收端。

project-image
project-image

最后,在标准的国际手旗信号中: 开始通信时,发信船将字母旗“J”,悬于旗绳顶端,收信船看到后也挂字母旗“J”,表示已准备妥当后,即开始手旗通信。对于收发信文、更正符号、结束通信皆有一定的作业程序(SOP)

笔者为了模拟这个操作,由接收方控制什么时候进行信息传输,还是使用了MQTT协议,进行通讯。不过为了和正常的信息传输通道区分,换了一个TOPIC:

project-image

在 Mind+ 角色中编写主程序。首先设置百度智能云和 MQTT 的初始化参数。将前面创建百度智能云应用获得的 AppID、API Key、Secret Key 都填入空白处。MQTT 使用 SIoT,SIoT下载地址:http://mindplus.dfrobot.com.cn/siot。运行 SIoT程序后将服务器地址等填入空白处。
 

project-image

步骤3 软件设计部分2:

接收方用掌控板来进行处理,经由MQTT的Topic0通讯进行信息的传输。当然可以直接进行旗语的数字信息传输,不经区位码编码。在接收端进行再进行编码会更和实际接近点。但因为 mind+在PC的实时模式和方便调试,所以就在本地直接编码了。但道理是一样,这里就偷个懒。

project-image
project-image

步骤4 硬件使用:

材料清单

  • 掌控板 X1 链接
  • 掌控板扩展板 X1 链接
  • 按钮 X1 链接
  • 某不知名纸盒 X1
  • 温暖牌女儿手绘 X1

因为疫情的原因,在家也没有什么材料,这里就用几个简单的东西摆弄下。当然这里要感谢女儿的积极配合与妻子的倾情合作(这个成品是妻子制作的...)

我们称之为:《信息接收平台电视机》。

project-image
project-image

代码附件如下:

当然也可以在码云上下载:

https://gitee.com/kylinpoet/DF_Winter_AI_2

如果有更好的创意,欢迎分享讨论。

最后:因为视频录制的不方便。旗语识别发送端,和掌控板接收端是分开录制,敬请见谅。

视频的背景音是本人预先录制在mind+里的,每次识别成功都自动读出来。(当时也是为了测试是否识别成功。)

视频里识别的旗语手势是:4668(武),2626(汉),2851(加),5145(油)。

project-image

评论

user-avatar
  • 云天

    云天2020.02.26

    有创意,赞

    0