我必须使用 google 云存储来进行批量注释吗?

Do I have to use google cloud storage for batch annotation?

我正在尝试执行 asyncBatchAnnotation() 请求,以使用 Google Cloud Vision API.

注释一堆图像

这是我的代码片段: 我创建批处理请求的函数:

module.exports = createRequests

const LABEL_DETECTION = 'LABEL_DETECTION'
const WEB_DETECTION = 'WEB_DETECTION'

function createRequests(imageUris) {
  let resources = {
    requests: [], 
    outputConfig
  } 
  for (let i = 0; i < imageUris.length; i++) {
    let request = {
      image: {source: {imageUri: imageUris[i]}},
      features: [{type: LABEL_DETECTION}, {type: WEB_DETECTION}]
    }
    resources.requests.push(request)
  }
  console.log(resources)
  return resources
}

我自己发出请求的函数:

// Imports the Google Cloud Client Library
const vision = require('@google-cloud/vision')

// Creates a client
const client = new vision.ImageAnnotatorClient()

const getImageUrls = require('./get-image-urls.js')
const createRequests = require('./create-requests.js')
const BUCKET_NAME = 'creative-engine'

function detectLabelsFromImage() {
  return new Promise(async(resolve, reject) => {
    try {
      let imageUris = await getImageUrls(BUCKET_NAME)
      let resources = createRequests(imageUris)
      try {
        let responses = await client.asyncBatchAnnotateImages(resources)
        const imageResponses = responses[0].responses
        imageResponses.forEach(imageResponse => {
          console.log('LABELS: ')
          const labels = imageResponse.labelAnnotations
          labels.forEach(label => {
            console.log(`label: ${label.description} | score: ${label.score}`)
          });
          console.log('WEB ENTITIES: ')
          const webEntities = imageResponse.webDetection.webEntities
          webEntities.forEach(webEntity => {
            console.log(`label: ${webEntity.description} | score: ${webEntity.score}`)
          });
        })

      } catch (err) {
        console.error('ERROR: ', err)
      }
    } catch (e) {
      reject(e)
    }
  })
}

这是我得到的错误:

ERROR: Error: 3 INVALID_ARGUMENT: OutputConfig is required.

当我查看 Google 文档 here 时,它指出我需要为 JSON 输出使用 Google 云存储。

我不想使用我的 Google Cloud 信息创建结算帐户。有没有办法在我写入本地 JSON 文件的地方执行此操作?

感谢您的帮助!

根据您分享的 link 所说,无法使用 Cloud Vision API 编写本地 JSON 文件。您必须使用 GCS 来存储文件。