现在关于人脸识别的SDK其实有很多,诸如face++、百度大脑之类的,他们都能为开发者免费提供人脸识别的接口。阿里也和face++合作,实现了支付宝的刷脸支付。
但是很遗憾,网上关于识别一段视频中的用户行为(诸如摇摇头,眨眨眼,微笑)的资料很少,可能是技术没有公开,所以只能自己去想解决方法了。本人最近在做一个关于微信小程序的毕业设计,所以想到了把这两个技术结合下,这里写篇博客,为大家解解惑吧,纯是自己的一些想法,如果大家有疑惑或者更好的建议,可以发邮件联系我(andyliwr@outlook.com)。
大致的解决方案如下:
图可能不是很清晰,请看这里:
- 用户在微信小程序中拍摄一段视频
- 将用户拍摄的视频传到七牛云服务器
- 借助七牛云服务器的媒体处理api对视频每隔一定时间截图,形成一张张视频切图
- 使用百度大脑的人脸识别api分析每张图中用户的行为,最后得出结论
现在开始coding:
A. 先初始化一个微信小程序的项目,然后新建一个video页面,这个页面的js中需要首先引入七牛云上传文件的js—qiniuUpload.js,然后绑定拍摄视频的按钮的事件—chooseVideo,代码大致如下:
chooseVideo: function () {
initQiniu();
var that = this;
wx.chooseVideo({
sourceType: ['camera', 'album'],
camera: 'front',
maxDuration: 40,
success: function (res) {
console.log('拍照之后:');
console.log(res);
that.setData({
src: res.tempFilePath
});
//七牛上传文件
var vedioObject = res;
var filePath = res.tempFilePath;
},error: function(err){
console.log(err)
}
}
这样就把用户在拍摄之后的视频信息(时长,高度,宽度,临时存储地址拿到了),接下来就是上传到七牛云服务器了。
B. 将视频上传到七牛云服务器
上传文件到七牛过程呢,有一点小复杂