前言
由于识岁app比较简单,所以这节就完结吧,
当然还有一些可以优化完善的地方,但是个人兴趣不是很大,
有想继续完善的,源码在这里:GitHub - uikoo9/shisui: hbuilder开发的人脸识别app,http://uikoo9.com/project/shisui
face++
在简单的介绍下face++,
不久前,微软推出了一个识别人年龄的网站:http://how-old.net/,
不得不说微软的算法牛逼,数据海量,本人测试的时候很准确。
但是据说要借入微软的接口比较麻烦,就找了一个国内的类似接口,face++,
官网宣称,很多国内的app都在使用,例如美图秀秀等,
暂且哪来用一用,
效果嘛,
很多时候都不好,会提示找不到人脸,用官网的示例测试了下,确实是这样,而不是本人的使用方法有误,
face++的js实现
虽然效果不好,但是还得用。。
首先来到开发者中心:http://www.faceplusplus.com.cn/uc_home/,
也就是文章顶部的图片,看到,需要进行一些注册,比较简单,略过。
再然后找到api,发现一个需要的接口,识别人脸:http://www.faceplusplus.com.cn/detection_detect/,
这个接口的必须参数是ak,sk,url,
至于img直接post,我是没有研究明白怎么搞。
代码
// face pp
qiao.facepp = {
ak : '3bbeeac39cd5e8600d2cb05ac97f15fd',
sk : '4lf9qM6e7GVLVAfKYITYx9R7GX6_5Taa'
};
qiao.facepp.do = function(options){
var url = options.url;
var attr = options.attr || 'gender,age';
var method = options.method || 'detection/detect';
var success = options.success;
var fail = options.fail;
new FacePP(qiao.facepp.ak, qiao.facepp.sk).request(method, {
url: url,
attribute: attr
}, function(err, result) {
if(err){
fail();
}else{
success(result);
}
});
};
代码比较简单
qiao.facepp,初始化信息,也就是你的ak,sk
qiao.facepp.do,开始访问接口,这里只需要传入图片的url地址即可。
识岁代码
function facepp(){
if(url){
qiao.facepp.do({
url : url,
success : function(result){
if(result && result.face && result.face.length){
var face = result.face[0].attribute;
var str = '识别成功!性别:' + (face.gender.value == 'Male' ? '男':'女') + ',年龄:' + face.age.value;
showRes(str);
}else{
showRes('识别失败,请上传包含人脸的图片!');
}
},
fail : function(){
showRes('识别失败,请重试!');
}
});
}
}
function showRes(msg){
$('#res').text(msg);
endw();
}
function beginw(){
$('#faceBtn').attr('disabled', true);
qiao.h.waiting();
}
function endw(){
qiao.h.closeWaiting();
$('#faceBtn').attr('disabled', false);
}
接上几节的代码,
1.首先点击图片,弹出actionsheet——第一节
2.选择相片或者拍照然,也就是Camera和gallery组件——第二节
3.文件上传,Uploader组件——第三节
4.上传到七牛云,需要获得uptoken——第四,五节
5.利用face++进行之别,也就是本节