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

Visual Recognition error 400: Cannot execute learning task no classifier name given

我正在使用 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":"Cannot execute learning task : no classifier name given"}

json有问题吗?

要指定您要使用的分类器,您需要发送一个 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.
中测试视觉识别 API 在 documentation.

中了解有关该服务的更多信息

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

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

{
"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"