2
votes

I am using Visual Recognition curl command to add a classification to an image:

curl -u "user":"password"  \
-X POST \
-F "[email protected]" \
-F "classifier_ids=classifierlist.json" \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers?version=2015-12-02"

json file:

{
  "classifiers": [
    { 
        "name": "tomato",
        "classifier_id": "tomato_1",
        "created": "2016-03-23T17:43:11+00:00",
        "owner": "xyz"
    }
  ]
}        

(Also tried without the classifiers array. Got the same error) and getting an error: {"code":400,"error":"Cannot execute learning task : no classifier name given"}

Is something wrong with the json?

2

2 Answers

3
votes

To specify the classifiers you want to use you need to send a JSON object similar to:

{"classifier_ids": ["Black"]}

An example using Black as classifier id in CURL:

curl -u "user":"password"  \
-X POST \
-F "[email protected]" \
-F "classifier_ids={\"classifier_ids\":[\"Black\"]}"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

If you want to list the classifier ids in a JSON file then:

curl -u "user":"password"  \
-X POST \
-F "[email protected]" \
-F "classifier_ids=@classifier_ids.json"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

Where classifier_ids.json has:

{
 "classifier_ids": ["Black"]
}

You can test the Visual Recognition API in the API Explorer.
Learn more about the service in the documentation.

2
votes

The model schema you are referencing, and what is listed in the API reference, is the format of the response json. It is an example of how the API will return your results.

The format of the json that you use to specify classifiers should be a simple json object, as German suggests. In a file, it would be:

{
"classifier_ids": ["tomato_1"]
}

You also need to use < instead of @ for the service to read the contents of the json file correctly. (And you might need to quote the < character on a command line since it has special meaning (redirect input).) So your curl would be:

curl -u "user":"password"  \
-X POST \
-F "[email protected]" \
-F "classifier_ids=<classifier_ids.json"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"