中華IT最新事情

中国を中心にしたアジアのテック最新事情

表をOCRで読み取り、Excel形式で出力。セル結合された表にも対応。シャオミのスマートフォンに搭載

シャオミのスマートフォンに表のOCR機能が搭載された。印刷された表を認識して、Excelデータに出力してくれる機能だ。しかし、そのアリゴリズムは複雑で、意外に難易度が高いとIT之家が報じた。

 

表計算を認識できる機能をスマホに搭載

スマホカメラはいろいろな機能を持つようになっている。最近話題になっているのは、カメラで撮影した文字をテキストにしてくれるOCR(Optical Character Recognition/Reader、光学的文字認識)機能だ。撮影対象の中から文字部分を認識し、テキストデータ化をしてくれるため、テキスト保存することや外国語を母国語に翻訳をすることができる。

スマホメーカー「小米」(シャオミ)の創業者、雷軍(レイ・ジュン)は、カメラで表を認識し、Excelなどのスプレッドシートデータに出力できる機能を開発し、Xiaomi 10Sシリーズ、MIX Flod 2シリーズなどに搭載をしたと発表した。

紙に印刷された表を認識して、データ化することができ、Excelなどでそのまま編集できるようになる。もちろん、セル結合された複雑な表にも対応をしている。

▲表のOCR機能を紹介する雷軍。一見地味な機能だが、雑誌や新聞の表を認識し、Excelデータに変換できるため、加工やグラフ化が簡単にできるようになる。

 

意外に難易度が高い表のOCR

表のOCRは簡単なように見えて、実はかなり難易度が高い。なぜなら、多くの表は、文章などと混在をしているため、まずは表検出をする必要があるからだ。しかも、カメラの映像は表に対して正対しているとは限らない。そこで、シャオミのアルゴリズムでは、表らしき図形を検出すると同時に表の4隅も検出をする。この4隅の距離を見て、画像の歪みを補正して、表として抽出をする。

このような抽出は、ディープラーニングの中心技法であるCNN(畳み込みニューラルネットワーク)を利用して、特徴抽出を行い、その特徴が表に合致をするかどうかを判定すれば難しいことではなくなっている。しかし、この演算をスマートフォンという限られたリソースの中で行うのは至難の業だ。シャオミでは、shuffleNetV2を利用し、徹底した軽量化を行う必要があった。

▲写真から表の四隅を認識し、歪みを補正する。

 

表の認識を難しくしているセル結合

表のOCRで問題になるのは、多くの表がセル結合を使い、セルの大きさがバラバラであるということだ。特にヘッダー行などではセル結合が多用される。

そこで、まず表の全体を見て、M行×N列という行数と列数を割り出す。それから1つ1つのセルを見ていき、単一セルは0、横結合されているセルは1、縦結合されているセルは2のラベルを割り振っていく。

これで表の構造が把握できる。

▲多くの表はセル結合により複雑な構造をしているため、これを判別しなければならない。

▲セル結合を無視して、表の行数と列数を確定する。単セルは0、横結合されているセルは1、縦結合されているセルは2のラベルを割り振っていく。

 

難易度を上げているテキストの折り返し

次に表構造のラベルに基づいて、独自のセル番号をそれぞれのセルに割り振り、そのセルのテキストや数字を認識し、データを読み取っていく。

この時、問題になるのが、セル内で折り返しをしているテキストだ。1つのセルの中に複数の行がある。1つのセルに4行ある場合、これを1つのセルと判断をするか、それとも4つのセルがあるのかは判断が難しい。

これには、テキストの矩形とセルの矩形のIoU(Intersection over Union)=重なり具合を計算する。このIoUが最大値になるということは、テキストの中心とセルの中心が一致をしているということになる。つまり、1つのセルに1つの要素が中央寄せをされて記述されている。

このIoUが最大値ではないものの、比較的大きな値を取るということは、1つのセルに1つの要素が左寄せまたは右寄せされて記述されている。

このように、IoUの大きなテキストからセルにあてはめていくと、最後に複数行のセルが残る。すでに他のセルはデータが埋まっているので、残りのセルに複数のテキストが入るということがわかる。これにより、複数行のセルの内容も決定していく。

▲セルの矩形(青)とテキストの矩形(赤)の重なり度合い(IoU)を計算し、そこから折り返しテキストが1つのセルに入っているのかを見分ける。また、この計算から左寄せ、中央寄せ、右寄せなども判断できる。

▲表の構造が確定をしたら、セル番号のラベルを割り振り、それぞれのセルの内容をOCRで読み取っていく。

 

意外に役立つ表のOCR

このようにして、すべてのセルの内容が決定でき、しかも左寄せ、中央寄せ、右寄せも決定できる。あとはこの内容をExcel形式で出力をすればいいだけだ。

地味ではあるが、仕事をする上では大きな助けになる機能だ。雑誌や新聞、ウェブに掲載されている表を読み込み、グラフを作成するときなどに役立ってくれる。