rono23

RailsでCloud Visionのテキスト認識と顔検出

Quickstartsを参考にセットアップ後、サービスアカウントの秘密鍵ファイルを適当に設置(config/xxx.json)。

# Gemfile
gem 'google-cloud-vision'

# config/initializers/cloud_vision.rb
credentials = JSON.parse File.read(Rails.root.join('config', 'xxx.json'))
Google::Cloud::Vision.configure do |config|
  config.credentials = credentials
end

viewに file_field :image みたいの書いてファイルをアップロードしてみる。

# controller
image = File.binread(params[:image].tempfile)

requests = [{
  image: { content: image },
  # image: { source: { image_uri: 'https://example.com/image.png' } },
  image_context: { language_hints: %w(ja) },
  features: [
    { type: :FACE_DETECTION },
    { type: :TEXT_DETECTION }
  ]
}]

result = Google::Cloud::Vision.image_annotator.batch_annotate_images(requests: requests)

簡単!File.binread を知らなくて、ちょっとはまったけど… デモでどんな感じか試せるし、レスポンスのJSONも見れて便利だけど、日本語のテキスト検出を試したい場合はローカルで language_hintsja を指定して試してみるのおすすめです。精度がちょっと上がりました。

参考


Amazon Rekognitionは日本語のテキスト検出がまだサポートされてなかったので今回見送ったけど、サポートされたら試してみたい。