手書き文字認識

手書き文字認識（てがきもじにんしき、英: handwriting recognition、handwritten text recognition）とは、認識可能な手書き入力を受け取るコンピュータの機能である。入力元としては、紙に手書きされた文書・写真・タッチパネルなどの機器がある。事前に「オフライン」で書かれた文書を光学スキャンして入力する「オフライン手書き文字認識」と、「オンライン」で手書き文字入力する「オンライン手書き文字認識」に区別される。 手書き文字認識は基本的に光学文字認識の技術の上に成り立っている。しかし、オンライン手書き文字認識の場合は筆順や線を描く方向なども考慮し、最もそれらしい文字または単語を探すという技術も必要になる。 オフライン手書き文字認識は、紙の上に書かれた文書イメージを光学スキャンし、そのイメージを自動的にコンピュータで処理可能なテキストデータ（何らかの文字コードで構成されるデータ）に変換する。これで得られるデータは、手書き文字の静的な表現とみなすことができる。手書き文字は人によって癖がありバラエティに富んでいるため、通常の光学文字認識 (OCR) よりも難しい。OCRは印刷文書を対象とし、インテリジェント文字認識 (ICR) はいわゆる筆記体でない手書き文書を対象とする。あらゆる手書き文字を認識できるOCR/ICRは今のところ存在しない。 この技術は、保険会社のようなたくさんの手書きの文書を処理するビジネスで使われて、成功している。認識の質は、文書を構造化することによって大幅に向上させることができる。 対象領域を限定することで、手書き文字認識システムの認識率を向上させることが多い。例えばZIPコード（郵便番号）を対象とすれば、文字の種類は0から9までの数字に限定される。このため文字の特定の際の可能性をかなり限定できる。 主に次のような技法がある。 使用される文字の種類を制限する。 特別な書式を採用し、特定の位置に特定の文字種が書かれるようにする。 オフライン文字認識では、過去に書かれた書類などをスキャンして入力とすることがある。ここで、スキャンイメージから個々の文字を区切って抽出することが必要になる。このためのツールも存在するが、この工程の問題が完全に解決されたとは言い難い。よくある問題は、2つの文字がくっついて書かれているため、1つの文字として抽出される場合である。これが次の文字認識工程を困難にしている大きな問題である。これを解決しようとして様々なアルゴリズムが考案されている。 抽出後、個々の文字のイメージが認識エンジンに入力され、対応する文字コードが何かを特定する。認識技法はいくつか存在する。 ニューラルネットワークによる認識エンジンは、まず訓練用イメージ群で学習する。そして、訓練済みネットワークを使って文字を認識する。ニューラルネットワークはそれぞれの訓練イメージを区別する属性を学んでおり、認識対象のイメージに同様の属性がないか捜す。ニューラルネットワークはセットアップが簡単だが、認識対象と傾向の異なる訓練イメージしか与えられていないと、認識率は低くなる。 特徴抽出もニューラルネットワークと似たような方式で機能するが、プログラマが重要と考える属性を決め、手動でそれらを設定する必要がある。 ここでいう属性とは次のようなものである。 縦横比 上半分のピクセルの比率 右半分のピクセルの比率 一筆で書かれた線分の本数 イメージの中心からの平均距離 Y軸を中心とした対称性 X軸を中心とした対称性 この技法は認識工程で属性を制御できるという利点がある。しかし、特徴量は自動的に学習されないため、ニューラルネットワークのような機械学習よりも開発には大いに時間がかかる。 オンライン手書き文字認識は、特殊なタブレットやPDAを使って入力されるテキストを自動認識するもので、センサでペン先の動きやペンの上げ下げをデータとして収集する。これらのデータはデジタルインキと呼ばれ、手書き動作の表現とみなすことができる。この信号を、認識アルゴリズムに従い文字データベースとのパターンマッチングを行い、書かれた文字をテキスト情報に変換し、アプリケーションに受け渡す。 この方式のインタフェースには一般に以下の要素が含まれる。 ユーザーが書き込むのに使うペンまたはスタイラス 接触を感知する平面の入力域 出力ディスプレイと統合されているか、隣接していることがある。（入力機器としての）タブレットまたはタッチパネルが用いられる。 ペンまたはスタイラスの動きとその結果として生じている曲線を、デジタルのテキストに翻訳して解釈するソフトウェアアプリケーション キーボード入力の代替として手書き文字認識を採用した商用製品は1980年代初めごろに登場した。初期の手書き端末製品として Pencept Penpad や Inforite のPOS端末がある。パーソナルコンピュータが巨大消費者市場を形成すると、キーボードとマウスの代替としてPenCept、CICなどから手書き文字認識システムが発売された。最初のタブレット型ポータブルコンピュータとして、GRiD Systems のGRiDPadが1989年9月にリリースされた。これにはMS-DOSをベースとしたオペレーティングシステムが搭載されていた。 1990年代初め、NCR、IBM、EO というメーカーが共同でGO社の PenPoint OS を搭載した（広義の）タブレットPCをリリースした。PenPointには手書き文字認識機能やジェスチャー機能があり、サードパーティ製ソフトウェアにもそれらを適用可能だった。IBMは当初ThinkPadのブランド名を使い、独自の手書き文字認識技術を使っていた。この認識システムは後にマイクロソフトの Windows for Pen Computing に移植され、IBMではOS/2にも移植した。これらはいずれも商業的には失敗した。 電子工学の進歩により、手書き文字認識に必要な装置はタブレット型コンピュータよりさらに小型にできるようになり、PDAに手書き文字認識機能が使われるようになっていった。手書き文字入力を提供した最初のPDAは、Apple Computerの「ニュートン」である。ニュートンOSが実装されたPDA「メッセージパッド」は、効率化されたユーザインタフェース (UI) の有利さを世間に知らしめた。しかし、ニュートンは商業的に成功しなかった。価格や処理スピードの問題に加え、ユーザーの書き込みパターンを学習するソフトウェアの信頼性が低かったことも普及を妨げた原因の一つとして挙げられている。ニュートンOS 2.0では、モードレスエラー修正などの現在の認識システムでも見られないユニークな機能を含めて手書き文字認識が大いに改善されたものの、それ以前に悪い第一印象が形成されてしまっていた。アップル・ニュートンが生産中止になり、その機能は Mac OS X 10.2 に移植され、後にInkwellとなった。 palmOne（現 Palm Inc.）は、グラフィティ認識システムに基づくPDAのシリーズを開発、販売した。「グラフィティ」とは、アルファベットと一対一で対応する一筆書きのパターンの集まりであり、これを採用することにより認識精度は飛躍的に高まった。ユーザーは、アルファベットに似ているが書き順や形の違う（一致するものもある）入力パターンを覚える必要があったものの、一旦覚えてしまえば、高速かつ正確な認識により快適な入力を行うことができた。ただし、アルファベットやアラビア数字、一部の記号以外の文字を入力するには、インプットメソッドによる変換作業が必要だった。なお、当初のグラフィティ方式はゼロックスの保持する特許を侵害していることが判明し、後にゼロックスの特許に先行して存在していたCICのシステムのライセンスを取得し、そちらに乗り換えた。 シャープは、アップルコンピュータとの提携により、ニュートンOSを搭載したPDAのハードウェアを製造していた。シャープはニュートンOSの日本語ローカライズを行い、日本国内で販売することを検討していたが、ニュートンの商業的失敗が明らかになると、独自路線に一本化した。同社が製造、販売していた電子手帳を拡張し、ニュートンのようなペン操作によるUIを組み込んだ。自社ブランドによるPDA「PI-3000」は、日本国内で同種の商品としては異例のヒットを記録した。同社はPDAにザウルスの愛称を冠してシリーズ化し、数度のアーキテクチャ変更を経て今日まで販売が続けられている。手書き文字認識エンジンは年々改良されており、ある程度のくせ字や崩し字でも精度は低いが認識できた（ただし、書き順を間違うと格段に精度が落ちる場合がある）。認識に要する時間はやや長く、あまり高速な入力はできなかった。 マイクロソフトは、ペン操作を前提としたUIを持つOS「Windows Mobile」を開発し、ライセンス販売した。同OSは、汎用性の高い組み込み向けOSであるWindows CEをベースに、ペン操作に向いたUIや、PDAとして利用するのに必要なコンポーネントを組み合わせたものである。かつてはキーボードを搭載した「Handheld PC」というセグメントがあったが、後にペン操作に一本化した。Windows Mobileを採用したPDAは、Palmから顧客を奪い一定のシェアを確保したものの、新規需要の掘り起こしにまでは至らなかった。 デスクトップOSをベースにした手書き文字認識システムには、Windows XP Tablet PC Editionがあった。タブレットPCは、タッチパネルを装備した特殊なノートパソコンで、スタイラスを用いてスクリーン上に文字を手書きで入力できるようになっている。OSは手書きされたパターンを認識し、それを通常のテキストに変換する。マイクロソフトのシステムは、ユーザの書き込みパターンを学習せず、類似した字形を含む内部の認識データベースとのマッチングを行っている。このシステムは、Windows Mobileの中で使用されている手書き文字認識システムとは異なる。Windows 7 は学習機能のある高度な手書き文字認識システムを持ち、英語だけでなく、日本語、中国語、韓国語などにも対応した。 マイクロソフトのタブレットPC用OS（Windows XP Tablet PC Edition、Windows Vista、Windows 7）などは、"Inferno" と呼ばれる遅延時間ニューラルネットワーク (TDNN) 分類器を採用しており、マイクロソフト自身が開発した。Newton OS 2.0 で使われていた手書き文字認識システムを1999年に ParaGraph International からマイクロソフトがライセンス供与を受けた CalliGrapher もTDNNと共に第二の認識エンジンとなっている。CalliGrapherの新世代版は 2001年に ParaGraph が買収した PhatWare Corp から Windows Mobile 版として発売された。 汎用OSを使ったものとしては、生保・損保業界では、タッチパネル搭載、キーボードなしのハンディPCに、Tablet PC Editionではないデスクトップ向け汎用OSと、独自の手書き認識エンジンを組み込んだものが使用されることがあった。また、キオスク端末として、ペンオペレーション可能な小型PCが利用されていることがあった。これは、利用者の利便性向上の他、キーボード操作を無効にしてシステムの安全性を確保するという目的もある。 また、手書き認識入力ソフトウェアを開発する運動も盛んになった。（*Parascript の Pen&Internet 部門を前身とする）EverNote Corporation が2000年から2004年に開発した riteScript は第三世代の手書き文字認識技術といわれ、同社の ritePen および Evernote ソフトウェアに採用されている。ritePen は Windows Vista に元々備わっている手書き文字認識機能と riteScript を連携させ、認識率を向上させている。 CellWriterは、Linux向けのオープンソースの手書き文字認識プログラムである。ミネソタ大学の Undergraduate Research Opportunity Program の一環として、Michael Levin らが開発した。CellWriter は書き手の癖を学習する方式であり、使う前に訓練を必要とする。英単語認識エンジンを備えて認識率を強化し、ソフトウェアキーボード機能やコンテキストメニューで認識ミスを微調整したり訂正したりできる。他の認識エンジンとは異なり、ソースコードとアルゴリズムが公開されており、無料でダウンロードできる。 MyScript Builderは、VisionObjectsがリリースしている手書き文字認識SDKで、Anoto が開発したデジタルペンを使ったアプリケーションの開発にもよく利用されている。 デジタル要素を仕込んだペンで紙に文字を書いて、そこからデジタル化されたテキストを得る試みもなされた。例えば、Anotoが開発した技術は比較的知られており、教育市場である程度成功を収めている。 手書き文字認識はハード・ソフトともに入力方式として十分実用なものに達したが、スマホやタブレットでの日本語入力方式としてはソフトウェアキーボードが主流となっている。 手書き文字認識は盛んに研究されている分野である。この分野で最大の国際会議として ICFHR (International Conference on Frontiers in Handwriting Recognition) が偶数年に開催され、ICDAR (International Conference on Document Analysis and Recognition) が奇数年に開催されている。どちらもIEEEが精査した論文が発表される。特に研究が活発な分野は次の通りである。 オンライン認識 オフライン認識 署名（サイン）の照合 郵便物の住所の解釈 小切手処理 1915年: アメリカ合衆国でスタイラスを使った手書き文字認識のユーサインタフェースに関する特許が成立。 1957年: Stylatorタブレット: Tom Dimond がコンピュータ入力機器として手書き文字認識可能な電子式タブレットを公開した。 1961年: RAND Tablet の発明: それ以前のものより比較的有名。 1962年: 筆記体の手書き文字認識。 1969年: GRAILシステム: 電子インクディスプレイとジェスチャー・コマンドを採用した手書き文字認識システム。 1973年: Applicon CAD/CAMシステム。手書き文字認識に Ledeen の認識システムを採用。 1980年代: 一般用手書き文字認識システム: Pencept と CIC はどちらも一般PC市場向けにタブレットを使った手書き文字認識システムを発売した。Cadre System は Inforite POS端末に手書き文字認識機能を装備した。 1989年: 携帯型手書き文字認識コンピュータ: GRiDPad from GRiD Systems.