Watson视觉识别,针对java中的多个分类器进行分类

时间:2016-04-12 15:18:20

标签: java android ibm-cloud ibm-watson visual-recognition

我在API文档中发现了这个curl命令,它可以根据多个分类器对图像进行分类:

    curl -u "{username}":"{password}" \
-X POST \
-F "images_file=@batch1.zip" \
-F "classifier_ids=<classifierlist.json" \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

我想知道是否有可能在java中这样做,因为我正在使用Watson的视觉识别服务开发一个Android程序。

谢谢

2 个答案:

答案 0 :(得分:4)

使用本教程设置Java环境

https://developer.ibm.com/recipes/tutorials/bluemix-watson-apis-quickstart-using-java-sdk/

然后看看另一个教程,该教程展示了如何使用Java代码

来使用多个分类器

https://developer.ibm.com/recipes/tutorials/estimate-a-childs-age-based-on-photos-using-watson-visual-recognition/

简而言之,您的代码将如下所示

步骤#1 - 创建分类器

 VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2015_12_02);
 service.setUsernameAndPassword("*******", "********");

 File p1 = new File("/home/leoks/Desktop/models/pos2010-2011.zip");
 File n1 = new File("/home/leoks/Desktop/models/pos2014-2015.zip");
 VisualClassifier c1 = service.createClassifier("2010", p1, n1);

 File p3 = new File("/home/leoks/Desktop/models/pos2014-2015.zip");
 File n3 = new File("/home/leoks/Desktop/models/pos2010-2011.zip");
 VisualClassifier c3 = service.createClassifier("2014", p3, n3);

System.out.println(service.getClassifiers());

步骤#2 - 使用它们

File image = new File("...");

 VisualClassifier vc1 = new VisualClassifier("2010_633980596");
 VisualClassifier vc2 = new VisualClassifier("2014_450835300");
 VisualClassification result = service.classify(image, vc1,vc2);
 System.out.println(result);

如果您的图像由分类器识别,它将返回分数,否则将不会返回答案。 E.g。

{
 "images": [
 {
 "image": "2012.jpg",
 "scores": [
 {
 "classifier_id": "2010_633980596",
 "name": "2010",
 "score": 0.992153
 },
 {
 "classifier_id": "2014_450835300",
 "name": "2014",
 "score": 0.833185
 }
 ]
 }
 ]
}

查看教程,他们按照分步说明进行操作。祝你好运。

答案 1 :(得分:1)

您可以使用Watson Java SDK - Visual Recognition。它提供了一个Java客户端库来使用Watson Developer Cloud服务,这是一组REST API和SDK,它们使用认知计算来解决复杂问题。

在您的情况下,您可以使用Visual Recognition类的 classify()方法。看看VisualRecognition Class Documentation