2016-11-09 54 views
0

我正在使用Watson Visual Recognition併成功創建了自定義分類器。該分類表明它已準備好以下狀態:Watson未使用自定義分類器的視覺識別

{ 
"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命令來測試該分類:

curl -X POST -F "[email protected]_5309.JPG" -F "[email protected]" "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classify?api_key={valid API key}&version=2016-05-20&threshold=0.0" 

和paintings.json文件具有以下內容:

{ 
"parameters":{ 
    "classifier_ids": [ 
    "water", 
    "collage", 
    "forest", 
    "beach", 
    "still", 
    "abstract", 
    "building", 
    "garden" 
    ] , 
    "owner":"me", 
    "threshold":".5" 
} 
} 

運行該查詢返回以下結果:

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

視覺識別顯然不使用我的分類器文件,我可能錯過了一些非常明顯的東西。我錯過了什麼想法?我下面這裏的文檔:https://www.ibm.com/watson/developercloud/visual-recognition/api/v3/#classify_an_image其中指出,JSON參數是:

classifier_ids - 分類ID的數組的影像以防止分類。

業主 - 與所述值(一個或多個)「IBM」和/或「」來指定要運行的分類器的數組。

閾值 - 浮點值,指定類必須顯示在響應中的最低分數。

回答

0

@Matt ...似乎在文檔中有一個更大的錯誤。我嘗試了通過-F "[email protected]"調用的JSON文件的結構。我想到json文件中的parameter元素可能會在curl語句中複製參數標識符。我的JSON文件現在看起來是這樣的:

{ 
    "classifier_ids": ["paintings_2--------2"], 
    "owners": "me", 
    "threshold":"0.0" 
} 

這個工程上都Bluemix公共及Bluemix專用。

2

您的paintings.json文件中的數組classifier_ids應該有1個條目:"paintings_----"(使用數字ID代替破折號)而不是類名(水,拼貼等)。

因爲它是無法理解的類名稱爲classifier_id,API是從「默認」通用分類返回結果(因此該領域「custom_classes:0」)

此外,owners場應該如果使用了複數形式 - 但是,"owners": "me"是一種速記,用於告訴API使用所有自定義分類器並跳過默認分類器。在你的情況下,你確切知道你想調用哪一個classifier_id,所以你可以省略owners字段。我只是仔細檢查了文檔示例,看到我們需要修正這兩個問題的API參考中的示例。

感謝您提供您問題中的所有細節,並祝您服務順利!

相關問題