我必须使用 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 来存储文件。
我正在尝试执行 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 来存储文件。