フレクトのクラウドblog re:newal

http://blog.flect.co.jp/cloud/からさらに引っ越しています

GCP/Azure/AWSのOCRサービスの比較

GCP/Azure/AWSOCRサービスの比較

はじめまして、エンジニアの藤野です。 今回は主要パブリッククラウドOCRサービスについて書かせていただきたいと思います。

OCRとは

OCR(Optical Character Recognition)とは、日本語で光学文字認識の意味で、画像からテキスト情報を読み取る機能です。

パブリッククラウド3社からは、それぞれ下記の画像/映像処理APIのひとつという形で利用できます。

共通点

APIには下記の共通点があります。

機能の比較

各機能の特徴を比較してみました。

Google
Cloud Vision API
MS Azure
Computer Vision API
Amazon Rekognition
言語 日本語含む56ヶ国語 日本語含む26ヶ国語 英数字+記号のみ
価格
(US)
$1.5/1,000 枚
(月1,000枚まで無料)
$1.5/1,000 枚
(月5,000枚まで無料)
$1.0/1,000 枚
(最初12ヶ月間
月5,000枚まで無料)
信頼度 あり なし あり
座標表現 絶対座標 絶対座標 相対座標

価格設定は似通っています。また、RekognitionのOCR機能は後発ということもあるのか、現時点では日本語には対応していませんでした。

試してみる

今回は下記3点の画像を使用しました。

  1. 運転免許証(日本語)
  2. 自動車検査証(日本語)
  3. ビザのサンプルフォーム(英語)

運転免許証は実物を写真に撮ったものです。

f:id:fujinot-flect:20180618150219j:plain
運転免許証

自動車検査証は自動車検査証(車検証)見本画像に掲載されているimg_shaken.pngです。

ビザのサンプルフォームは How to obtain a Russian Visa in an easy and cost-effective way in 2018 に掲載されている Visa-application-form-Russia-USA-Citizens-PDF-1.jpg です。

精度の設定

各機能でのOCR結果を比較するため、下記の精度を用いました。

  • 文字認識率[%]:正しく認識された文字数➗元画像上の文字数×100
  • ノイズ[文字]:文字ではない部分を文字として認識してしまったもの

これらの精度は国立国会図書館「OCR を用いたデジタル画像 の全文テキスト化 実施結果報告書」を参考にしています。

結果

運転免許証

結果は以下のようになりました。文字数は約165文字です。 (Amazon Rekognitionは日本語に対応していないため、除外しています)

Google Cloud Vision API MS Azure Computer Vison API
文字認識率 92% 88%
ノイズ 14文字 7文字

自動車検査証

結果は以下のとおりです。文字数は約575文字です。 (運転免許証同様、Amazon Rekognitionは除外しています。)

Google Cloud Vision API MS Azure Computer Vison API
文字認識率 87% 77%
ノイズ 61文字 24文字

ビザのサンプルフォーム(英語)

結果は以下のとおりです。文字数は約2414文字です。

Google Cloud Vision API MS Azure Computer Vison API Amazon Rekognition
文字認識率 98% 63% 10%
ノイズ 2文字 6文字 35文字

結果とまとめ

精度を比較してみて、まず日本語では、文字認識率ならGoogle Vision API、ノイズが少ない方がいいなら Azure Computer APIという結果になりました。

英語では、Google Vision APIが頭一つ抜けた性能でした。 Amazon Rekognitionは結果が振るいませんでしたが、公式ドキュメント

DetectText can detect up to 50 words in an image.

とあるため、ドキュメントのテキスト化というより、画像から文字を検出することを対象としたものなのかもしれません。

総合的に見て、OCR機能ではGoogle Cloud Vision APIが値段も少し高めですが、性能も高いと感じました。 特に、英文では充分実用に耐えうる精度が出ていると思います。 これらAPIは処理した画像の枚数に対する従量課金ですので、ユースケースによっては安価に高性能なOCRエンジンを利用する手段となりうるのではないでしょうか。

今回は以上です。 お読みいただき、ありがとうございました。