(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-28
(45)【発行日】2024-01-12
(54)【発明の名称】生体(liveness)検出検証方法、生体検出検証システム、記録媒体、及び生体検出検証システムの訓練方法
(51)【国際特許分類】
G06F 21/32 20130101AFI20240104BHJP
【FI】
G06F21/32
(21)【出願番号】P 2022151833
(22)【出願日】2022-09-22
(62)【分割の表示】P 2021546318の分割
【原出願日】2020-03-24
【審査請求日】2022-09-22
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100110135
【氏名又は名称】石井 裕一郎
(72)【発明者】
【氏名】ワスニック パンカジ
(72)【発明者】
【氏名】チェ ヨンナム
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2011-215942(JP,A)
【文献】特開2021-144580(JP,A)
【文献】国際公開第2004/029905(WO,A1)
【文献】米国特許出願公開第2009/0138405(US,A1)
【文献】米国特許出願公開第2017/0308739(US,A1)
【文献】米国特許出願公開第2013/0227678(US,A1)
【文献】米国特許出願公開第2019/0102531(US,A1)
【文献】特表2016-517548(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/32
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの処理装置により生体(liveness)検出を検証する方法であって、
前記処理装置が、ランダムに生成されたフレーズに基づいて、ユーザが話した動画の音声データと、前記動画の動画データとを取得するステップと、
前記処理装置が、取得された前記動画データと取得された前記音声データと
を、第1の決定モデルに入力することで、前記ユーザの口の動きが前記音声データと同期している
確率である第1の
確率を取得するステップと、
前記処理装置が、前記音声データに対応する第1の入力と前記ランダムに生成されたフレーズに対応する第2の入力
を、第2の決定モデルに入力することで、前記ユーザによって話された内容が、前記ランダムに生成されたフレーズに対応する
確率である第2の
確率を取得するステップと、
前記処理装置が、前記第1の
確率および前記第2の
確率に基づいて、前記ユーザの生体検出を検証するステップと、を含む、
生体検出検証方法。
【請求項2】
前記動画を取得するステップをさらに含み、
前記処理装置が、前記動画の前記音声データと、前記動画の前記動画データとを取得するステップでは、前記動画を処理することで、前記動画の前記音声データと、前記動画の前記動画データとを取得する、請求項1に記載の生体検出検証方法。
【請求項3】
命令を保存するメモリと、
前記命令を実行する少なくとも1つのプロセッサと、を備え、
前記命令は、
ランダムに生成されたフレーズに基づいて、ユーザが話した動画の音声データと、前記動画の動画データとを取得すること、
取得された前記動画データと取得された前記音声データと
を、第1の決定モデルに入力することで、前記ユーザの口の動きが前記音声データと同期している
確率である第1の
確率を取得すること、
前記音声データに対応する第1の入力と前記ランダムに生成されたフレーズに対応する第2の入力
を、第2の決定モデルに入力することで、前記ユーザによって話された内容が、前記ランダムに生成されたフレーズに対応する
確率である第2の
確率を取得すること、
前記第1の
確率および前記第2の
確率に基づいて、前記ユーザの生体検出を検証すること、を含む、
生体検出検証システム。
【請求項4】
1以上のプロセッサに、
ランダムに生成されたフレーズに基づいて、ユーザが話した動画の音声データと、前記動画の動画データとを取得するステップと、
取得された前記動画データと取得された前記音声データと
を、第1の決定モデルに入力することで、前記ユーザの口の動きが前記音声データと同期している
確率である第1の
確率を取得するステップと、
前記音声データに対応する第1の入力と前記ランダムに生成されたフレーズに対応する第2の入力
を、第2の決定モデルに入力することで、前記ユーザによって話された内容が、前記ランダムに生成されたフレーズに対応する
確率である第2の
確率を取得するステップと、
前記第1の
確率および前記第2の
確率に基づいて、前記ユーザの生体検出を検証するステップと
、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ本人認証に関し、より具体的には、ユーザの同一性を認証するために音声と視覚の整合性のチェックを用いる生体検出に関する。
【背景技術】
【0002】
電子による顧客確認(eKYC)手続きは、顧客の身元を識別及び検証するために、銀行、保険、ホテル、金融サービス、サービスへの支払等、様々な業界で使用される。eKYCの関連技術スキームは、典型的には、生体認証システムを採用している。
図1に示すように、生体認証システムは、2つの段階を含む。ユーザの生体特徴がデータベース内のユーザにマッピングされる登録段階と、ユーザを認証するために、センサによってユーザの生体特徴を抽出し、予めデータベースに登録された特徴と比較する認証段階である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、生体システムの関連技術は、生体システムの動作を欺くか又は他の妨害することを目的とした様々なタイプのなりすまし攻撃、すなわち、生体取得サブシステム(例えば、生体センサ)への不正ななりすまし等に対して、脆弱である。例えば、生体特性のコピーを人工的に表す人工物を生体システムに提示して、登録ユーザをスプーフィングし、攻撃者を認証させることができる。
【0004】
なりすまし攻撃には、二次元(2D)攻撃、三次元(3D)攻撃、及び音声攻撃が含まれる。2D攻撃には、登録ユーザの印刷写真(例えば、顔画像)、又は登録ユーザの生体特徴の人工物(例えば、偽の指紋)を提示する印刷攻撃、携帯電話などの表示装置を介して登録ユーザの画像を提示する表示攻撃、登録ユーザの動画を提示する動画攻撃が含まれる。一方、3D攻撃には、ウェアラブルの印刷された又はシリコンの3Dマスクが攻撃者によって着用される、又はユーザの生体特徴の3D人工物(例えば、偽の虹彩)が着用される、あるいは他の方法で、登録ユーザスプールするために偽装する攻撃者により提示される、マスク攻撃が含まれる。
【0005】
eKYC関連技術スキームは、様々ななりすまし攻撃検出メカニズムを使用して、なりすまし攻撃を自動的に認定し防止する。このようなメカニズムには、ユーザを検証するための3D顔深度マップを作成する深度マップ分析による顔検出、心拍数又は心臓モニタリングに基づいてユーザを検証する遠隔フォトプレチスモグラフィー(rPPG)法、及びリアルタイムの熱画像に基づいてユーザを検証する熱画像に基づく顔の生体検出が含まれる。しかしながら、これらのメカニズムにはさまざまな欠点がある。例えば、3D顔深度分析と熱画像に基づく顔の生体検出は、双方とも、追加のセンサ(例えば、サーマルカメラ)が必要であり、これにより、コストも高くなり、メカニズムも複雑になる。さらに、rPPG法は、膨大な時間がかかり、精度が比較的低い。
【0006】
本発明は、ランダムフレーズチャレンジを基に、ユーザの音声と視覚の類似性のチェックを検証するための生体検出検証方法、生体検出検証システム、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の観点に係る生体検出検証方法は、
少なくとも1つの処理装置により生体検出を検証する方法であって、
ランダムに生成されたフレーズに基づいて、ユーザが話した動画の音声データと、前記動画の動画データとを取得するステップと、
取得された前記動画データと取得された前記音声データとに基づいた、前記ユーザの口の動きが前記音声データと同期しているかどうかを判断するための第1の情報を取得するステップと、
前記音声データに対応する第1の入力と前記ランダムに生成されたフレーズに対応する第2の入力とに基づいた、前記ユーザによって話された内容が、前記ランダムに生成されたフレーズに対応するかどうかを判断するための第2の情報を取得するステップと、
前記第1の情報および前記第2の情報に基づいて、前記ユーザの生体検出を検証するステップと、を含む。
【0008】
前記第1の情報を取得するステップでは、前記動画データと前記音声データとを第1の決定モデルに入力することで、前記第1の情報を取得する、こととしてもよい。
【0009】
前記第2の情報を取得するステップでは、前記第1の入力と前記第2の入力とを第2の決定モデルに入力することで、前記第2の情報を取得する、こととしてもよい。
【0010】
前記動画を取得するステップをさらに含み、
前記動画の前記音声データと、前記動画の前記動画データとを取得するステップでは、前記動画を処理することで、前記動画の前記音声データと、前記動画の前記動画データとを取得する、こととしてもよい。
【0011】
本発明の第2の観点に係る生体検出検証システムは、
命令を保存するメモリと、
前記命令を実行する少なくとも1つのプロセッサと、を備え、
前記命令は、
ランダムに生成されたフレーズに基づいて、ユーザが話した動画の音声データと、前記動画の動画データとを取得すること、
取得された前記動画データと取得された前記音声データとに基づいた、前記ユーザの口の動きが前記音声データと同期しているかどうかを判断するための第1の情報を取得すること、
前記音声データに対応する第1の入力と前記ランダムに生成されたフレーズに対応する第2の入力とに基づいた、前記ユーザによって話された内容が、前記ランダムに生成されたフレーズに対応するかどうかを判断するための第2の情報を取得すること、
前記第1の情報および前記第2の情報に基づいて、前記ユーザの生体検出を検証すること、を含む。
【0012】
本発明の第3の観点に係るプログラムは、
1以上のプロセッサに、
ランダムに生成されたフレーズに基づいて、ユーザが話した動画の音声データと、前記動画の動画データとを取得するステップと、
取得された前記動画データと取得された前記音声データとに基づいた、前記ユーザの口の動きが前記音声データと同期しているかどうかを判断するための第1の情報を取得するステップと、
前記音声データに対応する第1の入力と前記ランダムに生成されたフレーズに対応する第2の入力とに基づいた、前記ユーザによって話された内容が、前記ランダムに生成されたフレーズに対応するかどうかを判断するための第2の情報を取得するステップと、
前記第1の情報および前記第2の情報に基づいて、前記ユーザの生体検出を検証するステップと、を含むステップ、を実行させる。
【0013】
追加の態様は、以下の説明において、少なくとも部分的に明らかであるか、又は説明され、又は提示された実施形態の実施によって理解され得る。
【0014】
これら及び/又は他の態様は、以下の説明から、以下の添付の図面と併せて明らかになり、より容易に理解されるであろう。
【図面の簡単な説明】
【0015】
【
図2】本発明の実施形態における第1の機械学習モデルと第2の機械学習モデルを訓練する訓練方法のフローチャートである。
【
図3】本実施形態における訓練方法を実行する例を示すフローチャートである。
【
図4】本実施形態における生体検出検証方法のフローチャートである。
【
図5】本実施形態における生体検出検証方法を実行する例を示すフローチャートである。
【
図6】本実施形態における生体検出検証方法を実行する例を示すフロー図である。
【
図7】本実施形態における生体検出検証システムのデータ処理方法を示すフローチャートである。
【
図8】本実施形態における生体検出検証システムのブロック図である。
【
図9】本実施形態における生体検出検証システムのデータ処理方法を示すブロック図である。
【
図10】一以上の実施の形態におけるシステム及び/又は方法を実行する環境例のブロック図である。
【発明を実施するための形態】
【0016】
以下、本開示の例示的な実施形態を、全体を通して同じ参照番号が同じ要素を示す添付の図面を参照して、詳細に説明する。しかしながら、本開示は、本明細書に記載の実施形態に限定されず、一実施形態の特徴及び構成要素は、別の実施形態に含まれるか、又は省略できることが理解される。
【0017】
さらに、本明細書で使用される場合、「少なくとも1つ」などの表現は、要素の列挙の前に使用する場合、要素の全体の列挙を変更するものであり、列挙された個々の要素を変更するものではないと理解される。 例えば、「[A],[B],及び[C]の少なくとも1つ」又は「[A],[B],又は[C]の少なくとも1つ」という表現は、Aのみ、Bのみ、Cのみ、A及びB、B及びC、A及びC、又は、A,B,及びC、を意味する。
【0018】
本明細書では、様々な要素を説明するために、「第1」、「第2」等の用語が使用される可能性があるが、これらの要素はこれらの用語によって限定されるべきではない(例えば、相対的な順序又は重要性を特定して解釈されるべきではない)ことも理解される。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。
【0019】
さらに、本明細書で使用される場合、単数形を示す「a」、「an」及び「the」は、他に明示的に又は周囲の文脈によって明示されない限り、複数形も含むことを意図している。
【0020】
本開示の1つ又は複数の実施形態は、生体認証をより確実かつ効果的に保護し、なりすまし攻撃を防止できるeKYCアプリケーションのための生体検出検証システム及び方法を提供する。特に、1つ又は複数の実施形態による生体検出検証方法は、口の動きと音声との整合性を決定するために(すなわち、音声と視覚の類似性検出)、ユーザの音声及び視覚情報を取得及び比較する第1の決定を含む。なりすまし攻撃(例えば、動画攻撃)をさらに防止するために、生体検出検証方法は、ランダムフレーズを利用(例えば、認証時にランダムフレーズを生成する)するとともに、ランダムなフレーズが話され、それによる生体検出の検証を確認するための追加の整合性チェック(第2の決定)を含む。ランダムなフレーズを使用し、音声認識を組み込んで、フレーズが話されていることを確認するので、ユーザはリアルタイムで話す必要があり、それにより以前に記録又は改ざんされた動画の使用は排除される。
【0021】
1つ又は複数の実施形態において、第1の決定、すなわち音声と視覚の類似性検出は、口の動きが音声と同期している第1の確率(例えば、口の動きと音声の第1の程度の一致確率)を決定するために、第1の機械学習モデル(例えば、ニューラルネットワーク、深層学習モデル、畳み込みニューラルネットワーク(CNN))を利用することができる。さらに、第2の決定、すなわち音声認識は、ランダムフレーズがユーザによって話される第2の確率(例えば、音声とランダムフレーズの間の第2の程度の一致確率)を決定するために、第2の機械学習モデル(例えば、ニューラルネットワーク、深層学習モデル、人工リカレントニューラルネットワーク、長短期メモリ(LSTM)ネットワークなど)を利用することができる。したがって、第1の確率と第2の確率の双方が閾値を超える場合(例えば、組み合わされた損失が所定の値を下回るか、1つ又は複数の所定の条件を満たす場合)、ユーザの生体検出が検証される。
【0022】
1つ又は複数の実施形態による生体検出検証システム及び方法を組み込んだeKYCアプリケーション(例えば、オンライン認証システム)は、顔認識などのユーザを認証するための追加の手段をさらに含み得る。ここで、顔認識は、例えば、生体検出が検証される前又は後に追加の画像を取得することにより別個に実行され得る、又は生体検出のために取得された動画から取得された画像を使用して実行され得る。顔認識は、生体認証の一例に過ぎず、1つ又は複数の他の実施形態では、指紋検出、虹彩スキャンなどの他の生体認証スキームを利用してユーザを認証できると理解される。
【0023】
図2は、一実施形態における、第1の機械学習モデルと第2の機械学習モデルを訓練するための訓練方法のフローチャートであり、
図3は、一実施形態における訓練方法を実行した例のフローチャートである。
【0024】
図2に示すように、データ前処理は、動作210において、ランダムに生成されたフレーズを話すユーザを撮影した動画に対して実行される。データ前処理は、第1の機械学習モデルへの入力用に、ランダムに生成されたフレーズに対応して、動画データ(例えば、動画フレーム)と音声データ(例えば、音声フレーム)を取得するために実行される。例えば、第1の機械学習モデルは、
図3の例に示すように、動画データのための3D CNNと音声データのための3D CNNを含み得る。データ前処理の詳細な説明は、
図7を参照して以下に示す。
【0025】
本実施形態は、ランダムに生成されたフレーズを参照して説明するが、1つ又は複数の他の実施形態はそれに限定されないと理解される。例えば、別の実施形態によれば、データ前処理は、所定の質問への回答に対応するフレーズを話すユーザを撮影した動画に対して実行される。
【0026】
動作220において、ランダムに生成されたフレーズは、第2の機械学習モデル(例えば、リカレントニューラルネットワーク)を含む音声認識部(例えば、音声認識エンジン、音声認識プロセッサ)に入力される。例えば、ランダムに生成されたフレーズの文字又は単語列は、損失(例えば、CTC(connectionist temporal classification)損失)を決定するためのラベルとして音声認識部に入力され得る。動作210及び220は、同時に、実質的に同時に、又は順次に実行され得る(例えば、少なくとも部分的又は完全に動作220に先行する動作210又は動作220を処理する動作210)。
【0027】
上記のように、本実施形態は、ランダムに生成されたフレーズを参照して説明するが、1つ又は複数の他の実施形態は、それに限定されないと理解される。例えば、別の実施形態によれば、所定の質問に対する回答に対応する所定のフレーズが、音声認識部に入力される。この場合、所定のフレーズの文字又は単語列は、損失(例えば、CTC損失)を決定するためのラベルとして、音声認識部に入力され得る。
【0028】
動作230において、第1の機械学習モデルは、動画データと音声データを処理して、口の動きが音声と同期している第1の確率(例えば、口の動きと音声との間の第1の程度の一致確率)を取得する。例えば、第1の確率は、動画データの3D CNNの全結合層と音声データの3D CNNの全結合層からの特徴の間の測定距離に基づく、コントラスティブ・ロス値である。一実施形態によるコントラスティブ・ロス関数(L
1(Y,X))は、以下の数1に従う。
【数1】
ここで、
【数2】
【数3】
ここで、L
1はコントラスティブ・ロスに対応し、X
vidは、ネットワーク1(動画ネットワーク)に対応し、動画フレームデータと(nxWxH)は入力データの形状であり、X
audは、ネットワーク2(音声ネットワーク)に対応し、音声フレームデータと(nxWxH)は入力データの形状である。(X
vid,X
aud)
iは、i番目の入力ペアに対応し、Y
iは、ラベル(1-本物のペア、つまりフレーム(X
vid,X
aud)が同じIDからのものであり、0-偽のペア、つまりフレーム(X
vid,X
aud)が異なるIDからのものである場合)に対応する。Nは、訓練サンプルの数であり、D
Cは、入力X
vid,X
audを持つ両方のネットワークのFC層の出力間のユークリッド距離である。λは、正則化パラメーターであり、Mは、事前定義されたマージンであり、nは、フレーム数に対応し、Wは、フレームの幅に対応し、Hは、フレームの高さに対応する。
【0029】
動作240において、第2の機械学習モデルは、音声データを処理して、動作220においてランダムに生成されたフレーズの入力に基づいて音声認識を実行し、ユーザにより話されたランダムフレーズの第2の確率を取得する。第2の確率は、CTC損失値であってもよい。一実施形態において、第2の機械学習モデルは、音声認識を実行するために、第1の機械学習モデルから音声データ出力を受信することができる。例えば、第2の機械学習モデルは、ランダムに生成されたフレーズの文字又は単語列のラベルと同様に、第1の機械学習モデルの音声データの3D CNNから、全結合層(又はその特徴)を受信できる。これらの入力に基づいて、第2の機械学習モデルは、音声認識を実行してCTC損失値を取得できる。
【0030】
上記のように、本実施形態は、ランダムに生成されたフレーズを参照して説明するが、1つ又は複数の他の実施形態は、それに限定されないと理解される。例えば、別の実施形態によれば、ユーザによって話されたフレーズ(すなわち、音声データ)が所定のフレーズに対応するかどうかを決定するために、所定の質問への回答に対応する所定のフレーズが、音声認識部に入力される。すなわち、別の実施形態によれば、第2の機械学習モデルは、所定のフレーズの文字又は単語列のためのラベルと同様に、第1の機械学習モデルの音声データのための3D CNNから、全結合層(又はその特徴)を、受け取ることができる。これらの入力に基づいて、第2の機械学習モデルは、音声認識を実行してCTC損失値を取得できる。
【0031】
動作250において、第1の確率(例えば、コントラスティブ・ロス値)と第2の確率(例えば、CTC損失値)が合算される。
【0032】
動作260において、合算された確率(例えば、合算された損失)は、誤差逆伝播アルゴリズムを介して伝達され、第1及び第2の機械学習モデル(例えば、動画データの3D CNN、音声データの3D CNN、及びリカレントニューラルネットワーク)の重み付けが更新される。次に、訓練方法は、例えば、
図3に示す停止基準に到達するまで、繰り返し実行され得る。
【0033】
一実施形態によれば、第1の機械学習モデルと第2の機械学習モデルは双方とも、上記のように互いに関連して、同じ訓練データセットから訓練される。したがって、第1の機械学習モデルと第2の機械学習モデルを同時に訓練することができ、それにより、機械学習モデルが別々に訓練される場合と比較して、訓練時間を短縮及び合理化できる。訓練されたモデルは、次に、以下に示す
図4-6を参照して説明するように、生体検出検証方法を実行するために使用できる。
【0034】
図4は、一実施形態による生体検出検証方法のフローチャートであり、
図5は、一実施形態による生体検出検証方法の実施例のフローチャートであり、
図6は、一実施形態による生体検出検証方法の実施例の流れを示す図である。生体検出検証方法は、eKYCアプリケーションに関連して、例えば、ユーザ又は顧客のオンライン認証を実行するためのサーバによって、実行され得る。
【0035】
図4に示すように、データ前処理は、動作410において実行され、音声視覚類似性検出部の第1の機械学習モデル(例えば、音声視覚類似性検出エンジン、音声視覚類似性検出プロセッサなど)に入力するため、ランダムに生成されたフレーズに対応する動画データ(例えば、動画フレーム)及び音声データ(例えば、
図6に示す、音声フレーム又は音声スペクトログラム)を取得する。上記のように、そして、
図5及び
図6の例に示すように、第1の機械学習モデルは、動画データ用の動画ネットワーク(例えば、3D CNN)と音声ネットワーク(例えば、音声データ用の3D CNN)を含み得る。さらに、動作410におけるデータ前処理は、機械学習モデルを訓練する、例えば
図2の動作210、ために実行されるものと同じであるか、又は実質的に類似している。
【0036】
データ前処理では、ランダムに生成されたフレーズが、ユーザにより読み取られるために提供される。例えば、第1のサーバは、フレーズを生成するか、さもなければ取得し、それをユーザデバイスのディスプレイ上に表示(例えば、ウェブページ、アプリケーション、ユーザインターフェイスを介して)するために、ユーザデバイス(例えば、携帯電話、パーソナルコンピュータなど)に送信し得る。続いて、ランダムに生成されたフレーズを読むユーザの動画データと音声データを取得し得る。例えば、第1のサーバ又は第2のサーバは、ユーザデバイスから、ランダムに生成されたフレーズを読むユーザの動画(動画データと音声データを含む)を受信することができる。動画は、カメラ又はイメージセンサ、及びユーザデバイスのマイクによって取得され得る。次に、受信された動画は、前処理され、動画データ(例えば、動画フレーム)と音声データ(例えば、
図6に示されるような音声フレーム又はスペクトログラム)が取得される。データ前処理の詳細な説明は、
図7を参照して以下に示す。
【0037】
本実施形態は、ランダムに生成されたフレーズを参照して説明するが、1つ又は複数の他の実施形態はそれに限定されず、他の任意の所定のフレーズが適用され得ると理解される。例えば、別の実施形態によれば、所定の質問をユーザに表示するために提示される。続いて、質問に対する回答を提供するユーザの動画データと音声データを取得し得る。したがって、第1のサーバ又は第2のサーバは、ユーザデバイスから、提示された質問に対する回答を話すユーザの動画(動画データと音声データを含む。)を受信することができる。次に、受信された動画は、動画データ(例えば、動画フレーム)と音声データ(例えば、
図6に示す音声フレーム又はスペクトログラム)を取得するために、前処理される。
【0038】
動作420において、ランダムに生成されたフレーズは、第2の機械学習モデル(例えば、リカレントニューラルネットワーク)を含む音声認識部(例えば、音声認識エンジン、音声認識プロセッサなど)に入力される。例えば、ランダムに生成されたフレーズの文字又は単語列は、損失(例えば、CTC損失)を決定するためのラベルとして音声認識部に入力され得る。動作410及び420は、同時に、実質的に同時に、又は順次に実行され得る(例えば、少なくとも部分的又は完全に動作220に先行する動作410又は動作220を処理する動作410)ことが理解される。
【0039】
上記のように、本実施形態は、ランダムに生成されたフレーズを参照して説明するが、1つ又は複数の他の実施形態は、それに限定されないと理解される。例えば、別の実施形態によれば、所定の質問への回答に対応する所定のフレーズは、ユーザにより話されたフレーズ(すなわち、音声データ)が所定のフレーズに対応するかどうかを決定するために、音声認識部に入力される。この場合、所定のフレーズの文字又は単語列は、損失(例えば、CTC損失)を決定するためのラベルとして音声認識部に入力され得る。
【0040】
動作430において、第1の機械学習モデルは、動画データと音声データを処理して、口の動きが音声と同期する第1の確率(例えば、口の動きと音声の間の第1の程度の一致確率)を取得する。例えば、第1の確率は、
図5に示すように、動画データ用の3D CNNの全結合層と、音声データ用の3D CNNの全結合層と、からの特徴間の測定距離に基づくコントラスティブ・ロス値であり得る。一実施形態によるコントラスティブ・ロス関数は、
図2を参照して上記の式1に従うことができる。
【0041】
動作440において、音声認識部は、音声データを処理して、動作420でランダムに生成されたフレーズ入力に基づいて音声認識を実行し、ランダムフレーズがユーザにより話される第2の確率を取得する。第2の確率は、CTC損失値であってもよい。一実施形態によれば、第2の機械学習モデルは、音声認識を実行するために、第1の機械学習モデルからの音声データ出力を受信することができる。例えば、第2の機械学習モデルは、ランダムに生成されたフレーズの文字又は単語列のラベルと共に、第1の機械学習モデルの音声データ用の3D CNNの全結合層(又はそこから抽出された特徴)を受信する。これらの入力に基づいて、第2の機械学習モデルは、
図5及び
図6に示すように、音声認識を実行して、CTC損失値を取得することができる。
【0042】
上記のように、本実施形態は、ランダムに生成されたフレーズを参照して説明するが、1つ又は複数の他の実施形態は、それに限定されないと理解される。例えば、別の実施形態によれば、ユーザにより話されたフレーズ(すなわち、音声データ)が所定のフレーズに対応するかどうかを決定するために、所定の質問への回答に対応する所定のフレーズが、音声認識部に入力される。すなわち、別の実施形態によれば、第2の機械学習モデルは、所定のフレーズの文字又は単語列のためのラベルと同様に、第1の機械学習モデルの音声データのための3D CNNの全結合層(又はその特徴)を受け取ることができる。これらの入力に基づいて、第2の機械学習モデルは、音声認識を実行してCTC損失値を取得できる。
【0043】
動作450において、第1の予測値と第2の予測値が1つ又は複数の条件を満たすかどうかに基づいて、生体検出は、検証される。
図6に示すように、第1の予測値(例えば、コントラスティブ・ロス値)と第2の予測値(例えば、CTC損失値)に基づいて、組み合わされた損失の決定を実行して、生体検出を検証できる。
【0044】
組み合わされた損失の決定の例を、
図5に示す。具体的には、第1の機械学習モデルから得られたコントラスティブ・ロス値(L1)が、閾値(例えば、所定のマージン値(M))と比較される。コントラスティブ・ロスが閾値よりも小さい場合、生体検出は検証されていないと判断される。さらに、第2の機械学習モデルから取得したCTC損失値(L2)を使用して、認識された音声のラベルを予測する。予測されたラベルが、ランダムに生成されたフレーズに対応しない場合、生体検出は検証されないと判断される。一方、コントラスティブ・ロス値が閾値より大きい(又は以上か等しい)く、且つ予測されたラベルがランダムに生成されたフレーズに対応する場合、生体検出が検証されたと判断される。
【0045】
図4の方法は、動作410のデータ前処理から得られた動画及び音声データの各バッチに対して繰り返される。例えば、
図5、6に示すように、取得された動画の1秒に対応する25フレームのそれぞれの動画及び音声データの3つのバッチが、第1の機械学習モデルに連続的に入力される。
【0046】
上記の一実施形態による生体検出検証方法は、ランダムに生成されたフレーズ(又は複数の所定の(又は頻繁に/定期的に更新される)質問の中でランダムに選択された質問)に基づいて、音声視覚類似性検出を検証するための音声認識を実装することにより、生体認証をより確実に保護し、なりすまし攻撃を防止できる。例えば、フレーズ(又は質問への回答)が話されていることを確認するために、ランダムなフレーズ(又は質問)を利用し、音声認識を組み込んでいるので、ユーザはリアルタイムで話す必要があり、それにより、以前に録音された使用又は改ざんされた動画は排除される。
【0047】
図7は、一実施形態による生体検出検証システムのデータ前処理方法のフローチャートである。
図7のデータ前処理方法は、第1の機械学習モデル及び/又は第2の機械学習モデルを訓練するため(すなわち、
図2の動作210)、又は以前訓練された第1及び第2の機械学習モデルを使用して生体検出検証を実行するために(すなわち、
図4の410動作)、実行することができる。
【0048】
図7を参照すると、動作710において、ランダムフレーズチャレンジが生成され、ユーザに提供される。例えば、フレーズは、事前に保存された辞書、語彙セット、又はデータベースからランダムに生成され、ディスプレイを介してユーザに表示され得る。1つの例示的な実行形態では、語彙セットは、所定数のカテゴリのそれぞれについて、所定数の入力又は候補用語(例えば、単語、文字、数字など)を含み得る。このような語彙セットの例を、以下の表1に示す。表1には、コマンド、色、前置詞、文字、数字、副詞の6つのカテゴリが含まれる。
【表1】
【0049】
例として上記の語彙セットを使用して、「今すぐF9に青を配置する」又は「W3に再び緑を置く」などのフレーズが生成され(例えば、ユーザデバイス又は顧客端末に)、画面に表示され、提供され得る。しかしながら、これは単なる一例であり、1つ又は複数の他の実施形態は、上記で提供される語彙セット及び/又は候補用語の6つのカテゴリに限定されず、任意の数の候補用語及びカテゴリを実行できると理解される。最終的に、多数の可能な出力を伴うランダムフレーズチャレンジを使用することにより、攻撃者が、以前に記録又は改ざんされた動画を介して登録ユーザをスプーフィングすることを防ぐ。
【0050】
本実施形態は、ランダムフレーズを参照して説明するが、1つ又は複数の他の実施形態はそれに限定されず、別の所定のフレーズを使用できると理解される。例えば、質問への回答に対応する所定のフレーズを適用することができる。この点に関して、質問は、保護を強化するために(事前に記録された回答が、攻撃者によって首尾よく使用される機会を減少させることにより)随時更新又は変更できる複数の所定の質問の中にあり得る。別の実施形態によれば、質問(又は対応する所定のフレーズ/回答)は、回答を話すユーザの動画を取得するために、そのユーザに提示され得る。
【0051】
次に、動作720において、提示されたランダムフレーズチャレンジ(又は所定の質問への回答)を話すユーザの動画が取得される。例えば、所定の長さ(例えば、3秒)の動画は、ランダムフレーズチャレンジが一度提示される、すなわち、ユーザがランダムワードチャレンジを話している間に、カメラ又はイメージセンサ、及びマイクによって取得される。
【0052】
動作730において、得られた動画は、動画ストリームと音声ストリームに分割される。 例えば、デマルチプレクサ又は画像プロセッサは、取得された動画を基本的な動画ストリームと音声ストリームに逆多重化する。
【0053】
動作740において、動画ストリームは、第1の機械学習モデルへの入力のために処理される。動画ストリームは、モデルを訓練するための入力(すなわち、
図2の方法)及び/又は音声との口の動きの整合性を決定するための入力(すなわち、
図4の方法)をするために、処理され得る。ここで、この処理は、動画ストリームフレームレートを所定のフレームレート(例えば、25フレーム/秒(fps))に変換すること、及び各フレームが所定の時間の長さ(例えば、40ミリ秒の動画)に対応するように、所定数の動画フレーム(例えば、3秒に対応する75の動画フレーム)を抽出すること、の少なくとも1つを含み得る。この処理は、各動画フレームの口座標の検出、検出された座標(又は境界ボックス)毎の口領域のトリミング、トリミングされた口領域のグレースケール又は単一チャネル画像へ変換して所定のサイズ(例:60×100ピクセル)に変更、の少なくとも1つをさらに含み得る。
【0054】
動作750において、動作730で取得された音声ストリームは、口の動きと音声との整合性を決定するために使用される第1の機械学習モデルへの入力のため処理される。ここで、この処理は、音声を単一チャネルストリームに変換すること、サンプル周波数を所定の周波数(例えば、22.05KHz)に変更すること、及び各フレームが所定の時間(例えば、40ミリ秒の音声)に対応するように、所定数の重複しないフレーム(例えば、3秒に対応する75個の非重複フレーム)を抽出すること、の少なくとも1つを含み得る。さらに、
図7のデータ前処理が生体検出モデルを訓練する程度において、動作750の処理は、訓練データセットの負のクラスとして入力するため音声フレームの改ざんをさらに含み得る(又は正のクラスとして入力するため改ざんを含まない)。改ざんには、音声フレームのテンポとピッチの少なくとも1つを変更することが含まれる場合がある。もちろん、
図7のデータ前処理が、生体検出モデルの訓練用でなければ、改ざんは省略される。
【0055】
動作750の処理は、また、各音声フレームについてメル尺度のスペクトログラムを抽出することを含み得る。動画フレームと同様に、メル尺度のスペクトログラムもグレースケール又は単一チャネル画像に変換できる。
【0056】
動作740及び750は、同時に、実質的に同時に、又は連続して(動作750の少なくとも部分的又は完全に先行する動作740、又は750を処理する動作740)実行され得ることが理解される。
【0057】
動作760において、所定数のフレームのバッチ(例えば、1秒のデータに対応する25フレームのバッチ)は、処理された動画フレームと処理された音声フレームの各々について作成され得る。例えば、25フレームの動画及び音声の3つのバッチが、動作760で生成され、第1の機械学習モデルに入力され得る。
【0058】
動作760で取得された動画及び音声データ(例えば、
図3、5、及び6に示される動画フレームと音声スペクトログラム)は、第1の機械学習モデルに入力され、
図2及び
図3を参照して上記したように、モデルを訓練する、又は、
図4から
図6を参照して上記したように、音声視覚の類似性の検出及び検証を実行する。
【0059】
図8は、一実施形態による生体検出検証システム800のブロック図である。生体検出検証システム800は、1つ又は複数のサーバ(例えば、オンライン認証システム用)、ユーザ端末(例えば、顧客端末)に実装され得るか、又はユーザ端末及び1つ又は複数のサーバに分散され得る。
【0060】
図8に示すように、生体検出検証システム800は、データプリプロセッサ810、音声視覚類似性検出部820、音声認識部830、及び生体検出検証部840を含む。
【0061】
データプリプロセッサ810は、ランダムに生成されたフレーズに対応する動画データ(例えば、動画フレーム)と音声データ(例えば、
図6に示す、音声フレーム又は音声スペクトログラム)を取得する。一実施形態におけるデータプリプロセッサの詳細なブロック図を、
図9に示す。
【0062】
図9に示すように、データプリプロセッサ810は、記憶部910、ランダムフレーズ生成部920、通信ユニット930、デマルチプレクサ940、動画ストリームプロセッサ950、及び音声ストリームプロセッサ960を含む。
【0063】
記憶部910は、
図7を参照して上記したように、語彙セットを記憶する。例えば、語彙セットは、上記の表1に例示されるように、所定数のカテゴリの各々について、所定数の入力又は候補用語(例えば、単語、文字、数字など)を含み得る。記憶部910は、ハードディスク(例えば、磁気ディスク、光ディスク、磁気光学ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は、別のタイプの非一時的なコンピュータ読み取り可能な媒体、及び対応するドライブを含む。さらに、記憶部910は、別の又は分離したデバイス又はサーバで提供され得ることが理解される。
【0064】
ランダムフレーズ生成部920は、語彙セットからフレーズをランダムに生成する。例えば、ランダムフレーズ生成部920は、語彙セットの各カテゴリからの1つの用語をランダムに組み合わせて、フレーズを生成することができる。
【0065】
通信ユニット930(例えば、コミュニケータ、通信インターフェイスなど)は、ランダムに生成されたフレーズを、有線又は無線の少なくとも1つのネットワーク(携帯ネットワーク、インターネットネットワーク、光ファイバーネットワーク、Wi-Fiネットワークなど)を介して、ユーザ端末(例えば、携帯電話、パーソナルコンピュータなど)に送信する。さらに、通信ユニット930は、ユーザ端末から、ランダムに生成されたフレーズを話すユーザの動画を受信する。ここで、動画は、所定の長さ(例えば、3秒)であり得、ランダムフレーズチャレンジが提示されると、すなわち、ユーザがランダムな単語チャレンジを話している間に、ユーザ端末のカメラ又はイメージセンサ、及びマイクロフォンによって取得され得る。
【0066】
通信ユニット930は、ランダムに生成されたフレーズをユーザに提供し、及び/又はオンライン認証サービス又は消費者ポータルのウェブサイト(例えば、金融機関のためのウェブサイト)をホストするウェブサーバを介して、取得された動画を受信できることが理解される。さらに、データプリプロセッサ810が第1及び第2の機械学習モデルを訓練するために使用される場合、及び/又はデータプリプロセッサ810がランダムに生成されたフレーズをローカルで読み取るユーザの動画を取得する場合(例えば、生体検出検証システム800がユーザ又は顧客端末に含まれる場合)、通信ユニット930は省略できると理解される。
【0067】
デマルチプレクサ940は、取得された動画を基本的な動画ストリームと音声ストリームに逆多重化する。
【0068】
動画ストリームプロセッサ950は、音声視覚類似性検出部820への入力のため、動画ストリームを処理して、モデルを訓練し、及び/又はモデルから決定を取得する。ここで、動画処理は、動画ストリームフレームレートを所定のフレームレート(例えば、25フレーム/秒(fps))に変換すること、各フレームが所定の時間(例えば、40ミリ秒の動画)に対応するように、所定数の動画フレーム(例えば、3秒に対応する75動画フレーム)を抽出すること、各動画フレームの口の座標を検出すること、検出された座標(又は境界ボックス)毎の口の領域をトリミングすること、トリミングされた口の領域をグレースケール又は単一チャネル画像に変換すること、及びグレースケール又は単一チャネル画像を所定のサイズ(例えば、60×100ピクセル)に変更すること、の少なくとも1つを含み得る。
【0069】
さらに、動画ストリームプロセッサ950は、グレースケール又は単一チャネル画像の所定数のフレームの所定数のバッチ(例えば、1秒のデータに対応する25フレームのバッチ)を取得し出力する。例えば、25フレームの動画の3つのバッチは、動画ストリームプロセッサ950によって出力され得る。
【0070】
音声ストリームプロセッサ960は、音声視覚類似性検出部820への入力のために、音声ストリームを処理して、モデルを訓練し、及び/又はモデルから決定を取得する。ここで、音声処理は、音声を単一チャネルストリームに変換すること、サンプル周波数を所定の周波数(例えば、22.05KHz)に変更すること、及び、各フレームが所定の時間長(例えば、40ミリ秒の音声)に対応するように、所定数の重複しないフレーム(例えば、3秒に対応する75の非重複フレーム)を抽出すること、の何れか1つを含む。さらに、音声処理が生体検出モデルを訓練する限り、処理は、訓練データセットの負のクラスとして入力するため音声フレームを改ざんすること(又は、正のクラスとして入力するため改ざんしないこと)をさらに含み得る。改ざんには、音声フレームのテンポとピッチの少なくとも1つを変更することが含まれ得る。
【0071】
音声処理はまた、各音声フレームについてメル尺度のスペクトログラムを抽出し、スペクトログラムをグレースケール又は単一チャネルスペクトログラムに変換することの少なくとも1つを含み得る。
【0072】
さらに、音声ストリームプロセッサ960は、グレースケール又は単一チャネルスペクトログラムの所定数のフレームの所定数のバッチ(例えば、1秒のデータに対応する25フレームのバッチ)を取得及び出力する。例えば、25フレームの3つのバッチは、音声ストリームプロセッサ960によって出力され得る。
【0073】
データプリプロセッサ810の上記構成要素のうちの1つ又は複数は、回路、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせとして実装できることが理解される。さらに、データプリプロセッサ810の上記構成要素のうちの1つ又は複数は、少なくとも1つのプロセッサによって実行可能なソフトウェアとして実装できることが理解される。さらに、データプリプロセッサ810の上記構成要素のうちの1つ又は複数は、複数のデバイスに分散できることが理解される。
【0074】
図8に戻り、音声視覚類似性検出部820は、データプリプロセッサ810、すなわち、動画ストリームプロセッサ950と音声ストリームプロセッサ960によって出力された動画データ(例えば、動画フレームのバッチ)と音声データ(例えば、音声フレームのバッチ)を取得し、動画データ(例えば、動画データ内の口の動き)が音声と同期しているかどうかを示す第1の決定値を出力する。具体的には、音声視覚類似性検出部820は、動画と音声データの各々に対応するバッチのための、口の動きが音声と同期している第1の確率(例えば、口の動きと音声との間の第1の程度の一致の確率)を取得するための第1の機械学習モデルを含む。
【0075】
第1の機械学習モデルは、動画データのための第1のニューラルネットワーク(例えば、3D CNN)、音声データのための第2のニューラルネットワーク(例えば、3D CNN)、及びコントラスティブ・ロス・カリキュレータを含み得る。ここで、第1のニューラルネットワークは、動画データに対応する全結合層をコントラスティブ・ロス・カリキュレータに出力し得、第2のニューラルネットワークは、音声データに対応する全結合層をコントラスティブ・ロス・カリキュレータに出力し得る。コントラスティブ・ロス・カリキュレータは、(
図5に示すように)第1のニューラルネットワークと第2のニューラルネットワークの全結合層から抽出された特徴間の距離を測定することができる。一実施形態によるコントラスティブ・ロス関数は、
図2を参照して上記で説明した式1に従うことができる。
【0076】
さらに、音声視覚類似性検出部820は、音声データを音声認識部830に出力することができる。例えば、音声視覚類似性検出部820は、音声データの全結合層(又はその特徴)を音声認識部830に出力することができる。
【0077】
音声認識部830は、データプリプロセッサ810から、ランダムに生成されたフレーズを受け取り、音声視覚類似性検出部820から、音声データを受け取り、それに基づいて音声認識を実行して、第2の決定値を出力する。具体的には、音声認識部830は、音声データを処理して音声認識を実行し、ランダムフレーズがユーザによって話されているかどうかを決定する(例えば、ランダムフレーズがユーザによって話されている第2の確率を第2の決定値として取得する)。
【0078】
この目的のために、音声認識部830は、第2の機械学習モデル(例えば、リカレントニューラルネットワーク、LSTMネットワークなど)を含み得る。例えば、第2の機械学習モデルは、入力として、ランダムに生成されたフレーズの文字又は単語列のためのラベルと同様に、第1の機械学習モデルの音声データ用の3D CNNの全結合層(又はそこから抽出された特徴)を受け取ることができる。ここで、ランダムに生成されたフレーズの文字又は単語列のためのラベルは、損失(例えば、CTC損失)を決定するために音声認識部830により取得され得る。音声認識部830は、文字又は単語列のためのラベルを生成、又はデータプリプロセッサ810からラベルを取得することができる。これらの入力に基づいて、第2の機械学習モデルは、音声認識を実行して、第2の決定値(例えば、
図5及び6に示すCTC損失値)を取得することができる。
【0079】
第1の機械学習モデルと第2の機械学習モデルは、
図2及び
図3を参照して上記のように訓練され得ることが理解される。
【0080】
生体検出検証部840は、第1の決定値(例えば、第1の確率)と第2の決定値(例えば、第2の確率)に基づいて生体検出を検証する。例えば、生体検出検証部840は、第1の予測値と第2の予測値が1つ又は複数の条件を満たすかどうかに基づいて、生体検出を検証する。
図6に示すように、生体検出検証部840は、第1の予測値(例えば、コントラスティブ・ロス値)と第2の予測値(例えば、CTC損失値)に基づいて組み合わされた損失決定を実行して、生体検出を検証することができる。
【0081】
上記のように、組み合わされた損失決定の例を、
図5に示す。具体的には、第1の機械学習モデルから得られたコントラスティブ・ロス値(L1)が、閾値(例えば、所定のマージン値(M))と比較される。コントラスティブ・ロスが閾値よりも小さい場合、生体検出検証部840は、生体検出が検証されていないと判断する。さらに、第2の機械学習モデルから取得したCTC損失値(L2)を使用して、認識された音声のラベルを予測する。予測されたラベルがランダムに生成されたフレーズに対応しない場合、生体検出検証部840は、生体検出が検証されていないと判断する。一方、コントラスティブ・ロス値が閾値よりも大きい(大きい又はそれ以上)場合、及び予測されたラベルがランダムに生成されたフレーズに対応する場合、生体検出検証部840は、生体検出が検証されたと判断する。
【0082】
音声視覚類似性検出部820、音声認識部830、及び生体検出検証部840の動作は、データプリプロセッサ810から取得された動画と音声データの各バッチに対して繰り返される。
【0083】
生体検出検証システム800の上記構成要素のうちの1つ又は複数は、回路、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせとして実装され得ることが理解される。さらに、生体検出検証システム800の上記構成要素のうちの1つ又は複数は、少なくとも1つのプロセッサによって実行可能なソフトウェアとして実装され得ることが理解される。さらに、生体検出検証システム800の上記構成要素のうちの1つ又は複数は、複数のデバイスに分散され得ることが理解される。
【0084】
図10は、1つ又は複数の実施形態によるシステム及び/又は方法が実施され得る例示的な環境1000のブロック図である。
図10に示すように、環境1000は、ユーザデバイス1100、プラットフォーム1200、及びネットワーク1300を含み得る。環境1000のデバイスは、有線接続、無線接続、又は有線接続と無線接続の組み合わせを介して相互接続することができる。
【0085】
ユーザデバイス1100は、プラットフォーム1200に関連する情報を、受信、生成、格納、処理、及び/又は提供できるデバイスである。例えば、ユーザデバイス1100は、コンピュータデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカー、サーバなど)、携帯電話(例えば、スマートフォン、ラジオ電話など)、ポータブルデバイス(例えば、ポータブルマルチメディアプレーヤー、ナビゲーションデバイスなど)、ウェアラブルデバイス(例えば、スマート眼鏡又はスマートウォッチ)、端末デバイス(例えば、顧客端末、自動テラーマシン、セルフチェックアウト端末又はマシンなど)又は同様のデバイス、を含む。ユーザデバイス1100は、プラットフォーム1200から情報を受信し、及び/又はプラットフォーム1200に情報を送信することができる。
【0086】
さらに詳細には、ユーザデバイス1100は、メモリ1110と、命令(例えば、メモリ1110の非一時的なコンピュータ読み取り可能な媒体に格納された命令)を実行して、本明細書に記載されている様々な動作を実行するように構成された少なくとも1つのプロセッサ1120と、を含み得る。メモリ1110は、単一の物理的記憶装置内の記憶空間、又は複数の物理的記憶装置にまたがる記憶空間を含む。ソフトウェア命令は、別のコンピュータ読み取り可能な記録媒体から、又は通信ユニット1160を介して別のデバイスから、メモリ1110に読み込むことができる。実行されると、メモリ1110に格納されたソフトウェア命令は、少なくとも1つのプロセッサ1120に、上述した1つ又は複数のプロセスを実行させることができる。さらに、又は代わりに、ハードワイヤード回路を、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて使用して、本明細書に記載の1つ又は複数のプロセスを実行することができる。したがって、本明細書で説明される実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0087】
ユーザデバイス1100は、画像取得部1130(例えば、カメラ)、マイクロフォン1140、表示部1150、及び通信ユニット1160(例えば、コミュニケータ、通信インターフェイス、通信回路など)をさらに含み得る。
【0088】
少なくとも1つのプロセッサ1120は、表示部1150を制御して、通信ユニット1160を介してプラットフォーム1200から受信したランダムフレーズを出力することができる。別の実施形態によれば、少なくとも1つのプロセッサ1120は、
図9を参照して上記で説明したように、データプリプロセッサ810の少なくとも一部を実装することができる。例えば、少なくとも1つのプロセッサ1120は、ランダムフレーズ生成部920を実装し、上記のように、語彙セット(例えば、メモリ1110に格納された、又は外部に格納された語彙セット)からランダムフレーズを生成することができる。
【0089】
少なくとも1つのプロセッサ1120は、動画(組み合わされた、又は対応する動画と音声データ)を取得するために、画像取得部1130とマイクロフォン1140を制御することができる。例えば、表示部1150に出力されるランダムフレーズに基づいて、少なくとも1つのプロセッサ1120は、画像取得部1130とマイクロフォン1140を制御して、所定の長さ(例えば、3秒)の動画を取得することができる。ここで、画像取得部1130とマイクロフォン1140は、ランダムフレーズが最初に表示部1150に出力されるのと同時に、又はランダムフレーズが最初に表示部1150に出力された後の所定の時間後(例えば、ランダムフレーズが表示部1150に出力され始めてから1秒後)に、生成されるランダムフレーズに応答して、動画を取得するように制御され得る。
【0090】
さらに、少なくとも1つのプロセッサ1120は、表示部1150を制御して、動画がいつ取得されているかをユーザに通知するために、指標を出力できる(例えば、動画がいつ取得され始めるかのカウントダウン、動画の取得がいつ停止するかのカウントダウン、動画が取得されていることを示すシンボル、アイコン、又はグラフィカルユーザーインターフェイス(GUI)アイテムなど)。さらに、表示部1150は、動画の取得に基づいて、例えば、一旦動画取得が停止する、又は動画取得が停止した後の所定の時間の長さで、ランダムフレーズの表示を停止することができる。
【0091】
通信ユニット1160は、ネットワーク1300を介してプラットフォーム1200と通信する。一実施形態によれば、通信ユニット1160は、取得された動画(すなわち、組み合わされた又は対応する音声と動画データ)をプラットフォーム1200に送信する。別の実施形態によれば、少なくとも1つのプロセッサ1120は、データプリプロセッサ810のデマルチプレクサ940、動画ストリームプロセッサ950、及び音声ストリームプロセッサ960のうちの少なくとも1つを実装することができる。この場合、通信ユニット1160は、処理された動画ストリーム及び処理された音声ストリームのうちの少なくとも1つ、又は、上記のように、動画フレームのバッチ及び音声フレーム又はスペクトログラムのバッチのうちの少なくとも1つを、プラットフォーム1200に送信することができる。
【0092】
さらに、通信ユニット1160は、ランダムに生成されたフレーズを、プラットフォーム1200に送信することができる(例えば、ランダムフレーズがユーザデバイス1100によって生成される場合)。もちろん、ランダムに生成されたフレーズがプラットフォーム1200によって生成され、通信ユニット1160を介してユーザデバイス1100によって受信される場合、通信ユニット1160は、ランダムに生成されたフレーズをプラットフォーム1200に送り返すことはできない。別の実施形態によれば、プラットフォーム1200が、複数のデバイス(例えば、サーバ)を含み、ランダムに生成されたフレーズが、複数のデバイスのうちの第1のデバイスからユーザデバイス1100によって受信された場合、通信ユニット1160は、ランダムに生成されたフレーズ(取得された動画と同様に)を、複数のデバイスのうちの第2のデバイスへ送信する。
【0093】
プラットフォーム1200は、上記のように、生体検出検証システム800の全部又は少なくとも一部を実装する1つ又は複数のデバイスを含む。いくつかの実装形態では、プラットフォーム1200は、サーバ(例えば、クラウドサーバ、ウェブサーバ、認証サーバなど)又はサーバのグループを含み得る。いくつかの実装形態では、プラットフォーム1200は、特定の必要性に応じて特定のソフトウェアコンポーネントを交換できるモジュール式に設計することができる。
【0094】
図10に示すように、プラットフォーム1200は、メモリ1210、少なくとも1つのプロセッサ1220、及び通信ユニット1230(例えば、コミュニケータ、通信インターフェイス、通信回路など)を含む。メモリ1210は、単一の物理的記憶装置内の記憶空間、又は複数の物理的記憶装置又はサーバにまたがる記憶空間を含む。ソフトウェア命令は、別のコンピュータ読み取り可能な記録媒体から、又は通信ユニット1230を介して別のデバイスからメモリ1210に読み込むことができる。実行されると、メモリ1210に格納されたソフトウェア命令は、少なくとも1つのプロセッサ1220に、上述した1つ又は複数のプロセスを実行させることができる。さらに、又は代わりに、ハードワイヤード回路を、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて使用して、本明細書に記載の1つ又は複数のプロセスを実行することができる。したがって、本明細書で説明される実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0095】
一実施形態によれば、少なくとも1つのプロセッサ1220は、上記の生体検出検証システム800の全部又は少なくとも一部を実行するように制御することができる。例えば、少なくとも1つのプロセッサ1220は、データプリプロセッサ810の少なくとも一部を実行するように制御することができる。この目的のために、メモリ1210は、語彙セットを格納することができ、少なくとも1つのプロセッサ1220は、そこからフレーズをランダムに生成することができる。さらに、少なくとも1つのプロセッサ1220は、通信ユニット1230を制御して、ランダムに生成されたフレーズを、ネットワーク1300を介してユーザデバイス1100に送信し、ランダムに生成されたフレーズを話すユーザを撮影した動画を、ネットワーク1300を介して、ユーザデバイス1100から受信することができる。
【0096】
少なくとも1つのプロセッサ1220は、動画を、基本的な動画ストリームと音声ストリームに逆多重化することができる。さらに、少なくとも1つのプロセッサ1220は、動画ストリームフレームレートを所定のフレームレート(例えば、25フレーム/秒(fps))に変換すること、所定数の動画フレーム(例えば、3秒に対応する75動画フレーム)を抽出し、各フレームが所定の時間(例えば、40ミリ秒の動画)に対応するようにすること、各動画フレームの口座標を検出すること、検出された座標(又は境界ボックス)毎に口領域をトリミングすること、トリミングされた口の領域をグレースケール又は単一チャネル画像に変換すること、グレースケール又は単一チャネル画像を所定のサイズ(例えば、60X100ピクセル)にサイズ変更すること、のうち少なくとも1つを実行するように制御することができる。
【0097】
さらに、少なくとも1つのプロセッサ1220は、グレースケール又は単一チャネル画像の所定数のフレームの所定数のバッチ(例えば、1秒のデータに対応する25フレームのバッチ)を取得することができる。例えば、25フレームの動画の3つのバッチは、動画ストリームプロセッサ950によって出力され得る。
【0098】
少なくとも1つのプロセッサ1220はまた、音声ストリームを処理することができる。ここで、音声処理は、音声を単一チャネルストリームに変換すること、サンプル周波数を所定の周波数(例えば、22.05KHz)に変更すること、及び、所定数の重複しないフレーム(例えば、3秒に対応する75の非重複フレーム)を抽出し、所定の時間(例えば、40ミリ秒の音声)に各フレームを対応させること、の何れか1つを含む。さらに、音声処理が機械学習モデルを訓練する限り、処理は、訓練データセットの負のクラスとして入力するため音声フレームを改ざんすること(又は正のクラスとして入力するため改ざんしないこと)をさらに含み得る。改ざんには、音声フレームのテンポとピッチの少なくとも1つを変更することが含まれる場合がある。
【0099】
音声処理はまた、各音声フレームについてメル尺度のスペクトログラムを抽出すること、スペクトログラムをグレースケール又は単一チャネルスペクトログラムに変換すること、の少なくとも1つを含み得る。
【0100】
さらに、少なくとも1つのプロセッサ1220は、グレースケール又は単一チャネルスペクトログラムの所定数のフレームの所定数のバッチ(例えば、1秒のデータに対応する25フレームのバッチ)を取得及び出力することができる。例えば、25フレームの3つのバッチは、音声ストリームプロセッサ960によって出力され得る。
【0101】
少なくとも1つのプロセッサ1220はまた、上記のように、音声視覚類似性検出部820と音声認識部830を実装することができる。この目的のために、少なくとも1つのプロセッサ1220は、動画データ(例えば、動画フレームのバッチ)と音声データ(例えば、音声フレームのバッチ)を処理し、動画データ(例えば、動画データの口の動き)が音声と同期しているかを示す第1の決定値を出力することができる。具体的には、少なくとも1つのプロセッサ1220は、動画データと音声データを第1の機械学習モデルに入力して、動画データと音声データの対応するバッチごとに、口の動きが音声と同期している第1の確率(例えば、口の動きと音声との間の第1の程度の一致の確率)を取得することができる。
【0102】
さらに、少なくとも1つのプロセッサは、音声データに関して音声認識を実行し、ランダムフレーズがユーザによって話されているかどうかを決定することができ(例えば、第2の決定値として、ユーザにより話されるランダムなフレーズの第2の確率)、音声データの音声認識部830への全結合層(又はその特徴)を取得する。
【0103】
この目的のために、少なくとも1つのプロセッサ1220は、第1の機械学習モデルの音声データのための3D CNNの全結合層(又はそこから抽出された特徴)を第2の機械学習モデル(例えば、リカレントニューラルネットワーク、LSTMネットワークなど)に入力することができる。少なくとも1つのプロセッサ1220はまた、ランダムに生成されたフレーズの文字又は単語列のためのラベルを、第2の機械学習モデルへ入力するように制御することができる。ここで、ランダムに生成されたフレーズの文字又は単語列のラベルは、損失(例えば、CTC損失)を決定するために、少なくとも1つのプロセッサ1220によって取得され得る。少なくとも1つのプロセッサ1220は、文字又は単語列のためのラベルを生成する、又は別のデバイスのラベルを取得することができる。これらの入力に基づいて、第2の機械学習モデルは、音声認識を実行して、第2の決定値(例えば、
図5及び6に示されるようなCTC損失値)を取得することができる。
【0104】
さらに、少なくとも1つのプロセッサ1220は、
図2及び
図3を参照して上記したように、第1の機械学習モデル及び/又は第2の機械学習モデルを訓練するように制御することができる。
【0105】
少なくとも1つのプロセッサ1220はまた、第1の決定値(例えば、第1の確率)と第2の決定値(例えば、第2の確率)に基づいて生体検出を検証するために、上記のように生体検出検証部840を実装することができる。例えば、少なくとも1つのプロセッサ1220は、第1の予測値と第2の予測値が1つ又は複数の条件を満たすかどうかに基づいて、生体検出を検証するように制御できる。この場合、少なくとも1つのプロセッサ1220は、第1の予測値(例えば、コントラスティブ・ロス値)と第2の予測値(例えば、CTC損失値)に基づいて、組み合わされた損失決定を実行して、生体検出を検証することができる。
【0106】
ネットワーク1300は、1つ又は複数の有線及び/又は無線ネットワークを含む。例えば、ネットワーク1300は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、長期進化(LTE)ネットワーク、第4世代(4G)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、地上波公共移動通信ネットワーク(PLMN)、地域ネットワーク(LAN)、広域ネットワーク(WAN)、都市域ネットワーク(MAN)、 電話ネットワーク(例えば、公衆交換電話ネットワーク(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバーベースのネットワークなど、及び/又は、これら又は他のタイプのネットワークの組合せ、のうちの少なくとも1つを含み得る。
【0107】
デバイス及びネットワークの数及び配置を
図10に、一例として示す。実際には、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は異なる配置のデバイス及び/又はネットワークが、
図10に示されるもの以外にもあり得る。さらに、
図10に示される2つ以上のデバイスが単一のデバイスに実装、又は、
図10に示される単一のデバイスが、複数の分散したデバイスに実装されてもよい。
図10は、複数の分散デバイスとして実装することができる。さらに、又は代わりに、環境1000のデバイスのセット(例えば、1つ又は複数のデバイス)は、環境1000の別のデバイスのセットによって実行されると説明された1つ又は複数の機能を実行することができる。
【0108】
上記のように、実施形態による生体検出検証システム及び方法は、ランダムフレーズと第2の整合性チェック(音声認識)を利用して音声視覚の生体を検証することにより、生体認証をより確実かつ効果的に保護し、なりすまし攻撃を防止することができる。例えば、ランダムなフレーズを使用し、フレーズが話されていることを確認するため音声認識を組み込むことにより、ユーザはリアルタイムで話す必要があり、それによって以前に記録又は改ざんされた動画の使用が排除される。
【0109】
それに限定されないが、例示的な実施形態は、コンピュータ読み取り可能な記録媒体上のコンピュータ可読コードとして具体化することができる。コンピュータ読み取り可能な記録媒体は、その後コンピュータシステムによって読み取ることができるデータを記憶することができる任意のデータ記憶装置である。コンピュータで読み取り可能な記録媒体の例には、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、CD-ROM、磁気テープ、フロッピーディスク、及び光データストレージデバイスが含まれる。コンピュータ読み取り可能な記録媒体はまた、コンピュータ可読コードが分散された方法で格納及び実行されるように、ネットワーク結合されたコンピュータシステム上に分散され得る。また、例示的な実施形態は、コンピュータ可読伝送媒体上で、例えば、搬送波として送信されるプログラムとして記載され得、プログラムを実行する汎用又は特殊用途のデジタルコンピュータにおいて、受信及び実装され得る。
【0110】
図2-7は、それを参照して説明された方法の例示的なブロックを示し、いくつかの実装形態では、それぞれの方法は、図示された以外の追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含み得る。さらに、又は代わりに、それぞれの方法の2つ以上のブロックを並行して実施することができる。
【0111】
図8-10に示す構成要素の数及び配置は、一例である。実際には、生体検出検証システム800、データプリプロセッサ900、環境1000、ユーザデバイス1100、及びプラットフォーム1200は、図に示す以外の追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる配置のコンポーネントを含み得る。さらに、又は代わりに、様々なデバイスのコンポーネントのセット(例えば、1つ又は複数のコンポーネント)は、別のコンポーネントのセットによって実行されると説明される1つ又は複数の機能を実行することができる。
【0112】
前述の開示は、例示及び説明を提供するが、限定的であること、又は開示された正確な形式に実装を限定すること、を意図するものではない。修正及び変形は、上記の開示に照らして可能であり、又は実装の実施から取得することができる。
【0113】
本明細書で使用される場合、「コンポーネント」という用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせとして広く解釈することを意図している。
【0114】
上記の実施形態はフレーズに関するものであるが、1つ又は複数の他の実施形態は、例えば、単語を話すユーザの動画を取得し、ユーザにより話された単語が、所定の単語に対応するか否かを決定するなど、単語にも適用可能であることが理解される。
【0115】
本明細書に記載のシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装され得ることが明らかである。これらのシステム及び/又は方法を実装するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実装を制限するものではない。したがって、特定のソフトウェアコードを参照せずに、本明細書では、システム及び/又は方法の動作及び行為を説明した。ソフトウェア及びハードウェアは、本明細書の説明に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0116】
特徴の特定の組み合わせがクレームに記載され、及び/又は明細書に開示されているとしても、これらの組み合わせは、可能な実施の開示を制限することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、及び/又は明細書に開示されていない方法で組み合わせることができる。以下に列挙される各従属クレームは、1つのクレームのみに直接従属する場合があるが、可能な実装の開示には、クレームセット内の他のすべてのクレームと組み合わせた各従属クレームが含まれる。
【0117】
1つ又は複数の例示的な実施形態を、図を参照して上で説明したが、以下のクレームにより少なくとも部分的に定義される精神及び範囲から逸脱することなく、形態及び詳細の様々な変更を行うことができることが、当業者により理解される。