Vision APIで画像認識してみる① ~ 設定編 ~

Vision APIで画像認識してみる① ~ 設定編 ~

目次

はじめに
AIとは
機械学習 とは
Google Cloud Vision API とは
Google Cloud Platform で設定
環境変数の設定
次回予告

はじめに

最近、AIを活用したサービスに携わる機会がありました。
AIは様々な分野で活用が進んでおり、私たちの暮らしと密接に関わっています。例えば、インターネットの検索エンジン、スマートフォンに搭載されている「Siri」、お掃除ロボット、スマートスピーカー、Google翻訳をはじめとする機械翻訳、チャットボット、車の自動運転などなど。

しかし実際のところAIと聞いてどう感じましたか。感覚的に掴みにくく、定義もふわっとしていて分かりにくい。
今まで私はAIのことを”よく耳にするしなんかすごい便利にしてくれるもの”と漠然と捉えていました。

今回はAIについての知識を掘り下げつつ、簡単にAI技術を体感していきたいと思います。

AIとは

AIとは人工知能(Artificial Intelligence)の略称で、ざっくり言うと、人間の知的ふるまいの一部をコンピュータを用いて人工的に再現した技術のことです。総務省では以下のように記載してあります。

人工知能(AI)は、大まかには「知的な機械、特に、知的なコンピュータプログラムを作る科学と技術」と説明されているものの、その定義は研究者によって異なっている状況にある。その背景として、まず「そもそも『知性』や『知能』自体の定義がない」ことから、人工的な知能を定義することもまた困難である事情が指摘される。

平成28年度版 情報通信白書 . “人工知能(AI)とは” . 総務省 . 2016 . https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h28/html/nc142110.html(参照 2022-05-09)

定義することが困難…なるほど。私は大きい壁に立ち向かっているかもしれません。
もう少し読み込んでいきます。

機械学習 とは

近時のAIブームの中心となっているのは、「機械学習」である。
機械学習(マシーンラーニング、ML)とは、人間の学習に相当する仕組みをコンピューター等で実現するものであり、一定の計算方法(アルゴリズム)に基づき、入力されたデータからコンピューターがパターンやルールを発見し、そのパターンやルールを新たなデータに当てはめることで、その新たなデータに関する識別や予測等を可能とする手法である。

令和元年度版 情報通信白書 . “AIに関する基本的な仕組み” . 総務省 . 2019 . https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r01/html/nd113210.html(参照 2022-05-09)

「機械学習」もよく耳にします。私は、”AIに学習させるもの”という文字そのままのイメージしか持っていませんでした。
過去のデータからパターンを見つけ出して学習し、そのパターンを新たなデータに当てはめることによって予測することなのですね。もっと詳しく説明していきたいと思います。

機械学習のプロセス

機械学習には、 「学習」と「推論」の2つのプロセスがあり、それぞれのプロセスで異なるデータを用います。

■ 学習
入力されたデータを分析することにより、コンピューターが識別等を行うためのパターンを確立するプロセス
この確立されたパターンを、「学習済みモデル」という

■ 推論
学習のプロセスを経て出来上がった学習済みモデルにデータを入力し、パターンに従い実際にそのデータの識別等を行うプロセス

機械学習の学習法

ではその「学習」のプロセスの中でどのようにAIに学習させるのでしょう。
機械学習の学習法は、「教師あり学習」「教師なし学習」「強化学習」に大別されます。

■ 教師あり学習
学習データに正解のラベルを与え(アノテーション)学習させる手法

■ 教師なし学習
学習データに正解のラベルを与えない状態で学習させる手法

■ 強化学習
一定の環境の中で試行錯誤を行い、報酬を与えることにより学習させる手法

文章だけでは何とも言えないので、実際に体感するのがいいですね。
今回は、「教師あり学習」の手法を用いて、個人的に一番興味のある「画像認識」を行ってみたいと思います。
イメージとしては、以下のようにAIに正解ラベルをつけた画像データを学習をさせ、データを比較して共通点を抽出し、与えた画像が何であるかを確率で表していきます。

しかし、この場合AIに膨大な数の画像データを読み込ませ学習を重ねる必要があります。
そのうえ、正解となるデータの質も良くなければなりません。

…少し骨が折れる予感がしました。
そこで今回は、既に学習済みの機械学習モデルを利用しようと思います。そんな便利なものを利用できるのがGoogle Cloud Vision API になります。

Google Cloud Vision API とは

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

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

このAPIを使用すると、開発するアプリケーションの中で簡単に画像検出機能を統合できるそうです。
では、さっそく公式HPの手順に従って設定していきたいと思います。

Google Cloud Platform で設定

① アカウントの登録

Google Cloud Platformの各種APIを使うためには、アカウント登録が必要になります。
今回は、90日間でUS$300相当の無料トライアルがあるのでそれを利用します。期間が終了したり、US$300相当分を使い切ったとしても、「自動請求を有効にする」をしない限り、課金されることはありません。

アカウントの登録をする上で以下の情報が必要となります。
・Google アカウント
・SMSが受信できる電話番号
・クレジット カード

Google Cloud Platform にアクセスし、画面右上の無料で開始または画面左下の無料で使ってみるをクリックします。

ログインを求められますので、既存のGoogleアカウントでログインしてください。
アカウント情報の入力画面になりますので、以下のように設定します。

次に、SMSが受信できる電話番号を入力していきます。コードを送信 したあと、届いた6桁の番号を入力します。

続いてお支払情報の入力画面になります。クレジットカードと請求先住所情報を入力して完了です。(ここの画像は省かせていただきます)

② プロジェクトの作成

ではプロジェクトを作成していきます。My First Projectをクリックします。

新しいプロジェクトをクリックして、サンプル用のプロジェクトを作成します。終ったらプロジェクトごと削除することにします。

プロジェクト名は任意の名前で設定し、「組織なし」で作成します。

③ Vision API を有効にする

プロジェクト上でAPIが使用できるように有効にします。
検索窓に「Cloud Vision API」と入力し、出てきたページで 有効にするをクリック。

すると、「このAPIを使用するには、認証情報が必要になる可能性があります」と促されるので、認証情報を作成をクリックします。

「アプリケーションデータ」を選択し、「いいえ、使用していません」を選択します。

④ サービスアカウントの作成

続いて、サービスアカウントの作成を行います。
サービスアカウント名を任意の名前に設定すると、サービスアカウントIDが自動で入力されます。作成して続行をクリック。

続いて、サービス アカウントに「オーナー」のロールを付与します。続行をクリック。

ユーザアクセスの許可は省略します。完了をクリック。

サービス アカウント キーの作成

次に、サービスアカウントキーを作成していきます。
作成したサービス アカウントのメールアドレスをクリックします。

キーをクリックし、鍵を追加のプルダウンから新しい鍵を作成を選択します。

「JSON」を選択し、作成をクリックします。

JSON キーファイルがパソコンにダウンロードされます。

環境変数の設定

続いて、VisionAPIを実行する環境を作成していきます。
まず、PCのローカルディスク配下に新しいフォルダを作成します。今回はフォルダの名前を「ai_test_2022」にして作成しました。その中に先程ダウンロードした JSON ファイルを移動させます。

そして、環境変数 GOOGLE_APPLICATION_CREDENTIALS を設定して、アプリケーション コードに認証情報を指定していこうと思います。私はWindowsなので、Windowsの設定手順に従って進めます。

コマンド プロンプトを立ち上げ、set GOOGLE_APPLICATION_CREDENTIALS=C:\ai_test_2022\〇〇〇〇.jsonと入力して実行します。 C:\ai_test_2022\〇〇〇〇.json に当たる部分は、サービス アカウント キーが含まれる JSON ファイルのパスに置き換えてください。

これで環境変数の設定は完了です。

次回予告

次回は、クライアントライブラリ(Python)をインストールし、コードを実行して画像認識していきたいと思います。