2

我正在使用 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"
    }
  ]
}        

(也尝试不使用分类器数组。得到了同样的错误)并得到一个错误:{“code”:400,“error”:“无法执行学习任务:没有给出分类器名称”}

json有问题吗?

4

2 回答 2

3

要指定要使用的分类器,您需要发送类似于以下内容的 JSON 对象:

{"classifier_ids": ["Black"]}

Black在 CURL 中用作分类器 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 。在文档
中了解有关该服务的更多信息。

于 2016-03-23T22:45:16.933 回答
2

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

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

{
"classifier_ids": ["tomato_1"]
}

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

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"
于 2016-03-24T17:27:28.413 回答