博客> 百度人脸识别模块使用分享
百度人脸识别模块使用分享
2019-04-22 22:57 评论:0 阅读:569 api_cloud
人脸识别 模块

【本文出自APICloud官方论坛,感谢鲍永道的分享。】

首先介绍下百度人脸识别模块(baiduFaceRec): baiduFaceRec模块封装了百度AI人脸识别功能,使用此模块可实现百度人脸检测(包括age,beauty,expression,faceshape,gender,glasses,landmark,race,quality,facetype信息)、人脸对比功能(比对两张图片中人脸的相似度,并返回相似度分值)。暂仅支持 android 平台。

不啰嗦,直接上代码: <!DOCTYPE html> <html xmlns="/www0686w30686org/1999/html">; <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/> <title>frame2</title> <link rel="stylesheet" href="../css/api.css"> <link rel="stylesheet" href="../css/aui.css"> <style> html, body { background: #ffffff; }

    .my-card {
        border: solid 1px #dddddd;
        margin: 10px;
    }

    .aui-btn-block {
        margin-bottom: 10px;
    }
&lt;/style&gt;

</head> <body>

百度人脸识别(V3版本)自定义模块
人脸识别

获取access_token

人脸检测

人脸对比

</body> </html> [removed][removed] [removed] var baiduFaceRec = null; var UIAlbumBrowser = null;

apiready = function () {
    baiduFaceRec = api.require('baiduFaceRec');
    UIAlbumBrowser = api.require('UIAlbumBrowser');
};

/获取access_token
function getAuth() {
    var params = {
        ak: 'your ak',
        sk: 'your sk'
    };

baiduFaceRec.getAuth(params, function (ret, err) { if (ret) { console.log(JSON.stringify(ret)); alert('access_token=' + ret.access_token); } else { console.log(err.msg); alert('错误信息:' + err.msg); } }) }

/人脸检测
function detect() {
    /先获取access_token
    var params = {
        ak: 'your ak',
        sk: 'your sk'
    };
    baiduFaceRec.getAuth(params, function (ret, err) {
        if (ret) {
            console.log(JSON.stringify(ret));
            var access_token = ret.access_token;
            /选择照片或拍照
            api.actionSheet({
                title: '选择照片',
                cancelTitle: '取消',
                buttons: ['拍照', '手机相册']
            }, function (ret, err) {
                if (ret) {
                    console.log(ret.buttonIndex);
                    if (ret.buttonIndex != 3) {
                        var sourceType = ret.buttonIndex;
                        /获取图片
                        api.getPicture({
                            sourceType: (sourceType == 1) ? 'camera' : 'album',
                            encodingType: 'jpg',
                            mediaValue: 'pic',
                            destinationType: 'url',
                            allowEdit: true,
                            saveToPhotoAlbum: false
                        }, function (ret, err) {
                            if (ret) {
                                console.log(ret.data);
                                var filePath = ret.data;
                                var params = {
                                    filePath: filePath,
                                    access_token: access_token
                                };
                                /人脸检测
                                baiduFaceRec.detect(params, function (ret, err) {
                                    if (ret) {
                                        console.log(JSON.stringify(ret));
                                        alert&#40;'人脸检测数据' + JSON.stringify(ret.result.face_list&#41;);
                                    } else {
                                        console.log(err.msg);
                                    }
                                })
                            } else {
                                console.log(JSON.stringify(err));
                                alert&#40;JSON.stringify(err&#41;);
                            }
                        })
                    } else {
                        return false;
                    }
                }
            });
        } else {
            console.log(err.msg);
            alert&#40;'错误:' + ret.msg&#41;;
        }
    });
}

/人脸对比
function match() {
    /先获取access_token
    var params = {
        ak: 'your ak',
        sk: 'your sk'
    };
    baiduFaceRec.getAuth(params, function (ret, err) {
        if (ret) {
            console.log(JSON.stringify(ret));
            var access_token = ret.access_token;
            /得到对比图片
            UIAlbumBrowser.open({
                max: 2,
                styles: {
                    bg: '#fff',
                    mark: {
                        icon: '',
                        position: 'bottom_left',
                        size: 20
                    },
                    nav: {
                        bg: 'rgba(0,0,0,0.6)',
                        titleColor: '#fff',
                        titleSize: 18,
                        cancelColor: '#fff',
                        cancelSize: 16,
                        finishColor: '#fff',
                        finishSize: 16
                    }
                },
                rotation: true
            }, function (ret) {
                if (ret) {
                    var filePath1 = ret.list[0].path;
                    var filePath2 = ret.list[1].path;
                    var params = {
                        filePath1: filePath1,
                        filePath2: filePath2,
                        access_token: access_token
                    };
                    /人脸对比
                    baiduFaceRec.match(params, function (ret, err) {
                        if (ret) {
                            console.log(JSON.stringify(ret));
                            alert&#40;'人脸检测数据' + JSON.stringify(ret&#41;);
                        } else {
                            console.log(err.msg);
                        }
                    })
                }
            });
        } else {
            console.log(err.msg);
            alert&#40;'错误:' + ret.msg&#41;;
        }
    });
}

[removed] 使用模块前需要先到百度AI开发者中心创建应用,获取ak和sk,然后进行身份验证,获取返回的access_token,建议每次进行人脸识别接口时先获取access_token(30期限),然后每次请求识别接口也传入access_token,这样保证每次都请求ok。

另外的两个人脸识别接口,一个是人脸识别,一个是人脸对比。

人脸识别主要是识别人的脸部相关参数,对应的参数很多,我就不一一说明了,文档有详细说明。另外就是人脸对比,对比两张脸的相似度值,可以根据相似度值来判断两张人脸是否是同一个人,在项目上应用于人脸对比验证,应该会使用的比较多。

收藏
0
sina AG亚游集团weixin mail 回到顶部
昆明到大理丽江火车将停开2个月?官方回应 落马副市长狱中加刑 曾跪母亲灵柩前忏悔晚节不保 德国西南部发生枪击案致2死多伤 警方已逮捕1嫌犯 又是VAR又是高准翼华夏屋漏偏逢连夜雨 何时否极泰来 韩总统府回应朴槿惠获刑24年:痛心 不会忘记今天 美国得州枪击案致1名警察死亡 嫌犯被控谋杀罪 布拉格马拉松历史:诞生于小酒吧 经营多年成就经典 日本东电:拟对福岛一核2号机组燃料碎片接触调查 棋葩说:井山战农心杯冲动了 一力辽同学有话要说 切尔西让所有人恐惧的霸王回来了!孔蒂终于做对 俄媒:俄罗斯考虑使用白杨洲际导弹发射卫星 交通部:顺风车社交功能偏离出行本意 甚至存安全隐患
恒大外援将正式离开广州 下一站或转投欧冠队 澳媒赞中国工程新成就 评论区吐酸水的网民被怼了 美官员:中国海军将拥有549艘军舰 规模是美军两倍 特斯拉为Model 3 Performance打造“赛… 核载51人大巴载98人 乘客着急上班要求交警放行 兹维列夫和费雷罗结束合作 将接受贝克尔指导 王毅外长谈台湾问题:台当局应该尽快回到九二共识 北京4位区委书记同时上任 最年轻者为70后(简历) 沙排世巡赛卢塞恩赛落幕 王凡/夏欣怡获得亚军 外媒:朝鲜欲探索经济发展模式 或借鉴中国和越南经验 男子抢劫滴滴司机开走车 十余分钟后撞车身亡(图) 美国航母卡尔-文森号抵达越南 将停靠岘港
抢十表演赛斯维托丽娜轻松夺冠 连克大威和张帅 低迷国安迎前任曼萨诺 斯蒂夫又来这回怎布防? 大阪黄金赛刘诗颖刷新个人PB 生涯首次投过67米 CBA状元秀薪水创新最高 顺位靠后球员薪水提升 广州:借贷余额超1亿元的互金公司需设立首席风险官 广西桂林2艘龙舟翻船17人遇难 为何造成严重伤亡? VAR稳得一批!半场吹掉第二球 保利尼奥头球无效 政协委员冯远征批天价艺考培训费:有些人在蒙钱 李明博承认受贿1亿韩元 基本否认韩检方全部指控 在农村养殖什么赚钱 白手起家好项目 不怕死想发财的兄弟进 没钱怎么创业 AG亚游集团