AI(機械学習)を利用したOCRの認識精度 その2 (2020/06/11 New)
概要
今回も、前回に引き続きOCRの認識精度を中心に紹介します。
より認識が難しい、誤検出が発生しやすい画像を検証パターンに取り入れています。
また、検出したテキストの翻訳精度についても紹介しています。
翻訳検証には、OCR de PawSの翻訳機能とDeepL翻訳を使用しています。
DeepL翻訳は、REST APIも提供(有償)しているので、自作の翻訳WEBページをアプリ側のOCR機能と連携させることも可能です。
- Microsoft Azure
- Google Cloud Platform (GCP)
- DeepL翻訳
それぞれの特徴の違いなどを知ることができます。
手書き文字の検証
ここでは、日本語の手書きフォントと実際の手書き文字で検証をしています。
前回の検証で、各OCRサービス毎の検出精度の傾向を知ることが出来ました。
そのため、日本語の検証ではGCPとWindows 10標準OCRを中心に検証を行って行きます。
1.手書きフォントの文章
最初は、手書きフォントを使用した縦書きの画像からテキストを検出します。
GCP(文書モード)
いくつか誤検出は有りますが、大健闘しています。
Windows 10標準
誤検出は有りますが、GCPで誤検出した文字を正しく検出しています。
無地の背景の場合は、手書きフォントでも健闘しています。
次は、手書き文字の画像からテキストを検出します。(癖があり綺麗でない文字)
HaruziraをSurfaceにインストールし、手書き文字認識機能(InkCanvas)を使用しタッチペンで書いた文字です。
なお、手書き文字認識機能では完璧に認識できている文章です。
GCP(文書モード)
OCRでも、誤検出もなく完璧に検出できました。
Windows 10標準
実際の手書き文字では、誤検出が多くなってしまいました。
次は、アナログな手書き文字の画像からテキストを検出します。(癖があり綺麗でない文字)
コピー用紙に鉛筆で書いた文章を、OCR de PawSのデジカメ機能で撮影しそのままOCR検出しています。
照明の反射で文字の一部が薄くなっています。
GCP(文書モード)
照明が反射している文字を誤検出していますが、大健闘しています。
Windows 10標準
残念なことに、全く検出できませんでした。
AIを利用したOCRは、日本語の手書き文字でも検出精度が高いことがわかります。 また、Widows 10標準のOCRでも背景が無地で文字に掠れがない場合は、手書き文字でも認識できることがわかりました。
複雑なレイアウト検証
ここでは、円形にレイアウトされた文字で検証しています。
複雑なレイアウトを使用した、かなり意地悪な検証です。
1.解像度の低い文字
最初は、動画のフレームから切り取った、解像度の低い画像からテキストを検出します。
GCP(一般的な画像モード)
このレイアウトではAI搭載のGoogleでも厳しいようです・・・。
GCP(文書モード)
一般的な画像モードより検出結果が良くないです。
Azure (Read API)
右側の後半部分「E OF IOWA」が検出できていませんが、検出順番も含めて大健闘しています。
Windows 10標準
全く検出出来ませんでした。
次は、高解像度画像からテキストを検出します。
円形にレイアウトされた文字のみ検出したいので、不要な文字はモザイクでマスク処理をしています。
GCP(一般的な画像モード)
低解像度よりは良くなっていますが、検出順番に問題がありそうです・・・。
GCP(文書モード)
一般的な画像モードより残念な検出結果になりました。
Azure (Read API)
文字の検出としては順番も含めてほぼ完璧に検出しています。しかし、絵柄も文字として検出しています。
Windows 10標準
残念・・・。
特殊なレイアウトになると、非AIのOCRでは全く歯が立ちませんでした。
解像度による検出精度の違いについても理解できると思います。
また、GCPが苦手なパターンではAzureの方が優秀な検出結果になることも面白いです。
翻訳精度の検証
最後に、英語と日本語のテキストを翻訳する検証を行います。
単純な文章だけではなく、広告看板等でよく見かける文字を翻訳するという、ちょっと意地悪な検証も行います。
また、「GoogleやMicrosoftを超えた翻訳」をキャッチフレーズにしているDeepL翻訳を検証に追加しています。
1.看板の広告文(日本語 → 英語)
前回のOCR検証で使用した次の画像から検出した文字を利用しています。
あなたの街の安心キャッシング
くらのや
質買取
販売・預りもしています
駅より徒歩2分
310-0783
蔵の屋
GCP
「くらのや」は名詞として解釈できていますが、「蔵の屋」は直訳になっています。
Azure
「くらのや」を上手く解釈できなかったのですが、「蔵の屋」を名詞として唯一解釈できた翻訳サービスです。
他の翻訳サービスと比較してビジネス的な翻訳を行う傾向があります。
DeepL
「くらのや」と「蔵の屋」のどちらも名詞として解釈出来ませんでした。
しかし、「質買取」をpawnshop(質屋)と解釈していることは興味深いです。
次も、前回検証した海外ドラマの背景でニュース映像として流れていた、ニュース記事を翻訳します。
Panera went online with a record-setting fifty million unique souls and visitors.
The aggressive chain restaurant's stock is soaring after buying Facebook earlier this year.
Insiders and sources close to the industry say that "Aeon" is entirely unlike any of the other post-life experiences.
"We've crafted this very special place to be everything you've ever dreamed of every thrill and excitement inherent is such a charged environment," says a Panera representative.
"The craftsmanship and attention to detail is astounding.
"Aeon" happes to be my personal choice as a post-life experience, and I'm actually really looking forward to it!"
GCP
"such a charged environment"の「帯電した環境」という表現が直訳的で意味が分かり難いです。
Azure
"such a charged environment"を「非常に特別な場所」という表現で翻訳しています。
しかし、文末の助動詞「です・ます」の丁寧語と、常体語が混在しています。
そのため、直訳的な翻訳と相まって文章全体の意味がわかり難くなっていることが残念です。
DeepL
GCPと同様に、"such a charged environment"の「帯電した環境」という表現が直訳的で意味が分かり難いです。
しかし、次のようにネイティブが本来持っている語彙を優先した表現を行っていることが興味深いです。
"The aggressive chain restaurant's" → 「積極的なチェーンレストランの」
"post-life experience" → 「人生の後の体験」
検証した文章では、各翻訳サービスともニュアンスの違いはあれど、ほぼ同等の結果となりました。
Azureの場合、主語を先頭に置きなおす傾向があり、他のサービスはオリジナルの語順で翻訳しています。
また、GoogleとAzureの場合、文章の流れとして解釈できない単語及び機械学習不足の語彙に関しては、カタカナで表現しています。
DeepLの場合は、言語毎の語彙力と文節を結ぶ接続詞にこだわっているようで、可能な限りネイティブ本来の言い回しで表現しています。
多言語にこだわる万能的な翻訳を行う大手企業と、ネイティブの語彙力にこだわる小さな企業の違いがでていて面白いです。
なお、Google翻訳が本領を発揮するのは、予測変換です。スペルミスや文章構造が間違っている文章などで力を発揮します。
まとめ
OCR及び翻訳サービスとも、提供する企業の特色が確認できました。
それぞれの特性を理解することで、状況に応じた使い分けができるようになります。
Windows 10の手書き認識機能(InkCanvas)を利用すると分かるのですが、日本語の認識は非常に精度が高いです。
そのため、AzureのOCRサービス(Read API)に関しても、早期の日本語への対応を期待したいところです。