Каков наилучший способ создать ссылку из изображения, загруженного пользователем?

#node.js #firebase #vue.js #ibm-watson #visual-recognition

#node.js #firebase #vue.js #ibm-watson #визуальное распознавание

Вопрос:

Я пытаюсь создать приложение, которое использует IBM Watson Visual Recognition для сортировки отходов. Watson работает в серверной части (node js), и я хотел разработать приложение Vue .

Watson нужна ссылка на изображение, и я подумывал об использовании firebase для создания ссылки, когда пользователь загружает изображение.

Мой вопрос: «Есть ли лучший способ сделать это, учитывая, что изображение и его результаты должны быть уникальными для пользователя и не должны сохраняться?»

Я мало что знаю о визуальном распознавании и совсем немного о firebase. Итак, если есть способ справиться с этим лучше, пожалуйста, скажите. Спасибо!

Комментарии:

1. Вам нужно отправить изображение на серверную часть? Или это может перейти непосредственно от пользователя к Watson?

2. Насколько я знаю, Watson нужна ссылка, и это все. Итак, мне нужно его сгенерировать. Я буду искать и посмотреть, является ли это единственным способом.

Ответ №1:

Согласно документации API, вы можете отправить изображение для классификации либо как URL, либо как readstream. https://cloud.ibm.com/apidocs/visual-recognition/visual-recognition-v3?code=node#classify

В примере, представленном в документах API, используется поток чтения :

 
const fs = require('fs');
const VisualRecognitionV3 = require('ibm-watson/visual-recognition/v3');
const { IamAuthenticator } = require('ibm-watson/auth');

const visualRecognition = new VisualRecognitionV3({
  version: '2018-03-19',
  authenticator: new IamAuthenticator({
    apikey: '{apikey}',
  }),
  serviceUrl: '{url}',
});

const classifyParams = {
  imagesFile: fs.createReadStream('./fruitbowl.jpg'),
  owners: ['me'],
  threshold: 0.6,
};

visualRecognition.classify(classifyParams)
  .then(response => {
    const classifiedImages = response.result;
    console.log(JSON.stringify(classifiedImages, null, 2));
  })
  .catch(err => {
    console.log('error:', err);
  });

  

Комментарии:

1. Да, вы правы. Но в итоге я использовал Firebase, загрузил его и сгенерировал ссылку, отправил эту ссылку на серверную часть и извлек результаты… И удаление изображения в хранилище Firebase.

Ответ №2:

В итоге я загрузил изображение в хранилище firebase, отправил ссылку на сервер, извлек результаты, а затем удалил изображение из firebase.