Watson 视觉识别,针对 java 中的多个分类器进行分类
Watson visual recognition, classify against multiple classifiers in java
我在 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 程序。
谢谢
您可以使用Watson Java SDK - Visual Recognition。它提供了一个 Java 客户端库来使用 Watson Developer Cloud 服务,这是一组使用认知计算来解决复杂问题的 REST API 和 SDK。
在您的情况下,您可以使用视觉识别 class 的 classify() 方法。看看 VisualRecognition Class Documentation.
使用本教程设置您的 Java 环境
https://developer.ibm.com/recipes/tutorials/bluemix-watson-apis-quickstart-using-java-sdk/
然后查看其他教程,该教程展示了如何使用 Java 代码
使用多个分类器
简而言之,您的代码将如下所示
第 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);
如果您的图像被分类器识别,它将 return 得分,否则,不会 return 编辑任何答案。例如
{
"images": [
{
"image": "2012.jpg",
"scores": [
{
"classifier_id": "2010_633980596",
"name": "2010",
"score": 0.992153
},
{
"classifier_id": "2014_450835300",
"name": "2014",
"score": 0.833185
}
]
}
]
}
查看教程,它们是分步说明。祝你好运。
我在 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 程序。
谢谢
您可以使用Watson Java SDK - Visual Recognition。它提供了一个 Java 客户端库来使用 Watson Developer Cloud 服务,这是一组使用认知计算来解决复杂问题的 REST API 和 SDK。
在您的情况下,您可以使用视觉识别 class 的 classify() 方法。看看 VisualRecognition Class Documentation.
使用本教程设置您的 Java 环境
https://developer.ibm.com/recipes/tutorials/bluemix-watson-apis-quickstart-using-java-sdk/
然后查看其他教程,该教程展示了如何使用 Java 代码
使用多个分类器简而言之,您的代码将如下所示
第 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);
如果您的图像被分类器识别,它将 return 得分,否则,不会 return 编辑任何答案。例如
{
"images": [
{
"image": "2012.jpg",
"scores": [
{
"classifier_id": "2010_633980596",
"name": "2010",
"score": 0.992153
},
{
"classifier_id": "2014_450835300",
"name": "2014",
"score": 0.833185
}
]
}
]
}
查看教程,它们是分步说明。祝你好运。