使用完全相同的图片进行空分类

时间:2017-01-17 15:37:42

标签: java watson visual-recognition

我正在使用Watson VR,尝试训练,然后针对在其中一个zip文件中添加为正面示例的相同图片执行一个简单的自定义分类器。

我创建分类器的代码:

ClassifierOptions cOptions = new ClassifierOptions.Builder()
    .classifierName("Mena")
    .addClass("Mena", new File("/the/path/to/my_face.zip"))
    .addClass("Mena2", new File("/the/path/to/my_face_new.zip"))
    .build();

VisualClassifier classifier = VR_SERVICE.createClassifier(cOptions).execute();

.zip个文件包含我脸部的两个不同图像(.jpg) - 每个图像一个。

图像文件名不包含特殊字符。

然后我按如下方式运行分类服务:

ClassifyImagesOptions ciOptions = new ClassifyImagesOptions.Builder()
    .classifierIds(classifier.getId())
    .images(new File("/the/path/to/my_face.jpg")) // same file as one of the images 
    // uploaded previously in zip
    .threshold(0d) // tried specifying explicitly but changes nothing
    .build();

VisualClassification result = VR_SERVICE.classify(ciOptions).execute();

不幸的是,当我打印出结果时,没有快乐:

{
  "images_processed": 1,
  "images": [
    {
      "classifiers": [],
      "image": "my_face.jpg"
    }
  ]
}

考虑到我使用添加到分类器中的其中一张图片的完全相同的副本,我的印象是我做了一些完全错误的事情,特别是考虑到"classifiers": []部分。

任何指针?

1 个答案:

答案 0 :(得分:1)

  

.zip文件包含我脸部的两个不同图像(.jpg) - 每个图像。

培训时,包含示例的zip文件必须至少包含10个唯一示例。 (唯一性由每个图像文件的内容的哈希码确定。)

您是否检查过培训申请的结果?我怀疑它返回了400代码和关于最小数量示例的消息。

此外,分类器中的类是互斥的,因为分类器训练过程正在学习使第1类与其他类不同的原因。例如,"破窗" vs"正常窗口"。该系统也没有针对人脸识别进行优化(它适用于一般场景),但是在多个类中提供相同个体的图片(最好的情况)会导致它找到区分这两组示例的任何随机差异,如衣服或照明条件。