概述
Rekognition是AWS图像识别服务
API 文档: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Rekognition.html
AWS提供网页端测试: https://console.aws.amazon.com/rekognition/home?region=us-east-1#/face-comparison
1 配置AWS Nodejs开发环境
开发环境配置文档:https://docs.aws.amazon.com/zh_cn/sdk-for-javascript/v2/developer-guide/getting-
git clone https://github.com/awslabs/aws-nodejs-sample.git
npm install
配置凭据
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
2 AWS Rekognition API 说明
为了确保Rekognition对象使用这个特定的API,您可以通过将apiVersion选项传递给构造函数来构造对象:
var rekognition = new AWS.Rekognition({apiVersion: '2016-06-27'});
var rekognition = new AWS.Rekognition({region: 'us-east-1'});
区域很重要很重要 你要在提供了Rekognition 的区域
compareFaces API 说明:
compareFaces(params = {}, callback)
参数:
var params = {
SourceImage: { /* required */
Bytes: new Buffer('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */,
S3Object: {
Bucket: 'STRING_VALUE',
Name: 'STRING_VALUE',
Version: 'STRING_VALUE'
}
},
TargetImage: { /* required */
Bytes: new Buffer('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */,
S3Object: {
Bucket: 'STRING_VALUE',
Name: 'STRING_VALUE',
Version: 'STRING_VALUE'
}
},
SimilarityThreshold: 0.0
};
参数说明:
SourceImage:输入图像为base64编码的字节或S3对象
第一种base64编码的图像数据:Bytes (支持Buffer, Typed Array, Blob, String)
第二种S3Object(map):
Bucket — (String)
Name of the S3 bucket. S3存储桶名
Name — (String)
S3 object key name. S3输入图像文件名
Version — (String) 版本(可省略)
If the bucket is versioning enabled, you can specify the object version.
TargetImage 参数同上
SimilarityThreshold(float)
置信度匹配标准(0-100 多少认为是同一个人)
回调函数(回调)
函数(err,data){…}
err: 为null则为成功错误返回错误消息。
data:返回的数据
data = {
SourceImageFace: {
"BoundingBox": {
"Width": 0.125,
"Height": 0.125,
"Left": 0.6494140625,
"Top": 0.1103515625
},
"Confidence": 99.99996948242188
},
FaceMatches: [
{
Face: {
BoundingBox: {
Height: 0.33481481671333313,
Left: 0.31888890266418457,
Top: 0.4933333396911621,
Width: 0.25
},
Confidence: 99.9991226196289
},
Similarity: 100
}
],
SourceImageFace: {
BoundingBox: {
Height: 0.33481481671333313,
Left: 0.31888890266418457,
Top: 0.4933333396911621,
Width: 0.25
},
Confidence: 99.9991226196289
}
}
data数据说明:
SourceImageFace
原图像用来作为比较物的人脸
BoundingBox 人脸边框信息
"Width": 0.125, 边框宽度与整个图像宽度的比例
"Height": 0.125, 边框高度与整个图像高度的比例
"Left": 0.6494140625, 边框左边界在图片x轴方向中的比例
"Top": 0.1103515625 边框上边界在图片y轴方向中的比例
FaceMatches
目标图像中与源图像相匹配的人脸数组。每个CompareFacesMatch对象提供边界框
Similarity 面对匹配的信心水平。
Face 提供脸部元数据(边界框和边界框实际上包含脸部的置信度)。
BoundingBox 人脸边框数据
Confidence 是人脸的置信度
Landmarks 特征值 (眼睛 鼻子 )及相关信息(坐标)
Pose :脸部姿态 roll yaw pitch 3轴表示
Quality:
Brightness 表示脸部亮度的值。该服务返回一个介于0和100(含)之间的值。较高的值表示较亮的脸部图像。
Sharpness:
代表脸部清晰度的值。该服务返回一个介于0和100(含)之间的值。较高的值表示更清晰的脸部图像。
UnmatchedFaces
数据同上
3 Sample code:
var AWS = require('aws-sdk');
var fs = require("fs");
var rekognition = new AWS.Rekognition({region: 'us-east-1'});
var s3 = new AWS.S3();
var bitmap = fs.readFileSync("./101g.png");
var bitmap2 = fs.readFileSync("./102g.png");
var params1 = {Bucket: "YourBucketName", Key: "101g.png", Body: bitmap};
s3.putObject(params1, function(err, data) {});
var params1 = {Bucket: "YourBucketName", Key: "102g.png", Body: bitmap2};
s3.putObject(params1, function(err, data) {});
var params = {
SimilarityThreshold: 85,
SourceImage: {
// Bytes:bitmap
S3Object: {
Bucket: "YourBucketName",
Name: "101g.png"
}
},
TargetImage: {
// Bytes:bitmap2
S3Object: {
Bucket: "YourBucketName",
Name: "102g.png"
}
}
};
var startTime = new Date();
rekognition.compareFaces(params, function(err, data) {
if (err){
console.log("ERR:"+err); // an error occurred
console.log("ERRSTACK"+err.stack); // an error occurred
}
else{
var EndTime = new Date();
var runTime = EndTime.getTime() - startTime.getTime();
console.log(runTime); // successful response
console.info(data);
}
});
性能: 识别时间较长,如果不对图像预处理上传,一般会在4s以上得到结果。
最后
以上就是碧蓝奇异果为你收集整理的AWS Rekognition nodejsAPI使用的全部内容,希望文章能够帮你解决AWS Rekognition nodejsAPI使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复