(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-02
(45)【発行日】2022-03-10
(54)【発明の名称】手書き文字によるユーザ認証システム
(51)【国際特許分類】
G06T 7/00 20170101AFI20220303BHJP
G06V 30/19 20220101ALI20220303BHJP
【FI】
G06T7/00 570
G06K9/62 G
(21)【出願番号】P 2017043073
(22)【出願日】2017-03-07
【審査請求日】2020-02-12
【新規性喪失の例外の表示】特許法第30条第2項適用 (1)平成28年12月5日にhttp://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7850197にて発表。 (2)平成28年12月9日に学会2016 IEEE Symposium Series on Computational Intelligence(SSCI 2016)にて発表。
(73)【特許権者】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】趙 強福
(72)【発明者】
【氏名】羽生 凌太
(72)【発明者】
【氏名】金田 祐也
【審査官】新井 則和
(56)【参考文献】
【文献】特開2003-271966(JP,A)
【文献】特開平08-016788(JP,A)
【文献】Bangy Li et al.,Hierarchical Shape Primitive Features for Online Text-independent Writer Identification,2009 10th International Conference on Document Analysis and Recognition,2009年,pp. 986-990
【文献】山崎 恭,小松 尚久,カテゴリー化された筆跡情報に基づく個人性抽出手法,電子情報通信学会論文誌 (J79-D-II) 第8号 情報・システムII-情報処理,日本,社団法人電子情報通信学会,1996年08月25日,第J79-D-II巻 第8号,pp. 1335-1346
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06V 30/00-30/424
(57)【特許請求の範囲】
【請求項1】
手書き文字によるユーザ認証システムにおいて、
ネットワークを通して接続されるクライアントとサーバを有し、
事前処理として、
前記クライアントは、ユーザの手書き文字の時系列を保持した筆跡であるストロークを前記サーバに送る手段を有し、
前記サーバは、前記クライアントから送られたストロークから前記手書き文字の特徴を求める手段と、
前記ユーザと関連づけて、前記求められた手書き文字の特徴をデータベースに保存する手段を有し、
前記手書き文字の特徴を求める手段は、手書き文字を構成するストローク毎にそれぞれ二次元座標位置(x,y)と時間で標記される連続する3点の方向の組み合わせの確率分
布を前記手書き文字の特徴として抽出し
、更に、
ユーザおよび文字ごとのデータを一つの集合として、文字の集合のうち、集合内外の距離の差に応じて重みを付け、特徴が出やすい文字と、特徴が出来にくい文字とを計算し、
ユーザ認証の際、
前記サーバは、
前記計算結果に応じて、認証に用いる文字列を認証要求のあったクライアントに送信し、
前記クライアントは、前記サーバから送られる認証に用いる文字列に対応する手書き文字のストロークを前記サーバに送り、
前記サーバは、前記クライアントからの手書き文字のストロークから前記手書き文字の特徴を求める手段により、前記手書き文字の特徴を求め、前記データベースに保存されている手書き文字の特徴と比較して、同一人による手書き文字か否かを判定する、
ことを特徴とする手書き文字によるユーザ認証システム。
【請求項2】
請求項1において、
前記クライアントからの手書き文字の特徴と前記データベースに保管されている手書き文字の特徴との比較は、前記文字を構成するストロークの線分の特徴ベクトルの距離に基づき判断する、
ことを特徴とする手書き文字によるユーザ認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、手書き文字によるユーザ認証システムに関する。
【背景技術】
【0002】
現在、生体認証は広く使用され、特に指紋はその中で最も多く用いられている認証要素である。実際に入出管理、銀行における個人認証、あるいはモバイルデバイスにおける認証と様々な分野で生体認証が用いられている。これらは、弱いパスワードに比較して安全であると考えられるが、生体認証に無視し得ない欠点が存在する。
【0003】
その中の一つとして、提供できる特徴の数が限られる点である。例えば、広く用いられている特徴として、手指の静脈、指紋、虹彩が挙げられる。これらを合計しても特徴は14種類(2本の手、10本の指、2つの目)にしかならず、それぞれ別の場所、端末に登録したとしても生涯変更できず、同じものを使用し続けなければならない。
【0004】
また、別の問題として、第三者による収集、複製のハードルが低いことが挙げられる。特に指紋に関しては、日常生活において様々なもの、場所に付着してしまうため、これを完全に隠匿することは、ほぼ不可能である。換言すれば、指紋認証に使用する自身の認証要素を、周囲に公開しながら生活しているといえる。
【0005】
これらの事情から、生涯変わらない特徴を用いる生体認証には、回避困難なリスクがあるといえる。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2011-76369号公報
【文献】特開2016-40684号公報
【非特許文献】
【0007】
【文献】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.
【文献】小田野 晋, 合原 裕貴, 山崎 恭, 携帯端末向け署名照合システムの筆記環境と認証制度に関する一検討, 電子情報通信学会論文誌 A 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
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記した生体認証による不都合を避けるためには、顔、声、あるいは手書き文字のような変更可能な特徴を用いることが想定される。しかし、これらの中で顔、声は指紋と同様に、他者による収集が容易である。
【0009】
一方、手書き文字は、加齢により徐々に変化する。そのうえ、書道のような訓練によって、意図的に変更することが可能である。さらに、姿勢、机の高さ、ペンの大小等の文字を書く環境によっても異なった特徴となることが知られている(非特許文献2)。そのため、他者が異なった環境で似た文字を書くことは、非常に困難であると理解される。
【0010】
また、近年、PC等電子機器による文字入力により、筆記具を用いて手書きで文字を書く機会が非常に少なくなりつつある。したがって、手書き文字による認証は、既存の生態認証に比して第三者による特徴取集の難易度を高めることが出来る。
【0011】
かかる点に鑑みて、本発明の目的は、手書き文字の特徴(特に、非アルファベットである漢字、仮名文字を含む日本語文字の筆跡)に基づきユーザ認証を行う認証システムを提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成する本発明に従う第1の側面は、手書き文字によるユーザ認証システムにおいて、ネットワークを通して接続されるクライアントとサーバを有し、事前処理として、前記クライアントは、ユーザの手書き文字の時系列を保持した筆跡であるストロークを前記サーバに送る手段を有し、前記サーバは、前記クライアントから送られたストロークから前記手書き文字の特徴を求める手段と、前記ユーザと関連づけて、前記求められた手書き文字の特徴をデータベースに保存する手段を有し、ユーザ認証の際、前記サーバは、認証に用いる文字列を認証要求のあったクライアントに送信し、前記クライアントは、前記サーバから送られる認証に用いる文字列に対応する手書き文字のストロークを前記サーバに送り、前記サーバは、前記クライアントからの手書き文字のストロークから前記手書き文字の特徴を求め、前記データベースに保管されている手書き文字の特徴と比較して、同一人による手書き文字か否かを判定することを特徴とする。
【0013】
上記目的を達成する本発明に従う第1の側面において、第1の態様として、前記ストロークから求められる手書き文字の特徴は、文字の線分に含まれる複数の点の(x、y)座標と、時間及び線分を特定する情報で表されることを特徴とする。
【0014】
上記目的を達成する本発明に従う第1の側面において、第2の態様として、前記手書き文字の特徴と比較は、前記文字を構成する線分の特徴ベクトルの距離に基づき判断することを特徴とする。
【図面の簡単な説明】
【0015】
【
図1】本発明に従う手書き文字によるユーザ認証システムの構成例ブロック図である。
【
図2】各文字に対して特徴を求め保存する事前準備のための処理フロー図である。
【
図3】カタカナ文字「イ」を例にして手書き文字の特徴を抽出する方法を説明する図である。
【
図4】
図3(2)に示す単純化した方向の組み合わせを求めた結果を示す図である。
【
図5】漢数字「八」とその特ストロークの特徴を可視化した例を示す図である。
【
図6】比較対象として、別人に書かせた漢数字「八」を示す図である。
【
図7】
図7は、2次元の場合のクラス内距離と、クラス間距離について説明する図である。
【
図8】初期学習データ構築の後に、行われる認証の処理フローである。
【発明を実施するための形態】
【0016】
以下に、本発明の実施例を添付の図面に従い説明する。これらの実施例は本発明の理解を容易とするためのものであり、本発明の適用は、これら実施例に限定されるのではない。また、本発明の保護の範囲は、特許請求の範囲と同一又は類似の範囲にも及ぶ。
【0017】
図1は、本発明に従う手書き文字によるユーザ認証システムの構成例ブロック図である。
【0018】
認証サービスを受けるユーザクライアント(以降、単にクライアントという)CLと、認証サービスを提供するサーバSVとが、インターネット等のネットワークINTを介して接続される。
【0019】
クライアントCLのシステムの要件として、パーソナルコンピュータPCとプログラム及びデータの記憶手段HDDのほか、タッチパネル、ペンタブレット等の筆跡を取集できる入力インタフェース機能を有し、十分なサンプリングレートで手書き文字のストロークを収集することが可能である。さらに、パーソナルコンピュータPCによるプログラムの実行により、認証要求手段1、ストローク取集手段2等の機能手段を構成する。
【0020】
ユーザ認証システムへの応用例として、クライアントCLは、例えば、ATM装置(自動入金及び払出し装置)の一部として組み込まれる。
【0021】
ここで、本発明の定義として、上記ストロークは、時系列を保持した筆跡を意味する。
【0022】
サーバSVは、計算能力のあるコンピュータPCであることが要件である。データベースDBの機能のため記憶手段HDDを有する。コンピュータPCによるプログラムの実行により、以降の説明に関連する複数の機能手段を構成する。
【0023】
また、本発明の応用として、サーバSVは、前記クライアントCLの組み込まれるシステム応用例に対応して、入室管理、銀行における個人認証等の種々の形態で認証システムに組み込まれる。
【0024】
[事前準備:初期学習データの構築]
本発明に従う認証システムの実現のために、サーバSVは、クライアントCLに認証サービスを提供するために、事前準備として初期学習データを構築する。
【0025】
すなわち、認証サービスを受けようとするクライアントCLのストロークを事前に収集し、各文字に対して特徴を求めデータベースDB23に保存する事前準備を行う。
【0026】
図2は、かかる事前準備のための処理フロー図である。サーバSVに対して、クライアントCLから認証サービスを受ける旨の意思表示を認証要求手段1から送る(ステップS1)。
【0027】
これに対して、サーバSVから認証に用いる文字列を認証情報、サービス提供手段(以降単に、サービス提供手段と表記)20から通知する(ステップS2)。
【0028】
クライアントCLは、タッチパネル、ペンタブレット等の筆跡を取集できる環境を用いてストローク収集手段2により、サーバSVから通知された文字列に対応するストロークを収集して返送する(ステップS3)。
【0029】
それぞれの文字は、筆記点、時刻、及び、各筆記点の属するストロークのID(識別子)からなる。なお、ストロークは、時系列を保持した筆跡を意味する。かかるストローから手書き文字を再構成することが出来る。
【0030】
サーバSVは、返送されたストロークに対し、各文字に対して特徴を求め(ステップS4)、データベースDB23に保存する。
【0031】
すなわち、識別用文字計算手段21及び識別用データ計算手段22により、書き手(クライアントCLのユーザ)及び文字種毎のデータを一つの集合として、集合に属するストローク間での特徴の距離を求める。また、集合に属さないストローク群との距離を求め、そのうち最も距離が近いものが集合内での最も遠いストロークとの距離より小さいもののみを今後の認証に用いる。
【0032】
かかる認証に用いる文字のデータを、ユーザ対応にデータベースDB23に保存する。
【0033】
[文字種毎のデータと、ストローク群との距離]
ここで、文字種毎のデータと、ストローク群との距離について考察する。まず、本発明の実現のための基礎として、ひらがな、カタカナと漢字における関係について説明する。
【0034】
漢字は、中国で生まれ、日本がそれを導入し、以来使用してきた。日本において、漢字から「ひらがな」と「カタカナ」が1100年前に作られた。しかし、「ひらがな」と「カタカナ」は、明確に異なる。「ひらがな」は漢字から続け書き形式で作られ、「カタカナ」は、漢字の一部から作られたものである。
【0035】
したがって、いくつかの「カタカナ」は、漢字に非常に似ている。例えば、「カタカナ」の「ニ」は、漢字の「二」と類似し、「カタカナ」の「ハ」は、漢字の「八」に類似している。
【0036】
本発明者は、手書き文字の特徴を抽出する方法として、Shape Primitives Probability Distribution Function (SPPDF)(非特許文献1)を用いた。この方法は、手書き漢字文から特徴を抽出して、書き手を特定する大変有効な方法である。
【0037】
SPPDFは、文字におけるストロークを単純化された方向で扱う。すなわち、文字を構成するストロークを、例えば16方向に分類し、更に連続する3点の方向の組み合わせの確率分布を特徴とする。この手法によって、256次元の特徴をそれぞれの文字から得られる。
【0038】
かかる点の理解を容易にするために、
図3に示すカタカナ文字「イ」を例にして手書き文字の特徴を抽出する方法を更に説明する。
【0039】
クライアントCLで収集される文字のストロークには、x, y座標と、時間、何番目という情報が含まれる。
【0040】
図3(1)に示されるように、カタカナ文字「イ」は、斜めに伸びる1番目の線と、縦に延びる2番目の線からなる。
【0041】
そして、図における点P1_1は1番目の線に含まれる1番目の点を示す。同様に、点P1_2は1番目の線に含まれる2番目の点を示す。また、P2_1は2番目の線に含まれる1番目の点を示す。
【0042】
したがって、各点の位置は、二次元座標位置(x,y)と時間tで次のように表記される。
【0043】
P
1_1=(x
1_1, y
1_1, t
1_1)
P
1_2=(x
1_2, y
1_2, t
1_2)
・
・
・
P
2_1=(x
2_1, y
2_1, t
2_1)
・
・
・
次いで、これらの点を3つずつ取り出し、
図3(2)に示す単純化した方向の組み合わせを求める。この結果は
図4に示すようである。
【0044】
図4において、P
1_1→P
1_2→P
1_3 は、いずれも左下への線に割り付けられるため、
図3(2)に基づき、(5,5)を結果として得る。残りの点も同様に処理すると、(5,5)の組が4つ、(4,4)の組が3つ得られる。
【0045】
このように、8通りの単純化した方向線を用いたため、82=64通りの組み合わせの確率分布を求めることになるが、2次元のままでは扱いにくいため、(a,b)の組を8*a+bとして一次元にする。
【0046】
したがって、64次元の特徴ベクトルが得られ、0以外の成分と添え字のみを示すと、(a,b)=(4,4)の場合、36:3/7=0.4286 、(a,b)=(5,5)の場合、45:4/7=0.5714となる。
【0047】
比較に必要なのは、ストロークやそれが形成する文字自体ではなく、特徴のみであるためサーバSVにはストロークではなく抽出した特徴をデータベースDB23に保存する。
【0048】
ここで、収集したストロークが形成する文字とそれから得られるストロークの特徴を可視化することが出来る。例として、漢数字の「八」を用いて以下に説明する。
【0049】
図5は、例にした漢数字「八」とそ
のストロークの特徴を可視化した例を示す。
【0050】
先にカタカナ「イ」について示したと同様の0以外の成分と添え字は、
図5(1)に示す漢数字「八」の場合は、
51:0.3125
60:0.0625
204:0.625 となる。
【0051】
これは、漢数字「八」が、左下への線、2画目のはじめ少しだけ右に出る線、右下への線の3つの線で構成されていることを意味する。これを、
図5(2)では簡単化のため、16×16の3Dグラフで示しているが、実際は、256次元のベクトルが得られる。
【0052】
比較対象として、別人に書かせた漢数字「八」を
図6に示す。
【0053】
この例においては、線分が7つになり、値が0になる部分を除いた実際のデータとその添え字は、次のようになる。
【0054】
35:0.0714
51:0.2857
60:0.0714
204:0.0714
205:0.1428
220:0.1428
221:0.2143
ここで、
図5に示す前者の特徴ベクトルをA,
図6に示す後者の特徴ベクトルをBとした場合に、AB間の距離を求める。
【0055】
実施例としてユークリッド距離を用い、それぞれの添え字について差を求め、2乗したものの合計を距離とする。
【0056】
この場合差ベクトルは、次のようになる。
【0057】
35:-0.0714
51:0.0268
60:-0.0089
204:0.5536
205:-0.1428
220:-0.1428
221:-0.2143
それぞれ2乗した和が距離であるので、最終的に0.3991が得られる。
【0058】
上記のとおり、
図5と
図6の別人が手書きした文字の比較を行い、それらの距離が大凡0.4程度であると求められた。
【0059】
理想的には、同一人物が手書きした文字の距離は、0に近くなり、別人が書いた文字を比較した場合には距離は大きくなる。
【0060】
これにより、手書き文字を入力するユーザが、先にサーバに保存されている文字の特徴を有するユーザと同一であるかが判定できる。
【0061】
[クラス内距離とクラス間距離]
本発明者は、本発明の有用性を判断するための実験を行った。この目的のために、次のような距離を定義する。
・クラス内距離:同一の書き手による同一種類の文字の集合内における距離をクラス内距離と定義する。この距離における最小値、平均値、最大値を求める。
・クラス間距離:同一種類の文字の集合内における距離である。ただし、クラス内距離とは異なる書き手によって書かれた文字からなる集合である。この距離における最小値、平均値、最大値を求める。
・inter-intra distance:クラス内距離のうち最大のもととクラス間距離のうち最小のものの差を定義する。
【0062】
図7は、2次元の場合のクラス内距離と、クラス間距離について説明する図である。
図7において、○をAさん、xを別人Bさんの特徴としたとき、○の集合と、xの集合が離れていれば分類は比較的に容易である。集合が離れているか否かを判別するために、先ず○の集合内で最も離れているペアを探す。これが最大クラス内距離daであり、これを1とする。次に、○とxのペアで最も距離の近いペアを探す。これが(最小の)クラス間距離dbとなり、距離を3とする。
【0063】
この例のように、クラス間距離がクラス内距離よりも大きい場合、この2つの集合は明らかに離れており、別物のであって、距離を比較するだけで分類が可能であることが示される。逆にクラス間距離がクラス内距離よりも小さい場合は、2つの集合は近くにあり距離の比較では分類できないことを示す。
【0064】
実験では、3人の書き手による432種類の文字から得られる特徴を用いてこれらの距離を求めた。この距離は、全ての書き手による同一文字の集合からある書き手による集合を除いた集合における最小値と、ある書き手による同一文字の集合における最大値との差から求まる。
【0065】
実験結果から手書き文字によるユーザの識別が可能であることが実証できた。しかし、実験結果は、識別認証に適しない文字がいくつかあることも示された。432の文字中適しない20文字の半分は、「カタカナ」であった。
【0066】
識別認証に適しない簡単な文字を認識対象候補から削除するのみではなく、これら不適文字から特徴を収集し、他と比較することが必要である。そして、それらの有用性を測定し、使用するか否かを決定することが必要である。
【0067】
[認証処理]
図8は、初期学習データ構築の後に、行われる認証の処理フローである。この処理フローにおける各工程は、主としてサーバSVで実行される。
【0068】
サーバSVは、クライアントCLから認証サービスの要求をサービス提供手段20で受信する(ステップS10)と、 認証に用いる文字の集合を払い出す(ステップ11)。
【0069】
この文字の集合は、先に説明した初期学習データの構築においてデータベースDB23に保存されている集合内外での距離の差に応じて重みを付け、より特徴が出やすい文字を多く、そうでない文字が少なくなるように識別用文字計算手段21で計算を行う。
【0070】
重みづけの例としては、全ての文字種に対して同等の確率で払い出す方法、先に求めた距離の差に比例する確率で払い出す方法、更に保持しているストロークから個人差の出るものを選出し、それに応じて払い出すなどの方法が可能である。
【0071】
このように払いだされた文字列を、サービス提供手段から認証要求のあったクライアントCL宛に送信する(ステップ11)。
【0072】
このように、払い出された文字列をクライアントCLに送り、クライアントCLでは、対応する文字列のストロークを生成し、サーバSVに返信する。
【0073】
この際、クライアントCLで得られた各文字について、それぞれ筆跡(ストローク)を収集する。各文字に関して、文字の切れ目がわかる形でストロークの取集を行う。つまり、文字Aを構成するストローク、文字Bを構成するストロークといった形式で複数のストローク群が得られる。これをサーバSVに送る。
【0074】
サーバSVは、このストローク群を受信する(ステップS12)と、文字数のカウンタを0に設定し、且つ結果を保持する配列をデータベースDB23に確保する(ステップS13)。
【0075】
文字列長を5文字にすると、カウンタ値Cが、5の値に至るまで(ステップS14,Y)、以下の認証処理(ステップS15~S20)を実行する。
【0076】
C(<5)文字目に対してストローク認証手段26で、先に
図3,4において説明したように特徴ベクトルを求める(ステップS15)。
【0077】
次いで、ストローク認証手段26で認証を実行する(ステップS16)。
【0078】
ここでの認証は、ストローク認証手段26において、クライアントCLからのストロークを受け取り特徴ベクトルを求める。求められた特徴ベクトルと、当該クライアントCLの先に初期学習で構築され、データベースDB23に保存されている文字の特徴ベクトルとを比較する。この比較において、先に説明した差ベクトルの値から同一人の手書き文字か否かを判断する。
【0079】
同一人の手書き文字と判断されて認証成功の場合(ステップS17,Y)は、結果を保持する配列を「true」とし(ステップ18)、認証失敗の場合(ステップS17,N)、結果を保持する配列を「false」とし(ステップ19)、カウンタ値Cを1だけ歩進する。
【0080】
すなわち、正規のユーザと識別された場合、クライアントCLから受け取ったストロークをサーバSVがデータベースDB23に保持するデータセットに追加し、事前準備を再度行う。このように、システムを使い続けることで認識率を上げることが出来る。
【0081】
所定の文字数5まで、認証が行われると(ステップS14,N)、結果を保持する配列を用いる総合認証手段での結果を判定する(ステップS21)。
【0082】
ここで、総合認証手段としてサービス提供手段20が機能し、複数の文字認識結果を用いて最終的な認証の是非を決定する。単純に割合で決定する。例えば8割以上が真と判定される場合、認証成功とする。あるいは、ニューラルネットワーク(Neulal Network)やサポートベクトルマシン(Support Vector Machine)等の識別器を実装することも可能である。
【0083】
ステップS21で総合的に認証成功と判断される場合(ステップS21、Y)、受信ストロークの特徴をデータベースDB23に保存し(ステップS22)、認証サービスの提供が行われる。かかる受信ストロークの特徴の保存により、サーバSVが保持する学習データを更新することが出来、認識率を高め、変化するユーザの手書き文字の特徴を扱うことが可能となる(ステップS23)。
【0084】
総合的に認証失敗と判断される場合は(ステップS21、N)、アクセスを拒否する(ステップS24)。
【0085】
以上説明したように、本発明は、一文字毎の識別を行い、複数の識別結果を総合的に判定して最終的な結果をだすことにより、オンラインでの識別性能を高めることが出来る。
【符号の説明】
【0086】
1 認証要求手段
2 ストローク収集手段
20 認証情報、サービス提供手段
21 識別用文字計算手段
22 識別用データ計算手段
23 データベースDB
25 システム変更手段
24 ストローク認証手段