首页 > 解决方案 > Cloud vision api face detection no image present 错误

问题描述

我们No image present.在尝试使用云视觉 API 进行人脸检测时遇到错误。

我们使用的是官方文档中的代码。

请看下面的代码。

  const request1={
  "requests":[
    {
      "image":{
        "content": imgdatauri //It contains image data uri
      },
      "features": [
        {
          "type":"FACE_DETECTION",
          "maxResults":1
        }
      ]
    }
  ]
};
  client
  .annotateImage(request1)
  .then(response => {
    console.log(response);
    response.send(response);
  })
  .catch(err => {
    console.error(err);
    response.send(err);
  });

这是错误消息。


Error: No image present.

    at _coerceRequest (/rbd/pnpm-volume/e40024d2-3d05-4f3d-a435-6d4e6ca96fb0/node_modules/.registry.npmjs.org/@google-cloud/vision/1.1.3/node_modules/@google-cloud/vision/src/helpers.js:69:21)

    at ImageAnnotatorClient.<anonymous> (/rbd/pnpm-volume/e40024d2-3d05-4f3d-a435-6d4e6ca96fb0/node_modules/.registry.npmjs.org/@google-cloud/vision/1.1.3/node_modules/@google-cloud/vision/src/helpers.js:224:12)

    at PromiseCtor (/rbd/pnpm-volume/e40024d2-3d05-4f3d-a435-6d4e6ca96fb0/node_modules/.registry.npmjs.org/@google-cloud/promisify/1.0.2/node_modules/@google-cloud/promisify/build/src/index.js:71:28)

    at new Promise (<anonymous>)

    at ImageAnnotatorClient.wrapper [as annotateImage] (/rbd/pnpm-volume/e40024d2-3d05-4f3d-a435-6d4e6ca96fb0/node_modules/.registry.npmjs.org/@google-cloud/promisify/1.0.2/node_modules/@google-cloud/promisify/build/src/index.js:56:16)

我们想知道我们需要做些什么来解决这个问题。

标签: google-cloud-vision

解决方案


我用云存储触发器创建了一个云函数,当我上传图像文件时,我的函数被触发(带有事件)我可以看到有 event.mediaLink event.selfLink,我尝试使用两者来加载图像,但它一直在抱怨没有图像存在

这是代码

exports.analyzeImage = function(event) {
  const vision = require('@google-cloud/vision');
  const client = new vision.ImageAnnotatorClient();
  console.log('Event', event.mediaLink)
  let image = {
    source: {imageUri: event.mediaLink}
  };

  return client.labelDetection(image).then(resp => {
    let labels = resp[0].labelAnnotations.map( l => {
      return {
        description: l.description,
        score: l.score
      };
    });
    return labels;
    // const dataset = bigquery.dataset('dataset')
    // return dataset.table
  }).catch(err => {
    console.error(err)
  })
}

推荐阅读