如何使用AWS Rekognition服务检测具有Node.js的人脸

时间:2017-01-24 09:38:41

标签: node.js amazon-web-services detect face amazon-rekognition

我正在尝试使用带有Node.js的Amazon Rekognition Service,
我将一个面部图像上传到带有示例程序的存储桶中的S3服务,现在我想用Node.js检测面部

代码如下

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Load credentials and set region from JSON file
AWS.config.loadFromPath('./config.json');

var rekognition = new AWS.Rekognition({apiVersion: '2016-06-27'});
var s3 = new AWS.S3({apiVersion: '2006-03-01'});

/ *此操作检测存储在AWS S3存储桶中的图像中的面部。 * /

var params = {
Image: {
   S3Object: {
   Bucket: "rekognitionfortesting", 
   Name: "face1.jpeg"
  }
 },

};
rekognition.detectFaces(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else     console.log(data);           // successful response

});

我没有获得真实的数据,这是我得到的回应:

enter image description here

[Object]写的。通常它应该给出如下的响应。

data = {
    FaceDetails: [
       {
      BoundingBox: {
       Height: 0.18000000715255737, 
       Left: 0.5555555820465088, 
       Top: 0.33666667342185974, 
       Width: 0.23999999463558197
      }, 
      Confidence: 100, 
      Landmarks: [
         {
        Type: "EYE_LEFT", 
        X: 0.6394737362861633, 
        Y: 0.40819624066352844
       }, 
         {
        Type: "EYE_RIGHT", 
        X: 0.7266660928726196, 
        Y: 0.41039225459098816
       }, 
         {
        Type: "NOSE_LEFT", 
        X: 0.6912462115287781, 
        Y: 0.44240960478782654
       }, 
         {
        Type: "MOUTH_DOWN", 
        X: 0.6306198239326477, 
        Y: 0.46700039505958557
       }, 
         {
        Type: "MOUTH_UP", 
        X: 0.7215608954429626, 
        Y: 0.47114261984825134
       }
      ], 
      Pose: {
       Pitch: 4.050806522369385, 
       Roll: 0.9950747489929199, 
       Yaw: 13.693790435791016
      }, 
      Quality: {
       Brightness: 37.60169982910156, 
       Sharpness: 80
      }
     }
    ], 
    OrientationCorrection: "ROTATE_0"
   }
   */
 });

如何获取面部数据?

3 个答案:

答案 0 :(得分:2)

您的angle正在正确打印对象信息。您需要做的是以这种方式对对象模型进行字符串化:

console.log("data")

希望这有帮助。

答案 1 :(得分:0)

原因是console.log输出深度有限的变量。所以它不会展示成员,而只展示他们的类型。 您仍然可以通过执行以下操作来访问代码中的结果对象:

data.FaceDetails[0].BoundingBox.height
...

您可以找到有关如何增加console.log here深度的更多信息。

答案 2 :(得分:0)