概要
Google Vision API は OCR が API 経由で使えるサービスです
1000 ユニットまでは無料で使えます
ユニットは画像に含まれる解析対象の情報の単位です (例えば 1 枚の画像から 1 つのテキストと 1 つの顔認識をする場合は 2 ユニット)
今回は API を使うためのセッティングから Ruby で呼び出すところまでやってみました
環境
- macOS 10.13.4
- Google Vision API 2018/05/11 時点
- Ruby 2.4.1p111
API を有効にする
その前に Google Cloud Platform でプロジェクトを作成しプロジェクトの課金を有効にしましょう
詳しくはこちらの手順に従ってください
無料で使うことはできますが無料分があるだけなのでプロジェクトの課金を有効にする必要があります
もしかするとこの手順が一番大変かもしれません (クレカの登録必須)
このページに Cloud Vision API を有効にする ボタンがあるので選択します
まずプロジェクトを選択する画面になるので選択します
そのまま認証情報を作成する画面になるので進みます
認証情報を設定する
サービスアカウントを作成します
App Engine or Compute Engine は使わないので「いいえ」を選択する
アカウント名は好きな名前を設定してください
役割は今回「オーナー」を選択しましたが必要に応じて変更してください
これで「次へ」を選択すると認証用の JSON がダウンロードされます
ライブラリインストール
- bundle init
- vim Gemfile
gem "google-cloud"
bundle install --path vendor
テキスト検出するサンプルスクリプト
今回使用する画像はこれを使用します
- vim sample.rb
project_id = "1234567890"
image_path = "./sample.gif"
key_file = "./project-name-xxxxxxxxxxxx.json"
require "google/cloud/vision"
vision = Google::Cloud::Vision.new(project: project_id, credentials: key_file)
image = vision.image image_path
puts image.text
- bundle exec ruby sample.rb
リターンした image
オブジェクトは bounds, locale, pages, text, to_h, words
が参照できます
words を使えば更に座標などの情報も取得できます
image.text.words.each { |word|
p word.text
p word.bounds
}
最後に
Google Vision API を使ってテキスト検出をしてみました
Vision API には他にもラベル検出やロゴ検出、顔検出なども可能です
割りと精度良く取得出来ると思います
ただテキスト解析の場合は文字単位で取得できるのでそれを座標を元に適当な単語につなげるなどの処理は必要です
画像内に必要な文字列が含まれているかどうかくらいの判断であればかなり使えると思います
0 件のコメント:
コメントを投稿