(57)【要約】【課題】  高い認識率を達成しつつ待ち時間を最小限に抑え、かつ、総ＣＰＵ時間も少なくすることが可能なプログラム、情報記憶媒体及び文字列認識装置を提供すること。【解決手段】  入力されたストローク列を取得するごとに、ストローク列における分割再開位置を設定し、分割再開位置以降のストローク列におけるオフストロークを分割点と非分割点と不確定点とに分類し、分割候補点（分割点、不確定点）で切り出される候補文字パタンに対して文字認識を行って候補文字の列を生成して候補文字ラティスを更新し、候補文字ラティスから最適パスを探索して文字列を認識する。最新の最適パスにおける候補文字間にあるオフストロークのうち、最後のＮ個の候補文字の直前にあるオフストロークを、前記分割再開位置として設定し、最新の最適パスにおける候補文字間にある不確定点のうち、最後のＭ（Ｍ≦Ｎ）個の候補文字より前にある不確定点を分割点に変更する。【選択図】      図２
2014219900.tif 000002
【特許請求の範囲】
【請求項１】
手書き入力された文字パタンのストロークから文字列を認識するためのプログラムであって、
手書き入力された文字パタンのストローク列を、所定画数ごとに、又は所定時間の筆記中断があるごとに取得するストローク列取得部と、
ストローク列を取得するごとに、ストローク列における分割再開位置を設定する分割再開位置設定部と、
ストローク列を取得するごとに、前記分割再開位置以降のストローク列におけるストローク間のオフストロークを、２つの文字パタンに分割するオフストロークを示す分割点と、１つの文字パタン内部のオフストロークを示す非分割点と、前記分割点であるか前記非分割点であるかを決定できないオフストロークを示す不確定点とに分類し、前記分割点及び前記不確定点を分割候補点として決定する仮分割部と、
ストローク列を取得するごとに、隣接する２つの前記分割候補点で切り出される候補文字パタン及び隣接する２つの前記分割点で切り出される候補文字パタンに対して文字認識を行って候補文字の列を生成し、候補文字ラティスを更新する候補文字ラティス更新部と、
ストローク列を取得するごとに、前記候補文字ラティスから最適パスを探索して文字列を認識する文字列認識部としてコンピュータを機能させ、
前記分割再開位置設定部は、
最新の最適パスにおける候補文字間にあるオフストロークのうち、最後のＮ個の候補文字の直前にあるオフストロークを、前記分割再開位置として設定し、
前記仮分割部は、
最新の最適パスにおける候補文字間にある前記不確定点のうち、最後のＭ（Ｍ≦Ｎ）個の候補文字より前にある前記不確定点を前記分割点に変更することを特徴とするプログラム。
【請求項２】
請求項１において、
ストローク列を取得するごとに、候補文字ラティスの更新処理及び最適パスの探索処理の対象となるストローク列をスコープとして設定するスコープ設定部として更にコンピュータを機能させ、
前記スコープ設定部は、
前記仮分割部で分類を変更したオフストローク又は前記ストローク列取得部で取得した最新のストローク列の直前にあるオフストロークを基準として前記スコープの先頭位置を決定し、前記先頭位置以降のストローク列を前記スコープとして設定することを特徴とするプログラム。
【請求項３】
請求項２において、
前記候補文字ラティス更新部は、
前記スコープ設定部で設定した前記スコープにおける２つの前記分割点で切り出される候補文字パタンが、前回の前記スコープ内に存在する場合には、当該候補文字パタンに対して文字認識を行わずに、当該候補文字パタンの文字認識結果を再利用することを特徴とするプログラム。
【請求項４】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至３のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項５】
手書き入力された文字パタンのストロークから文字列を認識する文字列認識装置であって、
手書き入力された文字パタンのストローク列を、所定画数ごとに、又は所定時間の筆記
中断があるごとに取得するストローク列取得部と、
ストローク列を取得するごとに、ストローク列における分割再開位置を設定する分割再開位置設定部と、
ストローク列を取得するごとに、前記分割再開位置以降のストローク列におけるストローク間のオフストロークを、２つの文字パタンに分割するオフストロークを示す分割点と、１つの文字パタン内部のオフストロークを示す非分割点と、前記分割点であるか前記非分割点であるかを決定できないオフストロークを示す不確定点とに分類し、前記分割点及び前記不確定点を分割候補点として決定する仮分割部と、
ストローク列を取得するごとに、隣接する２つの前記分割候補点で切り出される候補文字パタン及び隣接する２つの前記分割点で切り出される候補文字パタンに対して文字認識を行って候補文字の列を生成し、候補文字ラティスを更新する候補文字ラティス更新部と、
ストローク列を取得するごとに、前記候補文字ラティスから最適パスを探索して文字列を認識する文字列認識部とを含み、
前記分割再開位置設定部は、
最新の最適パスにおける候補文字間にあるオフストロークのうち、最後のＮ個の候補文字の直前にあるオフストロークを、前記分割再開位置として設定し、
前記仮分割部は、
最新の最適パスにおける候補文字間にある前記不確定点のうち、最後のＭ（Ｍ≦Ｎ）個の候補文字より前にある前記不確定点を前記分割点に変更することを特徴とする文字列認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き入力された文字パタンのストロークから文字列を認識するためのプログラム、情報記憶媒体及び文字列認識装置に関する。
【背景技術】
【０００２】
近年、ペン入力デバイスや指などによるタッチ入力が可能なタブレット型ＰＣやスマートフォンが発展しており、オンライン手書き文字列認識を用いた入力方法が注目を集めている。単独文字認識に比べて、手書き文字列認識では、文字の切り出しと認識の複合的な問題に直面する。
【０００３】
文字列認識で高い認識率を得るためには、文字列が全て筆記されてから認識処理を始める方が一般に高い認識率が期待できる。この方式をバッチ認識方式と呼ぶ。一方、筆画ごとに認識処理を行う方式を逐次認識方式と呼ぶ。ユーザインターフェースの観点からは、筆記を終えてから認識処理を表示する方式をレイジー（Ｌａｚｙ）認識インターフェースと呼び、筆記の途中で認識結果を表示する方式をビジー（Ｂｕｓｙ）認識インターフェースと呼ぶ。ユーザが考えながら書く場合は、認識結果に注意を削がれ、誤認識があったときに書き直したくなり、思考の連続性を壊す問題から、レイジー認識インターフェースの方が好ましい。ユーザが書いている途中には認識結果は不要であり、筆記を終えてから認識結果が必要になるからである。しかし、レイジー認識インターフェースにおいてバッチ認識方式を採用する場合、文字列が長くなるほど筆記終了後に長い待ち時間が生じることが大きな問題になる。
【０００４】
この問題を解決するためには、レイジー認識インターフェースにおいても、ユーザが筆記中に、できる処理を逐次進めていくことが重要である。特許文献１には、手書き日本語文字列に対して筆記中に実時間で認識する逐次認識方式が開示されている。ここでは、新しい筆画が入力されるごとに、文字パタンごとに仮分割し、認識して候補文字を生成し、最初の筆画から文脈を利用した文字列認識をやり直している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２７１８９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
バッチ認識方式では、完全な文脈を使えることから高い認識率が期待でき、処理をまとめて行うことからＣＰＵ時間に無駄が生じないものの、文字列が長くなると待ち時間が大きくなる問題点がある。一方、逐次認識方式では、待ち時間は小さくなるものの、最大の文脈を使えず最もローカルな処理となるために認識率が低下する問題点や、一画ごとに処理するため処理の繰り返し等が発生することから総ＣＰＵ時間が大きくなる問題点がある。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、高い認識率を達成しつつ待ち時間を最小限に抑え、かつ、総ＣＰＵ時間も少なくすることが可能なプログラム、情報記憶媒体及び文字列認識装置を提供することにある。
【課題を解決するための手段】
【０００８】
（１）本発明は、手書き入力された文字パタンのストロークから文字列を認識するため
のプログラムであって、
手書き入力された文字パタンのストローク列を、所定画数ごとに、又は所定時間の筆記中断があるごとに取得するストローク列取得部と、
ストローク列を取得するごとに、ストローク列における分割再開位置を設定する分割再開位置設定部と、
ストローク列を取得するごとに、前記分割再開位置以降のストローク列におけるストローク間のオフストロークを、２つの文字パタンに分割するオフストロークを示す分割点と、１つの文字パタン内部のオフストロークを示す非分割点と、前記分割点であるか前記非分割点であるかを決定できないオフストロークを示す不確定点とに分類し、前記分割点及び前記不確定点を分割候補点として決定する仮分割部と、
ストローク列を取得するごとに、隣接する２つの前記分割候補点で切り出される候補文字パタン及び隣接する２つの前記分割点で切り出される候補文字パタンに対して文字認識を行って候補文字の列を生成し、候補文字ラティスを更新する候補文字ラティス更新部と、
ストローク列を取得するごとに、前記候補文字ラティスから最適パスを探索して文字列を認識する文字列認識部としてコンピュータを機能させ、
前記分割再開位置設定部は、
最新の最適パスにおける候補文字間にあるオフストロークのうち、最後のＮ個の候補文字の直前にあるオフストロークを、前記分割再開位置として設定し、
前記仮分割部は、
最新の最適パスにおける候補文字間にある前記不確定点のうち、最後のＭ（Ｍ≦Ｎ）個の候補文字より前にある前記不確定点を前記分割点に変更することを特徴とするプログラムに関する。
【０００９】
また、本発明は、上記各部を含む文字列認識装置に関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関係する。
【００１０】
本発明によれば、最新の最適パスにおける候補文字間にある前記不確定点のうち、最後のＭ個の候補文字より前にある前記不確定点を前記分割点に変更することで、候補文字パタンの数を少なくすることができ、候補文字ラティスの更新処理にかかる時間を短縮して認識結果が得られるまでの待ち時間を最小限に抑えることができる。
【００１１】
（２）また本発明に係るプログラム及び情報記憶媒体では、
ストローク列を取得するごとに、候補文字ラティスの更新処理及び最適パスの探索処理の対象となるストローク列をスコープとして設定するスコープ設定部として更にコンピュータを機能させ、
前記スコープ設定部は、
前記仮分割部で分類を変更したオフストローク又は前記ストローク列取得部で取得した最新のストローク列の直前にあるオフストロークを基準として前記スコープの先頭位置を決定し、前記先頭位置以降のストローク列を前記スコープとして設定してもよい。
【００１２】
また本発明に係る文字列認識装置では、
ストローク列を取得するごとに、候補文字ラティスの更新処理及び最適パスの探索処理の対象となるストローク列をスコープとして設定するスコープ設定部を更に含み、
前記スコープ設定部は、
前記仮分割部で分類を変更したオフストローク又は前記ストローク列取得部で取得した最新のストローク列の直前にあるオフストロークを基準として前記スコープの先頭位置を決定し、前記先頭位置以降のストローク列を前記スコープとして設定してもよい。
【００１３】
本発明によれば、分類が変更されたオフストローク又は取得された最新のストローク列の直前にあるオフストロークを基準としてスコープの先頭位置を決定し、前記先頭位置以降のストローク列を前記スコープとして設定して、前記スコープを候補文字ラティスの更新処理及び最適パスの探索処理の対象とすることで、候補文字ラティスの更新処理及び探索処理にかかる時間を短縮して認識結果が得られるまでの待ち時間を最小限に抑えることができる。
【００１４】
（３）また本発明に係るプログラム、情報記憶媒体及び文字列認識装置では、
前記候補文字ラティス更新部は、
前記スコープ設定部で設定した前記スコープにおける２つの前記分割点で切り出される候補文字パタンが、前回の前記スコープ内に存在する場合には、当該候補文字パタンに対して文字認識を行わずに、当該候補文字パタンの文字認識結果を再利用してもよい。
【００１５】
本発明によれば、前回のスコープでの候補文字パタンの文字認識結果を最新のスコープで再利用することで、候補文字ラティスの更新処理にかかる時間を短縮して認識結果が得られるまでの待ち時間を最小限に抑えることができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の文字列認識装置の機能ブロック図の一例。
【図２】本実施形態の文字列認識装置の処理の流れを示すフローチャート図。
【図３】候補文字ラティスについて説明するための図。
【図４】図４（Ａ）、図４（Ｂ）は、本実施形態の文字列認識装置の具体的な処理例について説明するための図。
【図５】図５（Ａ）、図５（Ｂ）は、本実施形態の文字列認識装置の具体的な処理例について説明するための図。
【図６】図６（Ａ）、図６（Ｂ）は、本実施形態の文字列認識装置の具体的な処理例について説明するための図。
【図７】図７（Ａ）、図７（Ｂ）は、待ち時間についての性能評価結果を示す図。
【発明を実施するための形態】
【００１７】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１８】
１．構成
図１に本実施形態の文字列認識装置の機能ブロック図の一例を示す。なお本実施形態の文字列認識装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１９】
文字入力部１６０は、ユーザが筆記媒体（ペン、指先等）で手書き文字を入力するためのものであり、その機能は、タブレット、タッチパネル等の筆記面などにより実現できる。文字入力部１６０は、筆記媒体が筆記面に触れてから離れるまでの筆記媒体の位置を表す座標データを一定時間間隔で検出し、検出された座標データをストローク列取得部１１０に出力する。
【００２０】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどにより実現できる。
【００２１】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）など
により実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、処理部１００の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、タッチパネル型ディスプレイ、ＣＲＴ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。
【００２３】
処理部１００（プロセッサ）は、文字入力部１６０からの座標データやプログラムなどに基づいて、認識処理、表示処理などの処理を行う。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２４】
処理部１００は、ストローク列取得部１１０、分割再開位置設定部１１１、仮分割部１１２、スコープ設定部１１３、候補文字ラティス更新部１１４、文字列認識部１１６、表示処理部１２０を含む。なおこれらの一部を省略する構成としてもよい。
【００２５】
ストローク列取得部１１０は、筆記媒体が筆記面に触れてから離れるまでの座標データ列（筆点座標系列）をストロークのデータとして文字入力部１６０から取得する。またストローク列取得部１１０は、他の情報処理装置からネットワーク及び通信部１９６を介してストロークのデータを取得するようにしてもよい。
【００２６】
特に本実施形態のストローク列取得部１１０は、所定の筆画数ごとに、又は筆記中断時間（筆記媒体が筆記面から離れてからの経過時間）が所定の時間を越えるごとに、それまで筆記されたストローク列（ストロークとオフストロークの列）を取得する。
【００２７】
分割再開位置設定部１１１は、ストローク列取得部１１０でストローク列を取得するごとに、ストローク列（これまで取得したストローク列に、新しく取得したストローク列を追加したストローク列）における分割再開位置を設定する。具体的には、分割再開位置設定部１１１は、最新の最適パス（後述する文字列認識部１１６で探索された最新の最適パス）における候補文字間にあるオフストロークのうち、最後のＮ個の候補文字の直前にあるオフストロークを、分割再開位置として設定する。
【００２８】
仮分割部１１２は、前記分割再開位置以降のストローク列におけるストローク間のオフストローク（２つの連続するストローク間で先のストロークの終わりから次のストロークの始めまでを結ぶベクトル）を、２つの文字パタンに分割するオフストロークを示す分割点と、１つの文字パタン内部のオフストロークを示す非分割点と、前記分割点であるか前記非分割点であるかを決定できないオフストロークを示す不確定点とに分類し、前記分割点及び前記不確定点を分割候補点として決定する。具体的には、仮分割部１１２は、前記分割再開位置以降のストローク列におけるストロークの外接矩形の間隔や重なり等の特徴を仮の平均文字サイズで正規化した特徴値を求め、求めた特徴値をＳＶＭ（Support Vector Machine）に適用して、各オフストロークを分割点、非分割点、不確定点の３種類に分類する。２つの連続する分割点で分割されるストローク列は、候補文字パタンとなり、２つの分割点の間に不確定点が存在する場合は、不確定点で分割する場合と分割しない場合の候補文字パタンが生成される。仮分割部１１２の上記処理は、ストローク列取得部１１０でストローク列が取得されるごとに行われる。
【００２９】
また、仮分割部１１２は、最新の最適パスにおける候補文字間にある前記不確定点のう
ち、最後のＭ（Ｍ≦Ｎ）個の候補文字より前にある前記不確定点を前記分割点に変更する。
【００３０】
スコープ設定部１１３は、候補文字ラティスの更新処理及び最適パスの探索処理の対象となるストローク列をスコープとして設定する。具体的には、スコープ設定部１１３は、仮分割部１１２により分類が変更されたオフストローク、又はストローク列取得部１１０が取得した最新のストローク列の直前にあるオフストロークを基準として前記スコープの先頭位置を決定し、前記先頭位置以降のストローク列を前記スコープとして設定する。スコープ設定部１１３の上記処理は、ストローク列取得部１１０でストローク列が取得されるごとに行われる。
【００３１】
候補文字ラティス更新部１１４は、スコープ設定部１１３で設定されたスコープを対象として、隣接する２つの前記分割候補点で切り出される候補文字パタン及び隣接する２つの前記分割点で切り出される候補文字パタンに対して文字認識を行って候補文字の列を生成し、候補文字ラティスを生成・更新する。候補文字ラティス更新部１１４の上記処理は、ストローク列取得部１１０でストローク列が取得されるごとに行われる。
【００３２】
また、候補文字ラティス更新部１１４は、前記スコープにおける２つの前記分割点で切り出される候補文字パタンが、前回の前記スコープ内に存在する場合には、当該候補文字パタンに対して文字認識を行わずに、当該候補文字パタンの文字認識結果を再利用してもよい。
【００３３】
文字列認識部１１６は、スコープ設定部１１３で設定されたスコープを対象として、候補文字ラティス更新部１１４で生成・更新された候補文字ラティスから最適パスを探索して文字列を認識する。文字列認識部１１６の上記処理は、ストローク列取得部１１０でストローク列が取得されるごとに行われる。
【００３４】
表示処理部１２０は、文字列認識部１１６により認識された文字列（認識結果）を表示部１９０に出力する。なお処理部１００は、文字列認識部１１６による認識結果をネットワーク及び通信部１９６を介して他の情報処理装置に送信するようにしてもよい。
【００３５】
通信部１９６は、他の情報処理装置との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバが有する情報記憶媒体からネットワーク及び通信部１９６を介して記憶部１７０、情報記憶媒体１８０に配信してもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３７】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００３８】
本実施形態の手法では、ユーザが筆記している間に、所定画数ごと又は所定時間の筆記中断があるごとにストローク列を取得し、ストローク列を取得するごとに、逐次的に文字の分割処理と認識処理を行う準逐次認識方式を採用する。特に、本実施形態の準逐次認識方式では、スコープとして定義されるストローク列に注目し、スコープとして適正な長さを設定し、最新のスコープに対して、候補文字ラティスを生成・更新し、最適パス探索を進めていく。この際に、前回のスコープでの最適パスの結果を用いて候補文字パタンの数を減らし、また、前回のスコープでの候補文字ラティスを再利用することで、処理速度を
高めて、待ち時間を削減する。
【００３９】
２−１．処理の流れ
図２は、本実施形態の文字列認識装置の処理の一例を示すフローチャートである。
【００４０】
まず、ストローク列取得部１１０は、文字入力部１６０に入力されたストローク列を取得し（ステップＳ１０）、取得したストロークの数（筆画数）が所定の値Ｎｓを超えたか、或いは所定時間Ｔｕｐを越える筆記中断があったか否かを判断する（ステップＳ１２）。筆画数が所定の値Ｎｓを越えておらず、且つ所定時間Ｔｕｐを越える筆記中断がないと判断した場合（ステップＳ１２のＮ）には、ステップＳ１０に移行し、ストローク列の取得を継続する。
【００４１】
筆画数が所定の値Ｎｓを越えた、或いは所定時間Ｔｕｐを越える筆記中断があったと判断した場合（ステップＳ１２のＹ）、分割再開位置設定部１１１は、ストローク列における分割再開位置Seg_rpを設定する（ステップＳ１４）。具体的には、最新の最適パスにおける候補文字間にあるオフストロークのうち、最後のN_char個（Ｎ個）の候補文字の直前にあるオフストロークを分割再開位置Seg_rpとして設定する。N_charは、分割再開位置Seg_rpを設定するための定数である。
【００４２】
次に、仮分割部１１２は、分割再開位置Seg_rp以降のストローク列を仮分割する（ステップＳ１６）。すなわち、分割再開位置Seg_rp以降のストローク列における各オフストロークを、分割点ＳＰ、非分割点ＮＳＰ、不確定点ＵＰの３種類に分類し設定する。分割再開位置Seg_rp以降のストローク列に対する候補文字パタンへの仮分割処理は、ＳＶＭを用いて行う。なお、分割再開位置Seg_rpより前のストローク列については、安定した仮分割が行われていると仮定して、以降の処理において再度の仮分割は行わない。
【００４３】
次に、仮分割部１１２は、最新の最適パスにおける候補文字間にある不確定点ＵＰのうち、最後のN_char_min個（Ｍ個）の候補文字より前にある全ての不確定点ＵＰを分割点ＳＰに変更する（ステップＳ１８）。N_char_minは、分割点ＳＰを確定するための定数であり、N_char以下の数である。
【００４４】
次に、スコープ設定部１１３は、ステップＳ１６、Ｓ１８の処理によって分割再開位置Seg_rp以降のストローク列における各オフストロークの分類が変化したか否かを判断する（ステップＳ２０）。なお、ステップＳ１０で追加（取得）された最新のストローク列については、ステップＳ２０の処理の対象外である。
【００４５】
オフストロークの分類が変化したとスコープ設定部１１３が判断した場合（ステップＳ２０の「Ｙ」）には、スコープ設定部１１３は、分類が変わったオフストロークより前は安定していると判断して、分類が変わったオフストロークを基準としてスコープを設定する（ステップＳ２２）。具体的には、分類が変わったオフストロークが候補文字ブロック（隣接する２つの分割点ＳＰで切り出される候補文字パタン）の中に位置する場合は、分類が変わったオフストロークを含む候補文字ブロックの最初のストローク以降のストローク列をスコープとして設定し、分類が変わったオフストロークが連続する候補文字ブロックの間に位置する場合は、分類が変わったオフストロークの直前の候補文字ブロックの最初のストローク以降のストローク列をスコープとして設定する。なお、２つ以上のオフストロークの分類が変化した場合には、その内の最も前の方にあるオフストロークを分類が変わったオフストロークとして扱う。
【００４６】
オフストロークの分類が変化していないとスコープ設定部１１３が判断した場合（ステップＳ２０の「Ｎ」）には、スコープ設定部１１３は、ステップＳ１０で追加（取得）さ
れた最新のストローク列の直前のオフストロークより前は安定していると判断して、最新のストローク列の直前のオフストロークを基準としてスコープを設定する（ステップＳ２４）。具体的には、最新のストローク列の直前のオフストロークが候補文字ブロックの中に位置する場合は、当該オフストロークを含む候補文字ブロックの最初のストローク以降のストローク列をスコープとして決定し、最新のストローク列の直前のオフストロークが連続する候補文字ブロックの間に位置する場合は、当該オフストロークの直前の候補文字ブロックの最初のストローク以降のストローク列をスコープとして設定する。
【００４７】
次に、候補文字ラティス更新部１１４は、候補文字ラティスを更新（再構築）する処理を行う（ステップＳ２６）。すなわち、ステップＳ２２、Ｓ２４で設定されたスコープのストローク列に対して、隣接する２つの分割候補点（ＳＰ、ＵＰ）で切り出される候補文字パタン毎に文字認識を行って、候補文字パタンとそのスコア（尤度、確信度）をペアにして候補文字ラティスに登録し、候補文字ラティスを更新する。
【００４８】
なお、ステップＳ２６において、候補文字ラティス更新部１１４は、最新のスコープにおいて隣接する２つの分割点ＳＰで切り出される候補文字ブロックの中の候補文字パタンが、前回のスコープ内に存在する場合には、当該候補文字パタンに対して文字認識とスコアの算出を行わずに、当該候補文字パタンの文字認識結果とスコアを再利用する。
【００４９】
図３に、本実施形態の候補文字ラティスの一例を示す。図３に示すように、分割候補点（分割点ＳＰ及び不確定点ＵＰ）によりストローク列を候補文字パタンに分割し、分割された候補文字パタン毎に文字認識を行って、複数の候補文字（認識候補）とそれぞれのスコアを求め、それらをリンクして複数の候補文字列からなる候補文字ラティスを構築する。
【００５０】
ここで不確定点ＵＰは、分割点と非分割点の２通りに仮定され、例えば、不確定点ＵＰを分割点として仮定した場合に、「明」という手書き文字パタンから２つの候補文字パタンを抽出し、それぞれ「日、目、月」、「月、口、目、旦」という候補文字を生成する。また不確定点ＵＰを非分割点として仮定した場合には、「明」という手書き文字パタンから１つの候補文字パタンを抽出して「朋、胴、明」という候補文字を生成する。
【００５１】
候補文字ラティスにおいて、各ノードＮＤは文字認識によって1つの候補文字パタンに関して生成される1つの候補文字を示し、各連結線ＡＬは1つの分割候補点を文字の境として文字列の連接（分割点であるか、不確定点であるか）を示す。
【００５２】
複数項目の確からしさからなる尤度を評価するスコアは、各連結線ＡＬとノードＮＤに与えられる。例えば、複数項目の確からしさとして、文字認識の確からしさ（文字認識のスコア）、候補文字パタンの確からしさ（候補文字パタンの大きさ、部首などの間隔、位置の確からしさ）、候補文字パタン間の位置の確からしさ（位置関係の確からしさ）、言語的な確からしさ（文脈の確からしさ）、分割候補点ＳＰ、ＵＰの確からしさ（仮分割の確からしさ）を示すスコアを与えることができる。
【００５３】
なお、候補文字ラティスは、分割点ＳＰを境界とする候補文字ブロックＢＬで区切られ、２つの連続する分割点ＳＰで挟まれた候補文字パタンに対応する候補文字は、１つの候補文字ブロックＢＬに対応している。例えば、図３の候補文字ラティスは、３つの候補文字ブロックで区切られている。
【００５４】
再び図２のフローチャート図を参照すると、文字列認識部１１６は、候補文字ラティスに対して、スコープの中の最初の候補文字ブロックから最適パス（最適な候補文字列）の探索を再開して、文字列を認識する（ステップＳ２８）。最適パスの探索では、ビタビ（
Viterbi）探索やビーム探索が有効である。
【００５５】
次に、処理部１００は、ストロークの入力があるか否かを判断し（ステップＳ３０）、入力がある場合（ステップＳ３０のＹ）には、ステップＳ１０の処理に移行する。以降、ユーザによる筆記（文字パタンの手書き入力）が終了するまで、ステップＳ１０〜Ｓ３０の処理を繰り返す。
【００５６】
ストロークの入力がないと判断した場合（ステップＳ３０のＮ）には、表示処理部１２０は、文字列の認識結果を表示部１９０に出力する（ステップＳ３２）。
【００５７】
なお、ここではユーザによる筆記が終了してから認識結果を表示するレイジー認識インターフェースを採用した場合の例について説明したが、ストローク列が入力されるごとに認識結果を表示するビジー認識インターフェースを採用することもできる。この場合には、ステップＳ３０からステップＳ１０に移行するときに、その時点での認識結果を表示部１９０に出力する処理（ステップＳ３２の処理）を行えばよい。
【００５８】
２−２．処理例
次に、本実施形態の文字列認識装置の具体的な処理例について、図４〜図６を用いて説明する。図４（Ａ）、図４（Ｂ）、図５（Ａ）、図５（Ｂ）は、ストローク列を取得してからスコープを決定するまでの処理例を示す図である。
【００５９】
図４（Ａ）は、仮分割したストローク列に対して文字認識を行った結果を示す図であり、ストローク列に設定された分割再開位置Seg_rp、分割点ＳＰ、不確定点ＵＰ、スコープＳＣ及び候補文字ブロックＢＬと、最適パスにおける候補文字ＣＣの列を示している。
【００６０】
図４（Ｂ）に示すように、２本の新たなストロークが入力されると、まず、分割再開位置Seg_rpを更新する。本実施形態の手法では、候補文字ラティスにおいて探索した最適パスにおいて認識された候補文字間のオフストロークのうち、最後のN_char個の候補文字の直前にあるオフストローク（最後のストロークまでに認識された候補文字の数がN_charとなるオフストローク）を分割再開位置Seg_rpとして決定する。最適パスにおける候補文字間のオフストロークは高い可能性で分割点ＳＰであると考えられ、また、最後のストロークからある程度離れた位置より前のストロークは安定していると考えられるからである。
【００６１】
図４（Ｂ）に示す例では、N_char=5としており、最適パスにおける最後から５個目の候補文字ＣＣ（「京」）の直前のオフストローク（「東」と「京」の間の分割点ＳＰ）を、新たな分割再開位置Seg_rpとして決定している。このように、分割再開位置Seg_rpを更新することで、候補文字ラティスの更新処理にかかる時間を短縮することができる。
【００６２】
次に、分割再開位置Seg_rp以降のストローク列に対して仮分割を再開する。図４（Ｂ）の例では、この仮分割によって各オフストロークの分類は変化していない。
【００６３】
次に、所定の条件を満たす不確定点ＵＰを分割点ＳＰに変更する。本実施形態の手法では、候補文字ラティスにおいて探索した最適パスにおいて認識された候補文字間の不確定点ＵＰのうち、最後のN_char_min個の候補文字より前にある不確定点ＵＰを分割点ＳＰに変更する。最適パスにおける候補文字間にある不確定点ＵＰであって、且つ最後のストロークからある程度離れた不確定点ＵＰは、高い可能性で分割点ＳＰであると考えられるからである。
【００６４】
図５（Ａ）に示す例では、N_char_min=2としており、最適パスにおける最後から２個目の候補文字ＣＣ（「金」）より前にある不確定点ＵＰ（「小」と「金」の間の不確定点Ｕ
Ｐと、「都」と「小」の間の不確定点ＵＰ）を、分割点ＳＰに変更している。
【００６５】
オフストロークの分類（仮分割）はＳＶＭを用いて行われるが、ＳＶＭによる分類は完全ではなく、仮分割の不確実性によってＳＶＭからの出力の多くは不確定点ＵＰとなる。候補文字ラティスでは、不確定点ＵＰで分割する場合と分割しない場合の候補文字パタンが生成されるため、１つ１つの不確定点ＵＰは、文字認識が適用される候補文字パタンの数をおよそ倍にする。本実施形態の手法によれば、分割点である可能性の高い不確定点ＵＰを分割点ＳＰに変更することで、候補文字パタンの数を削減することができ、候補文字ラティスの更新処理にかかる時間を短縮することができる。
【００６６】
次に、分割再開位置Seg_rp以降のストローク列において分類が変更された最初のオフストロークを検出してスコープＳＣを更新する。本実施形態の手法では、分類が変更されたオフストローク又は最新のストロークの直前のオフストロークより前は安定していると判断する。当該オフストロークは、候補文字ブロックＢＬに含まれるか、２つの候補文字ブロックＢＬの間にあり得る。そこで、当該オフストロークを含む或いはその直前の候補文字ブロックＢＬを特定し、当該候補文字ブロックＢＬの最初のストロークから最新のストロークまでのストローク列を新たなスコープＳＣとして設定する。
【００６７】
図５（Ｂ）に示す例では、分類が変更された最初のオフストローク（「都」と「小」の間のオフストローク）を含む候補文字ブロックＢＬの最初のストローク以降のストローク列を新たなスコープＳＣとして設定している。このように、候補文字ラティスの更新処理の対象となるスコープを更新することで、候補文字ラティスの更新処理にかかる時間を短縮することができる。
【００６８】
図６（Ａ）、図６（Ｂ）は、候補文字ラティスを更新する処理の一例を示す図である。本実施形態の手法では、スコープにおける２つの分割点ＳＰで切り出される候補文字パタン（候補文字ブロックＢＬ）が、前回のスコープ内に存在する場合には、当該候補文字パタンの文字認識結果を再利用する。
【００６９】
図６（Ａ）は、新たなストローク列が入力される前の前回のスコープＳＣでの候補文字ブロックＢＬと候補文字パタンＣＰの一例を示す図である。ここで、候補文字パタンＣＰは、文字認識の対象になる文字パタンを表しており、図６（Ａ）、図６（Ｂ）では、これら候補文字パタンＣＰに対して文字認識を行って生成される候補文字の図示を省略している。
【００７０】
図６（Ｂ）では、図６（Ａ）の状態から新たなストロークが入力されることにより、新しいスコープＳＣでの最初の３つの文字パタン間のオフストロークの分類が不確定点ＵＰから分割点ＳＰに変更されている。この分割点ＳＰによって前回のスコープＳＣにおける候補文字ブロックＢＬ０が、３つの候補文字ブロックＢＬ１、ＢＬ２、ＢＬ３に分割されている。
【００７１】
ここで、３つの候補文字ブロックＢＬ１、ＢＬ２、ＢＬ３の各候補文字パタンＣＰは、図６（Ａ）に示す前回のスコープＳＣ内に存在しているため、当該各候補文字パタンＣＰについては文字認識と一部のスコア（文字認識の確からしさ、及び候補文字パタンの確からしさを評価するスコア）の算出を行わずに、当該各候補文字パタンＣＰの文字認識結果とスコアの一部を再利用する。なお、図６（Ｂ）では、新たなストロークの入力により、新たな候補文字パタンＣＰ０が追加されている。このように、前回のスコープでの候補文字パタンの文字認識結果とスコアの一部を最新のスコープにおいて再利用することで、候補文字ラティスの更新を効率よく行って、候補文字ラティスの更新処理にかかる時間を短縮することができる。
【００７２】
そして、本実施形態の手法では、スコープＳＣの先頭から候補文字ラティスの最適パスの探索を再開する。図６（Ｂ）に示す例では、候補文字ブロックＢＬ１から最適パスの探索を再開する。
【００７３】
３．性能評価結果
本実施形態の文字認識手法（準逐次認識方式）の性能を評価するために、１００人から収集した日本語手書き文字列データベースのうち、横書きの文字列１０，１７４行を学習パタンとして使用し、横書きの文字列３，５１１行をテストパタンとして使用して認識率、ＣＰＵ時間、仮分割の精度を評価した。
【００７４】
まず、N_char（分割再開位置Seg_rpを設定するための定数）と、Ｎｓ（１回に取得するストローク数）を変化させて認識率（％）を評価した。その評価結果を表１に示す。
【００７５】
【表１】
2014219900.tif 000003
【００７６】
バッチ認識方式の認識率は９３．０３％であった。一方、表１に示すように、本実施形態の準逐次認識方式では、N_char＝７、Ｎｓ＝４のときに認識率が９３．１６％となり、バッチ認識方式を凌ぐ認識率を達成している。これは、スコープを用いたローカルな処理が、問題がないどころか、認識率の面で効果がある可能性を示している。
【００７７】
表１から、逐次認識方式（Ｎｓ＝１のとき）との比較もできる。表１に示すように、準逐次認識方式によって、すなわちＮｓを１より大きい適切な値にすることによって、認識率が向上している。
【００７８】
次に、N_charとＮｓを変化させて、１ストロークあたりの平均ＣＰＵ時間（ｍｓ）を評価した。その評価結果を表２に示す。
【００７９】
【表２】
2014219900.tif 000004
【００８０】
表２に示すように、本実施形態の準逐次認識方式では、N_char＝７、Ｎｓ＝４のときの平均ＣＰＵ時間は５．７５ｍｓであるのに対して、逐次認識方式（Ｎｓ＝１のとき）では、１１．５７ｍｓを要している。N_charの値がこれ以外の場合も、この傾向は共通してい
る。このことから、準逐次認識方式では、ＣＰＵ時間も小さいことが分かる。一方、逐次認識方式では、待ち時間は小さいものの、準逐次認識方式よりもＣＰＵ時間を要し、認識率も劣っていることが分かる。
【００８１】
次に、本実施形態の準逐次認識方式での文字ごとへの仮分割を評価した。ここでは、N_charを変化させて、認識処理後の分割の精度（Precision）、再現率（Recall）、Ｆ値（F-measure）を評価して、バッチ認識方式と比較した。その評価結果を表３に示す。
【００８２】
【表３】
2014219900.tif 000005
【００８３】
表３に示したF-measureの値から、N_char＞５のときは、本実施形態の準逐次認識方式の方が、バッチ認識方式よりも若干ではあるが良い結果となることが分かる。
【００８４】
次に、本実施形態の準逐次認識方式での待ち時間を評価した。ここでは、５ページ分の手書き文字列データに対して認識処理を行ったときの平均待ち時間（ｍｓ）を評価した。５ページ分のデータのストローク数は、それぞれ３４７、３９８、５９０、２６２、５５４であった。その評価結果を図７（Ａ）、図７（Ｂ）に示す。
【００８５】
図７（Ａ）は、Ｎｓを１に固定して、N_charを３から９に変えた場合の平均待ち時間を示し、図７（Ｂ）は、N_charを３に固定し、Ｎｓを１から５に変えた場合の平均待ち時間を示す。図７（Ａ）、図７（Ｂ）において実線は、前回のスコープにおける候補文字ラティス（候補文字パタンの認識結果とスコア）を再利用した場合の平均待ち時間であり、点線は、候補文字ラティスを再利用しない場合の平均待ち時間である。
【００８６】
図７（Ａ）、図７（Ｂ）に示すように、前回のスコープにおける候補文字ラティスを再利用することで、平均待ち時間は大幅に減少している。また、平均待ち時間はN_charとＮｓが増えるに従って増加するものの、Ｎｓが５以下である場合には待ち時間は最大でも５０ｍｓを超えることはなく、ユーザが知覚できないほど僅かな時間である。
【００８７】
以上の評価結果から、本実施形態の準逐次認識方式によって、認識率を落とさずに、且つ待ち時間を最小限に抑えて認識結果を表示することができることを確認した。また、適正なスコープ長を設定することで、平均待ち時間を削減でき、前回のスコープにおける候補文字ラティスを再利用する効果も大きいことが分かった。また、本実施形態の準逐次認識方式によれば、総ＣＰＵ時間を少なくすることができるため、性能の劣る小型ＣＰＵにも適している。
【００８８】
なお、本発明は、上述の実施の形態に限定されるものではなく、種々の変更が可能である。本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【００８９】
１００  処理部、１１０  スクロール列取得部、１１１  分割再開位置設定部、１１２  仮分割部、１１３  スコープ設定部、１１４  候補文字ラティス更新部、１１６  文字列認識部、１２０  表示処理部、１６０  文字入力部、１７０  記憶部、１８０  情報記憶媒体、１９０  表示部、１９６  通信部
【図１】
2014219900.tif 000006
【図２】
2014219900.tif 000007
【図７】
2014219900.tif 000008
【図３】
2014219900.tif 000009
【図４】
2014219900.tif 000010
【図５】
2014219900.tif 000011
【図６】
2014219900.tif 000012