(57)【要約】      （修正有）【課題】手書き文字の特徴（特に、非アルファベットである漢字、仮名文字を含む日本語文字の筆跡）に基づきユーザ認証を行う認証システムを提供する。【解決手段】手書き文字によるクライアントＣＬとサーバＳＶによるユーザ認証システムにおいて、クライアントは、ユーザの手書き文字の時系列を保持した筆跡であるストロークをサーバに送り、クライアントから送られたストロークから手書き文字の特徴を求めて、ユーザと関連づけて求められた手書き文字の特徴をデータベースに保存する。ユーザ認証の際、クライアントは、サーバから送られる認証に用いる文字列に対応する手書き文字のストロークをサーバに送り、サーバは、クライアントからの手書き文字のストロークから手書き文字の特徴を求め、前記データベースに保管されている手書き文字の特徴と比較して、同一人による手書き文字か否かを判定する。【選択図】図１
2018147312.tif 000002
【特許請求の範囲】
【請求項１】
手書き文字によるユーザ認証システムにおいて、
ネットワークを通して接続されるクライアントとサーバを有し、
事前処理として、
前記クライアントは、ユーザの手書き文字の時系列を保持した筆跡であるストロークを前記サーバに送る手段を有し、
前記サーバは、前記クライアントから送られたストロークから前記手書き文字の特徴を求める手段と、
前記ユーザと関連づけて、前記求められた手書き文字の特徴をデータベースに保存する手段を有し、
ユーザ認証の際、
前記サーバは、認証に用いる文字列を認証要求のあったクライアントに送信し、
前記クライアントは、前記サーバから送られる認証に用いる文字列に対応する手書き文字のストロークを前記サーバに送り、
前記サーバは、前記クライアントからの手書き文字のストロークから前記手書き文字の特徴を求め、前記データベースに保管されている手書き文字の特徴と比較して、同一人による手書き文字か否かを判定する、
ことを特徴とする手書き文字によるユーザ認証システム。
【請求項２】
請求項１において、
前記ストロークから求められる手書き文字の特徴は、
文字の線分に含まれる複数の点の（ｘ、ｙ）座標と、時間及び線分を特定する情報で表される、
ことを特徴とする手書き文字によるユーザ認証システム。
【請求項３】
請求項２において、
前記手書き文字の特徴と比較は、前記文字を構成する線分の特徴ベクトルの距離に基づき判断する、
ことを特徴とする手書き文字によるユーザ認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き文字によるユーザ認証システムに関する。
【背景技術】
【０００２】
現在、生体認証は広く使用され、特に指紋はその中で最も多く用いられている認証要素である。実際に入出管理、銀行における個人認証、あるいはモバイルデバイスにおける認証と様々な分野で生体認証が用いられている。これらは、弱いパスワードに比較して安全であると考えられるが、生体認証に無視し得ない欠点が存在する。
【０００３】
その中の一つとして、提供できる特徴の数が限られる点である。例えば、広く用いられている特徴として、手指の静脈、指紋、虹彩が挙げられる。これらを合計しても特徴は１４種類（２本の手、１０本の指、２つの目）にしかならず、それぞれ別の場所、端末に登録したとしても生涯変更できず、同じものを使用し続けなければならない。
【０００４】
また、別の問題として、第三者による収集、複製のハードルが低いことが挙げられる。特に指紋に関しては、日常生活において様々なもの、場所に付着してしまうため、これを完全に隠匿することは、ほぼ不可能である。換言すれば、指紋認証に使用する自身の認証要素を、周囲に公開しながら生活しているといえる。
【０００５】
これらの事情から、生涯変わらない特徴を用いる生体認証には、回避困難なリスクがあるといえる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１-７６３６９号公報
【特許文献２】特開２０１６-４０６８４号公報
【非特許文献】
【０００７】
【非特許文献１】Li, B. and Sun, Z and Tan, T., Hierarchical shape primitive features for online text-independent writer identification, Proceedings of the International Conference on Document Analysis and Recognition, ICDAR, 2009.
【非特許文献２】小田野  晋, 合原  裕貴, 山崎  恭,  携帯端末向け署名照合システムの筆記環境と認証制度に関する一検討, 電子情報通信学会論文誌 Ａ Vol.J98-A No.12 pp.664-pp7, 2015
【非特許文献３】Joulia Chapran, Biometric Writer Identification: Feature Analysis and Classification, International Journal of Pattern Recognition and Artificial Intelligence Vol. 20, No.4 (2006) 483-503
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記した生体認証による不都合を避けるためには、顔、声、あるいは手書き文字のような変更可能な特徴を用いることが想定される。しかし、これらの中で顔、声は指紋と同様に、他者による収集が容易である。
【０００９】
一方、手書き文字は、加齢により徐々に変化する。そのうえ、書道のような訓練によって、意図的に変更することが可能である。さらに、姿勢、机の高さ、ペンの大小等の文字を書く環境によっても異なった特徴となることが知られている（非特許文献２）。そのため、他者が異なった環境で似た文字を書くことは、非常に困難であると理解される。
【００１０】
また、近年、ＰＣ等電子機器による文字入力により、筆記具を用いて手書きで文字を書く機会が非常に少なくなりつつある。したがって、手書き文字による認証は、既存の生態認証に比して第三者による特徴取集の難易度を高めることが出来る。
【００１１】
かかる点に鑑みて、本発明の目的は、手書き文字の特徴（特に、非アルファベットである漢字、仮名文字を含む日本語文字の筆跡）に基づきユーザ認証を行う認証システムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成する本発明に従う第１の側面は、手書き文字によるユーザ認証システムにおいて、ネットワークを通して接続されるクライアントとサーバを有し、事前処理として、前記クライアントは、ユーザの手書き文字の時系列を保持した筆跡であるストロークを前記サーバに送る手段を有し、前記サーバは、前記クライアントから送られたストロークから前記手書き文字の特徴を求める手段と、前記ユーザと関連づけて、前記求められた手書き文字の特徴をデータベースに保存する手段を有し、ユーザ認証の際、前記サーバは、認証に用いる文字列を認証要求のあったクライアントに送信し、前記クライアントは、前記サーバから送られる認証に用いる文字列に対応する手書き文字のストロークを前記サーバに送り、前記サーバは、前記クライアントからの手書き文字のストロークから前記手書き文字の特徴を求め、前記データベースに保管されている手書き文字の特徴と比較して、同一人による手書き文字か否かを判定することを特徴とする。
【００１３】
上記目的を達成する本発明に従う第１の側面において、第１の態様として、前記ストロークから求められる手書き文字の特徴は、文字の線分に含まれる複数の点の（ｘ、ｙ）座標と、時間及び線分を特定する情報で表されることを特徴とする。
【００１４】
上記目的を達成する本発明に従う第１の側面において、第２の態様として、前記手書き文字の特徴と比較は、前記文字を構成する線分の特徴ベクトルの距離に基づき判断することを特徴とする。
【図面の簡単な説明】
【００１５】
【図１】本発明に従う手書き文字によるユーザ認証システムの構成例ブロック図である。
【図２】各文字に対して特徴を求め保存する事前準備のための処理フロー図である。
【図３】カタカナ文字「イ」を例にして手書き文字の特徴を抽出する方法を説明する図である。
【図４】図３（２）に示す単純化した方向の組み合わせを求めた結果を示す図である。
【図５】漢数字「八」とその特ストロークの特徴を可視化した例を示す図である。
【図６】比較対象として、別人に書かせた漢数字「八」を示す図である。
【図７】図７は、２次元の場合のクラス内距離と、クラス間距離について説明する図である。
【図８】初期学習データ構築の後に、行われる認証の処理フローである。
【発明を実施するための形態】
【００１６】
以下に、本発明の実施例を添付の図面に従い説明する。これらの実施例は本発明の理解を容易とするためのものであり、本発明の適用は、これら実施例に限定されるのではない。また、本発明の保護の範囲は、特許請求の範囲と同一又は類似の範囲にも及ぶ。
【００１７】
図１は、本発明に従う手書き文字によるユーザ認証システムの構成例ブロック図である。
【００１８】
認証サービスを受けるユーザクライアント（以降、単にクライアントという）ＣＬと、認証サービスを提供するサーバＳＶとが、インターネット等のネットワークＩＮＴを介して接続される。
【００１９】
クライアントＣＬのシステムの要件として、パーソナルコンピュータＰＣとプログラム及びデータの記憶手段ＨＤＤのほか、タッチパネル、ペンタブレット等の筆跡を取集できる入力インタフェース機能を有し、十分なサンプリングレートで手書き文字のストロークを収集することが可能である。さらに、パーソナルコンピュータＰＣによるプログラムの実行により、認証要求手段１、ストローク取集手段２等の機能手段を構成する。
【００２０】
ユーザ認証システムへの応用例として、クライアントＣＬは、例えば、ＡＴＭ装置（自動入金及び払出し装置）の一部として組み込まれる。
【００２１】
ここで、本発明の定義として、上記ストロークは、時系列を保持した筆跡を意味する。
【００２２】
サーバＳＶは、計算能力のあるコンピュータＰＣであることが要件である。データベースＤＢの機能のため記憶手段ＨＤＤを有する。コンピュータＰＣによるプログラムの実行により、以降の説明に関連する複数の機能手段を構成する。
【００２３】
また、本発明の応用として、サーバＳＶは、前記クライアントＣＬの組み込まれるシステム応用例に対応して、入室管理、銀行における個人認証等の種々の形態で認証システムに組み込まれる。
【００２４】
[事前準備：初期学習データの構築]
本発明に従う認証システムの実現のために、サーバＳＶは、クライアントＣＬに認証サービスを提供するために、事前準備として初期学習データを構築する。
【００２５】
すなわち、認証サービスを受けようとするクライアントＣＬのストロークを事前に収集し、各文字に対して特徴を求めデータベースＤＢ２３に保存する事前準備を行う。
【００２６】
図２は、かかる事前準備のための処理フロー図である。サーバＳＶに対して、クライアントＣＬから認証サービスを受ける旨の意思表示を認証要求手段１から送る（ステップＳ１）。
【００２７】
これに対して、サーバＳＶから認証に用いる文字列を認証情報、サービス提供手段（以降単に、サービス提供手段と表記）２０から通知する（ステップＳ２）。
【００２８】
クライアントＣＬは、タッチパネル、ペンタブレット等の筆跡を取集できる環境を用いてストローク収集手段２により、サーバＳＶから通知された文字列に対応するストロークを収集して返送する（ステップＳ３）。
【００２９】
それぞれの文字は、筆記点、時刻、及び、各筆記点の属するストロークのＩＤ（識別子）からなる。なお、ストロークは、時系列を保持した筆跡を意味する。かかるストローから手書き文字を再構成することが出来る。
【００３０】
サーバＳＶは、返送されたストロークに対し、各文字に対して特徴を求め（ステップＳ４）、データベースＤＢ２３に保存する。
【００３１】
すなわち、識別用文字計算手段２１及び識別用データ計算手段２２により、書き手（クライアントＣＬのユーザ）及び文字種毎のデータを一つの集合として、集合に属するストローク間での特徴の距離を求める。また、集合に属さないストローク群との距離を求め、そのうち最も距離が近いものが集合内での最も遠いストロークとの距離より小さいもののみを今後の認証に用いる。
【００３２】
かかる認証に用いる文字のデータを、ユーザ対応にデータベースＤＢ２３に保存する。
【００３３】
[文字種毎のデータと、ストローク群との距離]
ここで、文字種毎のデータと、ストローク群との距離について考察する。まず、本発明の実現のための基礎として、ひらがな、カタカナと漢字における関係について説明する。
【００３４】
漢字は、中国で生まれ、日本がそれを導入し、以来使用してきた。日本において、漢字から「ひらがな」と「カタカナ」が１１００年前に作られた。しかし、「ひらがな」と「カタカナ」は、明確に異なる。「ひらがな」は漢字から続け書き形式で作られ、「カタカナ」は、漢字の一部から作られたものである。
【００３５】
したがって、いくつかの「カタカナ」は、漢字に非常に似ている。例えば、「カタカナ」の「ニ」は、漢字の「二」と類似し、「カタカナ」の「ハ」は、漢字の「八」に類似している。
【００３６】
本発明者は、手書き文字の特徴を抽出する方法として、Shape Primitives Probability Distribution Function (ＳＰＰＤＦ)（非特許文献１）を用いた。この方法は、手書き漢字文から特徴を抽出して、書き手を特定する大変有効な方法である。
【００３７】
ＳＰＰＤＦは、文字におけるストロークを単純化された方向で扱う。すなわち、文字を構成するストロークを、例えば１６方向に分類し、更に連続する３点の方向の組み合わせの確率部分布を特徴とする。この手法によって、２５６次元の特徴をそれぞれの文字から得られる。
【００３８】
かかる点の理解を容易にするために、図３に示すカタカナ文字「イ」を例にして手書き文字の特徴を抽出する方法を更に説明する。
【００３９】
クライアントＣＬで収集される文字のストロークには、ｘ, ｙ座標と、時間、何番目という情報が含まれる。
【００４０】
図３（１）に示されるように、カタカナ文字「イ」は、斜めに伸びる１番目の線と、縦に延びる２番目の線からなる。
【００４１】
そして、図における点Ｐ１_１は１番目の線に含まれる１番目の点を示す。同様に、点Ｐ１_２は１番目の線に含まれる２番目の点を示す。また、Ｐ２_１は２番目の線に含まれる１番目の点を示す。
【００４２】
したがって、各点の位置は、二次元座標位置（ｘ,ｙ）と時間ｔで次のように表記される。
【００４３】
Ｐ1_1＝（ｘ1_1, ｙ1_1, ｔ1_1）
Ｐ1_2＝（ｘ1_2, ｙ1_2, ｔ1_2）
・
・
・
Ｐ2_1＝（ｘ2_1, ｙ2_1, ｔ2_1）
・
・
・
次いで、これらの点を３つずつ取り出し、図３（２）に示す単純化した方向の組み合わせを求める。この結果は図４に示すようである。
【００４４】
図４において、Ｐ1_1→Ｐ1_2→Ｐ1_3  は、いずれも左下への線に割り付けられるため、図３（２）に基づき、（５,５）を結果として得る。残りの点も同様に処理すると、（５,５）の組が４つ、（４,４）の組が３つ得られる。
【００４５】
このように、８通りの単純化した方向線を用いたため、８２＝６４通りの組み合わせの確率分布を求めることになるが、２次元のままでは扱いにくいため、（ａ，ｂ）の組を８＊ａ＋ｂとして一次元にする。
【００４６】
したがって、６４次元の特徴ベクトルが得られ、０以外の成分と添え字のみを示すと、（ａ，ｂ）＝（４，４）の場合、３６：３／７＝０．４２８６ 、（ａ，ｂ）＝（５，５）の場合、４５：４／７＝０．５７１４となる。
【００４７】
比較に必要なのは、ストロークやそれが形成する文字自体ではなく、特徴のみであるためサーバＳＶにはストロークではなく抽出した特徴をデータベースＤＢ２３に保存する。
【００４８】
ここで、収集したストロークが形成する文字とそれから得られるストロークの特徴を可視化することが出来る。例として、漢数字の「八」を用いて以下に説明する。
【００４９】
図５は、例にした漢数字「八」とその特ストロークの特徴を可視化した例を示す。
【００５０】
先にカタカナ「イ」について示したと同様の０以外の成分と添え字は、図５（１）に示す漢数字「八」の場合は、
５１：０．３１２５
６０：０．０６２５
２０４：０．６２５  となる。
【００５１】
これは、漢数字「八」が、左下への線、２画目のはじめ少しだけ右に出る線、右下への線の３つの線で構成されていることを意味する。これを、図５（２）では簡単化のため、１６×１６の３Ｄグラフで示しているが、実際は、２５６次元のベクトルが得られる。
【００５２】
比較対象として、別人に書かせた漢数字「八」を図６に示す。
【００５３】
この例においては、線分が７つになり、値が０になる部分を除いた実際のデータとその添え字は、次のようになる。
【００５４】
３５：０．０７１４
５１：０．２８５７
６０：０．０７１４
２０４：０．０７１４
２０５：０．１４２８
２２０：０．１４２８
２２１：０．２１４３
ここで、図５に示す前者の特徴ベクトルをＡ，図６に示す後者の特徴ベクトルをＢとした場合に、ＡＢ間の距離を求める。
【００５５】
実施例としてユークリッド距離を用い、それぞれの添え字について差を求め、２乗したものの合計を距離とする。
【００５６】
この場合差ベクトルは、次のようになる。
【００５７】
３５：−０．０７１４
５１：０．０２６８
６０：−０．００８９
２０４：０．５５３６
２０５：−０．１４２８
２２０：−０．１４２８
２２１：−０．２１４３
それぞれ２乗した和が距離であるので、最終的に０．３９９１が得られる。
【００５８】
上記のとおり、図５と図６の別人が手書きした文字の比較を行い、それらの距離が大凡０．４程度であると求められた。
【００５９】
理想的には、同一人物が手書きした文字の距離は、０に近くなり、別人が書いた文字を比較した場合には距離は大きくなる。
【００６０】
これにより、手書き文字を入力するユーザが、先にサーバに保存されている文字の特徴を有するユーザと同一であるかが判定できる。
【００６１】
[クラス内距離とクラス間距離]
本発明者は、本発明の有用性を判断するための実験を行った。この目的のために、次のような距離を定義する。
・クラス内距離：同一の書き手による同一種類の文字の集合内における距離をクラス内距離と定義する。この距離における最小値、平均値、最大値を求める。
・クラス間距離：同一種類の文字の集合内における距離である。ただし、クラス内距離とは異なる書き手によって書かれた文字からなる集合である。この距離における最小値、平均値、最大値を求める。
・inter-intra distance:クラス内距離のうち最大のもととクラス間距離のうち最小のものの差を定義する。
【００６２】
図７は、２次元の場合のクラス内距離と、クラス間距離について説明する図である。図7において、○をＡさん、ｘを別人Ｂさんの特徴としたとき、○の集合と、ｘの集合が離れていれば分類は比較的に容易である。集合が離れているか否かを判別するために、先ず○の集合内で最も離れているペアを探す。これが最大クラス内距離ｄａであり、これを１とする。次に、○とｘのペアで最も距離の近いペアを探す。これが（最小の）クラス間距離ｄｂとなり、距離を３とする。
【００６３】
この例のように、クラス間距離がクラス内距離よりも大きい場合、この２つの集合は明らかに離れており、別物のであって、距離を比較するだけで分類が可能であることが示される。逆にクラス間距離がクラス内距離よりも小さい場合は、２つの集合は近くにあり距離の比較では分類できないことを示す。
【００６４】
実験では、３人の書き手による４３２種類の文字から得られる特徴を用いてこれらの距離を求めた。この距離は、全ての書き手による同一文字の集合からある書き手による集合を除いた集合における最小値と、ある書き手による同一文字の集合における最大値との差から求まる。
【００６５】
実験結果から手書き文字によるユーザの識別が可能であることが実証できた。しかし、実験結果は、識別認証に適しない文字がいくつかあることも示された。４３２の文字中適しない２０文字の半分は、「カタカナ」であった。
【００６６】
識別認証に適しない簡単な文字を認識対象候補から削除するのみではなく、これら不適文字から特徴を収集し、他と比較することが必要である。そして、それらの有用性を測定し、使用するか否かを決定することが必要である。
【００６７】
[認証処理]
図８は、初期学習データ構築の後に、行われる認証の処理フローである。この処理フローにおける各工程は、主としてサーバＳＶで実行される。
【００６８】
サーバＳＶは、クライアントＣＬから認証サービスの要求をサービス提供手段２０で受信する（ステップＳ１０）と、 認証に用いる文字の集合を払い出す（ステップ１１）。
【００６９】
この文字の集合は、先に説明した初期学習データの構築においてデータベースＤＢ２３に保存されている集合内外での距離の差に応じて重みを付け、より特徴が出やすい文字を多く、そうでない文字が少なくなるように識別用文字計算手段２１で計算を行う。
【００７０】
重みづけの例としては、
全ての文字種に対して同等の確率で払い出す方法、
先に求めた距離の差に比例する確率で払い出す方法、更に
保持しているストローク〜個人差の出るものを選出し、それに応じて払い出すなどの方法が可能である。
【００７１】
このように払いだされた文字列を、サービス提供手段から認証要求のあったクライアントＣＬ宛に送信する（ステップ１１）。
【００７２】
このように、払い出された文字列をクライアントＣＬに送り、クライアントＣＬでは、対応する文字列のストロークを生成し、サーバＳＶに返信する。
【００７３】
この際、クライアントＣＬで得られた各文字について、それぞれ筆跡（ストローク）を収集する。各文字に関して、文字の切れ目がわかる形でストロークの取集を行う。つまり、文字Ａを構成するストローク、文字Ｂを構成するストロークといった形式で複数のストローク群が得られる。これをサーバＳＶに送る。
【００７４】
サーバＳＶは、このストローク群を受信する（ステップＳ１２）と、文字数のカウンタを０に設定し、且つ結果を保持する配列をデータベースＤＢ２３に確保する（ステップＳ１３）。
【００７５】
文字列長を５文字にすると、カウンタ値Ｃが、５の値に至るまで（ステップＳ１４，Ｙ）、以下の認証処理（ステップＳ１５〜Ｓ２０）を実行する。
【００７６】
Ｃ（＜５）文字目に対してストローク認証手段２６で、先に図３，４において説明したように特徴ベクトルを求める（ステップＳ１５）。
【００７７】
次いで、ストローク認証手段２６で認証を実行する（ステップＳ１６）。
【００７８】
ここでの認証は、ストローク認証手段２６において、クライアントＣＬからのストロークを受け取り特徴ベクトルを求める。求められた特徴ベクトルと、当該クライアントＣＬの先に初期学習で構築され、データベースＤＢ２３に保存されている文字の特徴ベクトルとを比較する。この比較において、先に説明した差ベクトルの値から同一人の手書き文字か否かを判断する。
【００７９】
同一人の手書き文字と判断されて認証成功の場合（ステップＳ１７，Ｙ）は、結果を保持する配列を「true」とし（ステップ１８）、認証失敗の場合（ステップＳ１７，Ｎ）、結果を保持する配列を「false」とし（ステップ１９）、カウンタ値Ｃを１だけ歩進する。
【００８０】
すなわち、正規のユーザと識別された場合、クライアントＣＬから受け取ったストロークをサーバＳＶがデータベースＤＢ２３に保持するデータセットに追加し、事前準備を再度行う。このように、システムを使い続けることで認識率を上げることが出来る。
【００８１】
所定の文字数５まで、認証が行われると（ステップＳ１４，Ｎ）、結果を保持する配列を用いる総合認証手段での結果を判定する（ステップＳ２１）。
【００８２】
ここで、総合認証手段としてサービス提供手段２０が機能し、複数の文字認識結果を用いて最終的な認証の是非を決定する。単純に割合で決定する。例えば８割以上が真と判定される場合、認証成功とする。あるいは、ニューラルネットワーク（Neulal Network）やサポートベクトルマシン（Support Vector Machine）等の識別器を実装することも可能である。
【００８３】
ステップＳ２１で総合的に認証成功と判断される場合（ステップＳ２１、Ｙ）、受信ストロークの特徴をデータベースＤＢ２３に保存し（ステップＳ２２）、認証サービスの提供が行われる。かかる受信ストロークの特徴の保存により、サーバＳＶが保持する学習データを更新することが出来、認識率を高め、変化するユーザの手書き文字の特徴を扱うことが可能となる（ステップＳ２３）。
【００８４】
総合的に認証失敗と判断される場合は（ステップＳ２１、Ｎ）、アクセスを拒否する（ステップＳ２４）。
【００８５】
以上説明したように、本発明は、一文字毎の識別を行い、複数の識別結果を総合的に判定して最終的な結果をだすことにより、オンラインでの識別性能を高めることが出来る。
【符号の説明】
【００８６】
１  認証要求手段
２  ストローク収集手段
２０  認証情報、サービス提供手段
２１  識別用文字計算手段
２２  識別用データ計算手段
２３  データベースＤＢ
２５  システム変更手段
２４  ストローク認証手段
【図１】
2018147312.tif 000003
【図２】
2018147312.tif 000004
【図３】
2018147312.tif 000005
【図４】
2018147312.tif 000006
【図５】
2018147312.tif 000007
【図６】
2018147312.tif 000008
【図７】
2018147312.tif 000009
【図８】
2018147312.tif 000010