手書き文字認識

手書き文字認識（英: Handwriting recognition）とは、認識可能な手書き入力を受け取るコンピュータの機能である。入力元としては、紙に手書きされた文書、写真、タッチパネルなどの機器がある。事前に「オフライン」で書かれた文書を光学スキャンして入力する「オフライン手書き文字認識」と、「オンライン」で手書き文字入力する「オンライン手書き文字認識」に区別される。
手書き文字認識は基本的に光学文字認識の技術の上に成り立っている。しかし、オンライン手書き文字認識の場合は筆順や線を描く方向なども考慮し、最もそれらしい文字または単語を探すという技術も必要になる。

オフライン手書き文字認識

オフライン手書き文字認識は、紙の上に書かれた文書イメージを光学スキャンし、そのイメージを自動的にコンピュータで処理可能なテキストデータ（何らかの文字コードで構成されるデータ）に変換する。これで得られるデータは、手書き文字の静的な表現とみなすことができる。手書き文字は人によって癖がありバラエティに富んでいるため、通常の光学文字認識(OCR)よりも難しい。OCRは印刷文書を対象とし、インテリジェント文字認識(ICR)はいわゆる筆記体でない手書き文書を対象とする。あらゆる手書き文字を認識できるOCR/ICRは今のところ存在しない。
この技術は、保険会社のようなたくさんの手書きの文書を処理するビジネスで使われて、成功している。認識の質は、文書を構造化することによって大幅に向上させることができる。

文字抽出

オフライン文字認識では、過去に書かれた書類などをスキャンして入力とすることがある。ここで、スキャンイメージから個々の文字を区切って抽出することが必要になる。このためのツールも存在するが、この工程の問題が完全に解決されたとは言い難い。よくある問題は、2つの文字がくっついて書かれているため、1つの文字として抽出される場合である。これが次の文字認識工程を困難にしている大きな問題である。これを解決しようとして様々なアルゴリズムが考案されている。

文字認識

抽出後、個々の文字のイメージが認識エンジンに入力され、対応する文字コードが何かを特定する。認識技法はいくつか存在する。

ニューラルネットワーク

ニューラルネットワークによる認識エンジンは、まず訓練用イメージ群で学習する。そして、訓練済みネットワークを使って文字を認識する。ニューラルネットワークはそれぞれの訓練イメージを区別する属性を学んでおり、認識対象のイメージに同様の属性がないか捜す。ニューラルネットワークはセットアップが簡単だが、認識対象と傾向の異なる訓練イメージしか与えられていないと、認識率は低くなる。

ハードウェア

キーボード入力の代替として手書き文字認識を採用した商用製品は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は、アップルコンピュータの「ニュートン」である。ニュートン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から顧客を奪い一定のシェアを確保したものの、新規需要の掘り起こしにまでは至っておらず、Symbian OSなどを採用したスマートフォンに押されている。
デスクトップOSをベースにした手書き文字認識システムには、Windows XP Tablet PC Editionがある。タブレットPCは、タッチパネルを装備した特殊なノートパソコンで、スタイラスを用いてスクリーン上に文字を手書きで入力できるようになっている。OSは手書きされたパターンを認識し、それを通常のテキストに変換する。マイクロソフトのシステムは、ユーザの書き込みパターンを学習せず、類似した字形を含む内部の認識データベースとのマッチングを行っている。このシステムは、Windows Mobileの中で使用されている手書き文字認識システムとは異なる。Windows 7 は学習機能のある高度な手書き文字認識システムを持ち、英語だけでなく、日本語、中国語、韓国語などに対応している。
汎用OSを使ったものとしては、生保・損保業界では、タッチパネル搭載、キーボードなしのハンディPCに、Tablet PC Editionではないデスクトップ向け汎用OSと、独自の手書き認識エンジンを組み込んだものが使用されることがある。また、キオスク端末として、ペンオペレーション可能な小型PCが利用されていることがある。これは、利用者の利便性向上の他、キーボード操作を無効にしてシステムの安全性を確保するという目的もある。
最近では、デジタル要素を仕込んだペンで紙に文字を書いて、そこからデジタル化されたテキストを得る試みがなされている。例えば、Anotoが開発した技術は比較的知られており、教育市場である程度成功を収めている。この技術が定着するかどうかは、未知数である。
手書き文字認識は入力方式として一般化してきたが、いまだにデスクトップコンピュータなどで広範囲に使われるには至っていない。キーボードによる入力の方が速くて信頼性が高いという見方が一般的である。PDAでは手書き文字認識機能を搭載したものが多く、中には筆記体も認識できるものもあるが、認識率の低さがいまだに問題であり、ソフトウェアキーボードの方が効率的だと感じるユーザーも多い。

ソフトウェア

最近の手書き文字認識システムの例としてマイクロソフトのタブレット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 版として発売されている。
（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 が開発したデジタルペンを使ったアプリケーションの開発にもよく利用されている。