Deep Dive with IBM Watson Visual Recognition

Son Le - IBM Cloud Technical Evangelist

E: sonle@sg.ibm.com

T: @thsonvt

Agenda

  • Introduction
  • How it works
    • API Calls
    • Train a custom image classifier
    • Demo
  • Other similar IBM Bluemix services
  • Q&A

IBM Watson Visual Recognition

* Answering the question: “What is in this image?” 

 

* Automatically annotating images based on visual content alone, processing the pixels of an image

 

* Uses semantic classifiers built with machine-learning technology to recognize visual entities.

 

* The service can learn from images you provide

IBM Watson Visual Recognition - How it works

2 main concepts: Classifier, Score

API Calls

Method Usage
POST /v2/classify Classify an image
GET /v2/classifiers Retrieve a list of classifiers
GET /v2/classifiers/{classifier_id}
 
Retrieve classifier details
POST /v2/classifiers Create a classifier
DELETE /v2/classifiers/{classifier_id} Delete a classifier

POST /v2/classify - Classify an image

POST /v2/classify - Classify an image

curl -u "{username}":"{password}" \
-X POST \
-F "images_file=@test.jpg" \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"
{
  "images": [
    {
      "image": "test.jpg",
      "scores": [
        {
          "classifier_id": "sports",
          "name": "Sports",
          "score": 0.700104
        },
        {
          "classifier_id": "cricket_1234",
          "name": "Cricket",
          "score": 0.689532
        }
      ]
    }
  ]
}

POST /v2/classify - Classify an image

* Submit images in batches as compressed (.zip) files

 

Batches of images are not required to be a specific size

 

* Can send up to six requests at the same time

 

* Specify only the classifiers you want results for in the classifier_ids parameter

 

GET /v2/classifiers - Retrieve a list of classifiers

GET /v2/classifiers - Retrieve a list of classifiers

curl -u "{username}":"{password}" \
-X GET \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers?version=2015-12-02"
{
  "classifiers": [
    {
      "classifier_id": "nightvsday_11138698",
      "name": "night vs day"
    },
    {
      "classifier_id": "tiger_458617357",
      "name": "tiger"
    },
    {
      "classifier_id": "Black",
      "name": "Black"
    },
    {
      "classifier_id": "Blue",
      "name": "Blue"
    }
 ]
}

GET /v2/classifiers/{classifier_id} - Retrieve classifier details

GET /v2/classifiers/{classifier_id} - Retrieve classifier details

curl -u "{username}":"{password}" \
-X GET \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers/tiger_1234?version=2015-12-02"
{
   "name": "tiger",
   "classifier_id": "tiger_1234",
   "created": "2015-03-25T12:00:00",
   "owner": "ss324f-23sf65-sdf321-dfsgh87j"   
}

POST /v2/classifiers - Create a classifier

POST /v2/classifiers - Create a classifier

curl -u "{username}":"{password}" \
-X POST \
-F "positive_examples=@tigers.zip" \
-F "negative_examples=@lions_leopards.zip" \
-F "name=tiger" \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers?version=2015-12-02"
{
  "name": "tiger",
  "classifier_id": "tiger_1234",
  "created": "2015-11-23 17:43:11+00:00",
  "owner": "dkfj32-al543-324js-382js"
}

POST /v2/classifiers - Create a classifier

Images can be in .jpg, .png, or .gif format

* Max of 10,000 entries (folders and images) or 100 MB accepted

 

* Min of 50 images in each .zip file is recommended

 

* For better results, upload a total of 150-200 images, with an equal number of negative images to positive images.

 

*The positive images and negative images you provide must be different. 

 

* Training a classifier on more images reaches its peak at around 5000 images

POST /v2/classifiers - Create a classifier

DELETE /v2/classifiers/{classifier_id} - Delete a classifier

DELETE /v2/classifiers/{classifier_id} - Delete a classifier

curl -u "{username}":"{password}" \ -X DELETE \ "https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers/tiger_1234?version=2015-12-02"
{}

Error Handling

Error Code Description
200 Success
400 - Bad Request Missing a required parameter, or invalid parameter value
401 - Unauthorized No API key provided, or the API key provided was not valid
404 - Not Found The requested item or parameter doesn't exist.
500 type response Internal system error

Working with Watson Visual Recognition - Some Caveats

* Use images with a resolution of at least 320 by 320 pixels to obtain meaningful results

 

Classifiers that are provided by the service might change or be removed without notice

 

The service is not perfect! It might mislabel an image

 

Custom classifiers created while the Visual Recognition service is in beta will need to be re-created when the service reaches GA.

 

* You cannot update an existing classifier; you can only create new classifiers or delete existing classifiers

Visual Recognition API Reference

Visual Recognition API Explorer

Demo

Bluemix Services Similar to Visual Recognition

AlchemyVision - Automatically extract and tag images

Demo: http://vision.alchemy.ai/

Bluemix Services Similar to Visual Recognition

Visual Insights

Demo: http://visual-insights-demo.mybluemix.net/

http://bit.ly/bluemix28012016-survey

Watson Visual Recognition

By Son Le Thanh

Watson Visual Recognition

  • 1,002