文字検出と文字認識を一つのモデルで実現するMask text spotter v3とは

2021年8月8日日曜日

Artificial Intelligence

文字検出と文字認識を一つのモデルで実現するEnd to End(Text Spotting)手法のMask Text Spotter v3をなるべく専門用語を使わずに紹介していきます。


概要

2020年7月に論文発表された
End To EndのOCR技術となります

ソースコード学習済みモデル(英語)が公開されているため
学習済みモデルを使用し文字認識させることも、ご自身で学習データを用意しモデルを生成することも可能です。

近年のEnd to Endの中で数少ないソースコードが公開されている手法となります

特徴

従来の文字検出技術はRPN(Region Proposal Network)と呼ばれる手法が主流でした。
この手法は、矩形を用いて文字検出を行います。
文書のスキャン画像など、文字が整然と並んでいる場合の文字検出では問題になりません。しかし下記のような斜めに並ぶ文字や、看板等によく用いられるカーブした文字に対しては、検出した矩形の他の文字が含まれてしまうため、矩形ではうまく検出できないという課題がありました。(下図のCampusの検出矩形にShopが含まれている)



そこでMask Text Spotter v3はSegmentation Proposal Network (SPN)と呼ばれる手法を実現しています。この手法は矩形を用いない(アンカーフリー)検出を実現しています。


上図はSPNを用いた検出結果です。先ほどのRPNと異なり、より正確に一単語を検出できていることがわかります。
このように矩形ではなく多角形の検出を可能にすることで、斜めに並ぶ文字やカーブしている文字列に対して正確な検出を可能にしている点がMask Text Spotter V3の特徴となります

技術概要

ここでは、特徴となるSPNに関して記載します。

SPNはU-Netと呼ばれる技術をベースにして設計されています。
U-Netは画像中に物体がどこにあるかを推論するネットワークとなります。

このネットワークを用いて、
SPNは画像中に文字がどこにあるかを推論します

下図では、左の画像から英単語がどこにあるかを推論し、推論結果を右図に表しています。
白く塗りつぶされている箇所が、英単語と一致していることが分かります。




Mask Text Spotter V3ではSPNで単語エリアを特定したあと、Hard RoI maskingと呼ばれる処理を行い、一単語ごとのマスク画像を生成します。
下図では、Hard RoI maskingによって、"complementarity", "segmentation", "detection"の3単語のマスク画像を生成しています。



あとは、このマスク画像から一文字ずつ文字検出を行い、検出した一文字が何であるか文字認識を行っていきます。
先ほどと画像が異なりますが、下図では、"BIERHOFF"というマスク画像を生成し、
"B", "I", "E", "R", "H", "O", "F", "F"のそれぞれの文字を検出し、それぞれの文字の検出画像から文字認識し、結果"bierhoff"を推論します。



まとめ

End to EndのMask Text Spotter V3を紹介しました。
この手法の特徴は、カーブした文字等、様々な形状の文字列を検出できる点にあります。
また、ソースコードと公開済みモデルが公開されているため、実際に動かしてみることができる点も特筆すべき点です。

公開済みモデルでは、"0123456789abcdefghijklmnopqrstuvwxyz"を認識できるように学習されています。

このため日本語の文章には対応していませんが、学習コードも公開されているため、
ご自身で学習データをお持ちの場合は、日本語学習モデルを生成することも可能です。

AIで副業ならココから!

まずは無料会員登録

プロフィール

メーカーで研究開発を行う現役エンジニア
組み込み機器開発や機会学習モデル開発に従事しています

本ブログでは最新AI技術を中心にソースコード付きでご紹介します


Twitter

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology