11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Cloud Vision APIを使ってみた

Last updated at Posted at 2020-10-05

Google Cloud Visionとは

Google Cloud VisionはGoogleが提供しているが提供している画像の分析サービスです。
今回は、画像内の文章を読み込むために使ってみました。

手順1 Google Cloud Platformに登録する

以下のリンク先からGoogle Cloud Platformに登録しましょう。
なお、登録にはクレジットカードが必要となります。
https://console.cloud.google.com/getting-started?hl=ja

Cloud Vision APIを有効にする

画面上部の検索窓に「Cloud Vision API」を入力ましょう。
スクリーンショット 2020-10-02 17.34.47.png

遷移後の画面でCloud Vision APIを有効にすれば完了です。
スクリーンショット 2020-10-02 17.35.14.png

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

サービスアカウントとは?
ここから引用→https://cloud.google.com/iam/docs/service-accounts?hl=ja

サービスアカウントは、ユーザーではなく、アプリケーションや仮想マシン(VM)インスタンスで使用される特別なアカウントです。アプリケーションはサービスアカウントを使用して、承認されたAPI呼び出しを行います。

それではサービスアカウントを作ってみましょう。
「IAMと管理」からサービスアカウントをクリック。
スクリーンショット 2020-10-02 17.57.26.png

遷移後の画面で「サービスアカウントを作成」をクリックしましょう。
スクリーンショット 2020-10-02 18.00.30.png

適当なサービスアカウント名を入力して「作成」をクリック
スクリーンショット 2020-10-02 18.02.16.png

「続行」をクリック
スクリーンショット 2020-10-02 18.08.46.png

「完了」をクリック
スクリーンショット 2020-10-02 19.44.21.png

続いて認証用の秘密鍵の作成です。上記の操作を行った後、以下のような画面になっていると思うので「操作」をクリックしてキーの作成を行います
qVGSMdCDldLGqek1601635670_1601635725.png

ダイアログが表示されるのでJSONを選択してキーを作成します。
キーは任意のフォルダに配置し、後述の環境変数(GOOGLE_APPLICATION_CREDENTIALS)にキーのパスを指定してください。
ti0oDmp7fe6mIxY1601636143_1601636179.png

gemをインストール。

gem 'google-cloud-vision'

秘密鍵のパスを環境変数に設定して、準備は完了です。

export GOOGLE_APPLICATION_CREDENTIALS="/hoge/fuga.json"

実装

公式のドキュメントを参考にし、以下のようになりました。
・公式ドキュメント
https://cloud.google.com/vision/docs/libraries?hl=ja#client-libraries-usage-ruby

公式の例と最も異なる点はlabel_detectionではなくtext_detectionを使用していることです。
label_detectionを使用すると、どのようなものが画像内に含まれているか検出することが出来ます。
例えば、駅内を撮った写真ですと改札や線路、券売機といった物が検出されるわけです。
今回は画像内の文字を検出したかったため、text_detectionを使用しました。

@image = Image.new

require "google/cloud/vision"
image_annotator = Google::Cloud::Vision.image_annotator

# 読み込む画像を指定
file_name = "~/hoge.jpg"

# file_nameを引数にしてCloud Visionで解析する
response = image_annotator.text_detection image: file_name

response.responses.each do |res|
  @image.OCR = res.text_annotations[0].description
end

まとめ

Google Cloud Vision APIは、今回の例以外にもPDFファイルの分析や画像内の顔検出などにも使えます。
月に1000件の読み込みまでは無料で行えますので、色々と試して自作アプリに組み込んでみましょう!

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?