グローバルナビゲーションへ

本文へ

フッターへ

お役立ち情報Blog



Google Cloud Vision APIで画像分析をしてみよう【入門】

最近ではスマートフォンの普及などにより写真などの画像データを扱う機会が増えています。
画像データをうまく扱う為に今回はGoogle Cloudが提供するVision APIをご紹介いたします。

Vision APIとは

Google Cloud Vision APIはGoogle Cloud Platformが提供する機械学習サービスの1つです。 公式での説明は以下のように説明されています。

Google Cloud の Vision API は REST API や RPC API を使用して強力な事前トレーニング済みの機械学習モデルを提供します。画像にラベルを割り当てることで、事前定義済みの数百万のカテゴリに画像を高速で分類できます。オブジェクトや顔を検出し、印刷テキストや手書き入力を読み取り、有用なメタデータを画像カタログに作成します。Vision AI

このサービスを利用するとGoogleが持っている画像に関する機械学習モデルを使って対象の画像から 色々な情報を取得できます。
取得できる情報には以下のようなものがあります。

  • 乗り物や動物など、画像に写っているさまざまなカテゴリの物体を検出(ラベル検出)
  • 画像内のテキストに対して光学式文字認識(OCR)を実施してテキストを検出、抽出
  • 画像内の顔検出
  • アダルト コンテンツや暴力的コンテンツなど、画像に含まれる不適切なコンテンツを検出(セーフサーチ検出)
  • 画像に含まれる一般的な自然のランドマークや人工建造物を検出(ランドマーク検出)
  • 画像に含まれる一般的な商品のロゴを検出
  • ドミナント カラーなど、画像の一般的特性を検出(画像プロパティ)

料金について

料金については公式のページをご確認ください。

上記の料金表にある1ユニットという単位の意味は以下の説明がされています。

画像に対して適用される機能は、それぞれが請求対象となる「ユニット」です。 たとえば、1 つの画像に対して顔検出とラベル検出を適用した場合、1 ユニットのラベル検出と 1 ユニットの顔検出に対して料金が請求されます。Cloud Vision API

公式サイトのデモを試してみる

公式ページにファイルをアップロードするだけで試せるデモがあるので試してみます。


「Drag image file here or Browse from your computer」と表示されているエリアに PC上の試してみたい画像をドラッグ&ドロップしてみましょう。


reCAPTCHAが出てくるので「私はロボットではありません」にチェックを入れます。
※Edgeの場合うまく動作しない場合がありました。


チェックを入れると画像がアップされ、解析結果が表示されます。
下記はオブジェクト検出の結果です。お寿司が2貫きちんと認識されていることが分かります。


ラベル検出の結果です。 高い精度でラベル付けされていることがわかります。


ウェブ検出の結果です。 一致する画像のあるサイトURLや、リクエスト中の画像に部分一致または完全一致するウェブ画像を参照するURL、 視覚的に類似している画像を参照するURLなどが表示されています。


画像プロパティの結果が表示されています。


セーフサーチ検出の結果が表示されています。


上記の画像ではかなり精度の高い結果が得られましたが、写真のボケの具合や写っている範囲で 結果はかなり変わってきます。

上記の写真は日本人にとっては明らかにお寿司ですがボケの具合などの要因で先ほどの画像に比べて寿司としての 認識はかなり低くなっているようです。しかしそうは言ってもはっきりした写真であればかなりの高精度で写真が解析されていることがわかります。

Vision APIのデモだけでもウェブ検出の結果などは役に立ちそうです。

実際ににVision APIを利用してみる

今回は入門なので公式のチュートリアルに沿ってラベル検出を試してみたいと思います。
事前にGoogleのアカウントを取得してGoogle Cloud Platformへログインしてください。

上記のページに沿って試していきます。

新しくプロジェクトを作成する

今回は試して終了なのでサンプル用のプロジェクトを作成し、チュートリアルが終ったら プロジェクト毎削除することで無駄な課金が発生しないようにします。

画面左上のロゴの右側のプルダウンをクリックして上記画面を表示します。 「新しいプロジェクト」をクリックします。


プロジェクト名を入力します。今回は「vision-api-sample」としておきます。 「作成」をクリックします。


プロジェクトが出来上がりました。


画面左上のロゴの右側のプルダウンをクリックして「vision-api-sample」に切り替えます。

プロジェクトに対して課金が有効になっていることを確認する

上記ページの内容を行ってプロジェクトの課金を有効な状態にしてください。

有効になると「お支払い」の「概要」では下記のようになります。

Cloud Vision APIを有効にする

管理画面上部の検索エリアに「vision api」と入力すると「Cloud Vision API」が表示されるのでクリックします。


「有効にする」をクリックします。 これでAPIが有効になりました。

認証情報の設定

GCPの管理画面で「サービスアカウントキーの作成」ページに移動します。


ページが表示された状態です。
「サービスアカウント」プルダウンから「新しいサービスアカウント」を選択します。


「サービスアカウント名」に「vision-api-sample」と入力します。


「役割」プルダウンリストで、「プロジェクト」>「オーナー」を選択します。
「作成」をクリックします。


秘密鍵を含むjsonファイルがパソコンにダウンロードされました。

環境変数を設定する

VisionAPIを実行する環境に先ほどのjsonファイルを移動し、環境変数を設定します。 今回筆者はLinux環境で行います。 jsonファイルまでのパスは調整してください。

$ export GOOGLE_APPLICATION_CREDENTIALS="/your-path/vision-api-sample-***.json"

クライアントライブラリをインストールする

今回はPHPから実行します。 プログラムを作成するディレクトリに移動して以下を実行します。

$ composer require google/cloud-vision

ここまででやっとVisionAPIを利用する準備が整いました。

ラベル検出のプログラムを作成

以下のファイル構成で「label-test.php」にプログラムを記述します。

./
../
composer.json
composer.lock
label-test.php
sample-images/
vendor/
vision-api-sample-*****.json

label-test.php(ほぼ公式のサンプルのまま)

require __DIR__ . '/vendor/autoload.php';
use Google\Cloud\Vision\V1\ImageAnnotatorClient;

$imageAnnotator = new ImageAnnotatorClient();
$image = file_get_contents(__DIR__ . '/sample-images/target-file-name');// ここにファイル名
$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);
}

上記プログラムの「target-file-name」にデモで試してたお寿司の画像を指定して実行してみます。

$ php label-test.php 
Labels:
Food
Fish slice
Dish
Cuisine
Sashimi
Fish
Ingredient
Crudo
Seafood
Japanese cuisine

デモと同じラベルの結果が表示されました。
APIを設定して使えるようにするまでが多少面倒ではありますが、設定さえしてしまえば10行程度で 画像の分析ができてしまいました。

ラベル以外の分析も公式のサンプルを見れば 簡単に試せると思います。

プロジェクトの削除

今回の内容であれば無料枠の範囲内で十分済んでいるはずですがプロジェクトをそのままにしておいて うっかり課金されてしまうのはまずいのでプロジェクトを削除しておきます。


管理画面の「ホーム」に移動します。
「プロジェクト設定に移動」をクリックします。


「シャットダウン」をクリックします。


「プロジェクトID」今回であれば「vision-api-sample-***」を入力して「シャットダウン」をクリックします。


「OK」をクリックすればプロジェクトの削除処理は完了です。実際に削除されるのは表示された日付になります。

さいごに

今回はGoogle Cloud Vision APIを使って簡単な画像分析を行ってみました。
APIの設定には多少手間はかかるものの、設定さえしてしまえば簡単に使えることが分かったかと思います。 アイデア次第でいろいろなことが出来そうなサービスなので今後のアプリケーション開発に組み込んでみてはいかがでしょうか。

この記事を書いた人

アーティス
アーティス
創造性を最大限に発揮するとともに、インターネットに代表されるITを活用し、みんなの生活が便利で、豊かで、楽しいものになるようなサービスやコンテンツを考え、創り出し提供しています。
この記事のカテゴリ

FOLLOW US

最新の情報をお届けします