(57)【要約】  文字列を含む数式を認識することが可能な認識装置等を提供すること。  認識装置は、入力されたストローク又はストローク列が、文字列と数式とを区分するための特定ジェスチャに該当するか否かを判定し、特定ジェスチャに該当すると判定した場合に、特定ジェスチャで指定される範囲に関する情報を登録する登録部と、入力されたストロークのうち、特定ジェスチャで指定される範囲に含まれるストロークを文字列に対応するストロークとして設定し、特定ジェスチャで指定される範囲に含まれないストロークを数式に対応するストロークとして設定する区分部と、文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する認識部とを含む。
2016117564.tif 000002
【特許請求の範囲】
【請求項１】
手書き入力されたストローク列から文字列を含む数式を認識するためのプログラムであって、
入力されたストローク又はストローク列が、文字列と数式とを区分するための特定ジェスチャに該当するか否かを判定し、前記特定ジェスチャに該当すると判定した場合に、前記特定ジェスチャで指定される範囲に関する情報を登録する登録部と、
入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを文字列及び数式の他方に対応するストロークとして設定する区分部と、
文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する認識部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記区分部は、
入力されたストローク又はストローク列が前記特定ジェスチャに該当すると判定された場合に、当該特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定し、入力されたストロークが前記特定ジェスチャに該当しないと判定された場合に、当該入力されたストロークが前記特定ジェスチャで指定される範囲に含まれるか否かを判定し、前記特定ジェスチャで指定される範囲に含まれる場合に、当該入力されたストロークを文字列及び数式の一方に対応するストロークとして設定することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記区分部は、
入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを数式に対応するストロークとして設定し、
前記認識部は、
１つの前記特定ジェスチャで指定される範囲に含まれるストロークを１つのシンボルとして扱って、数式認識エンジンにより数式を認識することを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれか１項において、
入力されたストローク列を表示部に表示させる制御を行う表示制御部として更にコンピュータを機能させ、
前記表示制御部は、
前記特定ジェスチャに該当すると判定されたストローク又はストローク列を、前記特定ジェスチャに対応する形状を表す画像として表示させる制御を行うことを特徴とするプログラム。
【請求項５】
請求項４において、
前記表示制御部は、
前記特定ジェスチャで指定される範囲に含まれるストロークを、前記特定ジェスチャで指定される範囲に含まれないストロークとは異なる色で表示させる制御を行うことを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれか１項において、
前記登録部は、
入力されたストローク又はストローク列が略矩形を形成する場合に、当該ストローク又はストローク列が前記特定ジェスチャに該当すると判定することを特徴とするプログラム。
【請求項７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至６のいずれか１項のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項８】
手書き入力されたストローク列から文字列を含む数式を認識する認識装置であって、
入力されたストローク又はストローク列が、文字列と数式とを区分するための特定ジェスチャに該当するか否かを判定し、前記特定ジェスチャに該当すると判定した場合に、前記特定ジェスチャで指定される範囲に関する情報を登録する登録部と、
入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを文字列及び数式の他方に対応するストロークとして設定する区分部と、
文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する認識部とを含むことを特徴とする認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び認識装置に関する。
【背景技術】
【０００２】
従来、数式を入力する手法として、ＬａＴｅＸなどの専門言語を用いる方法や、数式入力エディタを用いる方法等が用いられてきたが、前者は専門用語を習得する必要があり、後者はメニュー選択と記号選択を繰り返す必要があり、ともに一般人には使い勝手が悪かった。これに対して、タブレットなどに手書きされた数式をコンピュータにより認識させる方法は古くから研究されてきた。そして、長年の研究により認識率は向上しており、また、近年におけるタブレット型ＰＣの急速な普及から、一般人に浸透する可能性も増している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−８０６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
数式は、シンボルと、四則演算子、括弧、分数記号やルート、積分記号、べき乗などを表す記号の位置や大きさの関係からなる。手書き数式認識システムでは、シンボルとして英数字記号を仮定するのが普通であるが、実際には、シンボルとして英数字記号以外の文字列が書かれる場合も多く、従来の手書き数式認識システムでは、数式に含まれる文字列が認識されないという問題があった。こうした文字列を含む数式は、教科書のなかで良く現れるし、黒板に板書されることも多い。【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、文字列を含む数式を認識することが可能なプログラム、情報記憶媒体及び認識装置を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、手書き入力されたストローク列から文字列を含む数式を認識するためのプログラムであって、入力されたストローク又はストローク列が、文字列と数式とを区分するための特定ジェスチャに該当するか否かを判定し、前記特定ジェスチャに該当すると判定した場合に、前記特定ジェスチャで指定される範囲に関する情報を登録する登録部と、入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを文字列及び数式の他方に対応するストロークとして設定する区分部と、文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する認識部としてコンピュータを機能させるためのプログラムに関する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関係する。また、本発明は、上記各部を含む認識装置に関係する。【０００７】
本発明によれば、入力されたストロークが特定ジェスチャに該当するか否かを判定し、特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定して、特定ジェスチャで指定される範囲に含まれないストロークを文字列及び数式の他方に対応するストロークとして設定し、文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識することで、数式に含まれる文字列と数式とを明確に区分してそれぞれを認識することができる。なお、特定ジェスチャを用いずに、数式と文字列を自動的に分離（区分）する方法も考えられる。しかしながら、自動的に数式と文字列を区分することは困難であり、誤分割は避けられないため、本発明では、文字列と数式とを区分するための特定ジェスチャを導入している。【０００８】
（２）また本発明に係るプログラム、情報記憶媒体及び認識装置では、前記区分部は、入力されたストローク又はストローク列が前記特定ジェスチャに該当すると判定された場合に、当該特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定し、入力されたストロークが前記特定ジェスチャに該当しないと判定された場合に、当該入力されたストロークが前記特定ジェスチャで指定される範囲に含まれるか否かを判定し、前記特定ジェスチャで指定される範囲に含まれる場合に、当該入力されたストロークを文字列及び数式の一方に対応するストロークとして設定してもよい。【０００９】
本発明によれば、文字列（又は数式）を筆記してから特定ジェスチャを筆記する場合であっても、特定ジェスチャを筆記してから文字列（又は数式）を筆記する場合であっても、文字列と数式とを区分することができ、ユーザの利便性を向上することができる。【００１０】
（３）また本発明に係るプログラム、情報記憶媒体及び認識装置では、前記区分部は、入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを数式に対応するストロークとして設定し、前記認識部は、１つの前記特定ジェスチャで指定される範囲に含まれるストロークを１つのシンボルとして扱って、数式認識エンジンにより数式を認識してもよい。【００１１】
本発明によれば、１つの特定ジェスチャで指定される範囲に含まれるストローク（文字列に対応するストロークとして設定されたストローク）を１つのシンボルとして扱って数式認識エンジンにより数式を認識することで、文字列を認識できない数式認識エンジンを用いて文字列を含む数式を認識することができる。【００１２】
（４）また本発明に係るプログラム及び情報記憶媒体では、入力されたストローク列を表示部に表示させる制御を行う表示制御部として更にコンピュータを機能させ、前記表示制御部は、前記特定ジェスチャに該当すると判定されたストローク又はストローク列を、前記特定ジェスチャに対応する形状を表す画像として表示させる制御を行ってもよい。【００１３】
また本発明に係る認識装置では、入力されたストローク列を表示部に表示させる制御を行う表示制御部を更に含み、前記表示制御部は、前記特定ジェスチャに該当すると判定されたストローク又はストローク列を、前記特定ジェスチャに対応する形状を表す画像として表示させる制御を行ってもよい。【００１４】
本発明によれば、特定ジェスチャに該当すると判定されたストロークを、特定ジェスチャに対応する形状を表す画像として表示させることで、特定ジェスチャが正しく判定されたことをユーザに認識させることができ、ユーザの利便性を向上することができる。【００１５】
（５）また本発明に係るプログラム、情報記憶媒体及び認識装置では、前記表示制御部は、前記特定ジェスチャで指定される範囲に含まれるストロークを、前記特定ジェスチャで指定される範囲に含まれないストロークとは異なる色で表示させる制御を行ってもよい。【００１６】
本発明によれば、特定ジェスチャで指定される範囲に含まれるストロークを、特定ジェスチャで指定される範囲に含まれないストロークとは異なる色で表示させることで、特定ジェスチャにより文字列と数式とが正しく区分されたことをユーザに認識させることができ、ユーザの利便性を向上することができる。【００１７】
（６）また本発明に係るプログラム、情報記憶媒体及び認識装置では、前記登録部は、入力されたストローク又はストローク列が略矩形を形成する場合に、当該ストローク又はストローク列が前記特定ジェスチャに該当すると判定してもよい。
【図面の簡単な説明】
【００１８】
【図１】図1は、本実施形態の認識装置の機能ブロック図の一例である。
【図２Ａ】図２Ａは、数式と文字列及び特定ジェスチャが混在した筆記の一例を示す図である。
【図２Ｂ】図２Ｂは、特定ジェスチャテーブルの一例を示す図である。
【図３Ａ】図３Ａは、特定ジェスチャが筆記される順番について説明するための図である。
【図３Ｂ】図３Ｂは、特定ジェスチャが筆記される順番について説明するための図である。
【図３Ｃ】図３Ｃは、特定ジェスチャが筆記される順番について説明するための図である。
【図３Ｄ】図３Ｄは、特定ジェスチャが筆記される順番について説明するための図である。
【図４Ａ】図４Ａは、矩形の特定ジェスチャの筆記の一例を示す図である。
【図４Ｂ】図４Ｂは、矩形の特定ジェスチャの筆記の一例を示す図である。
【図５】図５は、逐次方式における処理の一例を示すフローチャートである。
【図６Ａ】図６Ａは、逐次方式における具体的な表示例を示す図である。
【図６Ｂ】図６Ｂは、逐次方式における具体的な表示例を示す図である。
【図６Ｃ】図６Ｃは、逐次方式における具体的な表示例を示す図である。
【図６Ｄ】図６Ｄは、逐次方式における具体的な表示例を示す図である。
【図６Ｅ】図６Ｅは、逐次方式における具体的な表示例を示す図である。
【図６Ｆ】図６Ｆは、逐次方式における具体的な表示例を示す図である。
【図７】図７は、一括方式における処理の一例を示すフローチャートである。
【図８Ａ】図８Ａは、一括方式における具体的な表示例を示す図である。
【図８Ｂ】図８Ｂは、一括方式における具体的な表示例を示す図である。
【図８Ｃ】図８Ｃは、一括方式における具体的な表示例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２０】
１．構成
図１に本実施形態の認識装置の機能ブロック図の一例を示す。なお本実施形態の認識装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２１】
文字入力部１６０は、ユーザが筆記媒体（ペン、指先等）で手書き文字を入力するためのものであり、その機能は、タブレット、タッチパネル等の筆記面などにより実現できる。文字入力部１６０は、筆記媒体が筆記面に触れてから離れるまでの筆記媒体の位置を表す座標データを一定時間間隔で検出し、検出された座標データ列（座標点系列）をストローク（筆画）のデータとして処理部１００に出力する。なお、ストロークの終点から次のストロークの始点までのベクトルをオフストローク（運筆ベクトル）と呼び、ストロークとオフストロークの連続する系列をストローク列と呼ぶ。
【００２２】
記憶部１７０は、処理部１００の各部としてコンピュータを機能させるためのプログラムや各種データを記憶するとともに、処理部１００のワーク領域として機能し、その機能はハードディスク、ＲＡＭなどにより実現できる。
【００２３】
表示部１９０は、処理部１００で生成された画像を出力するものであり、その機能は、文字入力部１６０としても機能するタッチパネル、ＬＣＤ或いはＣＲＴなどのディスプレイにより実現できる。
【００２４】
処理部１００（プロセッサ）は、文字入力部１６０からの座標データやプログラムなどに基づいて、認識処理、表示制御などの処理を行う。この処理部１００は記憶部１７０内の主記憶部をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。処理部１００は、登録部１１０、区分部１１２、認識部１１４、表示制御部１２０を含む。
【００２５】
登録部１１０は、入力されたストローク又はストローク列が、文字列と数式とを区分するための特定ジェスチャに該当するか否かを判定し、前記特定ジェスチャに該当すると判定した場合に、前記特定ジェスチャで指定される範囲（領域）に関する情報を登録する処理を行う。登録された情報は記憶部１７０に記憶される。ここで、登録部１１０は、入力されたストローク又はストローク列が略矩形を形成する場合に、当該ストローク又はストローク列が前記特定ジェスチャに該当すると判定してもよい。
【００２６】
区分部１１２は、入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列及び数式の一方に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを文字列及び数式の他方に対応するストロークとして設定する。すなわち、区分部１１２は、入力されたストロークのうち、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列に対応するストロークとして設定し、前記特定ジェスチャで指定される範囲に含まれないストロークを数式に対応するストロークとして設定してもよいし、その逆でも良い。
【００２７】
認識部１１４は、区分部１１２により文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、区分部１１２により数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する処理を行う。ここで、区分部１１２が、前記特定ジェスチャで指定される範囲に含まれるストロークを文字列に対応するストロークとして設定する場合、認識部１１４は、１つの前記特定ジェスチャ及び当該特定ジェスチャで指定される範囲に含まれるストロークを１つのシンボルとして扱って、数式認識エンジンにより数式を認識してもよい。例えば、図２Ａに示す例において、文字列「ａｒｅａ」、「ｈｅｉｇｈｔ」、「ｗｉｄｔｈ」を、それぞれ「ｘ」、「ｙ」、「ｚ」のような１つのシンボルとして扱って、数式認識エンジンにかけて認識させてもよい。
【００２８】
表示制御部１２０は、入力されたストローク列を表示部１９０に表示させる制御を行う。ここで、表示制御部１２０は、前記特定ジェスチャに該当すると判定されたストローク又はストローク列を、前記特定ジェスチャに対応する形状を表す画像（例えば、矩形を表す画像）として表示させる制御を行ってもよい。また、表示制御部１２０は、前記特定ジェスチャで指定される範囲に含まれるストロークを、前記特定ジェスチャで指定される範囲に含まれないストロークとは異なる色で表示させる制御を行ってもよい。また、表示制御部１２０は、認識部１１４により認識された文字列を含む数式（認識結果）を表示部１９０に表示させる制御を行う。
【００２９】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００３０】
手書き入力された文字列を含む数式をコンピュータに認識させる場合、理想的には、入力されたストローク列（手書きパターン）から自動的に数式と文字列を分離（区分）し、それぞれを認識することが好ましい。しかしながら、そもそも自動的に数式と文字列を区分することは困難であり、不完全な区分のうえに数式と文字列をそれぞれ認識させようとすると認識率が著しく低下する恐れがある。
【００３１】
そこで、本実施形態の手法では、文字列と数式とを区分するためのジェスチャを導入する。これを特定ジェスチャと呼ぶ。ここで、特定ジェスチャとは、認識対象となる文字や数式以外の記号を筆記すると、当該ジェスチャで指定される範囲に含まれるストロークを特定して、それに応じた処理を行う操作を意味する。
【００３２】
本実施形態の手法では、特定ジェスチャとして、文字列を囲む矩形を採用する。すなわち、手書き入力されたストローク（又はストローク列）が略矩形を形成する場合に、当該ストロークが特定ジェスチャに該当すると判定し、当該特定ジェスチャで指定される範囲に含まれるストロークから文字列を認識し、当該特定ジェスチャで指定される範囲に含まれないストロークから数式を認識する。特定ジェスチャの形状として矩形を採用するのは、矩形が普通の数式には現れず、また、範囲を指定するために矩形を筆記することが人間にとって自然だからである。なお、数学のある種の領域では、正方形や長方形がシンボルとして使われることがあるが、その場合は、矩形の代わりに別の形状のシンボルを特定ジェスチャとして採用すればよい。すなわち、特定ジェスチャは、形状がユニークで（他のシンボルや記号と区別がつき易く）、それが指示する範囲が明確であればどのようなものでもよい。例えば、特定ジェスチャの形状は、矩形の対角線の片方或いは両方を右から左に筆記する（左から右に筆記すると「Ｘ」と区別がつかなくなるため）ものでもよいし、矩形の対角線の両方を続けて筆記するもの（「α」を逆さにした形状）でもよい。また、ここでは、数式に含まれる文字列を区分するために特定ジェスチャを用いるが、文字列に含まれる数式を区分するために特定ジェスチャ（例えば、数式を囲む矩形等）を用いてもよい。
【００３３】
図２Ａは、数式と文字列及び特定ジェスチャが混在した筆記の一例を示す図である。登録部１１０は、ストロークが入力される毎に、そのストロークが特定ジェスチャであるか否かを監視し、特定ジェスチャであると判定した場合に、当該特定ジェスチャの筆順（特定ジェスチャに該当する筆画の順番）と座標（矩形の４角の座標、或いは矩形の対向する２角の座標）を、特定ジェスチャテーブルに登録する。図２Ｂは、図２Ａの筆記例に対応する特定ジェスチャテーブルを示す図である。例えば、図２Ｂに示す特定ジェスチャテーブルでは、特定ジェスチャＢＧ１について、４画の文字列「ａｒｅａ」の後の５画目に筆記されたことと、その左上角及び右下角の座標（特定ジェスチャで指定される範囲に関する情報の一例）が登録され、特定ジェスチャＢＧ２について、１番目の「×」の後の１３画目に筆記されたことと、その左上角及び右下角の座標が登録され、特定ジェスチャＢＧ３について、２番目の「×」の後の１８画目に筆記されたことと、その左上角及び右下角の座標が登録されている。区分部１１２は、図２Ｂに示すような特定ジェスチャテーブルを参照して、いずれかの特定ジェスチャに囲まれたストロークを文字列の一部（文字列に対応するストローク）として区分し、それ以外のストロークを数式の一部（数式に対応するストローク）として区分する。
【００３４】
図２Ａに示す例では、特定ジェスチャを１画で筆記した場合を示しているが、特定ジェスチャを複数画で筆記することを許容してもよい。この場合には、処理の都合上、特定ジェスチャを筆記する最大画数（例えば、４画）を規定し、また、特定ジェスチャを筆記し始めてから筆記し終わるまでは、数式或いは文字に対応するストロークを筆記しないことを条件とする。この程度の条件であれば、ユーザにとって大きな制約とはならない。また、特定ジェスチャを複数画で筆記することを許容する場合には、特定ジェスチャを構成する最初のストロークの筆順と最後のストロークの筆順の２つを特定ジェスチャテーブルに登録する。なお、図２Ｂの特定ジェスチャテーブルにおける「調整後筆順」については後述する。
【００３５】
本実施形態の手法では、特定ジェスチャがどのタイミングで筆記されても、文字列と数式とを区分する処理が実行されるようにしている。特定ジェスチャを筆記する順番を指定すると、ユーザにとって大きな制約となり、使い勝手が悪くなるからである。図３に示すように、特定ジェスチャが筆記される順番には４つの場合が考えられる。図３Ａは、最初に特定ジェスチャＢＧを筆記して、その次に、特定ジェスチャＢＧの中に文字列を筆記する場合を示し、図３Ｂは、最初に文字列を筆記して、その次に、当該文字列を囲む特定ジェスチャＢＧを筆記する場合を示し、図３Ｃは、最初に文字列を筆記して、その後他の筆画を筆記した後に、当該文字列を囲む特定ジェスチャＢＧを筆記する場合を示し、図３Ｄは、既に筆記された文字列を囲む特定ジェスチャＢＧの中に文字列を書き足す場合を示す。
【００３６】
図４に、矩形の特定ジェスチャの筆記の一例を示す。ユーザは特定ジェスチャＢＧを筆記する場合、矩形の左上角から書き始めて、時計周り（図４Ａ参照）、或いは反時計回り（図４Ｂ参照）に書き進めて左上角に戻る。区分部１１２は、入力されたストロークを構成する筆点の少なくとも一部（例えば、１／３以上）が特定ジェスチャに含まれる場合に、当該ストロークが当該特定ジェスチャに囲まれる（当該特定ジェスチャで指定される範囲に含まれる）と判定する。これは、ユーザが筆記した特定ジェスチャが他のストロークと交差する場合がある（図３参照）ことを考慮したものである。
【００３７】
本実施形態の手法では、特定ジェスチャを高精度に認識するために、ストロークの時系列情報を使うオンライン認識手法と、ストロークの画像としての特徴を使うオフライン認識手法を併用して特定ジェスチャを認識する。特定ジェスチャを認識する際の認識対象は、数式（英文字などのシンボル、四則演算子、分数記号、ルート、積分記号などの演算子、括弧）と特定ジェスチャ（囲み矩形）となる。
【００３８】
オンライン認識手法では、ＭＲＦ（Markov Random Field）モデルを用いる。まず、入力パターンを標準サイズに正規化し、Ramer-Douglas-Peucker法によって、端点や角などの特徴点を抽出する。そして、ＭＲＦモデルの特徴点と伸縮マッチングを行う。スコアの評価には、閾値を用いて、閾値より小さい場合はリジェクトする。
【００３９】
オフライン認識手法では、ＭＱＤＦ（Modified Quadratic Discriminant Function）を用いる。ストロークは、時系列順に筆点列をつなぐことで、容易に画像に変換することができる。ストロークを画像に変換すると時系列情報を失うものの、画像に変換することで筆順違いや重ね書き等による影響を排除することができる。この画像に対して、Sobelフィルタにより勾配特徴を抽出して８方向に射影する。元画像が６４×６４ピクセルとして、これを同一サイズの８×８の区画に分割する。これに対して１８×１８ピクセルのガウスフィルタを適用してぼかす。このようにすると、中心に近い方向特徴は大きく寄与し、周辺の寄与は小さくなり、隣の区画からも多少の寄与を受け、これにより位置ずれに強くなる。その結果、８×８区画ごとに８方向の特徴が抽出され、全体で５１２次元の特徴が得られる。更に、フィッシャーの判別分析により次元を圧縮して、２５６次元の特徴を得る。識別にはＭＱＤＦを使う。更に、閾値を設定し、入力パターンの矩形への距離が最短でも、閾値より大きい場合はリジェクトする。
【００４０】
最後に、オンライン認識手法とオフライン認識手法の結果を統合する。ここで、オンライン認識手法は確率値の対数値（負値であるが、大きいほど良い）を出し、オフライン認識手法は距離（小さいほど良い）を出すため、これらの尺度を合わせる必要がある。そこで、オンライン認識のスコアに−１を乗じることで正値にして（従って、小さいほどよい）、重み付の和をとることで統合スコアを算出する。統合スコアscorecombinationは、次式により算出される。
【００４１】
【数１】
2016117564.tif 000003
【００４２】
ここで、scoreonline、scoreofflineは、それぞれオンライン認識手法のスコア、オフライン認識手法のスコアである。また、ｗ１、ｗ２は、統合の重みであり、これらは訓練パターンを用いて最適化される。より詳細には、通常、scoreonlineは、−１０程度から０までの値をとり、scoreofflineは、０以上１０２４未満の値をとる。すなわち、−scoreonlineはscoreofflineの１００分の１程度なので、現実には、０＜ｗ１＜０．１、ｗ２＝１−ｗ１の条件を満たすときに最適な値が得られる。登録部１１０は、認識対象のなかで、scorecombinationが最も小さいものを特定ジェスチャとして認識する。
【００４３】
３．処理
次に、本実施形態の認識装置の処理の流れについて説明する。認識装置には、タブレット型ＰＣのように、時系列の筆点を実時間で表示して認識のフィードバックを筆画（ストローク）毎に行える対話型装置と、時系列の筆点をメモリを備えたタブレットや電子ペンで記録し、そのデータの読み込みと処理はＰＣ等で一括してなされる非対話型装置がある。
【００４４】
３−１．逐次方式の処理
対話型装置で採用される逐次方式では、ユーザは、文字列を認識する言語（例えば、英語か日本語）を指定してシステム（プログラム）を立ち上げ、タッチパネル等の入力部に数式や文字列を筆記し始める。システムは、特定ジェスチャの認識、文字列及び数式の区分をストロークが筆記される毎に行い、筆記終了後に、文字列及び数列の認識と認識結果の表示を行う。図５は、逐次方式における処理の一例を示すフローチャートである。
【００４５】
まず、処理部１００は、文字入力部１６０に入力されたストロークを取得する（ステップＳ１０）。このとき、表示制御部１２０は、取得されたストロークを表示部１９０に表示させる制御を行う。次に、登録部１１０は、取得されたストロークから遡って特定ジェスチャの最大画数（例えば、４画）までの最近のストロークが特定ジェスチャに該当（特定ジェスチャを構成）するか否かを判断する（ステップＳ１２）。例えば、登録部１１０は、最近の１画分のストローク、２画分のストローク列、３画分のストローク列、４画（最大画数）分のストローク列のそれぞれについて統合スコアscorecombinationを算出し、認識対象のなかで、特定ジェスチャが一番小さいscorecombinationを与えるとき、特定ジェスチャと認識する。但し、オンライン認識手法とオフライン認識手法のいずれかでリジェクトされたストロークについては、scorecombinationを算出せず、いずれのストロークもリジェクトされた場合には、特定ジェスチャに該当しないと判断する。
【００４６】
特定ジェスチャに該当する場合（ステップＳ１２のＹ）には、登録部１１０は、特定ジェスチャに該当すると判断されたストロークの情報から、特定ジェスチャの情報（筆順と、対向する２角の座標）を特定ジェスチャテーブルに登録する（ステップＳ１４）。ここで、登録部１１０は、特定ジェスチャに該当すると判断されたストロークが、以前に数式に対応するストロークとして設定されていた場合には、その設定を取り消す。また、表示制御部１２０は、特定ジェスチャに該当すると判断されたストロークの画像を、他のストロークとは異なる色（例えば、赤色）の矩形（特定ジェスチャに対応する形状）を表す画像として表示させる制御を行う。これにより、特定ジェスチャが正しく認識されたことをユーザにフィードバックすることができる。
【００４７】
次に、区分部１１２は、特定ジェスチャテーブルを参照して、登録された特定ジェスチャで指定される範囲に含まれるストロークを、文字列に対応するストロークとして設定する（ステップＳ１６）。このとき、表示制御部１２０は、特定ジェスチャで指定される範囲に含まれるストロークの色を変化（例えば、黒色から青色に変化）させる制御を行う。これにより、特定ジェスチャによって文字列が正しく区分されたことをユーザにフィードバックすることができる。なお、特定ジェスチャで指定される範囲に含まれるストロークが存在しない場合には、ステップＳ１６の処理をスキップする。
【００４８】
特定ジェスチャに該当しない場合（ステップＳ１２のＮ）には、区分部１１２は、特定ジェスチャテーブルを参照して、取得されたストロークが、いずれかの特定ジェスチャで指定される範囲に含まれるか否かを判断する（ステップＳ１８）。取得されたストロークがいずれかの特定ジェスチャで指定される範囲に含まれる場合（ステップＳ１８のＹ）には、区分部１１２は、取得されたストロークを、文字列に対応するストロークとして設定し（ステップＳ２０）、表示制御部１２０は、取得されたストロークの色を変化（例えば、黒色から青色に変化）させる制御を行う。一方、取得されたストロークが、特定ジェスチャで指定される範囲に含まれない場合（ステップＳ１８のＮ）には、区分部１１２は、取得されたストロークを、数式に対応するストロークとして設定する（ステップＳ２２）。
【００４９】
次に、処理部１００は、ストロークの入力があるか否かを判断し（ステップＳ２４）、入力がある場合（ステップＳ２４のＹ）には、ステップＳ１０の処理に移行し、ユーザによる筆記が終了するまで、ステップＳ１０以降の処理を繰り返す。
【００５０】
ストロークの入力がないと判断した場合（ステップＳ２４のＮ）には、認識部１１４は、ステップＳ１６、Ｓ２０で文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、ステップＳ２２で数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する（ステップＳ２６）。そして、表示制御部１２０は、認識結果（文字列を含む数式）を表示部１９０に表示させる制御を行う。
【００５１】
ここで、数式認識エンジンは、特定ジェスチャに対応するストロークも文字列に対応するストロークも理解しないが、特定ジェスチャで囲まれた文字列の情報がないと（すなわち、数式に対応するストロークの情報からのみでは）、数式の構造を解析することができない。そこで、本実施形態の手法では、１つの特定ジェスチャと当該特定ジェスチャに囲まれる文字列を１つのシンボル（数式における１つの記号）として扱って、当該シンボルとして扱う特定ジェスチャの座標情報と数式に対応するストロークの情報から数式を認識する。そのために、特定ジェスチャの筆順を調整する。具体的には、特定ジェスチャを構成する最初のストロークと当該特定ジェスチャで囲まれる文字列に対応する最初のストロークの筆順のうちより筆順の早い方を、当該特定ジェスチャの調整後筆順として特定ジェスチャテーブルに登録する。図２に示す例では、特定ジェスチャＢＧ１、ＢＧ２、ＢＧ３の調整後筆順として、それぞれ、「１」、「９」、「１２」が登録されている。この場合、認識部１１４（数式認識エンジン）は、特定ジェスチャテーブルを参照することで、特定ジェスチャＢＧ１とこれに含まれる文字列「ａｒｅａ」を１画目に筆記された１つのシンボルとして扱い、特定ジェスチャＢＧ２とこれに含まれる文字列「ｈｅｉｇｈｔ」を９画目に筆記された１つのシンボルとして扱い、特定ジェスチャＢＧ３とこれに含まれる文字列「ｗｉｄｔｈ」を１２画目に筆記された１つのシンボルとして扱って、これらシンボルと、数式に対応するストロークとの位置や大きさの関係から、数式の構造解析を行うことができる。
【００５２】
逐次方式では、ユーザが書き間違いをすることがあるため、Ｕｎｄｏ機能を備えることが望ましい。この場合、ユーザがＵｎｄｏコマンドを入力したときに、Ｕｎｄｏされた最新のストロークが特定ジェスチャである場合には、当該特定ジェスチャとその登録情報を削除し、当該特定ジェスチャで指定される範囲に含まれるストローク（文字列に対応するストロークとして設定されたストローク）を数式に対応するストロークとして設定し直す。一方、Ｕｎｄｏされた最新のストロークが文字列或いは数式に対応するストロークである場合には、単に当該ストロークを削除する。
【００５３】
図６は、逐次方式における具体的な表示例を示す図である。図６に示す例では、ユーザは、まず、文字列「ｖａｌｕｅ」と数式を筆記し、文字列「ｖａｌｕｅ」を囲む特定ジェスチャＢＧ１を筆記する（図６Ａ）。すると、登録部１１０は、特定ジェスチャＢＧ１を認識し、表示制御部１２０は、特定ジェスチャＢＧ１を、赤色で特定ジェスチャＢＧ１と同等の大きさの矩形を表す画像ＢＩ１（特定ジェスチャ画像）に置換し、特定ジェスチャＢＧ１で囲まれた文字列「ｖａｌｕｅ」の色を青色に変化させる（図６Ｂ）。次に、ユーザは、新たな特定ジェスチャＢＧ２を筆記する（図６Ｃ）。すると、登録部１１０は、特定ジェスチャＢＧ２を認識し、表示制御部１２０は、特定ジェスチャＢＧ２を特定ジェスチャ画像ＢＩ２に置換する（図６Ｄ）。次に、ユーザが、特定ジェスチャ画像ＢＩ２の中に文字列「ｒｅｓｕｌｔ」を筆記すると、表示制御部１２０は、この文字列「ｒｅｓｕｌｔ」を、ストロークを取得する毎に青色で表示させる（図６Ｅ）。最後に、ユーザが認識の実行を指示する操作を行うと、認識部１１４は、文字列と数式の認識を行い、表示制御部１２０は、認識結果を表示させる（図６Ｆ）。なお、ここでは特定ジェスチャ画像ＢＩ１、ＢＩ２を除去して認識結果を表示している。
【００５４】
３−２．一括方式の処理
非対話型装置で採用される一括方式では、ユーザは、システムを立ち上げ、タブレット等のインターフェースに数式や文字列を筆記する。そして、筆記後に、ストローク列のデータをＰＣ等（認識装置）に読み込ませ、その際に、文字列を認識する言語を指定する。一括方式では、特定ジェスチャの認識、文字列及び数式の区分、文字列及び数列の認識と認識結果の表示の３つの処理は、全てのストローク列のデータがＰＣ等に送られてから実行される。このとき、入力されたストロークを順次処理する際に、逐次方式と同様の処理を行うこともできる。また、一括方式では、特定ジェスチャの認識と、文字列及び数式の区分とを実時間で行う必要がないことから、全ての特定ジェスチャを認識した後に、それ以外のストロークについて文字列と数式とに区分し、最後にそれらを認識する方法を採用してもよい。図７は、一括方式における後者の方法の処理の一例を示すフローチャートである。
【００５５】
まず、処理部１００は、文字入力部１６０に入力されたストローク列を取得する（ステップＳ３０）。次に、処理部１００は、変数ｉに１をセットする（ステップＳ３２）。次に、登録部１１０は、ｉ番目（ｉ画目）のストロークから遡って特定ジェスチャの最大画数（例えば、４画）までの最近のストロークが特定ジェスチャに該当するか否かを判断する（ステップＳ３４）。
【００５６】
特定ジェスチャに該当する場合（ステップＳ３４のＹ）には、登録部１１０は、特定ジェスチャに該当すると判断されたストロークの情報から、特定ジェスチャの情報（筆順と、対向する２角の座標）を特定ジェスチャテーブルに登録する（ステップＳ３６）。特定ジェスチャに該当しない場合（ステップＳ３４のＮ）には、ｉ番目のストロークを、非ジェスチャストローク（特定ジェスチャに該当しないストローク）として設定する（ステップＳ３８）。
【００５７】
次に、処理部１００は、変数ｉの値を１だけ増加させ（ステップＳ４０）、変数ｉの値がｎ（ｎは、取得されたストローク列に含まれるストロークの総数）以下であるか否かを判断する（ステップＳ４２）。変数ｉの値がｎ以下である場合（ステップＳ４２のＹ）には、ステップＳ３４に移行し、変数ｉの値がｎを超えるまで、ステップＳ３４以降の処理を繰り返す。
【００５８】
変数ｉの値がｎを超えた場合（ステップＳ４２のＮ）には、処理部１００は、変数ｉに１をセットする（ステップＳ４４）。次に、区分部１１２は、特定ジェスチャテーブルを参照して、ステップＳ３８で設定されたｉ番目の非ジェスチャストロークが、いずれかの特定ジェスチャで指定される範囲に含まれるか否かを判断する（ステップＳ４６）。ｉ番目の非ジェスチャストロークがいずれかの特定ジェスチャで指定される範囲に含まれる場合（ステップＳ４６のＹ）には、区分部１１２は、ｉ番目の非ジェスチャストロークを、文字列に対応するストロークとして設定する（ステップＳ４８）。一方、ｉ番目の非ジェスチャストロークが特定ジェスチャで指定される範囲に含まれない場合（ステップＳ４６のＮ）には、区分部１１２は、ｉ番目の非ジェスチャストロークを、数式に対応するストロークとして設定する（ステップＳ５０）。
【００５９】
次に、処理部１００は、変数ｉの値を１だけ増加させ（ステップＳ５２）、変数ｉの値がｍ（ｍは、非ジェスチャストロークの総数）以下であるか否かを判断する（ステップＳ５４）。変数ｉの値がｍ以下である場合（ステップＳ５４のＹ）には、ステップＳ４６に移行し、変数ｉの値がｍを超えるまで、ステップＳ４６以降の処理を繰り返す。
【００６０】
変数ｉの値がｍを超えた場合（ステップＳ５４のＮ）には、認識部１１４は、ステップＳ４８で文字列に対応するストロークとして設定されたストロークから文字列認識エンジンにより文字列を認識し、特定ジェスチャテーブル（シンボルとして扱う特定ジェスチャの座標情報）とステップＳ５０で数式に対応するストロークとして設定されたストロークから数式認識エンジンにより数式を認識する（ステップＳ５６）。そして、表示制御部１２０は、認識結果（文字列を含む数式）を表示部１９０に表示させる制御を行う。
【００６１】
図８は、一括方式における具体的な表示例を示す図である。一括方式では、ユーザにより筆記され認識装置に取り込まれた全てのストロークが表示され（図８Ａ）、ユーザが認識の実行を指示する操作を行うと、特定ジェスチャの認識、文字列及び数式の区分、文字列及び数列の認識が実行され、認識結果が表示される（図８Ｃ）。なお、特定ジェスチャの認識と、文字列及び数式の区分を実行した後、文字列及び数列の認識を実行する前に、図８Ｂに示すように、特定ジェスチャの認識結果と数式及び文字列の区分の結果を表示してもよい。図８Ｂに示す例では、特定ジェスチャＢＧ１、ＢＧ２、ＢＧ３を、それぞれ特定ジェスチャ画像ＢＩ１、ＢＩ２、ＢＩ３に置換し、特定ジェスチャＢＧ１、ＢＧ２、ＢＧ３で囲まれた文字列「ａｒｅａ」、「ｈｅｉｇｈｔ」、「ｗｉｄｔｈ」の色をそれぞれ青色に変更している。
【００６２】
本実施形態によれば、文字列と数式とを区分するための特定ジェスチャを導入して、特定ジェスチャで囲まれるストロークを文字列に区分し、特定ジェスチャで囲まれないストロークを数式に区分し、文字列認識エンジンと数式認識エンジンによりそれぞれを認識することで、数式に含まれる文字列と数式とを明確に区分してそれぞれを認識することができる。また、数式を認識する際に、特定ジェスチャと当該特定ジェスチャで囲まれるストロークを１つのシンボルとして扱うことで、数式認識エンジンを用いて、文字列を含む数式の構造解析を行うことができる。
【００６３】
また、本実施形態によれば、逐次方式において、特定ジェスチャが筆記されたときに当該特定ジェスチャで囲まれるストロークを文字列に区分する処理を行い（図５のステップＳ１６）、また、筆記されたストロークが特定ジェスチャで囲まれる場合に当該ストロークを文字列に区分する処理を行う（図５のステップＳ２０）ことで、特定ジェスチャがどのタイミングで筆記されても、文字列と数式とを区分することができ、ユーザの利便性を向上することができる。すなわち、本実施形態によれば、特定ジェスチャを筆記してから文字列を筆記する場合（図３Ａ）や、文字列を筆記してから特定ジェスチャを筆記する場合（図３Ｂ、図３Ｃ）や、特定ジェスチャの中に文字列を書き足す場合（図３Ｄ）であっても、文字列と数式とを区分する処理を行うことができる。
【００６４】
なお、本発明は、上述の実施の形態に限定されるものではなく、種々の変更が可能である。本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【００６５】
１００  処理部、１１０  登録部、１１２  区分部、１１４  認識部、１２０  表示制御部、１６０  文字入力部、１７０  記憶部、１９０  表示部
【図１】
2016117564.tif 000004
【図２Ａ】
2016117564.tif 000005
【図２Ｂ】
2016117564.tif 000006
【図３Ａ】
2016117564.tif 000007
【図３Ｂ】
2016117564.tif 000008
【図３Ｃ】
2016117564.tif 000009
【図３Ｄ】
2016117564.tif 000010
【図４Ａ】
2016117564.tif 000011
【図４Ｂ】
2016117564.tif 000012
【図５】
2016117564.tif 000013
【図６Ａ】
2016117564.tif 000014
【図６Ｂ】
2016117564.tif 000015
【図６Ｃ】
2016117564.tif 000016
【図６Ｄ】
2016117564.tif 000017
【図６Ｅ】
2016117564.tif 000018
【図６Ｆ】
2016117564.tif 000019
【図７】
2016117564.tif 000020
【図８Ａ】
2016117564.tif 000021
【図８Ｂ】
2016117564.tif 000022
【図８Ｃ】
2016117564.tif 000023
【国際調査報告】
2016117564.tif 000024
2016117564.tif 000025
2016117564.tif 000026
2016117564.tif 000027