我已经针对IBMs预先配置的分类器对图像进行了分类。
现在,我尝试创建并使用自己的分类器(称为“圣诞老人”)来识别圣诞老人的图像:
VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_19);
service.setApiKey("***************");
File santa = new File("src/images/Santa.zip");
File notSanta = new File("src/images/NotSanta.zip");
CreateClassifierOptions classifierOptions = new CreateClassifierOptions.Builder()
.classifierName("Santa").addClass("Santa", santa).negativeExamples(notSanta).build();
VisualClassifier santaClassifier = service.createClassifier(classifierOptions).execute();
List<String> classifierIds = new ArrayList<String>();
classifierIds.add(santaClassifier.getId());
ClassifyImagesOptions classifyOptionsSanta = new ClassifyImagesOptions.Builder()
.classifierIds(classifierIds)
.images(new File ("src/images/lilSanta.png")).build();
VisualClassification resultSanta = service.classify(classifyOptionsSanta).execute();
System.out.println(resultSanta);但我得到的答案是:
{
"images_processed": 0,
"images": [
{
"classifiers": [],
"image": "lilSanta.png"
}
]
}为什么没有图像处理,答案中没有分类器?我做错了什么?
编辑
我现在用Curl创建了分类器,等待它得到充分的训练。然后我注意到了分类器-ID,现在我可以很容易地使用Java了。我现在还用了50张照片。谢谢你的帮助!
发布于 2016-07-04 08:11:03
我现在用Curl创建了分类器,等待它得到充分的训练。然后我注意到了分类器-ID,现在我可以很容易地使用Java了。我现在还用了50张照片。谢谢你的帮助!
发布于 2016-06-21 19:20:27
images_processed为零,因为服务不会因为使用自定义分类器而向您收费。该参数用于计算API调用将花费多少。
你的代码看起来没问题。我做了一些小改动并降低了阈值(默认情况下是0.5):
VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_19);
service.setApiKey("***************");
CreateClassifierOptions classifierOptions = new CreateClassifierOptions.Builder()
.classifierName("Santa")
.addClass("Santa", new File("src/images/Santa.zip"))
.negativeExamples(new File("src/images/NotSanta.zip"))
.build();
VisualClassifier santaClassifier = service.createClassifier(classifierOptions).execute();
ClassifyImagesOptions classifyOptionsSanta = new ClassifyImagesOptions.Builder()
.classifierIds(santaClassifier.getId())
.images(new File ("src/images/lilSanta.png"))
.threshold(0.0)
.build();
VisualClassification resultSanta = service.classify(classifyOptionsSanta).execute();
System.out.println(resultSanta);确保你发送了50张圣诞老人和非圣诞老人的照片。我发现当我使用mac创建zip时,我会得到一些额外的__MACOX文件。使用unzip检查zip文件
unzip -l <zip-file>https://stackoverflow.com/questions/37939511
复制相似问题