Java 中的 IBM Watson 视觉识别

IBM Watson Visual Recognition in Java

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

看看 Java SDK, and in particular the Visual Recognition example, which mimics the use case from the demo (node source code/training images for that here).

我是 IBM Watson Developer Cloud 的开发人员传播者。

查看本教程 (https://developer.ibm.com/recipes/tutorials/estimate-a-childs-age-based-on-photos-using-watson-visual-recognition/)。

它使用了 Watson Java SDK (https://github.com/watson-developer-cloud/java-sdk) 的过时版本,因此代码可能有一些变化,但基本上就是这样。

为了使用 Visual Recognition,您可以使用普通的 bluemix 帐户,这样您就可以使用 Watson Visual Recognition 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>

您需要:

  • 安装 Java-SDK 3.3.0
  • 在 Bluemix 中创建 Visual Recognition 服务的实例。
  • 使用您在 Bluemix 中创建服务时获得的 usernamepassword 更新下面的代码片段。

代码:

public class VisualRecognitionExample {

  public static void main(String[] args) {
    VisualRecognition service = new VisualRecognition("2016-05-20");
    service.setUsernameAndPassword("<username>", "<password>");

    System.out.println("Classify using all the classifiers");
    options = new ClassifyImagesOptions.Builder()
      .images(new File("car.png"))
      .build();
    result = service.classify(options).execute();
    System.out.println(result);    
  }
}

我先用 curl 检查并找到 java 的解决方案,您可以使用以下代码:

使用:OkClient3 jar

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);