博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云人脸识别接口调用。
阅读量:4880 次
发布时间:2019-06-11

本文共 3370 字,大约阅读时间需要 11 分钟。

1.阿里云开通人脸识别

2.以人脸属性识别为例

3.为了安全起见,我们需要搭建一个服务器,以nodejs为例

 

nodejs代码

var request = require('request');var url = require('url');var crypto = require('crypto');var date = new Date().toUTCString();var express = require('express');// 这里填写AK和请求var ak_id = '你的ak';var ak_secret = '你的ak_secret';var app = express();//人脸属性识别function getFaceAttribute(obj,getMsg){	var options = {         //这里调用的是人脸属性识别接口	  url : 'https://dtplus-cn-shanghai.data.aliyuncs.com/face/attribute',	  method: 'POST',	  body:obj,//这里传递参数	  headers: {	    'accept': 'application/json',	    'content-type': 'application/json',	    'date': date,	    'Authorization': ''	  }	};	md5 = function(buffer) {	  var hash;	  hash = crypto.createHash('md5');	  hash.update(buffer);	  return hash.digest('base64');	};		sha1 = function(stringToSign, secret) {	  var signature;	  return signature = crypto.createHmac('sha1', secret).update(stringToSign).digest().toString('base64');	};		// step1: 组stringToSign [StringToSign = #{method}\\n#{accept}\\n#{data}\\n#{contentType}\\n#{date}\\n#{action}]	var body = options.body || '';	var bodymd5;	if(body === void 0 || body === ''){	  bodymd5 = body;	} else {	  bodymd5 = md5(new Buffer(body));	}	console.log(bodymd5)	var stringToSign = options.method + "\n" + options.headers.accept + "\n" + bodymd5 + "\n" + options.headers['content-type'] + "\n" + options.headers.date + "\n" + url.parse(options.url).path;	console.log("step1-Sign string:", stringToSign);	// step2: 加密 [Signature = Base64( HMAC-SHA1( AccessSecret, UTF-8-Encoding-Of(StringToSign) ) )]	var signature = sha1(stringToSign, ak_secret);	// console.log("step2-signature:", signature);	// step3: 组authorization header [Authorization =  Dataplus AccessKeyId + ":" + Signature]	var authHeader = "Dataplus " + ak_id + ":" + signature;	console.log("step3-authorization Header:", authHeader);	options.headers.Authorization = authHeader;	console.log('authHeader', authHeader);	// step4: send request	  /*if (error) {	    console.log("error", error)	  }	  console.log("step4-response body:", response.statusCode, body)*/	function callback(error, response, body) {		getMsg(error,response,body);	}	request(options, callback);}//设置跨域访问app.all('*', function(req, res, next) {    res.header("Access-Control-Allow-Origin", "*");    res.header("Access-Control-Allow-Headers", "X-Requested-With");    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");    res.header("X-Powered-By",' 3.2.1')    res.header("Content-Type", "application/json;charset=utf-8");    next();});app.get('/face/getFaceAttribute', function(req, res) {	getFaceAttribute('{image_url:"'+req.query.image_url+'"}',function(error,response,body){		if (error) {	    	console.log("error", error)		}		console.log("step4-response body:", response.statusCode, body)		res.end(JSON.stringify(body));	});});app.listen(8888);console.log("port at 8888");

  

如果在本地运行此nodejs的话,地址是127.0.0.1:8888/face/getFaceAttribute

请求方式是get

 

这个时候前端页面只需要调用这个ajax地址就好了

$.ajax({	type:"get",	url:"http://127.0.0.1:8888/face/getFaceAttribute",//服务器我是部署在本地	async:true,	data:{'image_url':'www.yuanyizheng.com/fuzi.jpg'},	success:function(data){		console.log('success');		console.log(data);	},	error:function(data){		console.log('error')		console.log(data);	}});

  

详情请看

https://help.aliyun.com/knowledge_detail/53520.html

 

 

转载于:https://www.cnblogs.com/MainActivity/p/8507656.html

你可能感兴趣的文章
解析SQL Server之任务调度
查看>>
参考资料地址
查看>>
08.路由规则中定义参数
查看>>
Pandas截取列部分字符,并据此修改另一列的数据
查看>>
java.lang.IllegalArgumentException
查看>>
【Spark】编程实战之模拟SparkRPC原理实现自定义RPC
查看>>
接口实现观察者模式
查看>>
四则运算完结篇
查看>>
Objective-C中的类目,延展,协议
查看>>
Python标准模块--Iterators和Generators
查看>>
Introduction Sockets to Programming in C using TCP/IP
查看>>
PHP 简单实现webSocket
查看>>
zookeeper部署搭建
查看>>
navigationController pop回之前控制器
查看>>
汇编语言实验一
查看>>
Web.config配置文件详解(新手必看)
查看>>
selenide总结
查看>>
selenium--控制浏览器和简单元素操作
查看>>
android spannableString 替换 textview 中部分文字
查看>>
java 引用
查看>>