以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、実施の形態1における認証装置1の外観図である。認証装置1は、認証装置1の複数の構成部が収容されている収容箱1aを備える。収容箱1aの外面には、内外方向に貫通している矩形状の開口1bが設けられている。認証装置1のユーザは、運転免許証を含む複数種類のカードC,C,・・・を開口1bに挿入する。開口1bの長辺はカードCの短辺よりも若干長い。開口1bの短辺はカードCの厚みよりも若干長い。従って、開口1bの大きさはカードCの短辺側の端面の大きさと略同じである。認証装置1のユーザは、カードCをカードCの短辺側から開口1bに挿入する。
複数種類のカードC,C,・・・には、身分を証明するために公的に発行され、開口1bに挿入されるべき対象カードと、開口1bに挿入されるべきではない対象外カードとが含まれている。対象カードの種類として、運転免許証の他に、マイナンバーカード、マイナンバー通知カード、住民基本台帳カード、特別永住者証明書、在留カード、パスポートカード又はソーシャルセキュリティカード等が挙げられる。対象カードに係る複数の種類は予め設定されている。対象外カードの種類として、ポイントカード又は電子マネー用カード等が挙げられる。対象外カードに係る一又は複数の種類も予め設定されている。
図2は対象カードの例示図である。対象カードの表側及び裏側の少なくとも一方には、個人情報として、氏名、生年月日、住所又は顔写真等の個人情報が表示されている。図2の例では、対象カードの表側には、氏名、生年月日、住所及び顔写真等の個人情報が表示され、対象カードの裏側には、個人情報が表示されていない。図2に示す対象カードの裏側には、例えば、手書きで個人情報が書き込まれる。対象カードについては、種類に応じて個人情報が表示されている表示位置は異なる。なお、複数種類のカードC,C,・・・夫々の表側及び裏側は適宜定義される。例えば、氏名が表示されている面を表側と定義し、氏名が表示されていない面を裏側と定義してもよい。
カードCの一方の板面を第1面と記載し、カードCの他方の板面を第2面と記載する。図1に示す認証装置1にカードCが開口1bに挿入された場合、認証装置1は、開口1bに挿入されたカードCの第1面が写っている矩形状の第1面画像に対応する第1面画像データを生成する。更に、認証装置1は、開口1bに挿入されたカードCの第2面が写っている矩形状の第2面画像に対応する第2面画像データを生成する。
認証装置1は、生成した第1面画像データに基づいて、開口1bに挿入されたカードCの種類及び表裏を特定する。第1面が表側であると特定された場合、第2面が裏側であると自動的に特定される。「特定」の意味には、「判別」、「識別」及び「判定」等の意味が含まれる。カードCの表裏は、カードCの向きの1つである。認証装置1は、第1面画像データに基づいて特定を行うことが不可能であった場合、生成した第2面画像データに基づいて、開口1bに挿入されたカードCの種類及び表裏を特定する。認証装置1は、特定結果に基づいて、生成した第1面画像データ及び第2面画像データから、カードCに表示されている個人情報を読み取り、読み取った個人情報に基づいて、カードCの所有者を認証する。
種類に応じて、対象カードにおける個人情報の表示位置は異なる。また、個人情報を読み取るためには、対象カードの表裏を特定する必要がある。認証装置1は、第1面画像データ又は第2面画像データに基づき、第1面画像又は第2面画像に写っているカードCの種類及び表裏の分類の確からしさを示す確率を出力する学習モデルG(図3を参照)を用いて、カードCの種類及び表裏を特定する。
図3は学習モデルGの模式図である。学習モデルGは、深層学習を含む機械学習の学習モデルであり、例えば、ニューラルネットワークによって構成される。学習モデルGは、入力層20、複数の中間層21,21・・・及び出力層22を有する。図3には、中間層21の数が2である例が示されている。なお、中間層21の数は3以上であってもよい。
入力層20、中間層21及び出力層22夫々では、一又は複数のノードが存在する。各層のノードは、前後の層に存在するノードと一方向に所望の重み及びバイアスで結合されている。入力層20のノードの数と同数の成分を有するベクトルが、学習モデルGの入力データとして入力される。学習モデルGの入力は画像データである。例えば、画像データを構成する各画素の画素値が入力層20のノードに入力される。
なお、入力層20にデータを入力する前に、畳み込みフィルタを含む適宜のフィルタを画像データに適用し、フィルタを適用した後に得られる各画素の画素値を入力層20に入力してもよい。
入力層20の各ノードに入力されたデータは、最初の中間層21に入力される。この中間層21において、重み及びバイアスを含む活性化関数を用いて出力が算出される。算出された値が次の中間層21に入力される。以下同様にして、出力層22の出力が求められるまで次々と後の層に伝達される。なお、ノード間を結合する重み及びバイアス等の各種パラメータは、例えば、誤差逆伝播法を用いて学習される。
学習モデルGの入力層20に入力する入力画像データは、第1面画像データ又は第2面画像データを縮小することによって得られる縮小画像データである。入力画像データとして、運転免許証を含む複数種類のカードC,C,・・・の表裏の縮小画像データが用いられる。
図4は縮小画像データの説明図である。図4の上側には、第1面画像又は第2面画像が示され、図4の下側には、縮小画像データに対応する縮小画像が示されている。第1面画像データ及び第2面画像データ夫々について、縦及び横の画素数はM(M:自然数)及びN(N:自然数)で表されている。
第1面画像データ及び第2面画像データ夫々について、縦及び横の画素数を下げることによって、カードCに表示されている個人情報を読み取ることが不可能な縮小画像データを生成する。例えば、縦及び横の画素数を(M/10)及び(N/10)に変更することによって縮小画像データを生成する。M及びN夫々は例えば380及び600である。第1面画像データ又は第2面画像データが縮小された場合、第1面画像又は第2面画像も縮小される。
学習モデルGでは、カードCの表側又は裏側の縮小画像データと、カードCの種類、及び、カードCの表側又は裏側を示すラベルデータとを含む教師データを用いて、画像データとカードCの種類及び表裏との関係が学習されている。教師データの画像データとして、運転免許証を含む複数種類のカードC,C,・・・の表裏の縮小画像データが用いられる。
中間層21では、教師データに基づき、縮小画像データと、カードCの種類及び表裏との関係が学習されている。
出力層22は、入力画像データに対応する入力画像に写っているカードCの種類及び表裏の分類の確からしさを示す確率を出力する。具体的には、カードCの種類及び表裏の各組合せについて、入力画像データに係るカードCの種類及び表裏の組合せが該当する確率を示す。図3では、カードCの種類及び表裏の組合せを(種類,表又は裏)で示している。(運転免許証,表)、(運転免許証,裏)、(マイナンバーカード,表)及び(マイナンバーカード,裏)等の組合せ夫々について、入力画像データに係るカードCの種類及び表裏の組合せが該当する確率を示す。
縮小画像データでは、個人情報を取得することが不可能となるまで縮小が行われている。このため、カードCに表示されている個人情報に基づいて確率が出力されることはない。
認証装置1では、第1面画像データ又は第2面画像データの縮小画像データを学習モデルGに入力し、学習モデルGから出力された確率に基づいて、第1面画像又は第2面画像に写っているカードCの種類及び表裏を特定する。
学習モデルGはモデル生成装置3によって生成される。以下では、モデル生成装置3の構成及び作用を説明する。
図5はモデル生成装置3の要部構成を示すブロック図である。モデル生成装置3は、入力部30、操作部31、記憶部32及び制御部33を有する。これらは、内部バス34に接続されている。
入力部30には、教師データが入力される。入力部30に入力された教師データは、制御部33によって取得される。教師データは、前述したように、カードCの表側又は裏側の縮小画像データと、カードCの種類、及び、カードCの表側又は裏側を示すラベルデータとを含む。教師データに含まれる画像データとして、運転免許証を含む複数種類のカードC,C,・・・の表裏の縮小画像データが用いられる。
操作部31は、キーボード又はマウス等の入力インタフェースを有する。ユーザは入力インタフェースを操作する。操作部31は、入力インタフェースにおいて行われた操作を制御部33に通知する。
記憶部32は例えば不揮発性メモリである。記憶部32には、学習モデルG及びコンピュータプログラム40が記憶されている。
学習モデルGでは、前述したように、第1面画像データ又は第2面画像データに基づき、第1面画像又は第2面画像に写っているカードCの種類及び表裏の分類の確からしさを示す確率を出力する。
制御部33は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)又はTPU(Tenser Processing Unit)等の処理素子を有し、演算を行う演算部を兼ねる。コンピュータプログラム40は、教師データを記憶部32に記憶する記憶処理と、学習モデルGを生成するモデル生成処理とを、制御部33が有する処理素子(コンピュータ)に実行させるために用いられる。なお、制御部33が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子がコンピュータプログラム40に従って、モデル生成処理を協同で実行してもよい。
なお、コンピュータプログラム40は、制御部33が有する処理素子が読み取り可能に、記憶媒体A1に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体A1から読み出されたコンピュータプログラム40が記憶部32に記憶される。記憶媒体A1は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。光ディスクは、CD(Compact Disc)−ROM(Read Only Memory)、DVD(Digital Versatile Disc)−ROM、又は、BD(Blu-ray(登録商標) Disc)等である。磁気ディスクは、例えばハードディスクである。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラム40をダウンロードし、ダウンロードしたコンピュータプログラム40を記憶部32に記憶してもよい。
入力部30は、例えば、図示しない装置に接続され、この装置から複数の教師データが入力部30に順次出力される。制御部33は、入力部30に教師データが入力される都度、記憶処理を実行する。記憶処理では、制御部33は、入力部30に入力された教師データを、入力部30から取得し、取得した教師データを記憶部32に記憶する。その後、制御部33は記憶処理を終了する。
モデル生成処理では、教師データに含まれる縮小画像データを学習モデルGに入力することによって得られた学習モデルGの出力に基づいて、学習モデルGの中間層21で用いられるノード間の重み及びバイアス等のパラメータを更新する。これにより、適切な学習モデルGを生成する。学習が開始される前の段階では、中間層21で用いられるノード間の重み及びバイアス等のパラメータが初期値に設定された学習モデルGが記憶部32に予め記憶されている。
図6は、教師データに含まれる縮小画像データの説明図である。教師データの縮小画像データは、複数種類のカードC,C,・・・の単純な縮小画像データだけではない。図6の上側に示すように、カードCの第1面画像データ又は第2面画像データにノイズを追加し、ノイズを追加した第1面画像データ又は第2面画像データを縮小する。これにより、カードCの単純な縮小画像データにノイズが追加された縮小画像データが生成される。制御部33は、複数種類のカードC,C,・・・の単純な縮小画像データの少なくとも1つにノイズを追加することによって得られる縮小画像データを取得し、取得した縮小画像データも教師データの縮小画像データとして記憶部32に記憶する。図6に示すノイズは、カードCの汚れに対応するノイズである。縮小画像データに追加されるノイズは、汚れに対応するノイズに限定されず、日焼け又は経年劣化等によって生じる色の変化に対応するノイズも含む。制御部33は、このノイズが追加された縮小画像データも取得し、取得した縮小画像データを記憶部32に記憶する。色の変化に対応するノイズが追加された縮小画像データの縮小画像の1つとして、黄ばんだカードCの縮小画像が挙げられる。
図6の下側に示すように、カードCの第1面画像データ又は第2面画像データに含まれる個人情報を削除又は変更し、削除又は変更することによって得られた第1面画像データ又は第2面画像データを縮小する。これにより、カードCの単純な縮小画像データに含まれる個人情報が削除又は変更された縮小画像データが生成される。制御部33は、複数種類のカードC,C,・・・の単純な縮小画像データの少なくとも1つに含まれる個人情報を削除又は変更することによって得られる縮小画像データを取得し、取得した縮小画像データも教師データの縮小画像データとして記憶部32に記憶する。個人情報の変更は、例えば、氏名、生年月日又は住所の変更である。個人情報の削除は、例えば、氏名又は住所の一部分の削除である。
図7は、モデル生成処理の手順を示すフローチャートである。モデル生成装置3のユーザは、操作部31において、モデル生成処理の実行を指示する実行操作を行う。実行操作が行われた場合において、記憶部32に少なくとも1つの教師データが記憶されているとき、制御部33はモデル生成処理を実行する。
モデル生成処理では、制御部33は、まず、記憶部32に記憶されている教師データの中から1つの教師データを選択し(ステップS1)、選択した教師データに含まれる縮小画像データを学習モデルGの入力層20に入力する(ステップS2)。これにより、縮小画像データに対応する縮小画像に写っているカードCの種類及び表裏の分類の確からしさを示す確率が、出力結果として、学習モデルGの出力層22から出力される。
制御部33は、ステップS2を実行した後、学習モデルGの出力層22が出力した出力結果を取得し(ステップS3)、取得した出力結果を、入力部30に入力された教師データに含まれるラベルデータに基づいて評価する(ステップS4)。具体的には、制御部33は、ステップS3で取得した出力結果と、教師データに含まれるラベルデータとに基づく誤差関数(目的関数、損失関数又はコスト関数ともいう)を用いて、出力結果を評価することができる。
次に、制御部33は、ステップS4で行った評価の結果に基づいて、中間層21で用いられるノード間の重み及びバイアス等のパラメータを更新するか否かを判定する(ステップS5)。ステップS5では、例えば、制御部33は、最急降下法等の勾配降下法によって誤差関数を最適化(最小化又は最大化)する過程で、誤差関数が閾値以下(又は閾値以上)となった場合、パラメータを更新しないと判定する。例えば、制御部33は、誤差関数が閾値を超えた(又は閾値未満となった)場合、パラメータを更新すると判定する。
制御部33は、パラメータを更新すると判定した場合(S5:YES)、中間層21で用いられるパラメータを更新する(ステップS6)。制御部33は、パラメータを更新しないと判定した場合(S5:NO)、又は、ステップS6を実行した後、記憶部32に記憶されている全ての教師データを、ステップS1で選択したか否かを判定する(ステップS7)。
制御部33は、全ての教師データを選択していないと判定した場合(S7:NO)、ステップS1を再び実行する。再び実行されたステップS1では、制御部33は、選択していない教師データを選択する。
制御部33は、全ての教師データを選択したと判定した場合(S7:YES)、パラメータが更新された学習モデルGを記憶部32に記憶し(ステップS8)、記憶部32に記憶されている全ての教師データ、即ち、学習モデルGのパラメータを更新するために用いた全ての教師データを、記憶部32から削除する(ステップS9)。制御部33は、ステップS9を実行した後、モデル生成処理を終了する。
前述したように、学習モデルGは、カードCの一面の縮小画像データから、カードCの種類及び表裏を特定する処理に用いられる。モデル生成処理では、制御部33は、記憶処理で入力部30から取得した教師データに基づいてパラメータを更新することによって、適切な学習モデルGを生成する。
記憶処理は複数回実行され、複数の教師データが記憶される。学習モデルGのモデル生成処理では、複数の教師データが用いられる。これらの教師データに含まれる複数の画像データは、複数種類のカードC,C,・・・の表裏の画像データを縮小することによって得られる複数の縮小画像データである。言い換えると、学習モデルGのモデル生成処理で用いられる複数の画像データには、全種類のカードC,C,・・・の表裏の縮小画像データが含まれる。
前述したように、認証装置1は、モデル生成装置3の制御部33が生成処理で生成した学習モデルGを用いる。認証装置1は、学習モデルGから出力された出力結果に基づいて、開口1bに挿入されたカードCの種類及び表裏を特定する。
モデル生成処理では、前述したように、制御部33は、複数種類のカードC,C,・・・の表裏の画像データを縮小することによって得られる複数の縮小画像データを入力部30から取得し、取得した複数の縮小画像データを、複数の教師データの画像データとして入力する。これにより、学習モデルGが生成される。個人情報を取得することが不可能となるまで縮小が行われた縮小画像データを入力することによって、開口1bに挿入されるカードCに表示されている個人情報とは異なる情報に基づいて確率を出力する学習モデルGを生成することができる。
また、モデル生成処理では、前述したように、制御部33は、複数種類のカードC,C,・・・の縮小画像データの少なくとも1つにノイズを追加することによって得られる縮小画像データを入力部30から取得し、取得した縮小画像データを教師データの画像データとして、学習モデルGの入力に含める。このため、認証装置1が行う認証において、学習モデルGに入力する縮小画像データ、即ち、開口1bに挿入されたカードCの第1面又は第2面の縮小画像データが、汚れが付着しているカードC又は色が変化しているカードCの一面の縮小画像データであっても、学習モデルGを用いて適切な特定が行われる。前述したように、日焼け又は経年変化等によってカードCの色は変化する。
更に、モデル生成処理では、制御部33は、複数種類のカードC,C,・・・の縮小画像データの少なくとも1つに含まれる個人情報を削除又は変更することによって得られる縮小画像データを入力部30から取得し、取得した縮小画像データを教師データの画像データとして学習モデルGの入力に含める。学習モデルGへの入力には、複数種類のカードC,C,・・・の単純な縮小画像データだけではなく、ノイズを追加することによって得られる縮小画像データと、個人情報を削除又は変更することによって得られる縮小画像データとが含まれている。このため、モデル生成処理で用いる縮小画像データが多いので、学習モデルGが出力する確率はより適切である。
なお、単純な縮小画像データ、ノイズが追加された縮小画像データ、個人情報が部分的に変更された縮小画像データ、又は、個人情報が部分的に削除された縮小画像データについては、モデル生成装置3の制御部33が生成してもよい。この場合、入力部30には、カードCの表側又は裏側が写っている画像データと、この画像データに対応するラベルデータとを含むデータが入力される。制御部33は、入力部30に入力された画像データに基づいて、ノイズが追加された縮小画像データ、個人情報が部分的に変更された縮小画像データ、又は、個人情報が部分的に削除された縮小画像データを生成する。これにより、縮小画像データ及びラベルデータを含む教師データが生成される。生成された教師データを記憶部32に記憶する。
図8は、認証装置1の要部構成を示すブロック図である。認証装置1は、更に、スキャナ10、カメラ11、ディスプレイ12及び認証機13を備える。スキャナ10及び認証機13は、収容箱1a内に収容されている。カメラ11及びディスプレイ12は、図1に示すように、収容箱1aの外面に設置されている。認証機13は、入力部50、入出力部51、出力部52、記憶部53及び制御部54を有する。
スキャナ10は認証機13の入力部50に接続されている。カメラ11は認証機13の入出力部51に接続されている。ディスプレイ12は認証機13の出力部52に接続されている。入力部50、入出力部51、出力部52、記憶部53及び制御部54は内部バス55に接続されている。
カードCが開口1bに挿入された場合、スキャナ10は、挿入されたカードCの第1面画像を読込み、読込んだ第1面画像に対応する第1面画像データを生成する。更に、スキャナ10は、挿入されたカードCの第2面画像を読込み、読込んだ第2面画像に対応する第2面画像データを生成する。
前述したように、開口1bの大きさはカードCの短辺側の端面の大きさと略同じである。このため、第1面画像及び第2面画像の枠の形状は、カードCの面の形状と略一致している。スキャナ10は、第1面画像データ及び第2面画像データを生成した場合、生成した第1面画像データ及び第2面画像データを入力部50に出力する。入力部50に入力された第1面画像データ及び第2面画像データは、制御部54によって、入力部50から取得される。制御部54は取得部として機能する。
入出力部51は、制御部54の指示に従って、ユーザの顔が写っている顔画像の撮影を指示する撮影信号をカメラ11に出力する。撮影信号がカメラ11に入力された場合、カメラ11は、顔画像を撮影し、撮影した顔画像に対応する顔画像データを入出力部51に出力する。入出力部51に入力された顔画像データは、制御部54によって、入出力部51から取得される。
出力部52は、制御部54の指示に従って、カードCの特定を行うことができなかったことを示す特定不可情報と、特定したカードCの種類が対象外カードの種類であることを示す対象外情報と、カードCの特定に成功したもののカードCの読み取りを行うことができなかったことを示す読み取り不可情報とをディスプレイ12に出力する。特定不可情報、対象外情報又は読み取り不可情報がディスプレイ12に入力された場合、ディスプレイ12は、入力された情報が示す内容を表示する。これにより、カードCを特定することができなかったこと、カードCの種類が対象外カードの種類であること、又は、読み取りを行うことができなかったことがユーザに通知される。読み取り不可情報、特定不可情報及び対象外情報夫々は第1情報、第3情報及び第2情報に相当する。
出力部52は、更に、制御部54の指示に従って、認証の成功又は失敗を示す結果情報をディスプレイ12に出力する。結果情報がディスプレイ12に入力した場合、ディスプレイ12は、結果情報が示す内容を表示する。これにより、認証の成功又は失敗がユーザに通知される。
記憶部53は例えば不揮発性メモリである。記憶部53には、学習モデルG、コンピュータプログラム60、認証用テーブル61及び読み取りルールデータベース62が記憶されている。記憶部53に記憶されている学習モデルGは、モデル生成装置3によって生成された学習モデルである。
制御部54は、CPU、GPU又はTPU等の処理素子を有し、演算を行う演算部を兼ねる。コンピュータプログラム60は、カードCの所有者を認証する認証処理を、制御部54が有する処理素子(コンピュータ)に実行させるために用いられる。なお、制御部54が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子がコンピュータプログラム60に従って、協同で認証処理を行ってもよい。
認証処理では、制御部54は、開口1bに挿入されたカードCの種類及び表裏を特定する。制御部54は、特定結果に基づいて、第1面画像データ及び第2面画像データの少なくとも一方から個人情報を読み取り、読み取った個人情報に基づいて、カードCの所有者を認証する。
なお、コンピュータプログラム60は、制御部54が有する処理素子が読み取り可能に、記憶媒体A2に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体A2から読み出されたコンピュータプログラム60が記憶部53に記憶される。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラム60をダウンロードし、ダウンロードしたコンピュータプログラム60を記憶部53に記憶してもよい。
図9は認証用テーブル61の例を示す図表である。図9の例では、認証用テーブル61は、氏名フィールド、住所フィールド及び生年月日フィールドを含む。氏名フィールドには、認証装置1を使用する複数のユーザに対応する複数の氏名が記憶されている。住所フィールドには、氏名フィールドに記憶されている複数の氏名夫々に対応する複数の住所が記憶されている。生年月日フィールドには、氏名フィールドに記憶されている複数の氏名夫々に対応する複数の生年月日が記憶されている。氏名、住所及び生年月日は認証用テーブル61に予め記憶されている。認証用テーブルは、カードCの所有者の認証に用いられる。
図10は読み取りルールデータベース62の内容を示す図表である。読み取りルールデータベース62は、種類フィールド及び読み取りルールフィールドを含む。種類フィールドには、対象カードの種類が記憶されている。対象外カードの種類、ポイントカード又は電子マネー用カード等は種類フィールドに記憶されていない。前述したように、対象カードの種類として、運転免許証、マイナンバーカード、マイナンバー通知カード、住民基本台帳カード、特別永住者証明書、在留カード、パスポートカード又はソーシャルセキュリティカード等が挙げられる。読み取りルールフィールドには、種類フィールドに記憶されている種類に対応する複数の個人情報を読み取りルールが記憶されている。具体的には、各読み取りルールは、個人情報の表示位置を示している。1つの個人情報の表示位置は、個人情報が表示されているカードCの向き(表側又は裏側)と、カードCの表側又は裏側における個人情報の表示場所とによって定義される。種類及び読み取りルールは読み取りルールデータベース62に予め記憶されている。
図11及び図12は、認証処理の手順を示すフローチャートである。制御部54は認証処理を繰り返し実行する。認証処理では、制御部54は、まず、開口1bにカードCが挿入されたか否かを判定する(ステップS21)。ステップS21では、制御部54は、例えば、カードCの挿入を検出する光センサの検出結果に基づいて、カードCが挿入されたか否かを判定する。前述したように、開口1bにカードCが挿入された場合、スキャナ10は、第1面画像データ及び第2面画像データを生成し、生成した第1面画像データ及び第2面画像データを入力部50に出力する。
制御部54は、カードCが挿入されていないと判定した場合(S21:NO)、認証処理を終了する。その後、制御部54は、再び、ステップS21を実行する。従って、制御部54は、開口1bにカードCが挿入されるまで待機する。
制御部54は、カードCが挿入されたと判定した場合(S21:YES)、入力部50に入力された第1面画像データの縮小画像データを生成する(ステップS22)。制御部54は、第1面画像データの縦及び横の画素数を下げることによって、第1面画像データを縮小し、第1面画像データの縮小画像データを生成する。制御部54は縮小部としても機能する。
次に、制御部54は、ステップS22で生成した縮小画像データを、学習モデルGの入力層20に入力する(ステップS23)。学習モデルGでは、入力層20の各ノードには、例えば、縮小画像データを構成する各画素の画素値のデータが入力される。入力層20の各ノードに入力されたデータは、隣接する中間層21のノードへ出力される。中間層21では、入力層20に入力された縮小画像データに基づいて、ノード間の重み及びバイアスを含む活性化関数を用いた演算が行われ、中間層21で行われた演算結果は出力層22に出力される。このようにして、学習モデルGでは、カードCの種類及び表裏の分類の確からしさを示す確率が出力層22から出力される。
制御部54は、ステップS23を実行した後、学習モデルGの出力層22が出力した出力結果(確率)を取得する(ステップS24)。次に、制御部54は、ステップS24で取得した出力結果に基づいて、カードCの種類及び表裏の特定を行うことが可能であるか否かを判定する(ステップS25)。
具体的には、制御部54は、学習モデルGから出力された確率の分布の分散値を算出する。分散値は、カードCの種類及び表裏の全ての組合せに係る確率の中で1つの確率のみが極端に高い場合、大きく、カードCの種類及び表裏の全ての組合せに係る確率が略一致している場合、小さい。ステップS25では、制御部54は、算出した分散値が所定値未満である場合、特定を行うことが不可能であると判定し、算出した分散値が所定値以上である場合、特定を行うことが可能であると判定する。分散値が所定値以上であることは所定基準に相当する。制御部54は、学習モデルGから出力された確率の分布が所定基準を満たさない場合、特定を行うことが不可能であると判定する。
なお、所定基準は、分散値が所定値以上であることに限定されず、例えば、カードCの種類及び表裏の全ての組合せに係る確率の中で1番目及び2番目に高い2つの確率の差分値が第2の所定値以上であることであってもよい。また、所定基準は、カードCの種類及び表裏の全ての組合せに係る確率の中で1番目に高い確率が第3の所定値、例えば、40%以上であることであってもよい。
制御部54は、特定を行うことが不可能であると判定した場合(S25:NO)、ステップS22と同様に、第2面画像データの縮小画像データを生成する(ステップS26)。制御部54は、第2面画像データの縦及び横の画素数を下げることによって、第2面画像データを縮小し、第2面画像データの縮小画像データを生成する。
次に、制御部54は、ステップS26で生成した縮小画像データを、学習モデルGの入力層20に入力する(ステップS27)。これにより、学習モデルGの出力層22から、カードCの種類及び表裏の分類の確からしさを示す確率が出力される。このように、制御部54は、ステップS25で第1面画像データに関する特定を行うことが不可能であると判定した場合、入力部50から取得した第1面画像データ及び第2面画像データの両方を学習モデルGの入力層20に入力する。
なお、制御部54は、ステップS22において、第1面画像データ及び第2面画像データの両方の縮小画像データを生成してもよい。この場合、制御部54は、ステップS25で、特定を行うことが不可能であると判定した場合、ステップS27を実行する。ステップS27では、制御部54は、ステップS22で生成した第2面画像データの縮小画像データを、学習モデルGの入力層20に入力する。
制御部54は、ステップS27を実行した後、学習モデルGの出力層22が出力した出力結果(確率)を取得する(ステップS28)。次に、制御部54は、ステップS25と同様に、ステップS28で取得した出力結果に基づいて、カードCの種類及び表裏の特定を行うことが可能であるか否かを判定する(ステップS29)。
制御部54は、第2面画像データに関する特定を行うことが不可能であると判定した場合(S29:NO)、出力部52に指示して、特定不可情報をディスプレイ12に出力させる(ステップS30)。これにより、ディスプレイ12は特定不可情報が示す内容を表示し、カードCの特定不可がユーザに通知される。前述したように、特定不可情報は第3情報に相当する。出力部52は第3情報出力部として機能する。
ステップS30を実行した後、認証処理を終了し、再びステップS21を実行する。
制御部54は、第1面画像データに関する特定を行うことが可能であると判定した場合(S25:YES)、又は、第2面画像データに関する特定を行うことが可能であると判定した場合(S29:YES)、ステップS23又はステップS28で取得した出力結果に基づいて、開口1bに挿入されたカードCの種類及び表裏を特定する(ステップS31)。表裏の特定は、カードCの第1面及び第2面夫々が表側及び裏側のいずれであるかを特定することである。第1面及び第2面の一方の面について特定が行われた場合、他方の面については、自動的に特定が行われる。
ステップS31では、制御部54は、例えば、カードCの種類を、出力結果の中で最も確率が高い組合せの種類に特定する。また、制御部54は、例えば、出力結果の中で最も高い組合せが表側を示す場合において、学習モデルGに入力した縮小画像データが第1面画像データの縮小画像データであるとき、カードCの第1面及び第2面夫々は表側及び裏側であると特定する。制御部54は、同様の場合において、学習モデルGに入力した縮小画像データが第2面画像データの縮小画像データであるとき、カードCの第1面及び第2面夫々は裏側及び表側であると特定する。制御部54は、特定部としても機能する。認証機13は特定装置として機能する。
制御部54は、ステップS25で特定を行うことが可能であると判定した場合、ステップS31では、第1面画像データの縮小画像データを学習モデルGに入力することによって得られた出力結果に基づいて特定を行う。制御部54は、ステップS29で特定を行うことが可能であると判定した場合、ステップS31では、第2面画像データの縮小画像データを学習モデルGに入力することによって得られた出力結果に基づいて特定を行う。
次に、制御部54は、ステップS31で特定した種類が対象カードに係る複数の種類とは異なっているか否かを判定する(ステップS32)。制御部54は、ステップS31で特定した種類が対象カードに係る複数の種類とは異なると判定した場合(S32:YES)、出力部52に指示して、対象外情報をディスプレイ12に出力させる(ステップS33)。これにより、ディスプレイ12は対象外情報が示す内容を表示し、ステップS31で特定したカードCの種類が対象外の種類であることがユーザに通知される。前述したように、対象外情報は第2情報に相当する。出力部52は第2情報出力部として機能する。
ステップS33を実行した後、認証処理を終了し、再びステップS21を実行する。
制御部54は、ステップS31で特定した種類が対象カードに係る複数の種類中の1つと一致すると判定した場合(S32:NO)、ステップS31で特定した種類に基づいて、読み取りルールデータベース62から、ステップS31で特定した種類に対応するカードCの読み取りルールを読み出す(ステップS34)。次に、制御部54は、ステップS32で読み出した読み取りルールに従って、カードCの表側及び裏側の一方又は両方に表示されている個人情報を、入力部50に入力された第1面画像データ及び第2面画像デーから読み取る(ステップS35)。制御部54は、読み取り部としても機能する。
次に、制御部54は、個人情報の読み取りに成功したか否かを判定する(ステップS36)。制御部54は、読み取りに失敗したと判定した場合(S36:NO)、出力部52に指示して、読み取り不可情報をディスプレイ12に出力させる(ステップS37)。これにより、ディスプレイ12は読み取り不可情報が示す内容を表示し、カードCの読み取り不可がユーザに通知される。前述したように、読み取り不可情報は第1情報に相当する。出力部52は第1情報出力部としても機能する。
なお、ステップS31で特定した種類が実際のカードCの種類と異なっていたために、個人情報の読み取りに失敗する可能性もある。
制御部54は、ステップS37を実行した後、認証処理を終了し、再びステップS21を実行する。
制御部54は、読み取りに成功したと判定した場合(S36:YES)、開口1bに挿入されたカードCの所有者を認証する(ステップS38)。
例えば、ステップS35で読み取った個人情報に、人物の顔が写っている顔画像が含まれている場合、制御部54は、入出力部51に指示して、撮影信号をカメラ11に出力させる。前述したように、撮影信号がカメラ11に入力された場合、カメラ11は、顔画像を撮影し、撮影した顔画像に対応する顔画像データを入出力部51に出力する。入出力部51に入力された顔画像データは、制御部54によって、入出力部51から取得される。
制御部54は、ステップS35で読み取った顔画像の人物が、入出力部51から取得した顔画像データに対応する顔画像の人物と同一であるか否かに基づいて認証を行う。制御部54は、ステップS35で読み取った顔画像の人物が、入出力部51から取得した顔画像データに対応する顔画像の人物と同一である場合、認証に成功したと判定する。制御部54は、ステップS35で読み取った顔画像の人物が、入出力部51から取得した顔画像データに対応する顔画像の人物と異なる場合、認証に失敗したと判定する。
例えば、ステップS35で読み取った個人情報に、氏名、住所及び生年月日が含まれている場合、制御部54は、ステップS38では、認証用テーブル61(図9参照)を用いて認証を行う。例えば、制御部54は、ステップS35で読み取った氏名が認証用テーブル61に記憶されている場合において、ステップS35で読み取った住所及び生年月日夫々が、ステップS35で読み取った氏名に対応する認証用テーブル61の住所及び生年月日と一致するとき、カードCの所有者の認証に成功したと判定する。
制御部54は、ステップS35で読み取った氏名が認証用テーブル61に記憶されていない場合、カードCの所有者の認証に失敗したと判定する。制御部54は、ステップS35で読み取った氏名が認証用テーブル61に記憶されている場合において、ステップS35で読み取った住所及び生年月日夫々が、ステップS35で読み取った氏名に対応する認証用テーブル61の住所及び生年月日と一致しないとき、カードCの所有者の認証に失敗したと判定する。
制御部54は、ステップS38を実行した後、出力部52に指示して、認証結果、即ち、認証の成功又は失敗を示す結果情報をディスプレイ12に出力させる(ステップS39)。これにより、ステップS38の認証結果がディスプレイ12に表示され、ステップS38の認証結果がユーザに通知される。
制御部54は、ステップS39を実行した後、認証処理を終了し、再びステップS21を実行する。
以上のように、認証装置1の認証機13では、第1面画像データ又は第2面画像データを学習モデルGの入力層20に入力することによって、学習モデルGの出力層22からカードCの種類及び表裏の分類の確からしさを示す確率が出力される。制御部54は、この確率に基づいて、カードCの種類及び表裏を特定する。また、第1面画像データを学習モデルGの入力層20に入力することによって、カードCの種類及び表裏を特定することができなかった場合、第2面画像データを学習モデルGの入力層20に入力することによって、カードCの種類及び表裏を特定する。
更に、制御部54は、縮小画像データを学習モデルGの入力層20に入力するので、カードCに表示されている個人情報に基づく確率の出力が学習モデルGで行われることを防止することができる。また、制御部54は、カードCの種類及び表裏を特定した場合、特定結果に基づいて、入力部50から取得した第1面画像データ及び第2面画像データ中の少なくとも一方から個人情報を読み取る。
なお、認証装置1を、個人情報を新規に登録する登録装置として機能させてもよい。認証処理において、例えば、ステップS35で読み取った個人情報に、人物の顔が写っている顔画像が含まれている場合、制御部54は、前述したように、カメラ11が撮影した顔画像データを用いて認証を行う。制御部54は、認証に成功した場合、ステップS35で読み取った個人情報、例えば、氏名、生年月日又は住所等を、記憶部53の図示しないデータベースに記憶する。
(実施の形態2)
実施の形態1におけるモデル生成処理では、1つの縮小画像データを学習モデルGの入力層20に入力する都度、学習モデルGのパラメータを更新する。しかしながら、複数の縮小画像データを学習モデルGの入力層20に入力することによって得られる複数の出力結果に基づいて学習モデルGのパラメータを更新してもよい。
以下では、実施の形態2について、実施の形態1と異なる点を説明する。後述する構成を除く他の構成については、実施の形態1と共通している。このため、実施の形態1と共通する構成部には実施の形態1と同一の参照符号を付してその説明を省略する。
実施の形態2におけるモデル生成装置3では、制御部33は、一時記憶部として、図示しないRAM(Random Access Memory)を有する。変数K,Uの値が記憶部32に記憶されている。変数K,Uの値は、制御部33によって設定される。また、第1基準値及び第2基準値が記憶部32に予め記憶されている。第1基準値及び第2基準値夫々は2以上の整数である。
また、入力部30には、複数の教師データの他に、学習モデルGを評価するための第1評価用データ及び第2用評価データが入力される。第1評価用データ及び第2評価用データ夫々は、教師データと同様に、カードCの表側又は裏側の縮小画像データと、ラベルデータとを含む。ラベルデータは、カードCの種類、及び、カードCの表側又は裏側を示す。
制御部33は、入力部30に教師データ、第1評価用データ又は第2評価用データが入力される都度、記憶処理を実行する。記憶処理では、制御部33は、入力部30に入力された教師データ、第1評価用データ又は第2評価用データを、入力部30から取得し、取得したデータを記憶部32に記憶する。その後、制御部33は記憶処理を終了する。モデル生成処理では、制御部33は、複数の教師データ、第1評価用データ及び第2評価用データを用いて学習モデルGを生成する。学習モデルGの生成で用いる教師データの数は、第1基準値及び所定数の積と一致する。所定数は、2以上の整数である。
図13及び図14は、実施の形態2におけるモデル生成処理の手順を示すフローチャートである。モデル生成装置3のユーザは、操作部31において、モデル生成処理の実行を指示する実行操作を行う。実行操作が行われた場合において、記憶部32に、複数の教師データ、第1評価用データ及び第2評価用データが記憶されているとき、制御部33はモデル生成処理を実行する。
モデル生成処理では、制御部33は、まず、学習モデルGの経路を形成する(ステップS41)。具体的には、制御部33は、入力層20と入力層20に隣接する中間層21とに関する複数のノードの間の経路と、隣接する2つの中間層21,21に関する複数のノード間の経路と、中間層21と中間層21に隣接する出力層22とに関する複数のノード間の経路とを形成する。中間層21で用いられるノード間の重み及びバイアス等のパラメータは適宜設定されている。
制御部33は、ステップS41を実行した後、変数K,Uの値をゼロに設定し(ステップS42)、記憶部32に記憶されている複数の教師データ、第1評価用データ及び第2評価用データを、RAMにロードする(ステップS43)。次に、制御部33は、RAMから1つの教師データを選択し(ステップS44)、選択した教師データに含まれる縮小画像データを学習モデルGの入力層20に入力する(ステップS45)。これにより、縮小画像データに対応する縮小画像に写っているカードCの種類及び表裏の分類の確からしさを示す確率が、出力結果として、学習モデルGの出力層22から出力される。
制御部33は、ステップS45を実行した後、学習モデルGの出力層22が出力した出力結果を取得し(ステップS46)、変数Kの値を1だけインクリメントする(ステップS47)。次に、制御部33は、変数Kの値が第1基準値であるか否かを判定する(ステップS48)。制御部33は、変数Kの値が第1基準値ではないと判定した場合(S48:NO)、ステップS44を再び実行する。再び実行されたステップS44では、制御部33は、ステップS43でロードされた複数の教師データの中で選択していない1つの教師データを選択する。
制御部33は、変数Kの値が第1基準値となるまで、ステップS44〜S47を繰り返し実行し、第1基準値の数と同じ数の出力結果を取得する。第1基準値は、所謂、バッチサイズである。制御部33は、変数Kの値が第1基準値であると判定した場合(S48:YES)、取得した複数の出力結果と、ステップS44で選択した複数の教師データのラベルデータが示す内容とに基づいて、学習モデルGのパラメータを更新する(ステップS49)。次に、制御部33は、RAMに記憶されている全ての教師データをステップS44で選択したか否かを判定する(ステップS50)。
制御部33は、全ての教師データを選択していないと判定した場合(S50:NO)、
変数Kの値をゼロに設定し(ステップS51)、ステップS44を再び実行する。再び実行されたステップS44では、制御部33は、ステップS43でロードされた複数の教師データの中で選択していない1つの教師データを選択する。全ての教師データが選択されるまで、複数の出力結果に基づいて、パラメータを繰り返し更新する。
制御部33は、全ての教師データを選択したと判定した場合(S50:YES)、第1評価用データを用いて学習モデルGを評価する(ステップS52)。ステップS52では、制御部33は、第1評価用データに含まれる縮小画像データを学習モデルGの入力層20に入力し、学習モデルGの出力結果を取得する。制御部33は、この出力結果と、第1評価用データに含まれるラベルデータが示す内容とに基づいて、学習モデルGが適切な出力結果を出力していることを確認する。適切な出力結果が出力されていなかった場合、例えば、モデル生成処理を終了してもよい。この場合、例えば、教師データの数を増やして、再度、モデル生成処理を実行する。
制御部33は、ステップS52を実行した後、変数Uの値を1だけインクリメントし(ステップS53)、変数Uの値が第2基準値であるか否かを判定する(ステップS54)。制御部33は、変数Uの値が第2基準値ではないと判定した場合(S54:NO)、ステップS44を再び実行する。このとき、ステップS43でロードされた複数の教師データの中に選択された教師データはないとして、ステップS44を実行する。変数Uの値が第2基準値となるまで、ステップS43でロードされた複数の教師データを用いて学習モデルGのパラメータを更新する。各教師データが用いられる回数は、第2基準値の数と同じである。第2基準値は、所謂、エポック数である。
制御部33は、変数Uの値が第2基準値であると判定した場合(S54:YES)、第2評価用データを用いて学習モデルGを評価する(ステップS55)。ステップS55では、制御部33は、第2評価用データに含まれる縮小画像データを学習モデルGの入力層20に入力し、学習モデルGの出力結果を取得する。制御部33は、この出力結果と、第2評価用データに含まれるラベルデータが示す内容とに基づいて、学習モデルGが適切な出力結果を出力していることを確認する。適切な出力結果が出力されていなかった場合、例えば、モデル生成処理を終了してもよい。この場合、例えば、教師データの数を増やして、再度、モデル生成処理を実行する。
制御部33は、ステップS55を実行した後、パラメータが更新された学習モデルGを記憶部32に記憶し(ステップS56)、記憶部32に記憶されている全ての教師データ、即ち、学習モデルGのパラメータを更新するために用いた全ての教師データを、RAM及び記憶部32から削除する(ステップS57)。制御部33は、ステップS57を実行した後、モデル生成処理を終了する。
以上のように、実施の形態2におけるモデル生成処理では、複数の縮小画像データを学習モデルGの入力層20に入力することによって得られる複数の出力結果に基づいて学習モデルGのパラメータを更新する。これにより、学習モデルGが生成される。実施の形態2における学習モデルGの生成では、1つの教師データを2回以上用いる。このため、より適切な学習モデルGが生成される。
実施の形態2におけるモデル生成装置3は、実施の形態1におけるモデル生成装置3と同様の効果を奏する。
なお、実施の形態2におけるモデル生成処理において、ステップS53〜S55の処理を省略してもよい。この場合、制御部33は、ステップS52を実行した後、ステップS56を実行する。ステップS53〜S55を省略する場合、第2評価用データ及び変数Uは不要である。
(実施の形態3)
実施の形態1においては、認証機13の制御部54は、開口1bにカードCの種類及び表裏を特定している。しかしながら、制御部54が学習モデルGを用いてカードCの種類及び表裏を特定するとともに、カードCの一面について、上向き及び下向きのいずれであるかを特定してもよい。
以下では、実施の形態3について、実施の形態1と異なる点を説明する。後述する構成を除く他の構成については、実施の形態1と共通している。このため、実施の形態1と共通する構成部には実施の形態1と同一の参照符号を付してその説明を省略する。
図15は、実施の形態3におけるカードCの上下の説明図である。認証装置1の開口1bの一方の長辺側がカードCの表側である場合において、一方の短辺側からカードCを挿入したときの第1面画像データの第1面画像は、他方の短辺側からカードCを挿入したときの第1面画像データの第1面画像とは異なる。認証装置1の開口1bの一方の長辺側がカードCの表側であることは、例えば、図1において、カードCの上面が表側であることである。図15の例では、文字の向きが正常であるカードCの向きを上向きと定義し、文字の向きが逆さであるカードCの向きを下向きと定義している。
図16は学習モデルGの模式図である。学習モデルGでは、カードCの表側又は裏側の縮小画像データと、カードCの種類、カードCの表側又は裏側、及び、カードCの上向き又は下向きを示すラベルデータとを含む教師データを用いて、画像データとカードCの種類、表裏及び上下との関係が学習されている。
中間層21では、教師データに基づき、縮小画像データと、カードCの種類、表裏及び上下との関係が学習されている。
出力層22は、入力画像データに対応する入力画像に写っているカードCの種類、表裏及び上下の分類の確からしさを示す確率を出力する。具体的には、カードCの種類、表裏及び上下の各組合せについて、入力画像データに係るカードCの種類、表裏及び上下の組合せが該当する確率を示す。図16では、カードCの種類、表裏及び上下の組合せを(種類,表又は裏,上又は下)で示している。(運転免許証,表,上)、(運転免許証,表,下)、(運転免許証,裏,上)及び(運転免許証,裏,下)等の組合せ夫々について、入力画像データに係るカードCの種類、表裏及び上下の組合せが該当する確率を示す。
モデル生成装置3の制御部33が取得する教師データは、カードCの表側又は裏側の縮小画像データと、カードCの種類、カードCの表側又は裏側、及び、カードCの上向き又は下向きを示すラベルデータとを含む。制御部33は、実施の形態1と同様に、モデル生成処理を実行する。
認証装置1は、実施の形態1と同様に、モデル生成装置3の制御部33が生成処理で生成した学習モデルGを用いる。認証装置1は、学習モデルGから出力された出力結果に基づいて、開口1bに挿入されたカードCの種類及び表裏を特定するとともに、カードCの一面について、上向き及び下向きのいずれであるかを特定する。実施の形態3におけるモデル生成装置3は、実施の形態1におけるモデル生成装置3が奏する効果を同様に奏する。
なお、モデル生成装置3の制御部33は、実施の形態2と同様に学習モデルGを生成してもよい。この場合、制御部33は、実施の形態2におけるモデル生成処理を実行し、モデル生成装置3は、実施の形態2におけるモデル生成装置3が奏する効果を同様に奏する。
認証機13の制御部54は、実施の形態1と同様に認証処理を実行する。実施の形態3においては、学習モデルGの出力層22から、カードCの種類、表裏及び上下の分類の確からしさを示す確率が、出力結果として出力される。認証処理のステップS25,S29夫々では、制御部54は、カードCの種類、表裏及び上下の特定を行うことが可能であるか否かを判定する。ステップS31では、制御部54は、ステップS24又はステップS28で取得した出力結果に基づいて、開口1bに挿入されたカードCの種類及び表裏を特定するとともに、第1面又は第2面について、上向き及び下向きのいずれであるかを特定する。
以上のように、認証装置1では、第1面画像データ又は第2面画像データを学習モデルGの入力層20に入力することによって、学習モデルGの出力層22からカードCの種類、表裏及び上下の分類の確からしさを示す確率が出力される。制御部54は、この確率に基づいて、カードCの種類及び表裏を特定するとともに、カードCの一面について、上向き及び下向きのいずれであるかを特定する。また、第1面画像データを学習モデルGの入力層20に入力することによって、カードCの種類、表裏及び上下に関する特定を行うことができなかった場合、第2面画像データを学習モデルGの入力層20に入力することによって、カードCの種類及び表裏を特定するとともに、カードCの一面が上向き及び下向きのいずれであるかを特定する。
実施の形態3における認証装置1は、実施の形態1における認証装置1が奏する効果を同様に奏する。実施の形態3における認証装置1では、第1面画像又は第2面画像が写っている第1面又は第2面について、上向き及び下向きのいずれであるかを特定するので、個人情報の読み取りが容易である。
(実施の形態4)
図17は、実施の形態4における認証システム7の概略図である。
以下では、実施の形態4について、実施の形態1と異なる点を説明する。後述する構成を除く他の構成については、実施の形態1と共通している。このため、実施の形態1と共通する構成部には実施の形態1と同一の参照符号を付してその説明を省略する。
認証システム7は、複数の認証装置1,1,・・・と、モデル生成装置3とを備える。これらはネットワークN1に接続されている。実施の形態4では、各認証装置1は、学習モデルG及び教師データをモデル生成装置3に送信する。モデル生成装置3は、学習モデルGの再学習を行う。
図18は、認証装置1の要部構成を示すブロック図である。認証装置1の認証機13は、更に、通信部56を有する。通信部56も内部バス55に接続されている。通信部56は、制御部54の指示に従って、学習モデルG及び教師データをモデル生成装置3に送信する。通信部56は、モデル生成装置3から、再学習で更新された学習モデルGを受信する。制御部54は、通信部56から、通信部56が受信した学習モデルGを取得する。教師データは、学習モデルGに入力した縮小画像データと、カードCの種類、及び、カードCの表側又は裏側を示すラベルデータとを含む。ラベルデータが示す内容は、認証処理で制御部54が特定した特定結果に基づく。
認証機13の制御部54は、認証処理において、ステップS31でカードCの種類及び表裏を特定した場合、学習モデルGに入力した縮小画像データと、この縮小画像データに対応する縮小画像に写っているカードCの種類及び向きを示すラベルデータとを含む教師データを生成し、生成した教師データを記憶部53に記憶する。ラベルデータが示すカードCの向きは、表側及び裏側の一方である。認証処理において、制御部54は、第1面画像データの縮小画像データを学習モデルGに入力して、カードCの種類を運転免許証と特定し、カードCの第1面を表側と特定したと仮定する。このとき、制御部54は、第1面画像データの縮小画像データと、運転免許証及び表側を示すラベルデータとを含む教師データを生成する。
認証装置1では、制御部54は、コンピュータプログラム60を実行することによって、学習モデルGを更新する更新処理も実行させる。
図19は、モデル生成装置3の要部構成を示すブロック図である。実施の形態4におけるモデル生成装置3は、実施の形態1におけるモデル生成装置3が有する構成部の中で入力部30を除く他の構成部を有する。実施の形態4におけるモデル生成装置3は、入力部30の代わりに通信部35を有する。通信部35も内部バス34に接続されている。通信部35は、認証機13の通信部56から学習モデルG及び教師データを受信する。モデル生成装置3の通信部35が受信した学習モデルG及び教師データは、制御部33によって取得される。通信部35は、制御部33の指示に従って、学習モデルGを認証機13の通信部56に送信する。モデル生成装置3では、制御部33は、コンピュータプログラム40を実行することによって、学習モデルGの再学習を行う再学習処理を実行する。
図20は、認証機13及びモデル生成装置3が行う処理の手順を示すフローチャートである。図20には、認証機13の制御部54が実行する更新処理と、モデル生成装置3の制御部33が実行する再学習処理とが示されている。制御部54は更新処理を周期的に実行する。制御部33も再学習処理を周期的に実行する。
認証機13の制御部54は、学習モデルGを更新するか否かを判定する(ステップS61)。制御部54は、例えば、記憶部53に記憶されている教師データの数が所定数以上である場合に、学習モデルGを更新すると判定し、記憶部53に記憶されている教師データの数が所定数未満である場合に学習モデルGを更新しないと判定する。
制御部54は、学習モデルGを更新すると判定した場合(S61:YES)、通信部56に指示して、記憶部53に記憶されている学習モデルG及び教師データを、ネットワークN1を介してモデル生成装置3の通信部35に送信させる(ステップS62)。モデル生成装置3の制御部33は、通信部35が認証機13の通信部56から学習モデルG及び教師データを受信したか否かを判定する(ステップS71)。
モデル生成装置3の制御部33は、通信部56が学習モデルG及び教師データを受信したと判定した場合(S71:YES)、通信部35が受信した学習モデルG及び教師データを記憶部32に記憶し(ステップS72)、図7に示すモデル生成処理を実行する(ステップS73)。これにより、通信部35が受信した学習モデルGの再学習が行われる。学習モデルGの再学習で用いられる教師データは、制御部54が学習モデルGに入力した縮小画像データと、認証処理のステップS31で制御部54が特定したカードCの向き(表側又は裏側)を示すラベルデータとを含む。
次に、制御部54は、通信部35に指示して、再学習された学習モデルGを認証機13の通信部56に送信させる(ステップS74)。制御部33は、通信部35が学習モデルG及び教師データを受信していないと判定した場合(S71:NO)、又は、ステップS74を実行した後、再学習処理を終了する。
認証機13の制御部54は、ステップS62を実行した後、通信部56が、モデル生成装置3の通信部35から学習モデルGを受信したか否かを判定する(ステップS63)。制御部54は、学習モデルGを受信していないと判定した場合(S63:NO)、ステップS63を再び実行し、通信部56が学習モデルGを受信するまで待機する。制御部54は、通信部56が学習モデルGを受信したと判定した場合(S63:YES)、記憶部53に記憶されている学習モデルGを、通信部56が受信した学習モデルGに更新する(ステップS64)。
制御部54は、学習モデルGを更新しないと判定した場合(S61:NO)、ステップS64を実行した後、更新処理を終了する。
実施の形態4における認証装置1は、実施の形態1における認証装置1が奏する効果を同様に奏する。更に、実施の形態4における認証装置1に記憶されている学習モデルGは、再学習が行われることによって、定期的に改善される。
なお、モデル生成装置3の制御部33は、実施の形態2と同様にモデル生成処理を実行してもよい。ただし、再学習処理のステップS73で実行されるモデル生成処理では、ステップS41が省略され、制御部33は、ステップS42から実行する。また、実施の形態4における学習モデルGは、実施の形態3における学習モデルGと同様であってもよい。この場合、ラベルデータが示すカードの向きは、表側及び裏側の一方、及び、上側及び下側の一方である。認証処理において、制御部54は、第1面画像データの縮小画像データを学習モデルGに入力して、カードCの種類を運転免許証と特定し、第1面に関するカードCの向きを表側及び上側と特定したと仮定する。このとき、制御部54は、第1面画像データの縮小画像データと、運転免許証、表側及び上側を示すラベルデータとを含む教師データを生成する。
また、学習モデルGの再学習において、認証機13の通信部56は、学習モデルGの代わりに学習モデルGのパラメータを示す情報をモデル生成装置3の通信部35に送信してもよい。この場合、モデル生成装置3の制御部33は、通信部35が受信したパラメータに基づいて学習モデルGを生成し、生成した学習モデルGの再学習を行う。更に、通信部35は、通信部56に、学習モデルGの代わりに、学習モデルGのパラメータを示す情報を送信してもよい。この場合、認証機13の制御部54は、学習モデルGのパラメータを、受信した情報に基づいて更新する。
なお、実施の形態1〜4における認証装置1において、カードCの第1面画像データ及び第2面画像データを取得する装置は、スキャナに限定されず、例えば、カメラであってもよい。第1面画像データ及び第2面画像データを取得するカメラとして、工業用カメラ、家庭用カメラ、携帯電話機のカメラ又はスマートフォンのカメラ等が挙げられる。
(実施の形態5)
図21は、実施の形態5における認証システム8の要部構成を示すブロック図である。認証システム8はユーザ端末80及びサーバ81を備える。ユーザ端末80及びサーバ81はネットワークN2に接続されている。ユーザ端末80は、ユーザによって操作される。ユーザ端末80は、カードCの2面の2つの画像データを、ネットワークN2を介してサーバ81に送信する。サーバ81は、ユーザ端末80から受信した2つの画像データに基づいて、実施の形態1における認証機13と同様に、カードCの所有者を認証する。
以下では、実施の形態5について、実施の形態1と異なる点を説明する。後述する構成を除く他の構成については、実施の形態1と共通している。このため、実施の形態1と共通する構成部には実施の形態1と同一の参照符号を付してその説明を省略する。
サーバ81は、通信部90、記憶部91及び制御部92を有する。これらは内部バス93に接続されている。
通信部90は、ユーザ端末80からカードCの第1面及び第2面の画像データを受信する。受信した2つの画像データは、制御部92によって取得される。通信部90は、更に、制御部92の指示に従って、特定不可情報、対象外情報、読み取り不可情報及び結果情報をユーザ端末80に送信する。
記憶部91は例えば不揮発性メモリである。記憶部91には、学習モデルG、コンピュータプログラム60、認証用テーブル61及び読み取りルールデータベース62が記憶されている。
制御部92は、CPU、GPU又はTPU等の処理素子を有する。実施の形態5では、コンピュータプログラム60は、認証処理を、制御部92が有する処理素子(コンピュータ)に実行させるために用いられる。なお、処理素子の数は2以上であってもよい。この場合、複数の処理素子が認証処理を協同で実行してもよい。
制御部92は認証処理を繰り返し実行する。実施の形態5における認証処理は、実施の形態1における認証処理と同様である。実施の形態5における認証処理のステップS21では、通信部90がユーザ端末80から第1面及び第2面の画像データを受信したか否かを判定する。実施の形態5における認証処理のステップS38では、制御部92は、顔画像とは異なる個人情報、例えば、氏名、住所又は生年月日等の個人情報に基づいて認証を行う。
実施の形態5における認証処理のステップS39では、通信部90に指示して結果情報をユーザ端末80に送信させる。これにより、例えば、ユーザ端末80が有する図示しないディスプレイに認証結果が表示される。実施の形態5における認証処理のステップS30、ステップS33又はステップS37では、通信部90に指示して特定不可情報、対象外情報又は読み取り不可情報をユーザ端末80に送信させる。これにより、例えば、ユーザ端末80が有する図示しないディスプレイに、カードCを特定することができなかったこと、カードCの種類が対象外カードの種類であること、又は、読み取りを行うことができなかったことが表示される。
実施の形態5では、制御部92が取得部、特定部、縮小部として機能し、通信部90が第1情報出力部、第2情報出力部及び第3情報出力部として機能し、サーバ81が特定装置として機能する。
以上のように構成されたサーバ81は、実施の形態1における認証機13が奏する効果と同様の効果を奏する。
学習モデルGは、実施の形態1と同様にモデル生成装置3によって生成される。
なお、モデル生成装置3の制御部33は、実施の形態2と同様に学習モデルGを生成してもよい。また、実施の形態5における学習モデルGは、実施の形態3における学習モデルGであってもよい。この場合、認証機13の制御部54は、カードCの種類及び表裏を特定するとともに、カードCの一面が上側及び下側のいずれであるかを特定する。更に、実施の形態5において、実施の形態4と同様に、モデル生成装置3がネットワークN2に接続され、モデル生成装置3がサーバ81の記憶部91に記憶されている学習モデルGの再学習を行ってもよい。
なお、実施の形態1〜5において、学習モデルGは、出力層22がカードCの種類及び表裏等の組合せの中で、確率が最も高い組合せを出力する学習モデルであってもよい。更に、学習モデルGは、カードCの表裏が写っている1つの画像に対応する画像データと、カードCの種類を示すラベルデータとを含む教師データを用いて、画像データとカードの種類との関係を学習した学習モデルであってもよい。この場合、学習モデルGが出力する出力結果では、種類に係る複数の確率を示し、認証機13の制御部54又はサーバ81の制御部92は、認証処理において、カードCの種類を特定する。前述したように、教師データの画像データとして、運転免許証を含む複数種類のカードC,C,・・・夫々の表裏の縮小画像データが用いられる。
また、学習モデルGは、カードCではなく、パスポート、銀行の通帳、生徒手帳、年金手帳、身体障害者手帳又は母子健康手帳等の冊子の画像に対応する画像データと、冊子の種類を示すラベルデータとを含む教師データを用いて、画像データと冊子の種類との関係を学習した学習モデルであってもよい。この場合、学習モデルGが出力する出力結果では、種類に係る複数の確率を示し、認証機13の制御部54又はサーバ81の制御部92は、認証処理において、冊子の画像データを取得し、冊子の種類を特定する。制御部54又は制御部92は、特定した種類に対応する読み取りルールに従って、冊子の画像データから個人情報を読み取る。冊子の画像は、例えば、個人情報が記載された特定のページの画像である。冊子の種類として、パスポート、銀行の通帳、生徒手帳、年金手帳、身体障害者手帳又は母子健康手帳等が挙げられる。冊子の画像データは、例えば、工業用カメラ、家庭用カメラ、携帯電話機のカメラ又はスマートフォンのカメラ等を用いて冊子を撮影することによって取得される。前述したように、教師データの画像データとして、冊子の縮小画像データが用いられる。
また、教師データに含まれる画像データ、及び、学習モデルGに入力される画像データ夫々は、縮小画像データに限定されず、縮小前の画像データであってもよい。この場合であっても、実施の形態1〜4における認証機13、実施の形態5におけるサーバ81及び実施の形態1〜5におけるモデル生成装置3は、前述した効果の中で縮小によって得られる効果を除く他の効果を同様に奏する。この構成では、例えば、個人情報を削除した画像データを教師データの画像データとして用いてもよい。また、縮小前の画像データにおいて、個人情報の変更又は削除が行われた画像データ、又は、縮小前の画像データにノイズを追加した画像データを教師データの画像データとして用いてもよい。
更に、実施の形態1〜3における認証機13又は実施の形態5におけるサーバ81に、モデル生成装置3が行う学習モデルGの生成機能を持たせてもよい。
実施の形態1〜5で記載されている技術的特徴(構成要件)はお互いに組み合わせ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
開示された実施の形態1〜5はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。