Ibm cloud IBM Watson在Java中的视觉识别

Ibm cloud IBM Watson在Java中的视觉识别,ibm-cloud,ibm-watson,visual-recognition,Ibm Cloud,Ibm Watson,Visual Recognition,我想在我的android应用程序中使用IBM Watson Visual Recognition,并想在JAVA中调用API,但我没有找到任何示例或JAVA中使用此服务的方法列表的参考。您可以看到缺少JAVA示例。请帮助我找到一些合适的例子或这些方法的任何参考。还请告诉我什么是bluemix平台,使用IBM Watson Visual Recognition是否需要使用它?提前谢谢 查看,尤其是,它模仿了节点中的用例(源代码/培训图像) 我是IBM Watson developer Cloud的

我想在我的android应用程序中使用IBM Watson Visual Recognition,并想在JAVA中调用API,但我没有找到任何示例或JAVA中使用此服务的方法列表的参考。您可以看到缺少JAVA示例。请帮助我找到一些合适的例子或这些方法的任何参考。还请告诉我什么是bluemix平台,使用IBM Watson Visual Recognition是否需要使用它?提前谢谢

查看,尤其是,它模仿了节点中的用例(源代码/培训图像)

我是IBM Watson developer Cloud的开发者传道者。

查看本教程()

它使用了watsonjavasdk()的一个过时版本,因此代码可能有一些变化,但基本上就是这样

为了使用视觉识别,您可以使用常规的bluemix帐户,因此可以使用Watson视觉识别API

更新

使用这个POM

<dependencies>
    <dependency>
        <groupId>com.ibm.watson.developer_cloud</groupId>
        <artifactId>java-sdk</artifactId>
        <version>3.0.0-RC1</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
</dependencies>

com.ibm.watson.developer\u云
java sdk
3.0.0-RC1
公地io
公地io
2.5
您需要:

  • 安装
  • 在Bluemix中创建服务的实例
  • 使用在Bluemix中创建服务时获得的
    用户名
    密码
    更新下面的代码段
代码:

公共类VisualRecognitionExample{
公共静态void main(字符串[]args){
视觉识别服务=新的视觉识别(“2016-05-20”);
service.setUserName和密码(“,”);
System.out.println(“使用所有分类器进行分类”);
选项=新建ClassifyImagesOptions.Builder()
.images(新文件(“car.png”))
.build();
结果=service.classify(options.execute();
系统输出打印项次(结果);
}
}

我首先使用curl进行了检查,找到了使用java的解决方案。您可以使用以下代码:

使用:OkClient3罐

OkHttpClient client = new OkHttpClient();
            File file = new File(String.valueOf(path));
            RequestBody formBody = new MultipartBody.Builder()
                    .setType(MultipartBody.FORM)
                    .addFormDataPart("image_file", "images.jpeg", RequestBody.create(MediaType.parse("image/jpeg"), file))
                    .build();
            Request request = new Request.Builder().url(new URL("https://gateway-a.watsonplatform.net/visual-recognition/api/v3/collections/{classifier_id}/find_similar?limit=100&api_key=YOUR_API&version=2016-05-20")).post(formBody).build();
            Response response = client.newCall(request).execute(); 
            if (!response.isSuccessful())
                throw new Exception("Unexpected code " + response);
            System.out.println(response.message());
            jsonString = response.body().string().toString();
           System.out.println(jsonString);

谢谢Rich Edwards。我还有一个问题,v3可用吗?因为我试图使用它,但我的Android Studio在网络上找不到它。是的,ClassifyImagesOptions在v2和v3中都未定义。我正在使用这两个依赖项..'com.ibm.watson.developer_cloud:java包装器:1.0.3'&'com.ibm.watson.developer_cloud:java sdk:3.0.0-RC1'也无法使用“VisualRecognition.VERSION_DATE_2016_05_19”。我使用的是“VisualRecognition.VERSION\u DATE\u 2015\u 12\u 02”。@Algor7该服务尚未提供。它将于明天发布。您能告诉我为什么我在使用正确的凭据(不是我们登录Bluemix时使用的凭据)时会收到未经授权的异常吗?当你们启动新版本(v3)时,你们是否删除了对旧版本(v2)的支持?谢谢你们的回答。但是我在导入ClassifyImagesOptions类时出错。。我正在使用这两个依赖项…”com.ibm.watson.developer_cloud:java包装器:1.0.3'&'com.ibm.watson.developer_cloud:javasdk:3.0.0-RC1'。有没有办法解决这个问题?也无法使用“VisualRecognition.VERSION_DATE_2016_05_19”。我现在使用的是“VisualRecognition.VERSION\u DATE\u 2015\u 12\u 02”。我现在遇到了“com.ibm.watson.developer\u cloud.service.exception.UnauthorizedException:Unauthorized:由于凭据无效,访问被拒绝”错误。但我确信我使用的是正确的凭据(不是我用来登录的凭据)。双击bluemix控制台中的服务并在左侧查找该服务的凭据Thank@German Attanasio这真的很有帮助。我正在从默认照片应用程序中选择图像,并在onActivityResult()中接收图像uri。如何将此图像uri更改为文件对象,以便可以在service.classify(FileObject.execute())中将其作为pramater传递。我正在使用此文件File=new文件(imageUri.getPath());结果=service.classify(file.execute();但在这一行中出现错误。它给了我“java.lang.IllegalArgumentException:image不能为null或找不到”错误尝试发送InputStream而不是文件,否则应用程序需要有访问该文件的权限
OkHttpClient client = new OkHttpClient();
            File file = new File(String.valueOf(path));
            RequestBody formBody = new MultipartBody.Builder()
                    .setType(MultipartBody.FORM)
                    .addFormDataPart("image_file", "images.jpeg", RequestBody.create(MediaType.parse("image/jpeg"), file))
                    .build();
            Request request = new Request.Builder().url(new URL("https://gateway-a.watsonplatform.net/visual-recognition/api/v3/collections/{classifier_id}/find_similar?limit=100&api_key=YOUR_API&version=2016-05-20")).post(formBody).build();
            Response response = client.newCall(request).execute(); 
            if (!response.isSuccessful())
                throw new Exception("Unexpected code " + response);
            System.out.println(response.message());
            jsonString = response.body().string().toString();
           System.out.println(jsonString);