Skip to content

Commit 455d71e

Browse files
authored
fix(vision): Improve logo detection (#4209)
1 parent 9febceb commit 455d71e

File tree

1 file changed

+60
-9
lines changed

1 file changed

+60
-9
lines changed

vision/detect.js

Lines changed: 60 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ async function detectTextGCS(bucketName, fileName) {
202202
async function detectLogos(fileName) {
203203
// [START vision_logo_detection]
204204
const vision = require('@google-cloud/vision');
205+
const fs = require('fs');
205206

206207
// Creates a client
207208
const client = new vision.ImageAnnotatorClient();
@@ -211,17 +212,42 @@ async function detectLogos(fileName) {
211212
*/
212213
// const fileName = 'Local image file, e.g. /path/to/image.png';
213214

215+
const imageBuffer = fs.readFileSync(fileName);
216+
const base64Image = imageBuffer.toString('base64');
217+
218+
const request = {
219+
requests: [
220+
{
221+
image: {
222+
content: base64Image,
223+
},
224+
features: [
225+
{
226+
type: 'LOGO_DETECTION',
227+
},
228+
],
229+
},
230+
],
231+
};
232+
214233
// Performs logo detection on the local file
215-
const [result] = await client.logoDetection(fileName);
216-
const logos = result.logoAnnotations;
217-
console.log('Logos:');
218-
logos.forEach(logo => console.log(logo));
234+
const [response] = await client.batchAnnotateImages(request);
235+
236+
response.responses.forEach(res => {
237+
if (res.logoAnnotations) {
238+
console.log('Logos:');
239+
res.logoAnnotations.forEach(logo => console.log(logo));
240+
}
241+
242+
if (res.error) {
243+
console.error(` - Error: ${res.error.message}`);
244+
}
245+
});
219246
// [END vision_logo_detection]
220247
}
221248

222249
async function detectLogosGCS(bucketName, fileName) {
223250
// [START vision_logo_detection_gcs]
224-
// Imports the Google Cloud client libraries
225251
const vision = require('@google-cloud/vision');
226252

227253
// Creates a client
@@ -233,11 +259,36 @@ async function detectLogosGCS(bucketName, fileName) {
233259
// const bucketName = 'Bucket where the file resides, e.g. my-bucket';
234260
// const fileName = 'Path to file within bucket, e.g. path/to/image.png';
235261

262+
const request = {
263+
requests: [
264+
{
265+
image: {
266+
source: {
267+
imageUri: `gs://${bucketName}/${fileName}`,
268+
},
269+
},
270+
features: [
271+
{
272+
type: 'LOGO_DETECTION',
273+
},
274+
],
275+
},
276+
],
277+
};
278+
236279
// Performs logo detection on the gcs file
237-
const [result] = await client.logoDetection(`gs://${bucketName}/${fileName}`);
238-
const logos = result.logoAnnotations;
239-
console.log('Logos:');
240-
logos.forEach(logo => console.log(logo));
280+
const [response] = await client.batchAnnotateImages(request);
281+
282+
response.responses.forEach(res => {
283+
if (res.logoAnnotations) {
284+
console.log('Logos:');
285+
res.logoAnnotations.forEach(logo => console.log(logo));
286+
}
287+
288+
if (res.error) {
289+
console.error(` - Error: ${res.error.message}`);
290+
}
291+
});
241292
// [END vision_logo_detection_gcs]
242293
}
243294

0 commit comments

Comments
 (0)