首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >沃森视觉识别-不使用自定义分类器

沃森视觉识别-不使用自定义分类器
EN

Stack Overflow用户
提问于 2016-11-09 16:58:26
回答 3查看 547关注 0票数 0

我正在使用沃森视觉识别,并成功地创建了一个自定义分类器。分类器显示,它已准备就绪,状态如下:

代码语言:javascript
复制
{
"classifier_id": "paintings_----",
"name": "paintings",
"owner": "--- owner id -----",
"status": "ready",
"created": "2016-11-09T14:55:45.835Z",
"classes": [
    {"class": "water"},
    {"class": "collage"},
    {"class": "forest"},
    {"class": "beach"},
    {"class": "still"},
    {"class": "abstract"},
    {"class": "building"},
    {"class": "garden"}
],
"retrained": "2016-11-09T15:11:50.740Z"
}

我正在执行以下curl命令来测试这个分类器:

代码语言:javascript
复制
curl -X POST -F "images_file=@IMG_5309.JPG" -F "parameters=@paintings.json" "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key={valid API key}&version=2016-05-20&threshold=0.0"

paintings.json文件具有以下内容:

代码语言:javascript
复制
{
"parameters":{
  "classifier_ids": [
     "water",
     "collage",
     "forest",
     "beach",
     "still",
     "abstract",
     "building",
     "garden"
    ] ,
  "owner":"me",
  "threshold":".5"
 }
}

运行此查询将返回以下结果:

代码语言:javascript
复制
{
"custom_classes": 0,
"images": [
    {
        "classifiers": [
            {
                "classes": [
                    {
                        "class": "vegetation",
                        "score": 1.0
                    },
                    {
                        "class": "flower",
                        "score": 0.668188,
                        "type_hierarchy": "/products/gifts/flower"
                    },
                    {
                        "class": "purple",
                        "score": 0.268941,
                        "type_hierarchy": "/colors/purple"
                    }
                ],
                "classifier_id": "default",
                "name": "default"
            }
        ],
        "image": "IMG_5309.JPG"
    }
],
"images_processed": 1
}

视觉识别显然不是使用我的分类器文件,我可能遗漏了一些非常明显的东西。对我错过了什么有什么想法吗?我在这里遵循文档:image,它声明JSON参数是:

classifier_ids -一个分类器ID数组,用于对图像进行分类。

owners --一个数组,其值为"IBM“和/或"me”,用于指定要运行的分类器。

阈值-一个浮点值,指定必须在响应中显示一个类的最小分数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-10 12:27:04

@马特。文档中似乎有更大的错误。我试验了JSON文件的结构,该文件通过-F "parameters=@paintings.json"调用。我突然意识到,json文件的参数元素可能重复了curl语句中的参数标识符。我的json文件现在看起来如下:

代码语言:javascript
复制
{
  "classifier_ids": ["paintings_2--------2"],
  "owners": "me",
  "threshold":"0.0"
}

这既适用于布卢米克斯公众,也适用于布卢米克斯专用。

票数 0
EN

Stack Overflow用户

发布于 2016-11-09 23:08:10

您的classifier_ids文件中的数组paintings.json应该有一个条目:"paintings_----" (使用数字id而不是破折号),而不是类名(水、拼贴等等)。

由于无法将类名理解为classifier_id,所以API将返回“默认”通用分类器的结果(因此字段"custom_classes: 0")。

此外,如果使用owners字段,则应该是复数的--但是,"owners": "me"是告诉API使用所有自定义分类器并跳过默认分类器的缩写。在您的例子中,您确切地知道要调用哪个classifier_id,这样就可以省略owners字段。我只是反复检查了docs示例,发现我们需要在API引用中修复这两个问题上的示例。

谢谢你把所有的细节都包括在你的问题中,并祝你的服务好运!

票数 2
EN

Stack Overflow用户

发布于 2018-03-12 06:01:57

尝试将阈值更改为0.5。为我工作过。不知道为什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40512241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档