Vision API(トレーニング済み機械学習モデル)を使ってRubyでテキスト抽出(OCR)をためしてみた


Vision APIとは?

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

分析にかけた画像

アサインナビ トップページのキャプチャ画像(PNG形式)

分析結果

$ bundle exec rake cloud_vision:text['app/assets/images/anavi.png']
assign navi
新しい働き方
案件/人材を探す
ご利用ガイド
サービスについて
ログイン
会員登録
IT案件、外部人材との出会いを
テクノロジーで効率化
00

かなり高精度で、テキスト抽出できていますね (^^)

今回作成したコード

lib/tasks/cloud_vision.rake
## 呼び出し方
## $ bundle exec rake cloud_vision:text[image_file] # image_fileに'ここに画像ファイルのパス'

# Google Cloud client libraryの読み込み
require "google/cloud/vision"

namespace :cloud_vision do
  desc 'Run OCR.'
  task :text, [:image_file] do |task, args|
    return unless args[:image_file]

    # クライアントをインスタンス化
    image_annotator = Google::Cloud::Vision.image_annotator

    # OCRの実行
    response = image_annotator.text_detection(
      image: args[:image_file],
      max_results: 1 # optional, defaults to 10
    )

    # OCR結果の表示 
    response.responses.each do |res|
      res.text_annotations.each do |text|
        puts text.description
      end
    end
  end
end

環境変数はdotenvに記載

#.envファイル
GOOGLE_CLOUD_PROJECT="ここにプロジェクトIDを記載"
GOOGLE_APPLICATION_CREDENTIALS="Vision APIにアクセスする認証キーjsonファイルへのパスを記載"

セットアップ手順

セットアップ手順は近日中に追記させて頂きます

参考文献

Using the Vision API with Ruby

フォローや記事へのLGTMは、日々の投稿の励みになります。
温かい1クリックのほど、よろしくお願いします。 m(_ _)m