Vision API クライアント ライブラリ

このページでは、Cloud Vision API の Cloud クライアント ライブラリの使用方法を示します。以前の Google API クライアント ライブラリを含む、Cloud APIs のクライアント ライブラリの詳細については、クライアント ライブラリの説明をご覧ください。

beta libraries the Cloud Client Libraries for the Cloud Vision API

クライアント ライブラリのインストール

C#

詳細については、C# 開発環境の設定をご覧ください。
Install-Package Google.Cloud.Vision.V1 -Pre

Go

go get -u cloud.google.com/go/vision/apiv1

Java

詳細については、Java 開発環境の設定をご覧ください。 Maven を使用している場合は、次のものを pom.xml ファイルに追加します。
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-vision</artifactId>
  <version>1.97.0</version>
</dependency>
Gradle を使用している場合は、次のものを依存関係に追加します。
compile 'com.google.cloud:google-cloud-vision:1.97.0'
SBT を使用している場合は、次のものを依存関係に追加します。
libraryDependencies += "com.google.cloud" % "google-cloud-vision" % "1.97.0"

IntelliJ または Eclipse を使用している場合は、次の IDE プラグインを使用してプロジェクトにクライアント ライブラリを追加できます。

プラグインでは、サービス アカウントのキー管理などの追加機能も提供されます。詳細は各プラグインのドキュメントをご覧ください。

Node.js

詳細については、Node.js 開発環境の設定をご覧ください。
npm install --save @google-cloud/vision

PHP

composer require google/cloud-vision

Python

詳細については、Python 開発環境の設定をご覧ください。
pip install --upgrade google-cloud-vision

Ruby

詳細については、Ruby 開発環境の設定をご覧ください。
gem install google-cloud-vision

認証の設定

クライアント ライブラリを実行するには、まず、サービス アカウントを作成して環境変数を設定し、認証を設定する必要があります。以下の手順で認証を設定します。その他の認証方法については、GCP 認証のドキュメントをご覧ください。

true all display_as_tabs no_steps

クライアント ライブラリの使用

次の例は、クライアント ライブラリの使用方法を示しています。

C#

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の C# の設定手順に従ってください。詳細については、Vision API C# API のリファレンス ドキュメントをご覧ください。


    using Google.Cloud.Vision.V1;
    using System;

    namespace GoogleCloudSamples
    {
        public class QuickStart
        {
            public static void Main(string[] args)
            {
                // Instantiates a client
                var client = ImageAnnotatorClient.Create();
                // Load the image file into memory
                var image = Image.FromFile("wakeupcat.jpg");
                // Performs label detection on the image file
                var response = client.DetectLabels(image);
                foreach (var annotation in response)
                {
                    if (annotation.Description != null)
                        Console.WriteLine(annotation.Description);
                }
            }
        }
    }

Go

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の Go の設定手順に従ってください。詳細については、Vision API Go API のリファレンス ドキュメントをご覧ください。


    // Sample vision-quickstart uses the Google Cloud Vision API to label an image.
    package main

    import (
    	"context"
    	"fmt"
    	"log"
    	"os"

    	vision "cloud.google.com/go/vision/apiv1"
    )

    func main() {
    	ctx := context.Background()

    	// Creates a client.
    	client, err := vision.NewImageAnnotatorClient(ctx)
    	if err != nil {
    		log.Fatalf("Failed to create client: %v", err)
    	}
    	defer client.Close()

    	// Sets the name of the image file to annotate.
    	filename := "../testdata/cat.jpg"

    	file, err := os.Open(filename)
    	if err != nil {
    		log.Fatalf("Failed to read file: %v", err)
    	}
    	defer file.Close()
    	image, err := vision.NewImageFromReader(file)
    	if err != nil {
    		log.Fatalf("Failed to create image: %v", err)
    	}

    	labels, err := client.DetectLabels(ctx, image, nil, 10)
    	if err != nil {
    		log.Fatalf("Failed to detect labels: %v", err)
    	}

    	fmt.Println("Labels:")
    	for _, label := range labels {
    		fmt.Println(label.Description)
    	}
    }
    

Java

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の Java の設定手順に従ってください。詳細については、Vision API Java API のリファレンス ドキュメントをご覧ください。

// Imports the Google Cloud client library

    import com.google.cloud.vision.v1.AnnotateImageRequest;
    import com.google.cloud.vision.v1.AnnotateImageResponse;
    import com.google.cloud.vision.v1.BatchAnnotateImagesResponse;
    import com.google.cloud.vision.v1.EntityAnnotation;
    import com.google.cloud.vision.v1.Feature;
    import com.google.cloud.vision.v1.Feature.Type;
    import com.google.cloud.vision.v1.Image;
    import com.google.cloud.vision.v1.ImageAnnotatorClient;
    import com.google.protobuf.ByteString;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;

    public class QuickstartSample {
      public static void main(String... args) throws Exception {
        // Instantiates a client
        try (ImageAnnotatorClient vision = ImageAnnotatorClient.create()) {

          // The path to the image file to annotate
          String fileName = "./resources/wakeupcat.jpg";

          // Reads the image file into memory
          Path path = Paths.get(fileName);
          byte[] data = Files.readAllBytes(path);
          ByteString imgBytes = ByteString.copyFrom(data);

          // Builds the image annotation request
          List<AnnotateImageRequest> requests = new ArrayList<>();
          Image img = Image.newBuilder().setContent(imgBytes).build();
          Feature feat = Feature.newBuilder().setType(Type.LABEL_DETECTION).build();
          AnnotateImageRequest request = AnnotateImageRequest.newBuilder()
              .addFeatures(feat)
              .setImage(img)
              .build();
          requests.add(request);

          // Performs label detection on the image file
          BatchAnnotateImagesResponse response = vision.batchAnnotateImages(requests);
          List<AnnotateImageResponse> responses = response.getResponsesList();

          for (AnnotateImageResponse res : responses) {
            if (res.hasError()) {
              System.out.printf("Error: %s\n", res.getError().getMessage());
              return;
            }

            for (EntityAnnotation annotation : res.getLabelAnnotationsList()) {
              annotation.getAllFields().forEach((k, v) ->
                  System.out.printf("%s : %s\n", k, v.toString()));
            }
          }
        }
      }
    }

Node.js

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の Node.js の設定手順に従ってください。詳細については、Vision API Node.js API のリファレンス ドキュメントをご覧ください。

async function quickstart() {
      // Imports the Google Cloud client library
      const vision = require('@google-cloud/vision');

      // Creates a client
      const client = new vision.ImageAnnotatorClient();

      // Performs label detection on the image file
      const [result] = await client.labelDetection('./resources/wakeupcat.jpg');
      const labels = result.labelAnnotations;
      console.log('Labels:');
      labels.forEach(label => console.log(label.description));
    }

PHP

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の PHP の設定手順に従ってください。詳細については、Vision API PHP API のリファレンス ドキュメントをご覧ください。

# includes the autoloader for libraries installed with composer
    require __DIR__ . '/vendor/autoload.php';

    # imports the Google Cloud client library
    use Google\Cloud\Vision\V1\ImageAnnotatorClient;

    # instantiates a client
    $imageAnnotator = new ImageAnnotatorClient();

    # the name of the image file to annotate
    $fileName = 'test/data/wakeupcat.jpg';

    # prepare the image to be annotated
    $image = file_get_contents($fileName);

    # performs label detection on the image file
    $response = $imageAnnotator->labelDetection($image);
    $labels = $response->getLabelAnnotations();

    if ($labels) {
        echo("Labels:" . PHP_EOL);
        foreach ($labels as $label) {
            echo($label->getDescription() . PHP_EOL);
        }
    } else {
        echo('No label found' . PHP_EOL);
    }

Python

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の Python の設定手順に従ってください。詳細については、Vision API Python API のリファレンス ドキュメントをご覧ください。

import io
    import os

    # Imports the Google Cloud client library
    from google.cloud import vision
    from google.cloud.vision import types

    # Instantiates a client
    client = vision.ImageAnnotatorClient()

    # The name of the image file to annotate
    file_name = os.path.abspath('resources/wakeupcat.jpg')

    # Loads the image into memory
    with io.open(file_name, 'rb') as image_file:
        content = image_file.read()

    image = types.Image(content=content)

    # Performs label detection on the image file
    response = client.label_detection(image=image)
    labels = response.label_annotations

    print('Labels:')
    for label in labels:
        print(label.description)

Ruby

このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の Ruby の設定手順に従ってください。詳細については、Vision API Ruby API のリファレンス ドキュメントをご覧ください。

# Imports the Google Cloud client library
    require "google/cloud/vision"

    # Instantiates a client
    image_annotator = Google::Cloud::Vision::ImageAnnotator.new

    # The name of the image file to annotate
    file_name = "./resources/cat.jpg"

    # Performs label detection on the image file
    response = image_annotator.label_detection image: file_name
    response.responses.each do |res|
      puts "Labels:"
      res.label_annotations.each do |label|
        puts label.description
      end
    end

補足資料

追加のクライアント ライブラリ

上記のライブラリに加えて、Java アプリケーションでは Spring Cloud GCP を使用できます。Spring Cloud Vision API を使用すると、Spring Framework で作成されたアプリケーションで Cloud Vision を使用できます。

Spring Cloud Vision をアプリケーションに追加する方法をご覧ください。