最近、猫も杓子もAI、AIと大騒ぎです。文字入力の分野でも、「経理システムへの請求書の入力はAI-OCRを使えば、デジタル変換が一発でできる」とか、「AI-OCRの手書き文字の認識率が98%を超え、実用段階に入った」とか、一見明るいニュースで持ちきりです。本特集では、そんなAI-OCRに関して、「OCRの基本」、「OCRの限界とAIによる進化」、そして「製品比較と現実解」の3回に分けて、AI-OCRが到達している実態を忌憚なく解説していきたいと思います。
まず第1回目は、AI-OCRを知る前に、OCRの基本的な知識に関して整理していきたいと思います。ここを理解しておくと、AI-OCRもスンナリ理解できますのでお付き合いください。
OCRとは、Opitical Character Recognition/Readerの略です。つまり光学的に紙などに書かれた文字を読み取ること又は読み取る装置を指します。
OCRの歴史は、驚くべきことに100年以上前に遡ります。当時、ドイツやイギリスで、光学的に読み取った文字を音声やモールス符号に変換する装置が発明されたものが元祖とされています。
1950年代になると、アメリカでは、ビジネス分野での活用が始まります。この頃になると、OCRの役割は、読み取るだけでなく、データ化することで、さまざまな効率化のために利用されるようになりました。また、日本でも、1968年に郵便番号の読み取り、1980年代には電電公社(現NTT)や労働省などで活用が始まりました。さらに1990年代になると、WindowsPCの爆発的拡大とともに、スキャナーとセットでOCRのソフトウェアが一般販売され始め、ビジネスからホームユースまで、その活用範囲を広げていきました。
それでは、次にOCRが、どのような仕組みで、紙に書かれた文字をデータ化して行くのか見ていきましょう。先程も触れましたが、ここを理解しておくと、AI-OCRもスンナリ理解できますので、ちょっとだけお付き合いください。
OCRには、大きく分けて、新聞や雑誌などの「文字起こしをするタイプ(以下、文字起こしタイプ)」と申込書などの「定型レイアウトから項目毎に文字データを読み込むタイプ(以下、定型レイアウトタイプ)」の2種類があります。また、何れに場合も基本的に「印刷された帳票」を対象としています。ここではビジネスシーンで多く活用される「定型レイアウトタイプ」で説明していきます。
1.画像読み込み
最初にスキャナーなどを使い、紙などに印刷された画像を読み込み、画像データを作成します。
(補足)
この時、200〜300dpi(ファイン〜スーパーファイン)のなるべく高い解像度で読み込むことが、後工程をスムーズに進めるポイントだとされています。
また、大量の帳票がある場合は、後で、画像とテキストデータとの照合を簡単にするために、事前に連番をナンバリングスタンプなどで押しておくこともよく見受けられます。最近では、ちょっと高級なスキャナーだと、画像読み込みと同時に原票に連番を印刷出来る便利なスキャナーもあります。
2.画像クレンジング
次に読み込んだ画像データの歪み(上下、傾き、台形)を補正したり、位置合わせをしたりします。また、原本の汚れやFAXやコピーで生じたノイズを除去したりします。場合によっては、地紋や色、裏写りなどをドロップアウトしたりもします。これらの工程は、スキャニングするソフトウェアへ指示することにより実行されます。こうして、文字をデータ化するための画像データの準備が整います。
3.項目毎の画像分割
次はレイアウトを解析し、項目毎に画像分割していきます。定型レイアウトだと、ここが住所、ここが氏名とか場所が決まっています。従って、予め、1つ1つの項目毎に位置や範囲を「レイアウト定義」しておけば、その定義にそって項目に分割できます。
(補足)
複数の定型レイアウトが混在していることがあります。このような場合、「1.画像の読み込み」の前に、分類し、手作業で、仕分けをする必要があります。ただ、最近のOCRのソフトウェアは、レイアウト解析の際に、登録されたパターンと照合し、仕分けを電子的に行うことが可能な高機能なものもあります。
4.項目毎のテキスト生成
次は、項目毎の画像から、一文字ずつに分割していきます。そして、一文字ずつ同一のサイズになるように拡大縮小します。その後、予め文字毎の特徴を格納している「パターン辞書」とマッチングし、文字を特定します。この時、一致した文字そのものだけでなく、「パターン辞書」との特徴の一致率、つまり認識率も保持しておきます。複数の候補があった場合は、複数の候補分の認識率も保持しておきます。こうして、項目毎のテキストが生成されます。
5.項目毎の知識処理
先程は、一文字ずつマッチングしましたが、今度は予め登録しておいた単語単位でマッチングしていきます。これは一般的に「知識処理」と呼ばれます。先程、複数候補あった場合の文字でも、単語単位で合致するものがあれば、そちらを優先し決定していきます。合致するものがない場合は、最も認識率の高いもので決定していきます。
6.項目毎のテキスト修正
文字データ出力前に画像データと照合しながら、修正出来るインタフェースを持ったOCRも登場しています。前工程で認識率の低い項目を警告色で表示し、確認を促すよう工夫されているものもあります。こうして、項目毎のテキストを決定していきます。
7.テキストデータ出力
最後は複数項目のテキストデータをファイルへ出力します。CSV、EXCEL、XMLなど指定した様々なフォーマットで出力できます。
(補足)
現実の運用では、原票からホッチキスを外したり、複写式用紙の場合は束を外したりする前処理や再度ホッチキス留めしたり日付毎に分類して保管したりする後処理も必要です。
以上、第1回めはOCRの基本的な動作に関して説明してきました。如何だったでしょうか。それにしても、画像が文字データ化されるまで、7つもの工程を経ているのには、ちょっと驚きですね。OCRは先に述べた通り、一般的に使われ始めてから数十年という長い歴史があり、工夫されてきました。従って、限られた範囲の利用だと非常に役に立っています。但し、「レイアウト定義」されていない帳票や手書き文字など、現実世界で多く存在する帳票に対しては非常に弱く、技術的なブレークスルーが待たれていました。次回は、このOCRのぶつかった課題とAIを使ったブレークスルーに関して、詳細に解説していく予定です。
特集:AI-OCR
第1回:AI-OCR…OCRの基本
第2回:AI-OCR…OCRの限界とAIによる進化
第3回:AI-OCR…製品比較と現実解