(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025164277
(43)【公開日】2025-10-30
(54)【発明の名称】署名照合システム及び方法
(51)【国際特許分類】
G06V 40/30 20220101AFI20251023BHJP
G06T 7/00 20170101ALI20251023BHJP
G06V 10/82 20220101ALI20251023BHJP
【FI】
G06V40/30
G06T7/00 570
G06T7/00 350C
G06V10/82
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2024068106
(22)【出願日】2024-04-19
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】グエン コングカー
(72)【発明者】
【氏名】三浦 直人
【テーマコード(参考)】
5B043
5L096
【Fターム(参考)】
5B043AA01
5B043AA09
5B043BA06
5B043DA07
5B043GA01
5L096AA03
5L096AA07
5L096BA08
5L096BA17
5L096CA15
5L096DA02
5L096GA51
5L096HA11
5L096JA03
(57)【要約】
【課題】少量の学習データで迅速に学習し、高い精度で署名を照合する。
【解決手段】
手書きされた1以上の文字を含む画像を、文字ごとに所定サイズの複数のパッチに分割し、分割した各パッチの画素及び位置の特徴のデータである埋め込み特徴を各パッチについて算出し、算出した各パッチの埋め込み特徴に基づき、各パッチの種類を特定し、特定した各パッチの種類及び各パッチ位置に基づき、各パッチの前記画像におけるコンテキストを算出し、アテンション機構であるMSAを埋め込み特徴全体に適用する離散表現モデルを記憶し、手書きされた1以上の文字を含む2つの画像が入力され、入力された2つの画像が同一の筆記者により書かれた文字の画像である確率を出力する署名照合モデルの一部を、離散表現モデルで置換することにより新たな署名照合モデルを生成する署名照合システム。
【選択図】
図4
【特許請求の範囲】
【請求項1】
手書きされた1以上の文字を含む画像を、文字ごとに所定サイズの複数のパッチに分割し、分割した各パッチの画素及び位置の特徴のデータである埋め込み特徴を各パッチについて算出し、算出した各パッチの埋め込み特徴に基づき、前記各パッチの種類を特定し、特定した各パッチの種類及び前記各パッチ位置に基づき、前記各パッチの前記画像におけるコンテキストを算出し、アテンション機構であるMSA(Multihead Self-Attention)を埋め込み特徴全体に適用する離散表現モデルを記憶する記憶装置、及び、
手書きされた1以上の文字を含む2つの画像が入力され、入力された2つの画像が同一の筆記者により書かれた文字の画像である確率を出力する署名照合モデルの一部を、前記記憶した離散表現モデルで置換することにより新たな署名照合モデルを生成する演算装置
を備える署名照合システム。
【請求項2】
請求項1に記載の署名照合システムであって、
前記記憶装置は、
同一の手書き画像における各パッチは正の相関にあると評価し、異なる手書き画像における各パッチは負の相関にあると評価するInfoNCE損失評価関数を記憶し、
前記演算装置は、
前記離散表現モデルに、同一の筆記者により手書きされた、1以上の文字を含む2つの画像をそれぞれ入力することにより、各画像について、前記各パッチの前記画像におけるコンテキストを出力し、
出力した各コンテキストを前記InfoNCE損失評価関数に入力してそれらの値を取得することにより、同一の手書き画像における各パッチは正の相関となるように、異なる手書き画像における各パッチは負の相関となるように、前記離散表現モデルにおける重み値を学習する、
署名照合システム。
【請求項3】
Qは、バッチ内の他の画像の離散化単位、
T は、転置ベクトル、
W
mは、学習可能な重みとした場合に、
前記InfoNCE損失評価関数は
のように定義される、
請求項2に記載の署名照合システム。
【請求項4】
前記の離散化単位は、漢字の部首である、
請求項3に記載の署名照合システム。
【請求項5】
前記署名照合モデルは、
前記入力された2つの画像の埋め込み特徴のドット積を計算することにより、前記入力された2つの画像の類似の確率を出力する、
請求項1に記載の署名照合システム。
【請求項6】
請求項1に記載の署名照合システムであって、
筆記者が自分の情報と署名をシステムに登録するためのGUIと、
前記署名照合モデルにより判定された、同一の筆記者によって署名が書かれたものであるか、または署名が本物であるか偽造であるかの照合結果を示す応答メッセージを表示するための署名照合GUIと、
前記署名照合モデルにより判定された、所定のフォルダに格納されている各署名は同一の筆記者による署名であるか、または所定のフォルダに偽造署名があるかの判定結果を示す応答メッセージを表示するフォルダーチェックGUIと、
筆記者の情報と署名を取得し、データベースに保存する登録コントローラと、
前記署名照合GUIおよび前記フォルダーチェックGUIからリクエストを取得し、前記データベースにアクセスして筆記者の情報および署名を取得し、前記署名照合モデルを呼び出して前記照合結果または前記判定結果を示す応答メッセージを作成し、作成した応答メッセージを、前記署名照合GUI又は前記フォルダ チェックGUIに返す署名照合部と、
を更に備えることを特徴とする署名照合システム。
【請求項7】
前記の署名照合モデルは、
2つの署名画像をそれぞれ2つの同一の構成のビジョントランスフォーマーに入力することにより、前記の2つの署名画像の埋め込み特徴を取得しエンコードすることで前記離散表現モデルを学習し、既存の署名照合モデルにおける特徴抽出器を前記学習した離散表現モデルのトランスフォーマーで置き換え、その後収集された、1以上の署名画像のサンプルを使用して、署名照合システムを微調整する、
請求項1に記載の署名照合システム。
【請求項8】
離散表現モデルを記憶する記憶装置及び署名照合モデルを生成する演算装置を備える署名照合システムが実施する署名照合方法であって、
前記記憶装置が、同一の手書き画像における各パッチは正の相関にあると評価し、異なる手書き画像における各パッチは負の相関にあると評価するInfoNCE損失評価関数を記憶する工程と、
前記演算装置が、前記離散表現モデルに、同一の筆記者により手書きされた、1以上の文字を含む2つの画像をそれぞれ入力することにより、各画像について、前記各パッチの前記画像におけるコンテキストを出力し、出力した各コンテキストを前記InfoNCE損失評価関数に入力してそれらの値を取得することにより、同一の手書き画像における各パッチは正の相関となるように、異なる手書き画像における各パッチは負の相関となるように、前記離散表現モデルにおける重み値を学習する工程と、
を含む署名照合方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、署名照合システム及び方法に関する。
【背景技術】
【0002】
手書きによる署名は、顔、指紋、虹彩、静脈、DNA認証などの他の生体認証と同様に本人を確認することができる情報の一つである。2つの署名が同一人物によって筆記されたものであるかどうかを判定する署名照合技術は、銀行、保険、ヘルスケア、証券業務などの多くの分野で重要な役割を果たしている。署名照合を行う上での技術課題は、署名の形状が筆記のたびにばらつくため、照合精度が低下することである。さらに、習熟した者によって偽造された署名は、真正な署名と良く似ている可能性があるため、偽造された署名と真正な署名との微細な特徴を正確に判別するために有効な方法が必要である。
【0003】
ここで、署名の判別を行うケースとしては、次の2つのケースが想定できる。まず1つ目は、ユーザが自分の名前の署名をシステムに予め登録しておき、その後システムが入力された署名が登録された本人のものか偽造であるかを判定するケースである。そして2つ目は、システムに入力された2つの異なる署名が同じ筆記者によって書かれたものかどうかを判定するケースである。特に2つ目のケースは保険業務等における職員による不正な契約を判定するものである。保険会社は通常、顧客の署名を保管しないが、下請け業者や代表者などの同一人物が異なる署名を書いたことが判明した場合、そのような署名は不正であると考えられる。したがって保険会社は、可能な限りそのようなケースを発見するよう努めている。しかしながら、後者のケースは前者のケースよりもはるかに判定が困難なことは明らかである。
【0004】
署名照合には、筆記者に依存しないもの(筆記者独立型)と依存するもの(筆記者依存型)の2つの基本的なアプローチがある。筆記者独立型では、1つのモデルをすべての筆記者に対して訓練するものであり、類似性空間(例:本物と本物のペア)または非類似性空間(例:偽造と本物のペア)で学習し、登録署名(参照署名)と入力署名(クエリ署名)を区別する。これに対し筆記者依存型では、筆記者ごとに1つのモデルを訓練し、それを使用して署名を認証する。その結果、新しい筆記者を追加するときは、その筆記者用に新しいモデルを訓練する必要がある。これに対し、筆記者独立型は新しい筆記者がシステムに追加されたときにモデルを再学習する必要がないため、ほとんどの研究は筆記者に依存しない筆記者独立型のアプローチに焦点を当てている。なお、本明細書ではこのアプローチに焦点を当てる。
【0005】
筆跡照合の基本的な処理フローには、画像の前処理、画像の特徴の抽出、署名が本物であるか偽造であるかのクラス分類という3つの主要なステップが含まれる。前処理には、ノイズ低減、画像正規化、二値化、傾き補正、スケルトン化などのさまざまなタスクが含まれる。次に、前処理が施された署名画像から文字列に対する識別用の特徴が抽出され、署名のさまざまな特徴量が獲得される。最後に、分類器を使用して、署名が本物か偽造されたものであるかを分類する。最近では、ディープラーニングの普及により、署名照合には機械学習をベースにしたモデルがよく使われている。トランスフォーマー(Transformer)は、そのようなモデル一つとしてよく知られている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. (2017). "Attention Is All You Need", arXiv:1706.03762.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、署名照合モデルの生成には、一般に、学習のために大量のデータを必要とする。すなわち、手書きのサイン(署名)にはさまざまな筆跡のバリエーション(個人差)があり、また同じ筆記者が書いたものでもその時々によって異なる。また、日本語の署名に用いられる文字種も多様であり、網羅的に学習を行うことは困難である。日本語の署名の具体的な例を考えると、Shift_JIS第一標準:2965種類、Shift_JIS第二標準:3390種類、Shift_JIS第三標準:1259種類、Shift_JIS第四標準:2436種類という膨大な数の文字がある。その結果、筆跡照合の信頼性が十分に高いと判断できる許容可能な精度(通常は90%以上)を得るためには、大量の署名画像を用いた署名照合モデルの訓練が必要になる。しかしながら、このような大量な署名画像を収集するには多くの人的および時間的リソースが必要となるため、少量の学習データで高精度な筆跡照合技術を実現することが課題となる。
【0008】
本発明は、このような事情に鑑みてなされたものであり、その目的は、少量の学習データで迅速に学習し、高い精度で署名を照合することが可能な署名照合システム及び方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するための本発明の一つは、手書きされた1以上の文字を含む画像を、文字ごとに所定サイズの複数のパッチに分割し、分割した各パッチの画素及び位置の特徴のデータである埋め込み特徴を各パッチについて算出し、算出した各パッチの埋め込み特徴に基づき、前記各パッチの種類を特定し、特定した各パッチの種類及び前記各パッチ位置に基づき、前記各パッチの前記画像におけるコンテキストを算出し、アテンション機構であるMSA(Multihead Self-Attention)を埋め込み特徴全体に適用する離散表現モデルを記憶する記憶装置、及び、手書きされた1以上の文字を含む2つの画像が入力され、入力された2つの画像が同一の筆記者により書かれた文字の画像である確率を出力する署名照合モデルの一部を、前記記憶した離散表現モデルで置換することにより新たな署名照合モデルを生成する演算装置を備える署名照合システムである。
【発明の効果】
【0010】
本発明によれば、少量の学習データで迅速に学習し、高い精度で署名を照合することができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係る署名照合システムが行う処理の一例を示すフローチャートである。
【
図2】データ収集処理において表示されるデータ収集フォームの一例を示す図である。
【
図3】署名照合システムによる離散表現モデルの生成処理の一例を説明する図である。
【
図4】本実施形態に係る署名照合モデルの生成処理の一例を説明する図である。
【
図5】本実施形態に係る署名照合モデルの生成処理の他の一例を説明する図である。
【
図6】フロントエンドとバックエンドから構成される署名照合システムの一般的なアーキテクチャを示す図である。
【
図7】照合処理において表示されるGUI(署名照合GUI)の一例を示す図である。
【
図8】不正検知処理において表示されるGUI(不正検知GUI)の一例を示す図である。
【
図9】照合処理の一例を示すフローチャートである。
【
図10】不正検知処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0012】
まず、本実施形態の署名照合システムの概要について説明する。署名を含む一般的な手書きの文字は、それぞれ異なる筆跡のスタイルや異なる形態で書かれるものであるが、そのような文字の画像(手書き文字画像)は、単語、文字、部首などの所定の領域単位(離散化単位)に離散化できる。ここで、署名照合システムにおいては、同一のテキスト画像内の離散化単位同士は「正」の関係、すなわち同一の筆記者が書いた筆跡の特徴を持つものとする。署名照合システムにおいては、一方、異なる手書き文字画像内の離散化単位同士は「負」の関係、すなわち異なる筆記者が書いた筆跡の特徴を持つものとする。そして、署名照合システムは、大量に入手可能な、(ラベルのない)手書き文字画像を活用して、手書きテキストの離散表現モデルを訓練する。本実施形態では、このようなモデルとしてVision Transformerを用いた場合の署名照合システムを説明する。署名照合システムは、別途生成される離散表現モデルの一部で置換することで作成される。離散表現モデルは、手書き文字画像を分割した各データ(分割パッチ)を、所定の離散化単位(たとえば部首単位)に離散化する量子化表現層を含む。署名照合システムは、この各離散化単位をトランスフォーマー層に入力し、離散化単位間の関係(文脈)を出力する。そして、署名照合システムは、InfoNCE損失を使用して、離散化単位間の関係に重みを付け、異なる手書き文字画像における離散化単位間の関係を緩和するように離散表現モデルを学習する。次に、署名照合システムは、署名照合モデルの特徴抽出器を上記離散表現モデルで置き換える。これにより、少ない収集データで署名照合モデルを生成することができる。そして、署名照合システムは、2人の異なる筆記者が同じ署名を書いたことや、1人の筆記者が2つの異なる署名を書いたことを自動的に判定できる。そのため、たとえば保険の契約において不正に解約が行われたり、成りすましの署名による不正な契約が行われたりするケースを検知でき、契約者の署名を偽造して保険金を受け取ろうとする不正行為を摘発することができる。またクラウドコンピューティング上の署名照合システムにより、多くのユーザが特別なデバイスを必要とせずに、同時に、リモートで便利に使用できるようになる。また、このような署名照合システムを導入することで署名のチェックを実施するための人的労力も削減することができる。
【0013】
署名照合システムは、クラウドコンピューティングアーキテクチャ上に実装され、GUIを介したHTTPリクエストとレスポンスによってユーザと対話する機能を有する。GUIは、離散化単位への分割に関するパラメータを調整する機能と、離散化単位の分割を可視化する機能とを有する。さらには、署名照合システムは、与えられた2つの同一の署名が本物か偽造か(同じ筆記者によって書かれたかどうか)を判定する照合機能と、特定の筆記者の手書き文字画像が格納されるフォルダの中に他の筆記者が書いた署名の手書き文字画像があるかどうかを確認する不正検知機能を有する。
【0014】
以下の説明では、畳み込みニューラルネットワーク(CNN)、トランスフォーマー、リニア層、マルチレイヤーパーセプトロンなどの深層学習は当業者には理解されるものであり、具体的な詳細と知識については詳しく示していない。また、本発明で提案する手法のソースコードは任意のプログラミング言語で記述できる。ハードウェア、ソフトウェア、コンピュータネットワークを含めた実験環境においても特に制約はない。
【0015】
以下、本発明の実施形態を
図1から
図10に基づいて本発明を説明する。なお、図中の灰色の四角形はレイヤーの出力を、実線の長方形はニューラルネットワークの層のブロックやフローチャートのプロセスやシステムのコンポーネント等を、意味する。
【0016】
図1は、本実施形態に係る署名照合システムが行う処理の一例を示すフローチャートである。まず、署名照合システムは、少量の手書き文字画像を収集するデータ収集処理を実行する(001)。また同様に、署名照合システムは、インターネットなどに多数存在する、ラベルが付与されていない手書き文字画像を収集する(002)。次に、署名照合システムは、収集されたラベルなし手書き文字画像を用いて離散表現モデルを生成する(003)。次に、署名照合システムは、離散表現モデルに対する学習をさらに行い、署名照合モデルにおける特徴抽出器を、上記学習した離散表現モデルに置き換える(004)。その後、署名照合システムは、収集した手書き文字画像を用いて2つの署名照合モデルを微調整する(005)。最後に、署名照合システムは、最良の署名照合モデルを複数選択し、署名照合Application Programming Interface (API)を作成する(006)。以上で処理は終了する。
【0017】
図2は、データ収集処理において表示されるデータ収集フォームの一例を示す図である。データ収集フォームは、例えば、ユーザ(協力者)のコンピュータに表示される。データ収集フォームは、同意書、指示書、及び作成者情報入力用のテキストボックス100と、署名記入領域101と、登録ボタン104とからなる3つの部分から構成される。まず、協力者は署名の記載を行う前に、テキストボックス100における同意書と指示を注意深く読む。同意書の内容に同意した場合、協力者は、予め管理者から付与される固有のID、名前、メールアドレス、電話番号、勤務部署などの基本情報を入力する。この情報は、将来、同意書の内容に変更が加えられた場合や署名を追加で収集する場合に使用される可能性があるからである。署名照合システムは、たとえば5万件の一般的に知られている日本人の氏名のリストからいくつかの氏名(たとえば10件)を無作為に選択し、各氏名を、署名記入領域101における指名表示欄102に表示する。筆記者(協力者)はタブレットのデジタルペンを使って手書きで、指名表示欄102に表示されている氏名を、書き込み可能なインクボックス103に書き込む。書き込みが完了すると、筆記者は登録ボタン104をクリックする。すると、ユーザのコンピュータは、協力者の各種情報と、書き込まれた氏名(署名)の画像データ(手書き文字画像)を署名照合システムに送信する。これにより、署名照合システムは、各協力者から署名画像を収集することができ、各画像を離散表現モデルの学習のために使用することができる。
【0018】
なお、
図2で示したデータ収集フォームは、署名照合システムの署名登録機能として活用しても良い。署名照合システムの利用者は基本的に必要最小限の情報、たとえば自身の署名を1度だけ記載して登録すれば利用できるように設計すると登録が短時間で実施できるので利便性が向上するが、
図2に示したように別人の署名を記載して登録することで、その利用者の筆跡の特徴がより多く利用できるため照合精度が高められる利点がある。
【0019】
図3は、署名照合システムによる離散表現モデルの生成処理(003)の一例を説明する図である。署名照合システムは、データ収集処理で生成された、(ラベルのない)各手書き文字画像200、201のバッチBを、連結関係にある複数の要素に分離する。この要素は、例えば、部首、部首の一部、または、互いに隣接している場合には部首のグループである。署名照合システムは、分離したこれらの要素を、さらに固定サイズのパッチ202、203にさらに分割する。なお、署名照合システムは、小さな連結要素または適合していない接続部分は、前記固定サイズに適合するようにパディングする。その後、署名照合システムは、これらのパッチ202、203をリニアプロジェクト層204に入力し、パッチ(画像)及びその位置の特徴ベクトルである埋め込み特徴205Z
B={Z
B1, Z
Bm, ..., Z
BM}(Embedded features)を得る。なお、Mは特徴量の次元、Z
Bは画像 B の連続特徴マップである。
【0020】
続いて、署名照合システムは、埋め込み特徴205を量子化表現層206に入力する。ここで、量子化表現層206は、訓練可能な各部首のコードブックe1, e2, ..., ekで構成されている。ここで、K は所定のコードブックの種類数または部首数の c 倍 (c は定数)である。埋め込み特徴205(ZB)は、量子化表現層206におけるマッピングにより離散化され、コードブック内にあるコードのうち最近接のコードに置き換えられる。その結果、量子化シーケンス207(Z^B={Z^B1, Z^B2, ..., Z^BM})が得られる(Z^はZに対するサーカムフラックスを表す。以下同様。)。そして、署名照合システムは、量子化シーケンス207(Z^B)とパッチの位置をトランスフォーマー208に入力することで、CB={CB1, CB2, ..., CBM}と表されるコンテキストベクトル211を得る。
【0021】
署名照合システムは、離散表現モデルを、InfoNCE 損失212を表す損失関数(例えば、van den Oord, Y. Li, and O. Vinyals, “Representation learning with contrastive predictive coding,” arXiv preprint arXiv:1807.03748, 2018.)で学習する。これにより、離散表現モデルは、同じ手書き文字画像内の離散化された単位間は「正」の関係性209があると認識するように学習され、また異なる手書き文字画像の離散化された単位間は「負」の関係性210があると認識するように学習される。このようなInfoNCE損失は次の式(1)のように定義される。
【数1】
【0022】
ここで、Qはバッチ内の他のテキスト画像の離散化単位(負のサンプル)、Tは転置ベクトル、Wmは学習可能な重みである。このように、離散表現モデルは、データ収集処理(001)で収集されたラベルのない手書き文字画像を使用して学習される。
【0023】
このような損失関数を用いることで、以下の効果が奏される。すなわち、同じ手書き文字画像に含まれる各文字は一般的に同一人物が筆記した文字であるため、そのような各文字(離散化単位)は同じクラスに分類されるものとして、互いに「正」の関係があるとして学習される。また同様に、大量の手書き文字画像から無作為に選ばれた2つの手書き文字画像における文字はほぼ別の筆記者によって筆記されているため、異なる手書き文字画像における離散化単位同士は異なるクラスに分類されるものとして「負」の関係を学習できる。このような処理を実行することで、手書き文字画像に筆記者の情報が付与されていない、すなわちラベル付けされていない手書き文字画像から、同一筆記者の筆跡の特徴と、異なる筆記者の筆跡の特徴とを区別するように離散表現モデルを学習させることができる。したがって、大規模な被験者から大量の署名画像を収集することなく高精度な離散表現モデルを学習することが可能となる。
【0024】
前記の離散化単位は、例えば、漢字の部首である。漢字そのものは数千種類存在するが、部首は214種類と少ないため、部首の特徴を学習するように、前述のコードブックの種類数Kを214に設定することができる。部首単位の特徴量を学習することができれば、基本的には全種類の漢字の筆跡の特徴を網羅できるため、学習効率の向上が期待できる。
【0025】
また、部首以外の、出現頻度の高い部分を離散化単位とすることもできる。この場合、Kは214以外の値を設定することで実現される。このときの離散化単位は、たとえば部首の一部分、あるいは部首をまたがる部分となる。出現頻度の高い部分を離散化単位とすることで、漢字以外の文字、たとえばハングルやヒンディーなど、あらゆる言語に対応することができるようになる。
【0026】
なお、この離散化単位はGUI(Graphic User Interface)により表示しても良い。漢字の部首を離散化単位とした場合、各漢字の部首単位に分割することができるが、その単位ごとにたとえばバウンディングボックスを表示することで、正しく部首単位に分割できているかを可視化することができる。ただしこのGUIは基本的にエンドユーザが確認するものではなく、離散表現モデルの学習を実施する作業者がGUIで離散化単位を確認するために利用することを想定する。これを用いて、たとえば部首単位に切り分けができていない場合は離散表現モデルのハイパーパラメータを調整するなどにより、最適なパラメータ設定に活用することができる。あるいは、部首単位の文字テンプレートを予め用意しておき、部首の位置をテンプレートマッチングによって正確に算出し、その結果を離散表現モデルに入力しても良い。これにより、離散表現モデルがより確実に部首単位で学習を行うことができるようになり、筆跡照合の精度向上が期待できる。
【0027】
図4は、本実施形態に係る署名照合モデルの生成処理(004)の一例を説明する図である。この生成方法は、一組の同一のニューラルネットワークを用いて学習を行うシャムニューラルネットワーク(Siamese neural network)(例えば、F. Schro, D. Kalenichenko, J. Philbin, Facenet: A unified embedding for face recognition and clustering, in: CVPR, 2015, pp. 815-823.)に基づく。
【0028】
このシャムニューラルネットワークは、同じアーキテクチャであり重みを共有する、同一の2つのビジョントランスフォーマー304、305(Vision Transformer)で構成される。このようなトランスフォーマーの構成手法は、例えば、「Dosovitskiy, Alexey, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani et al. “An image is worth 16x16 words: Transformers for image recognition at scale.” arXiv preprint arXiv:2010.11929 (2020).」に開示されている。まず、署名照合システムは、各学習処理において、ある筆記者nの異なる手書き文字画像300、301のペア(I1n, I2n)のそれぞれを、前記した離散表現モデルの方法と同じ方法でサイズk × lのパッチ302、303に分割する。具体的には、例えば、手書き文字画像300、301は、画像の左から右、上から下の順に平坦化(flatten)される。そして、署名照合システムは、各パッチ302、303を、訓練可能なリニアプロジェクト層306に入力しマッピングすることで、画像(パッチ)及び位置の埋め込み特徴を得る。パッチ302、303は、従来のトランスフォーマーベースの言語処理モデルにおけるトークンと同様である(例えば、Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. (2017) “Attention is all you need”. arXiv preprint arXiv:1706.03762.)。
【0029】
その後、署名照合システムは、埋め込み特徴をトランスフォーマー307に入力し、アテンション機構であるMSA(Multihead Self-Attention)を全体に適用する(前記Vaswaniら)。埋め込み特徴にMSAを適用すると、モデルがパッチ間のより大きな空間コンテキストを捉えられるようになる。通常、畳み込みとmax-poolingで構成されるCNNの特徴抽出器には、各ステップで特徴マップの空間情報が半分になるという欠点があるが、本実施形態の署名照合モデルではそのような欠点はない。
【0030】
その後、署名照合システムは、MSAによって符号化された埋め込み特徴を、2つのリニア層を含むマルチレイヤーパーセプトロンネットワーク308(MLP:Multilayer Perceptron)に入力することによって、埋め込み特徴の数を削減し、特徴マップF
1n, F
2nを得る。そして、署名照合システムは、所定の対比損失309を用いてモデルを学習する。対比損失309は、異なるクラス(クラス0。偽造署名と真正署名のペア、または、異なる筆記者によって書かれた署名のペア)の場合は2つの特徴マップF
1n, F
2n間の距離を最大化し、同一のクラス(クラス1。真正署名と真正署名のペア、または同一人によって書かれた署名のペア)の場合は2つの特徴マップF
1n, F
2n間の距離を最小化するような関数である。対比損失309は、例えば、次の式(2)のように記述できる。
【数2】
【0031】
ここで、α、βは定数、Dnは2つの画像I1n,I2n間の特徴マップのユークリッド距離、yは、異なるペア(偽造署名と真正署名のペア)では0、同一のペア(真正署名と真正署名のペア)では1となる値である。
【0032】
図5は、本実施形態に係る署名照合モデルの生成処理(004)の他の一例を説明する図である。この学習方法は、クロスモーダルアテンション(例えば、Yu, J., Zhang, W., Lu, Y., Qin, Z., Hu, Y., Tan, J., & Wu, Q. (2020). Reasoning on the relation: Enhancing visual representation for visual question answering and cross-modal retrieval. IEEE Transactions on Multimedia, 22(12), 3196-3209.)に基づく。
【0033】
署名照合システムは、上記シャムニューラルネットワークのモデルの場合と同様に、2つの署名画像400、401をそれぞれ、2つのビジョントランスフォーマー404、405に入力することにより、各手書きの署名画像400、401の埋め込み特徴を取得する。ここで、ビジョントランスフォーマー404、405によってエンコードされる筆記者nの2つの手書き文字画像の埋め込み特徴をf1、f2とする。
【0034】
署名照合システムは、埋め込み特徴f
1を一方のリニアレイヤー408に入力することで、d次元を有する、Q
1n(クエリ410)、K
1n(キー411)、及びV
1n(値412)を得る。同様に、署名照合システムは、埋め込み特徴f
2を他方のリニアレイヤー409に入力することで、d次元を有する、Q
2n(クエリ413)、K
2n(キー414)、及びV
2n(値415)を得る。そして、署名照合システムは、クロスモーダルアテンション418にこれらのQ,K,Vを入力することで、2つの手書き文字画像の埋め込み特徴間の相互関係を取得する。例えば、署名照合システムは、以下の式(3)(4)により各ドット積416、417(アテンション)を計算する。
【数3】
【数4】
【0035】
そして、署名照合システムは、ドット積416、417を計算した後、アテンションされた埋め込み特徴を連結し、連結された特徴を多層パーセプトロン419(MLP:Multi-layer Perceptron)に入力することにより、入力された2つの手書きの署名画像400、401のペアが類似しない(クラス0)または類似する(クラス1)確率を得る。これにより、当該モデルは誤って分類されやすいサンプルの学習に焦点を当てた、焦点損失420によって訓練される。焦点損失420は、例えば以下の式(5)-(7)によって表される。
【数5】
【数6】
【数7】
【0036】
γ、αはそれぞれ定数である。γの値が大きいほど、適切に分類されたペアの損失が低くなるため、モデルは分類に失敗するペアに焦点を合わせて学習することになる。また、αはクラスごとに異なる重みを与えるパラメータであり、類似又は非類似のペアの重要性のバランスを取ることができる。
【0037】
その後、署名照合システムは、既存の署名照合モデルにおける特徴抽出器(例えば、リニアプロジェクションレイヤー及びトランスフォーマーエンコーダを含む)を、上記のようにして学習した離散表現モデルのトランスフォーマー(シャムニューラルネットワークに係るビジョントランスフォーマー304、305、又はクロスモーダルアテンションに係るビジョントランスフォーマー404、405)で置き換える。その後、署名照合モデルは、データ収集処理(データ収集フォーム)によって収集された手書きテキスト画像データのいくつかのサンプルを使用して、署名照合システムを微調整する。これにより、署名照合システムは、最適に調整された署名照合モデルを使用することができるようになる。
【0038】
図6は、フロントエンド500とバックエンド504から構成される署名照合システムの一般的なアーキテクチャを示す図である。フロントエンド500は、例えば、エンドユーザである筆記者により用いられる情報処理装置である。フロントエンド500は、
図2に示したデータ収集フォームである署名登録GUI501、署名照合GUI502、及びフォルダ内の不正検知GUI503の各機能を備える。一方、バックエンド504は、署名照合を行う情報処理システムである。バックエンド504は、登録コントローラ505、データベース506、署名照合API507、及び署名照合モデル508を備える。
【0039】
フロントエンド500の署名登録GUI501は、
図2に示すようにエンドユーザに対して自身の氏名とは異なるダミーの署名の入力を受け付けてもよいし、自身の署名の入力のみを受け付けてもよい。これはシステムの設計によって自由に決定できる。署名の書き込みが終了した後、署名登録GUI501は、登録ボタンに対する筆記者からのクリックを受け付けると、HTTPリクエストを通じてバックエンド504の登録コントローラ505にデータを送信する。登録コントローラ505はデータを解析し、レコードを構築し、構築したレコード(各筆記者の署名のデータ)をデータベース506に登録する。登録コントローラ505は、HTTP応答を通じて、データの登録の成功または失敗のメッセージを署名登録GUI501に返す。
【0040】
署名照合GUI502は、ユーザの署名が本物であるか偽造されたものであるか(同じ筆記者によって書かれたのか、それとも別の筆記者によって書かれたのか)を確認する、すなわち2つの署名画像を照合するために使用されるインタフェースである。署名照合GUI502は、署名画像を照合するリクエストをバックエンド504に送信する。
【0041】
不正検知GUI503は、同じ筆記者の署名画像を纏めて管理している所定のフォルダ内に、偽造署名あるいは他の作成者によって書かれた署名が存在するかどうかをチェックする際に用いられるインタフェースである。不正検知GUI503は、チェックのリクエストをバックエンド504に送信する。
【0042】
署名照合API507は、署名照合GUI502又は不正検知GUI503からのリクエストを、HTTPプロトコルを通じて受信する。署名照合API507は、リクエストを受信すると、データベース506にアクセスして筆記者の情報および署名を取得し、取得した署名の情報を署名照合モデル508に入力することで、署名を照合し又は不正を検知する。署名照合API507は、照合結果又は検知結果のメッセージを作成し、作成したメッセージを、HTTP応答を通じて署名照合GUI502又は不正検知GUI503に返す。署名照合API507は、例えばPython Flask ライブラリを使用してAmazon Web Service(AWS)(登録商標)のLambda RESTFull APIとして開発することができる。
【0043】
次に、署名が同じ筆記者によって書かれたものであるかどうかを照合する処理(照合処理)と、フォルダ内に他の筆記者によって書かれた署名があるかどうかをチェックする処理(不正検知処理)とについて、図面を参照して説明する。
【0044】
図7は、照合処理において表示されるGUI(署名照合GUI502)の一例を示す図である。
図8は、不正検知処理において表示されるGUI(不正検知GUI503)の一例を示す図である。
図9は、照合処理の一例を示すフローチャートである。
図10は、不正検知処理の一例を説明するフローチャートである。
【0045】
照合処理については、
図9に示すように、まず、フロントエンド500は、後述する署名照合GUI502を表示し、ユーザから、所定の方法(例えば、jQuery)により、自身のIDの入力を受けつける(プロセス800)。すると、バックエンド504の署名照合API507はデータベース506からユーザの情報を取得し、フロントエンド500は、ユーザの名前を署名照合GUI502に表示する。また、フロントエンド500は、登録されている各署名を署名照合GUI502に表示する(プロセス801)。続いてフロントエンド500は、署名照合GUI502により、ユーザから、ユーザがボタン605をクリックして、照合する署名画像の選択を受け付ける(プロセス802)。すると、フロントエンド500は、選択された署名画像が同じ筆記者によって書かれたものであるかどうかを問い合わせる要求を、バックエンド504に送信する。
【0046】
署名照合API507は、受信した署名画像と登録されている各署名画像との組み合わせ(ペア)を全て作成する。ここではp個の登録画像があり、すなわちp個のペアがあると仮定する。署名照合API507は、署名照合モデル508を呼び出して各ペアに対する証明照合処理を実行し(プロセス803)、2つの署名が1人の筆記者によって書かれたかどうかを判定するための類似率を算出する(プロセス804)。例えば、署名照合モデル508が、同じ筆記者によって書かれたv個のペアを照合処理したと仮定すると、算出される類似率はv/p×100%になる。例えばこの割合が閾値50%を超えている場合は、照合済みの署名が同じ筆記者によって書かれていることを意味する。
【0047】
類似率が所定の閾値(例えば、50%)を超える場合は、署名照合API507は、署名が同じ筆記者によって書かれていることを示す応答メッセージを作成し、作成した応答メッセージをフロントエンド500に送信する。フロントエンド500は、そのメッセージを署名照合GUI502に表示する(プロセス805)。
【0048】
類似率が所定の閾値(例えば、50%)を超えていない場合は、署名照合API507は、署名が異なる筆記者によって書かれていることを示す応答メッセージを作成し、作成した応答メッセージをフロントエンド500に送信する。フロントエンド500は、そのメッセージを署名照合GUI502に表示する(プロセス806)。
【0049】
なお、署名照合API507は、類似率ではなく、両画像の距離値を算出してもよい。特に、
図3に示す対比損失(コントラスティブロス)は両画像の距離値を算出するものであり、この距離値を相違度として表示してもよい。ただしユーザにとっては距離値そのものを示されたとしてもその意味を解釈することは難しい。そこで、署名照合API507は、同一筆記者同士の距離値の頻度分布、および、別筆記者同士の距離値の頻度分布の2つを用いて、距離値を「同一筆記者である確率、あるいは本人らしさ」に変換してもよい。たとえば2つの分布の尤度比に基づいてその確率を計算することができる。距離値に基づく本人らしさの算出方法の利点は、登録されている署名画像が1つだけであっても、本人らしさを詳細に計算することができること、そして本人か他人かを判別する閾値を設けることで判定の厳しさを容易に調整することができること、がある。
【0050】
ここで、
図7に示すように、署名照合GUI502は、ユーザのIDを受け付けるテキストボックス600、ユーザの名前の入力を受け付けるテキストボックス601、照合する署名画像を表示するエリア602、登録された署名を表示するスクロール可能なグリッドボックス603、照合する署名画像のパスを表示するテキストボックス604、照合する署名画像を選択するためのボタン605、照合の問い合わせをするための照合ボタン606、及び、応答メッセージを表示するテキストボックス607を備える。
【0051】
次に、不正検知処理については、
図10に示すように、フロントエンド500は、後述する不正検知GUI503を表示し、ユーザから、チェックするフォルダの選択を受け付ける(プロセス900)。フロントエンド500は、選択されたフォルダのサブフォルダ内の署名画像の一覧を不正検知GUI503に表示する(プロセス901)。
【0052】
その後、フロントエンド500は、サブフォルダ内に他の筆記者によって書かれた不正の署名があるかどうかを問い合わせる要求を、バックエンド504に送信する(プロセス902)。すると、署名照合API507は、各サブフォルダ内の各画像を当該サブフォルダの残りのすべての画像と組み合わせたペアを作成する。例えば、残りの画像がp個あると仮定すると、p個のペアが生成される。そして署名照合API507は、署名照合モデル508を呼び出し、各ペアについて、2つの署名が1人の筆記者によって書かれたかどうかを判定する判定処理を実行し(プロセス903)、署名の類似率を算出する(プロセス904)。例えば、署名照合モデル508が同じ筆記者によって書かれたv個のペアを処理した仮定すると、プロセス904で算出される類似率はv/p×100%になる。
【0053】
類似率が所定の閾値(例えば、50%)を超える場合は、署名照合API507は、各署名は同じ筆記者によって書かれている(正規の署名)ことを示す応答メッセージを作成し、作成した応答メッセージをフロントエンド500に送信する。フロントエンド500は、そのメッセージを不正検知GUI503に表示する(プロセス905)。
【0054】
類似率が所定の閾値(例えば、50%)を超えていない場合は、署名照合API507は、各署名は異なる筆記者によって書かれている(不正の署名)ことを示す応答メッセージを作成し、作成した応答メッセージをフロントエンド500に送信する。フロントエンド500は、そのメッセージを不正検知GUI503に表示する(プロセス906)。
【0055】
なお、照合処理と同様に、類似率ではなく、頻度分布の尤度比に基づく本人らしさの算出方法を適用してもよい。
【0056】
署名照合API507は、これらの処理を、サブフォルダ内の他のすべての画像に対して繰り返す。そして、フロントエンド500は、サブフォルダ(筆記者)ごとに、画像の総数、他の筆記者が書いた署名の総数、改ざんされた割合、および、偽造された画像を不正検知GUI503に表示する(プロセス907)。
【0057】
ここで、
図8に示すように、不正検知GUI503は、フォルダを選択するボタン706、選択されたフォルダ名が表示されるテキストボックス705、選択されたフォルダ内(サブフォルダ)の署名画像の一覧が表示されるスクロール可能なグリッドビューボックス700、サブフォルダ内に他の筆記者によって書かれた不正の署名があるかどうかを問い合わせるための不正検知ボタン707、及び不正検知処理の結果(応答メッセージ等)が表示されるテキストボックス708を備える。なお、ここでは、各サブフォルダには、1人の筆記者によって書かれた署名画像が格納され、各フォルダには筆記者の名前が設定されているものとする。
【0058】
グリッドビューボックス700の各グリッド701は、各筆記者の情報を表示する。具体的には、各グリッド701には、対応する筆記者のID702、氏名703、及び署名画像704が表示される。
【0059】
本発明は、上述の実施形態に限定されず、本発明の範囲から逸脱することなく、本明細書で具体的に説明した以外のプロセスおよび構成要素を使用して実施することができる。したがって、上述した実施形態および変形例は一例であり、本発明の特徴を損なわない限り、本発明はこれらの内容に限定されるものではない。また、以上、様々な実施形態及び変形例について説明したが、本発明はこれらに限定されるものではなく、本発明の技術的思想の範囲内で考えられる他の態様も本発明の範囲に含まれる。
【0060】
以上のように、本実施形態の署名照合システムは、手書き文字画像を、文字ごとに所定サイズの複数のパッチ202、203に分割し、分割した各パッチの画素及び位置の特徴のデータである埋め込み特徴を各パッチについて算出し(リニアプロジェクト層306)、算出した各パッチの埋め込み特徴205に基づき、各パッチの種類(例えば、部首)を特定し(量子化表現層206)、特定した各パッチの種類及び各パッチ位置に基づき、各パッチの手書き文字画像におけるコンテキストを算出しアテンション機構であるMSA(Multihead Self-Attention)を埋め込み特徴全体に適用する(トランスフォーマー307)離散表現モデルを記憶する。そして、署名照合システムは、2つの手書き文字画像が入力され、入力された2つの画像が同一の筆記者により書かれた文字の画像である確率を出力する署名照合モデルの一部を、上記離散表現モデルで置換することにより新たな署名照合モデルを生成する。
【0061】
このように、本実施形態の署名照合システムは、文字の基本構成要素に基づいて手書き署名画像をパッチに分割し、ベクトル量子化を使用してパッチの特徴を個別のコードに離散化し、それらの間の関係を学習した離散表現モデルを用いて署名照合モデルを生成し、この署名照合モデルにより署名照合を行う。このような署名照合モデルによれば、少量の学習データで迅速に署名を学習し、署名認識に関して高い精度を得ることができる。例えば、ユーザの自分の署名を他の署名と照合したり、所定のフォルダに他の筆記者が書いた署名がないか確認したりすることができる。以上のように、本実施形態の署名照合システムによれば、少量の学習データで迅速に学習し、高い精度で署名を照合することができる。
【0062】
また、離散表現モデルにおける埋め込み特徴にMSAを適用すると、モデルがパッチ間のより大きな空間コンテキストを捉えられるようになる。通常、畳み込みとmax-poolingで構成されるCNNの特徴抽出器には、各ステップで特徴マップの空間情報が半分になるという欠点があるが、本実施形態の署名照合モデルではそのような欠点はない。
【0063】
また、本実施形態の署名照合システムは、同一の手書き画像における各パッチは正の相関にあると評価し、異なる手書き画像における各パッチは負の相関にあると評価するInfoNCE損失評価関数に、離散表現モデルの出力値を入力することで、同一の手書き画像における各パッチは正の相関となるように、異なる手書き画像における各パッチは負の相関となるように、離散表現モデルにおける重み値を学習する。
【0064】
このようにInfoNCE損失評価関数に離散表現モデルの出力値を入力すると、パッチ間のより大きな空間コンテキストをキャプチャー出来るようになる。
【0065】
また、本実施形態の署名照合システムは、Qをバッチ内の他の画像の離散化単位、Tを転置ベクトル、W
mを学習可能な重みとした場合に、InfoNCE損失評価関数を
と定義する。
【0066】
このように損失評価関数(焦点損失)を定義すると、γの値が大きいほど、適切に分類されたペアの損失が低くなるため、モデルは分類に失敗するペアに焦点を合わせて学習することになる。
【0067】
また、本実施形態の署名照合システムでは、離散化単位は漢字の部首であるから、基本的には全種類の漢字の筆跡の特徴を網羅できるため、学習効率の向上が期待できる。
【0068】
また、本実施形態の署名照合システムは、入力された2つの画像の埋め込み特徴のドット積を計算することにより、入力された2つの画像の類似の確率を出力する。
【0069】
また、本実施形態の署名照合システムは、筆記者が自分の情報と署名をシステムに登録するためのGUIと、署名照合モデルにより判定された、同一の筆記者によって署名が書かれたものであるか、または署名が本物であるか偽造であるかの照合結果を示す応答メッセージを表示するための署名照合GUIと、署名照合モデルにより判定された、所定のフォルダに格納されている各署名は同一の筆記者による署名であるか、または所定のフォルダに偽造署名があるかの判定結果を示す応答メッセージを表示するフォルダーチェックGUIと、筆記者の情報と署名を取得し、データベースに保存する登録コントローラと、署名照合GUIおよびフォルダーチェックGUIからリクエストを取得し、データベースにアクセスして筆記者の情報および署名を取得し、署名照合モデルを呼び出して照合結果または判定結果を示す応答メッセージを作成し、作成した応答メッセージを、署名照合GUI又はフォルダ チェックGUIに返す署名照合部と、を更に備える。
【0070】
このようにクラウドコンピューティング上にGUI等を構築した署名照合システムにより、多くのユーザが特別なデバイスを必要とせずに、同時に、リモートで便利に使用できるようになる。また、このような署名照合システムを導入することで署名のチェックを実施するための人的労力も削減することができる。
【0071】
また、本実施形態の署名照合システムは、2つの署名画像400、401をそれぞれ2つのビジョントランスフォーマー404、405に入力することにより、前記の2つの署名画像400、401の埋め込み特徴を取得しエンコードし、既存の署名照合モデルにおける特徴抽出器を上記のようにして学習した離散表現モデルのトランスフォーマー(シャムニューラルネットワークに係るビジョントランスフォーマー304、305、又はクロスモーダルアテンションに係るビジョントランスフォーマー404、405)で置き換え、その後データ収集処理(データ収集フォーム)によって収集された手書きテキスト画像データのいくつかのサンプルを使用して、署名照合システムを微調整する。
【0072】
このように、署名照合システムは、データ収集処理(データ収集フォーム)によって収集された手書きテキスト画像データのいくつかのサンプルを使用して、署名照合モデルを微調整する。これにより、署名照合システムは、最適に調整された署名照合モデルを使用することができるようになる。
【符号の説明】
【0073】
001 少量の手書き署名データを収集するプロセス、002 ラベルのない手書き文字画像を収集するプロセス、003 離散表現モデルを学習させるプロセス、004 署名照合モデルの特徴抽出器を離散表現モデルに置き換えるプロセス、005 署名照合モデルを微調整するプロセス、006 署名検証APIを作成するために最適な署名照合モデルを選択するプロセス