问题描述
我正在尝试创建一个使用IBM Watson Visual Recognition进行废物分类的应用程序。 Watson在后端(节点js)中运行,我想在Vue
中开发应用程序。
Watson需要指向图像的链接,我当时在考虑使用Firebase在用户上传图像时创建链接。
我的问题是:“考虑到图像及其结果对于用户而言应该是唯一的,而不必持久化,是否有更好的方法呢?”
我对视觉识别了解不多,但对Firebase的了解却很少。因此,如果有办法更好地处理问题,请说。谢谢!
解决方法
根据API文档,您可以提交要分类为url或readstream的图像。 https://cloud.ibm.com/apidocs/visual-recognition/visual-recognition-v3?code=node#classify
API文档中提供的示例使用readstream:
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);
});
,
我最终要做的是将图像上传到Firebase存储,将链接发送到服务器,获取结果,然后从Firebase中删除图像。