Python Client for Google Cloud Vision

image image image

The Google Cloud Vision API enables developers to understand the content of an image by encapsulating powerful machine learning models in an easy to use REST API. It quickly classifies images into thousands of categories (e.g., “sailboat”, “lion”, “Eiffel Tower”), detects individual objects and faces within images, and finds and reads printed words contained within images. You can build metadata on your image catalog, moderate offensive content, or enable new marketing scenarios through image sentiment analysis. Analyze images uploaded in the request or integrate with your image storage on Google Cloud Storage.

Quick Start

In order to use this library, you first need to go through the following steps:

  1. Select or create a Cloud Platform project.

  2. Enable billing for your project.

  3. Enable the Google Cloud Vision API.

  4. Setup Authentication.

Installation

Install this library in a virtualenv using pip. virtualenv is a tool to create isolated Python environments. The basic problem it addresses is one of dependencies and versions, and indirectly permissions.

With virtualenv, it’s possible to install this library without needing system install permissions, and without clashing with the installed system dependencies.

Supported Python Versions

Python >= 3.6

Deprecated Python Versions

Python == 2.7.

The last version of this library compatible with Python 2.7 is google-cloud-vision==1.0.0.

RaspberryPi ARM devices

Note: Raspberry Pi ARMv6 is not supported because there is an internal binary google that does not comply with armv6 processors.

Mac/Linux

pip install virtualenv
virtualenv <your-env>
source <your-env>/bin/activate
<your-env>/bin/pip install google-cloud-vision

Windows

pip install virtualenv
virtualenv <your-env>
<your-env>\Scripts\activate
<your-env>\Scripts\pip.exe install google-cloud-vision

Example Usage

from google.cloud import vision

client = vision.ImageAnnotatorClient()
response = client.annotate_image({
  'image': {'source': {'image_uri': 'gs://my-test-bucket/image.jpg'}},
  'features': [{'type_': vision.Feature.Type.FACE_DETECTION}]
})

Known Limitations

Pylint Does Not Work Out Of The Box

Pylint throws errors by default when checking code that uses feature methods on the ImageAnnotatorClient class, such as label_detection() or text_detection().

As a workaround, member checking on all methods of the ImageAnnotatorClient can be disabled using Pylint’s generated-members option. To do this on a line-by-line basis, add a comment like # pylint: disable=no-member to suppress this error. To do this for a whole project, you can add the following lines to a .pylintrc file in your project:

[TYPECHECK]

generated-members=<<REGULAR EXPRESSION>>

Substitute a regular expression of your choosing that matches all lines for which you want to disable this error check. For example, if you choose a convention of naming your ImageAnnotatorClient variables image_annotator_client, then your regex could be image_annotator_client.\* or something similar.

Next Steps