视觉识别错误400:无法执行学习任务,没有给出分类器名称

时间:2016-03-23 22:32:02

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

我正在使用Visual Recognition curl命令为图像添加分类:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids=classifierlist.json" \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers?version=2015-12-02"

json文件:

{
  "classifiers": [
    { 
        "name": "tomato",
        "classifier_id": "tomato_1",
        "created": "2016-03-23T17:43:11+00:00",
        "owner": "xyz"
    }
  ]
}        

(也试过没有分类器数组。得到了同样的错误) 并收到错误: {"代码":400,"错误":"无法执行学习任务:没有给出分类器名称"}

json出了什么问题?

2 个答案:

答案 0 :(得分:3)

要指定要使用的分类器,需要发送类似于:

的JSON对象
{"classifier_ids": ["Black"]}

在CURL中使用Black作为分类器ID的示例:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids={\"classifier_ids\":[\"Black\"]}"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

如果要在JSON文件中列出分类器ID,则:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids=@classifier_ids.json"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

classifier_ids.json的位置:

{
 "classifier_ids": ["Black"]
}

您可以在API Explorer中测试Visual Recognition API 在documentation

中详细了解该服务

答案 1 :(得分:2)

您引用的模型架构以及API reference中列出的内容是响应json的格式。这是API如何返回结果的示例。

用于指定分类器的json的格式应该是一个简单的json对象,正如德国人所建议的那样。在文件中,它将是:

{
"classifier_ids": ["tomato_1"]
}

您还需要使用<而不是@来使服务正确读取json文件的内容。 (并且您可能需要在命令行上引用<字符,因为它具有特殊含义(重定向输入)。)所以您的卷曲将是:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids=<classifier_ids.json"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"