【GCP】Cloud Vision APIを検証してみた


【流れ】
パターン1「コンソール上で結果をみる」
・GAEのチュートリアルを実施
・VisionAPIのチュートリアルを実施

パターン2「webから検証する」
・GCEでPHPの実装を試す
・HTMLとPHPで構築しているサイトからコードを拝借する
　→ここがおすすめ　https://book.mynavi.jp/manatee/detail/id=65673
↑
・SSHでログイン
gcloud compute --project \
    "testclouddatastore-mune" ssh \
    --zone [vm-zone] [vm-name]
・ユーザ、homeデレクトリでindex.html と　main.jsを作成
・sudo python -m SimpleHTTPServer 80　を打つ
・外部IPから接続


【ポイント】
・APIは支払いを有効にしないと使えない
・vision apiを検索して出さないと権限がないと言われる
・認証情報を作成
　vision-api-sampleのキーを作成してダウンロード
　リンクにあるページにはどうやって行くかわからんが、作成していけばロールを選択するところにもいく
・GAEでPythonを使う時、バージョンが27のときがある。いまは37で互換性がない場合があるので、使わないほうがいい。
　https://teratail.com/questions/140455　こちらを参照にして、部分的にはいけるが、
　結局最後まではいけない。

・gcloud compute --project \
    "testclouddatastore-mune" ssh \
    --zone asia-northeast1-a mune-test-api-001

[vm-zone] はゾーンの名前
 [vm-name] 作成したインスタンスの名前
[]はとる


【認証について】
・認証方法は3種類ある

from google.cloud import vision　これを使うとすぐにAPIが使えるみたい
↑
https://cloud.google.com/vision/docs/internet-detection?hl=ja
「API に対する認証」にかかわってそう
ここをやれば　APIKeyの入力はいらないのでは？
↓
https://jun-networks.hatenablog.com/entry/2018/02/01/044255
このサイトではAPIKeyを使ってる

#詳細な手順の記載

手順の概要
本手順では、Vision APIの検証方法として、以下2つのパターンを記載しております。
1.「コンソール上でAPIの検証をする手順」
2.「webブラウザ上からAPIの検証をする手順」

###検証の手順
####「コンソール上でAPIの検証をする手順」
※チュートリアルの以下を実施していく流れとなります。
コンソール画面　＞　右上？　＞　App Engine を試す
コンソール画面　＞　右上？　＞　Cloud Vision API を試す

以下はチュートリアルの「Python」を参考にしています。

1.プロジェクトを作成する。
※ここでは解説いたしません。
2.作成したプロジェクトにて、Cloud Shell を開く
3.以下のコマンドを実行し、githubからコマンドをコピーする。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/appengine/standard_python37/hello_world
4.アプリケーションを確認する
cat main.py
5.構成ファイルを確認する
cat app.yaml
6.Cloud Shell でアプリをテストする
virtualenv --python python3 ~/envs/hello_world
7.新しく作成した仮想環境を有効にします
source ~/envs/hello_world/bin/activate
8.プロジェクトの依存関係をインストールします
pip install -r requirements.txt
9.Flask 開発サーバーを使用して Cloud Shell でアプリを実行します。
python main.py
10.「ウェブでプレビュー」ボタンをクリックし、[プレビューのポート: 8080] をクリックし、正常にGAE
11.アプリケーションを作成する
gcloud app create
12.Cloud Shell を使ってデプロイする
gcloud app deploy app.yaml \
    --project \
    testclouddatastore-mune
13.外部IPアドレスをクリックし、アプリにアクセスする

1.プロジェクトを作成する。
※ここでは解説いたしません。
2.作成したプロジェクトにて、Vision API の有効化をする
コンソール画面上部検索窓に「Vision API 」を入力し、「Cloud　Vision API」をクリック　
APIを有効にするをクリック
3.Cloud Shell を開く
4.以下のコマンドを実行し、githubからソースをコピーする。
git clone　https://github.com/GoogleCloudPlatform/python-docs-samples.git
5.ディレクトリに移動する
cd python-docs-samples/vision/cloud-client/quickstart
6.アプリケーションを確認する
cat quickstart.py
7.サービス アカウントを作成する
gcloud iam service-accounts create vision-quickstart --project project名
8.認証情報を作成する
gcloud iam service-accounts keys create key.json --iam-account vision-quickstart@project名.iam.gserviceaccount.com
9.pathを通す
export GOOGLE_APPLICATION_CREDENTIALS=home/ユーザ名/key.json
10.アプリケーションを実行する
python quickstart.py
11.値が返ってくることを確認
※予め、resources/wakeupcat.jpg に猫の画像がセットされており、その画像を解析します。

###「webブラウザ上からAPIの検証をする手順」
※チュートリアルの以下を実施し、GCEでWebサーバをたてます。
コンソール画面　＞　右上「？」ボタン　＞　Compute Engine を試す

1.https://github.com/asashiho/mynavi-ml-visionapiからzipをダウンロードする
2.ダウンロードしたzipを展開しておく
3.プロジェクトを作成する。
※ここでは解説いたしません。
4.ComputeEnginを選択し、[VM インスタンス] セクションで、[作成] ボタンをクリックします。
5.インスタンスの名前を入力します。
6.インスタンスのリージョンとゾーンを選択します。
7.低コストのマシンタイプを指定する [micro] を選択
8.[HTTP トラフィックを許可する] をオンにします。
9.[作成] をクリック
10.右上にあるナビゲーションバーの [通知] ボタンをクリックし、インスタンスが作成されたことを確認。
11.作成したプロジェクトにて、Vision API の有効化をする
コンソール画面上部検索窓に「Vision API 」を入力し、「Cloud　Vision API」をクリック　
APIを有効にするをクリック
12.APImangerの認証情報にある認証情報を作成をクリック
13.APIキーをクリック
14.APIキーが作成されたことを確認し、作成されたAPIキーをコピーする
15.ダウンロードしたzipファイル内のmain.jsを開く
16.ファイル内のAPIkeyにコピーしたAPIキーを記載して、保存する
17.Cloud Shell を開く
18.以下のコマンドを入力し、SSH を使用して VM に接続
gcloud compute --project "PJ名" ssh --zone [vm-zone] [vm-name]
19.index.htmlを作成
sudo vim index.html
20.Cloud Shellの右上にあるアップロードから、ダウンロードしたzipファイル内のindex.htmlをアップする。
21.Cloud Shellの右上にあるアップロードから、APIキーを入力したmain.jsをアップする。
22.Cloud Shellにて、以下のコマンドを入力
sudo python -m SimpleHTTPServer 80
23.外部 IP アドレスでサーバにアクセスする
24.検証したい画像をアップロードし、Json形式の応答が返ってくることを確認

【参考URL】
https://book.mynavi.jp/manatee/detail/id=65673


以下がプロジェクトを無効にする作業となっております。
課金が発生してしまう可能性があるので、検証後は以下の作業を実施してください。

プロジェクトを無効にする
1.[設定] ページに移動します。
2.[アプリケーションを無効にする] をクリックします。

プロジェクトを削除する
1.コンソールの左上にあるナビゲーション メニューで [IAM と管理] に移動します。
2.[リソースの管理] をクリックします。
3.[削除] をクリックします。

【関連URL】
https://cloud.google.com/vision/pricing?hl=ja
https://cloud.google.com/products/calculator?hl=JA
https://amazarashi.me/ocr-google-cloud-vision-api/
https://xtech.nikkei.com/atcl/nxt/cpbook/18/00031/00004/?P=2