Java-IBM视觉识别:创建分类器
作者:互联网
我已经根据IBM的预配置分类器对图像进行了分类.
现在,我尝试创建然后使用自己的分类器(称为“圣诞老人”)来识别圣诞老人的图像:
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张图片.谢谢您的帮助!
解决方法:
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>
标签:ibm-watson,java 来源: https://codeday.me/bug/20191026/1940395.html