极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17067|回复: 3

“颜艺Boy!” — Arduino识别表情包

[复制链接]
发表于 2017-2-23 17:10:09 | 显示全部楼层 |阅读模式
本帖最后由 pz_cloud 于 2017-3-13 00:55 编辑

        最近撸机器学习有点感觉,遂想趁热来一发小应用。。正好工作室目前有一个高仿真机器人的项目,到时候会使用硅胶制作机器人皮肤(参考机器人“佳佳” ),而面部也会布置一些驱动系统。于是决定先搞个表情捕捉APP;

效果先看看视频演示


简单介绍一下原理
程序主要分为5个功能模块:
  • OpenCV人脸识别
  • 基于多级回归树的人脸关键点回归
  • 基于SVM的人脸训练集表情分类识别
  • 3D GUI显示
  • 蓝牙通信用于连接硬件


其中关键点的检测效果还不错,而表情分类由于样本量的原因稍有些许不稳定(各种表情只用了25个训练样本)



​ 由于训练样本运算量较大,所以先通过手机采集图像数据,然后加好标签在PC端读取数据进行训练,APP中则直接加载训练好的XML文件。值得一提的是,在表情分类模块中,对人脸关键点数据的归一化操作十分重要,在网上看到一些案例是直接将点的像素坐标归一化,然而这样无法保证对所有头部姿态都进行正确分类。所以程序里我使用了一个坐标转换,将点的像素坐标转换为以人眉心为原点的坐标系,这样再归一化之后泛化效果就好了很多。



跟Arduino联动
和之前的迹APP一样,我给颜艺Boy也提供了Arduino的库函数支持,可以让Arduino通过蓝牙读取人脸的表情、姿态、位置信息,库的使用非常简单,看示例代码就知道了。(库地址见文末)


​ 依然是通过这样的蓝牙模块连接,连接线如图:



​ 注意的是只需要接蓝牙的Tx,不需要接Rx,这样是为了让Arduino的print函数依然可以往控制台打印数据,另外下载程序的时候不要连接蓝牙不然会数据冲突无法下载。还需要注意初始化的波特率必须跟蓝牙模块移植。
​ 其实用软串口的话就没有这些问题了,但是我好懒。。没时间完善库😥,要是有同学加上了软串口功能可以找我把代码整合进去。

APP兼容性
由于市面上手机型号繁多,对于不同架构的CPU不一定全部都能支持,有安装问题的可以在下载页面留言反馈我有空的话会尽量适配的。安装好了之后如果打开应用卡住或者闪退可能是手机上的安全软件限制了APP的权限,这时候需要去手机设置里开启APP使用摄像头和蓝牙的权限,以原生系统为例操作步骤如下:设置-应用-已安装-i颜艺Boy-权限管理。

资源下载
APP下载: 腾讯应用宝搜索“i颜艺Boy”下载
Arduino库的地址:https://github.com/david-pzh/FaceAPP-Arduino

个人主页:www.pengzhihui.com

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2017-2-23 19:05:26 | 显示全部楼层
好牛的,顶一下!
回复 支持 反对

使用道具 举报

发表于 2017-2-24 12:45:42 | 显示全部楼层
厉害哈哈哈哈
回复 支持 反对

使用道具 举报

发表于 2017-2-27 08:07:11 | 显示全部楼层
点赞!牛逼啦!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 16:59 , Processed in 0.098734 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表