光学文字認識
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/04/02 09:57 UTC 版)
種類
- 光学式文字認識 (OCR)
- 活字テキストを対象とする。一度に 1 つのグリフまたは文字を入力する。
- 光学式単語認識
- 活字テキストを対象とする。単語の区切りとしてスペースを使用する言語について、一度に 1 単語ずつ入力する。これも通常は単にOCRと呼ばれる。
- インテリジェント文字認識 (ICR)
- 手書き文字や筆記体のテキストを対象とする。一度に 1 つのグリフまたは文字を入力する。機械学習の技術を用いることが多い。
- インテリジェント単語認識 (IWR)
- 手書き文字や筆記体のテキストを対象とする。一度に 1 単語ずつ入力する。これは、筆記体でグリフが分解できない言語で特に有効である。
OCR は通常、静的文書をオフラインで分析するプロセスである。オンライン OCR API サービスを提供するクラウド ベースのサービスも利用可能である。単にグリフや単語の形の分析だけでなく、文字の部位が描かれる順序、方向、ペンを下ろして持ち上げるパターンなどの動きを捉える筆順分析は、手書き文字認識へ追加情報として使うことで、認識をより正確に行うことができる[11]。この技術は「インライン文字認識」「動的文字認識」「リアルタイム文字認識」および「インテリジェント文字認識」とも呼ばれている。
技術
事前処理
OCRソフトウェアは、多くの場合、認識率を高めるために画像を「事前処理」する。使われている技術は次の通りである[12]。
- 傾き補正
- スキャン時にドキュメントが正しく整列していない場合、テキストの行を完全に水平または垂直にするために、文書を時計回りまたは反時計回りに数度傾ける。
- スペックル除去
- 白黒の斑点を除去して輪郭を平滑化する。
- 二値化
- 画像をカラーやグレースケールから白黒のバイナリイメージに変換する。二値化のタスクは、取り出したいテキストや画像を背景から分離する簡単な方法である[13]。ほとんどの商用認識アルゴリズムは、バイナリイメージに対してのみ機能するため、二値化のタスクは必須である[14]。また、二値化作業の結果は、文字認識段階の質に大きく影響するため、特定の入力画像タイプに対して採用する二値化手法の選択は慎重に行う必要がある[15][16]。
- 罫線の削除
- グリフ以外の罫線や線を消去する。
- レイアウト解析、ゾーニング
- 列、段落、脚注などを個別のブロックとして識別する。段組みと表を持つレイアウトで特に重要である。
- 行と単語の検出
- 単語と文字の図形のベースラインを確立し、必要に応じて単語を区切る。
- スクリプト認識
- 多言語文書では、スクリプトは単語のレベルで変更される可能性があるため、特定のスクリプトを処理するために適切な OCR を呼び出す前にスクリプトの識別が必要となる[17]。
- 文字の分離、セグメンテーション
- 文字毎に認識するOCR の場合、ひとつに繋がった複数の文字を分離し、切り離されているが複数で一つの文字になる要素は結合する必要がある。
- 縦横比と縮尺の正規化[18]
- 等幅フォントのセグメンテーションは、垂直グリッド線が黒い領域と交差する頻度が最も低い場所に基づいて、画像を均一なグリッドに揃えることによって、比較的単純に実現される。プロポーショナルフォントでは、文字間の空白文字が単語間の空白文字よりも大きくなる場合があり、垂直線が複数の文字と交差する場合があるため、より高度な手法が必要になる[19]。
テキスト認識
中核となる OCR アルゴリズムには以下の 2 つの基本的な種類があり、候補文字のランク付けされたリストを生成する[20]。
- マトリックスマッチング
- 画像をピクセル単位で格納されたグリフと比較する。"パターンマッチング"、"パターン認識"、"デジタル画像相関"ともいわれる技術である。これは、入力グリフがイメージの残りの部分から正しく分離されていることと、格納されているグリフが同じフォントで同じスケールであることに依存する。この方法は、同一活字を入力すると最適に機能し、途中で新しいフォントが出てくる場合はうまく機能しない。これは、初期の物理写真セルベースのOCRが実装した技術である。
- 特徴検出
- グリフが線分、閉じたループ、線の方向、線の交差などの “フィーチャ(特徴)” に分解される。検出機能は、表現の次元性を低下させ、認識プロセスを計算上効率的にする。これらのフィーチャは、文字の抽象的なベクトルのような表現と比較され、1つ以上のグリフプロトタイプに縮小される。コンピュータビジョンにおける特徴検出の一般的なテクニックは、一般的にインテリジェント手書き文字認識と実際に最も近代的なOCRソフトウェアで使われる[21]。k近傍アルゴリズムなどの最も近い近隣分類子は、画像フィーチャと格納されているグリフフィーチャを比較し、最も近い一致を選択する[22]。
CuneiformやTesseractなどのソフトウェアは、文字認識に2パス法を使用する。2番目のパスは「適応認識」と呼ばれ、最初のパスで高い信頼を得て認識された文字形状を使用して、2番目のパスの残りの文字をより良く認識する。これは、特殊なフォントやフォントが歪んでいる(例えば、ぼやけた、またはフェードされている)低品質でスキャンされた画像に有利である[19]。
OCRopus や Tesseractのような最近の OCR ソフトウェアは、単一の文字に焦点を当てるのではなく、テキストの行全体を認識するように訓練されたニューラルネットワークを使用する。
反復 OCR と呼ばれる新しい手法では、ページ レイアウトに基づいて文書を自動的にセクションに切り取る。OCR は、ページレベルの OCR 精度を最大化するために、可変文字信頼レベルのしきい値を使用してセクションに対して個別に実行される[23]。
OCR の結果は、標準化されたALTO形式、米国議会図書館によって管理される専用の XML スキーマで格納される。その他の一般的な形式は、hOCR と PAGE XML である。
事後処理
出力結果の中にレキシコン(文書で使用されている単語リスト)で定義されている単語しかないことが分かっている場合、OCR の精度を高めることができる[12]。単語リストには、例えば、英語のすべての単語、または特定の分野のより技術的な語彙を定義しておくことができる。この手法は、文書に語彙にない単語(固有名詞など)が含まれている場合は利用に課題が生じる。Tesseract は、自前の辞書を使って、文字をセグメンテーションするステップの精度を向上させている[19]。
基本的な出力結果はプレーンテキストであるが、より高度な OCR システムでは、ページの元のレイアウトを保持し、ページの元の画像と検索可能なテキスト表現の両方を含む注釈付きの PDF が生成される。
"近傍分析" は、特定の単語が一緒に使われる性質を利用して、エラーを修正する[24]。例えば、英語では「Washington, D.C.」の組み合わせは、「Washington DOC」よりもるかに一般的である。
たとえば、単語が動詞か名詞かなど、スキャンされる言語の文法に関する知識を実装することで、より高い精度を可能にする。
レーベンシュタイン距離アルゴリズムは、OCR API からの結果をさらに最適化するために OCR の事後処理でも使用されている[25]。
アプリケーション固有の最適化
主要な OCR エンジンメーカーは、特定の種類の入力をより効率的に処理できるように OCR システムを実装している。アプリケーション固有の語彙以外にも、ビジネス・ルール、標準表現[要説明]、カラー画像に含まれる情報などを利用して、精度を向上させることができる。この戦略は「アプリケーション指向OCR」または「カスタマイズされたOCR」と呼ばれ、ナンバープレート、請求書、スクリーンショット、IDカード、運転免許証、自動車製造業のOCRに利用されている。
ニューヨークタイムズは、ドキュメントヘルパーと呼ばれる、ニュース部門がレビューする文書の処理を加速させるための独自のツールにOCR技術を採用した。これを利用することで、記者は1時間あたり5,400ページの確認が可能になったという[26]。
回避策
OCRアルゴリズムを改良する以外の方法で、文字認識の問題を解決するためのいくつかのテクニックを紹介する。
高精度の入力を強制する
OCR-A、OCR-B、またはMICRフォントのような特殊なフォントは、正確に指定されたサイズ、間隔、および独特な文字形状を有し、郵便番号や銀行小切手処理の高精度での読み取りを可能にする。しかし、いくつかの有名なOCRエンジンは、ArialやTimes New Romanなどの一般的なフォントは認識できるが、OCR用途のこれらのフォントのテキストを認識できない。Google Tesseractは、新しいフォントを認識する訓練により、OCR-A、OCR-B、MICRフォントを認識することができるようになる[27]。
帳票の中で、ボックスごとに1つのグリフを書くように罫線を事前に印刷する方法もある[24]。罫線は、OCRシステムで簡単に除去できるドロップアウトカラーで印刷されることが多い[24]。
Palm OSでは、手書き入力時に「Graffiti」と呼ばれる特殊なグリフセットを使用していた。これは印刷された英語の文字に似ているが、能力が制限されたハードウェアで認識しやすくするためにグリフが調整されていた。ユーザーはこれらの特殊なグリフを書く方法を学ぶ必要があった。
ゾーンベースのOCRは、画像を文書の特定の部分に制限する。これは、多くの場合、「テンプレートOCR」と呼ばれる。
クラウドソーシング
クラウドソーシングを活用して人間に文字認識をさせることで、コンピュータによるOCRと同じように迅速な処理を行いつつ、コンピュータ処理よりも精度を上げることができる。実用的なシステムには、Amazon Mechanical Turk やreCAPTCHAが挙げられる。フィンランド国立図書館は、標準化されたALTO形式で、コンピュータでOCRされたテキストを人間が修正するためのオンラインインターフェイスを開発した[28]。クラウドソーシングは、文字認識を直接行うのではなく、ソフトウェア開発者に画像処理アルゴリズムの開発を依頼するためにも活用されている[29]。
注釈
- ^ カーツワイルは書体を選ばないOCR技術の発明者とされることもあるが、1960年代末ごろから同様の技術を開発する企業がいくつか出現している。詳しくは Schantz, The History of OCR; Data processing magazine, Volume 12 (1970), p. 46 を参照
出典
- ^ OnDemand, HPE Haven. “OCR Document”. 2016年4月15日時点のオリジナルよりアーカイブ。2016年4月15日閲覧。
- ^ a b Herbert Schantz, The History of OCR. Manchester Center, VT: Recognition Technologies Users Association, 1982.
- ^ "Reading Machine Speaks Out Loud" , February 1949, Popular Science.
- ^ Washington Daily News, April 27, 1951; New York Times, December 26, 1953
- ^ “音声ソフトの ScanSoft、競合する Nuance を買収”. japan.internet.com. (2005年5月10日)
- ^ Qing-An Zeng (28 October 2015). Wireless Communications, Networking and Applications: Proceedings of WCNA 2014. Springer. ISBN 978-81-322-2580-5
- ^ “Using OCR and Entity Extraction for LinkedIn Company Lookup” (2014年7月22日). 2016年4月17日時点のオリジナルよりアーカイブ。2017年6月16日閲覧。
- ^ “How To Crack Captchas”. andrewt.net (2006年6月28日). 2013年6月16日閲覧。
- ^ “Breaking a Visual CAPTCHA”. Cs.sfu.ca (2002年12月10日). 2013年6月16日閲覧。
- ^ John Resig (2009年1月23日). “John Resig – OCR and Neural Nets in JavaScript”. Ejohn.org. 2013年6月16日閲覧。
- ^ Tappert, C. C.; Suen, C. Y.; Wakahara, T. (1990). “The state of the art in online handwriting recognition”. IEEE Transactions on Pattern Analysis and Machine Intelligence 12 (8): 787. doi:10.1109/34.57669 .
- ^ a b “Optical Character Recognition (OCR) – How it works”. Nicomsoft.com. 2013年6月16日閲覧。
- ^ Sezgin, Mehmet; Sankur, Bulent (2004). “Survey over image thresholding techniques and quantitative performance evaluation”. Journal of Electronic Imaging 13 (1): 146. Bibcode: 2004JEI....13..146S. doi:10.1117/1.1631315. オリジナルのOctober 16, 2015時点におけるアーカイブ。 2015年5月2日閲覧。.
- ^ Gupta, Maya R.; Jacobson, Nathaniel P.; Garcia, Eric K. (2007). “OCR binarisation and image pre-processing for searching historical documents.”. Pattern Recognition 40 (2): 389. doi:10.1016/j.patcog.2006.04.043. オリジナルのOctober 16, 2015時点におけるアーカイブ。 2015年5月2日閲覧。.
- ^ Trier, Oeivind Due; Jain, Anil K. (1995). “Goal-directed evaluation of binarisation methods.”. IEEE Transactions on Pattern Analysis and Machine Intelligence 17 (12): 1191–1201. doi:10.1109/34.476511 2015年5月2日閲覧。.
- ^ Milyaev, Sergey; Barinova, Olga; Novikova, Tatiana; Kohli, Pushmeet; Lempitsky, Victor (2013). “Image binarisation for end-to-end text understanding in natural images.”. Document Analysis and Recognition (ICDAR) 2013 12th International Conference on: 128–132. doi:10.1109/ICDAR.2013.33. ISBN 978-0-7695-4999-6 2015年5月2日閲覧。.
- ^ Pati, P.B.; Ramakrishnan, A.G. (1987-05-29). “Word Level Multi-script Identification”. Pattern Recognition Letters 29 (9): 1218–1229. doi:10.1016/j.patrec.2008.01.027.
- ^ “Basic OCR in OpenCV | Damiles”. Blog.damiles.com (2008年11月20日). 2013年6月16日閲覧。
- ^ a b c Ray Smith (2007年). “An Overview of the Tesseract OCR Engine”. 2010年9月28日時点のオリジナルよりアーカイブ。2013年5月23日閲覧。
- ^ “OCR Introduction”. Dataid.com. 2013年6月16日閲覧。
- ^ “How OCR Software Works”. OCRWizard. 2009年8月16日時点のオリジナルよりアーカイブ。2013年6月16日閲覧。
- ^ “The basic pattern recognition and classification with openCV | Damiles”. Blog.damiles.com (2008年11月14日). 2013年6月16日閲覧。
- ^ http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=10,679,089&OS=10,679,089&RS=10,679,089
- ^ a b c “How does OCR document scanning work?”. Explain that Stuff (2012年1月30日). 2013年6月16日閲覧。
- ^ “How to optimize results from the OCR API when extracting text from an image? - Haven OnDemand Developer Community”. 2016年3月22日時点のオリジナルよりアーカイブ。2020年12月21日閲覧。
- ^ Fehr, Tiff, How We Sped Through 900 Pages of Cohen Documents in Under 10 Minutes, Times Insider, The New York Times, March 26, 2019
- ^ “Train Your Tesseract”. Train Your Tesseract (2018年9月20日). 2018年9月20日閲覧。
- ^ “What is the point of an online interactive OCR text editor? - Fenno-Ugrica” (2014年2月21日). 2020年12月21日閲覧。
- ^ Riedl, C.; Zanibbi, R.; Hearst, M. A.; Zhu, S.; Menietti, M.; Crusan, J.; Metelsky, I.; Lakhani, K. (20 February 2016). “Detecting Figures and Part Labels in Patents: Competition-Based Development of Image Processing Algorithms”. International Journal on Document Analysis and Recognition 19 (2): 155. arXiv:1410.6751. doi:10.1007/s10032-016-0260-8.
- ^ “The Fifth Annual Test of OCR Accuracy”. 2012年4月27日閲覧。
- ^ Holley, Rose (2009年4月). “How Good Can It Get? Analysing and Improving OCR Accuracy in Large Scale Historic Newspaper Digitisation Programs”. D-Lib Magazine. 2011年1月5日閲覧。
- ^ Suen, C.Y., et al (1987-05-29). Future Challenges in Handwriting and Computer Applications. 3rd International Symposium on Handwriting and Computer Applications, Montreal, May 29, 1987 2008年10月3日閲覧。.
- ^ Tappert, Charles C., et al (1990-08). The State of the Art in On-line Handwriting Recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 12 No 8, August 1990, pp 787-ff 2008年10月3日閲覧。.
光学文字認識と同じ種類の言葉
- 光学文字認識のページへのリンク