我正在使用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出了什么问题?
答案 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"