(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-01
(54)【発明の名称】軌跡および意図予測
(51)【国際特許分類】
E05B 49/00 20060101AFI20240222BHJP
G06N 3/0455 20230101ALI20240222BHJP
G07C 9/25 20200101ALI20240222BHJP
【FI】
E05B49/00 K
G06N3/0455
G07C9/25
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023535892
(86)(22)【出願日】2021-12-07
(85)【翻訳文提出日】2023-07-26
(86)【国際出願番号】 EP2021084586
(87)【国際公開番号】W WO2022128623
(87)【国際公開日】2022-06-23
(32)【優先日】2020-12-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】501427157
【氏名又は名称】アッサ アブロイ アーベー
【氏名又は名称原語表記】ASSA ABLOY AB
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】サチデバ、カピル
(72)【発明者】
【氏名】プレヴォ、シルヴァン ジャック
(72)【発明者】
【氏名】チェン、ジャンボ
【テーマコード(参考)】
2E250
3E138
【Fターム(参考)】
2E250AA01
2E250BB08
2E250DD06
2E250DD08
2E250FF25
2E250FF27
2E250FF36
3E138AA01
3E138JA03
3E138JB16
3E138JC05
3E138JD03
(57)【要約】
軌跡および意図予測のための方法およびシステムが提供される。方法およびシステムは、1つまたは複数のプロセッサが、ユーザーの観測軌跡およびユーザーについてのユーザー挙動情報を受信すること、観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成することであって、機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練される、複数の予測軌跡を生成すること、ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて複数の予測軌跡を調整すること、ターゲットアクセス制御デバイスが複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、ターゲットアクセス制御デバイスが複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を備える複数の処理を含む。
【特許請求の範囲】
【請求項1】
方法であって、
1つまたは複数のプロセッサが、ユーザーの観測軌跡および前記ユーザーについてのユーザー挙動情報を受信すること、
前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成すること、ここで、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練されており、
ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を備える方法。
【請求項2】
前記ターゲットアクセス制御デバイスは、ドアに関連付けられたロック部を備え、
前記処理を実行することは、前記ドアをアンロックすることを含む、請求項1に記載の方法。
【請求項3】
ユーザーのモバイルデバイスと前記ターゲットアクセス制御デバイスとの間の無線通信リンクを確立すること、
前記無線通信リンクを介して認証情報を交換すること、
前記認証情報に基づいて、前記ユーザーが前記ターゲットアクセス制御デバイスにアクセスする権限を付与されていると判定した後に前記処理を実行すること、をさらに備える請求項2に記載の方法。
【請求項4】
前記処理を実行する前に、前記認証情報に基づいて、前記ユーザーが前記ターゲットアクセス制御デバイスにアクセスする権限を付与されていることを判定すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの前記所与の予測軌跡の前記閾値範囲内にあると判定されるまで、前記ユーザーが権限を付与されていると判定した後に前記処理を実行することを遅延させること、をさらに備える請求項3に記載の方法。
【請求項5】
前記処理を実行する前に、前記認証情報に基づいて、前記ユーザーが前記ターゲットアクセス制御デバイスにアクセスする権限を付与されていることを判定すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの前記所与の予測軌跡の前記閾値範囲外にあると判定したことに応答して、前記ユーザーが権限を付与されていると判定した後に前記処理を実行することを防止すること、をさらに備える請求項3または4に記載の方法。
【請求項6】
前記機械学習技法は、条件付き変分オートエンコーダを含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記ユーザー挙動情報に基づいて前記複数の予測軌跡を調整することは、
前記複数の予測軌跡を生成するために前記条件付き変分オートエンコーダによって前記観測軌跡および前記ユーザー挙動情報を処理することを含み、
前記複数の予測軌跡の各々は、前記ユーザーが対応する前記予測軌跡に沿って移動する尤度を示すそれぞれの確率に関連付けられる、請求項6に記載の方法。
【請求項8】
前記機械学習技法が、変分オートエンコーダを含む、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記ユーザー挙動情報に基づいて前記複数の予測軌跡を調整することは、
前記ユーザー挙動情報を前記変分オートエンコーダによって出力された前記複数の予測軌跡と結び付けることを含み、
前記複数の予測軌跡の各々は、前記ユーザーが対応する前記予測軌跡に沿って移動する尤度を示すそれぞれの確率に関連付けられる、請求項8に記載の方法。
【請求項10】
結び付けられた前記ユーザー挙動情報および前記複数の予測軌跡を第2の機械学習技法で処理することをさらに備え、
前記第2の機械学習技法は、複数の訓練ユーザー挙動情報と複数のアクセス制御デバイスを作動させる予測された複数の意図との間の関係を確立するように訓練される、請求項8または9に記載の方法。
【請求項11】
前記ユーザーの観測軌跡を符号化することをさらに備え、
前記機械学習技法は、前記ユーザーの符号化された観測軌跡に適用される、請求項1~10のいずれか1項に記載の方法。
【請求項12】
受信した前記ユーザー挙動情報がユーザー挙動情報の最低限のパラメータを満たすか否かを判定すること、をさらに備える請求項1~11に記載のいずれか1項に記載の方法。
【請求項13】
前記受信したユーザー挙動情報が前記ユーザー挙動情報の前記最低限のパラメータを満たすと判定したことに応答して、前記ターゲットアクセス制御デバイスに前記処理を実行させることをさらに備える請求項12に記載の方法。
【請求項14】
前記受信したユーザー挙動情報が前記ユーザー挙動情報の前記最低限のパラメータを満たさないと判定したことに応答して、前記ターゲットアクセス制御デバイスが前記処理を実行することを防止することをさらに備える請求項12または13に記載の方法。
【請求項15】
前記最低限のパラメータは、指定された複数のタイプのユーザー挙動情報の閾値量を備える、請求項12~14のいずれか一項に記載の方法。
【請求項16】
特徴ベクトルを符号化することによって前記ユーザー挙動情報を生成することをさらに備え、
前記ユーザー挙動情報を生成することは、
前記ユーザーの物理的な動きを監視すること、
前記ユーザーの歩幅を監視すること、
前記ユーザーが異なる複数のタイプのアクセス制御デバイスを作動させる複数の時間帯および複数の場所を特定すること、
所与のアクセス制御デバイスが前記ユーザーによって作動されている場合に、前記ユーザーの範囲内の他のクライアントデバイスおよび他のタイプのアクセス制御デバイスを特定すること、
ユーザー自身のソーシャルネットワーク内に通常の場合にいる他のユーザーを特定すること、のうちの少なくとも1つを含む、請求項1~15のいずれか一項に記載の方法。
【請求項17】
前記機械学習技法は、第1の機械学習技法を含み、
第2の機械学習技法によって前記ユーザー挙動情報を生成することであって、前記第2の機械学習技法は、訓練ユーザー挙動情報と予測されたユーザー挙動情報との間の関係を確立するように訓練される、前記ユーザー挙動情報を生成すること、
第3の機械学習技法によって前記ターゲットアクセス制御デバイスを作動させる前記ユーザー意図を生成することであって、前記第3の機械学習技法は、一組の軌跡と結び付けられた訓練ユーザー挙動情報と、複数のアクセス制御デバイスを作動させる予測されたユーザー意図との間の関係を確立するように訓練される、前記ユーザー意図を生成すること、をさらに備える請求項1~16のいずれか一項に記載の方法。
【請求項18】
前記第1、第2、および第3の機械学習技法の各々は、エンドツーエンドで訓練される、請求項17に記載の方法。
【請求項19】
システムであって、
非一時的コンピュータ命令を含むメモリに結合された1つまたは複数のプロセッサを備え、
前記非一時的コンピュータ命令は、前記1つまたは複数のプロセッサによって実行されると、複数の処理を実行させ、
前記複数の処理は、
ユーザーの観測軌跡および前記ユーザーについてのユーザー挙動情報を受信すること、
前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成すること、ここで、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練されており、
ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を含む、システム。
【請求項20】
複数の処理を実行するための非一時的コンピュータ可読命令を含む非一時的コンピュータ可読媒体であって、前記複数の処理は、
ユーザーの観測軌跡および前記ユーザーについてのユーザー挙動情報を受信すること、
前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成すること、ここで、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練されており、
ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、
前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を含む、非一時的コンピュータ可読媒体。
【請求項21】
方法であって、
ユーザーについてのユーザーの観測軌跡を受信すること、
前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成すること、ここで、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練されており、
ユーザー挙動情報が利用可能であるか否かを判定すること、
前記ユーザー挙動情報が利用可能でないと判定したことに応答して、ターゲットアクセス制御デバイスが、前記機械学習技法のみに基づいて生成された前記複数の予測軌跡のうちの所与の閾値範囲内にあることを判定すること、
前記ユーザー挙動情報が利用可能であると判定することに応答して、
ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、
前記ターゲットアクセス制御デバイスが調整された前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、
前記ターゲットアクセス制御デバイスが前記閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を備える方法。
【請求項22】
前記ユーザー挙動情報は、分類器によって出力され、前記分類器は、複数のユーザー挙動を入力として受信し、所与のアクセス制御デバイスにアクセスする意図の確率を出力する、請求項21に記載の方法。
【請求項23】
前記ユーザー挙動情報は、分類器によって出力され、前記分類器は、複数のアクセス制御デバイスを入力として受信し、前記複数のアクセス制御デバイスのうちの所与のアクセス制御デバイスにアクセスする意図の確率を出力する、請求項21または22に記載の方法。
【請求項24】
前記複数の予測軌跡を調整することは、
前記複数の予測軌跡に基づいて、ユーザー挙動分類器モデルによって提供される所与のアクセス制御デバイスにアクセスするユーザー意図の予測と、別の機械学習技法によって提供される前記所与のアクセス制御デバイスにアクセスするユーザー意図の予測との加重平均を計算することを含む、請求項21~23のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、軌跡および意図予測に関する。
【背景技術】
【0002】
軌跡予測は、インテリジェントアクセス制御システムなどの多くのタスクにおいて重要な役割を果たす。これは、一般に、ある期間にわたって観測された複数の部分軌跡に基づいて、所定の将来の時間間隔内の各時間ステップにおける移動可能なエージェント(たとえば、人、車両、またはモバイルデバイス)の位置を予測することとして定義される。
【発明の概要】
【0003】
いくつかの態様では、方法が提供され、該方法は、1つまたは複数のプロセッサが、ユーザーの観測軌跡および前記ユーザーについてのユーザー挙動情報を受信すること、前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成することであって、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練される、前記複数の予測軌跡を生成すること、ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を備える。
【0004】
いくつかの態様では、前記ターゲットアクセス制御デバイスは、ドアに関連付けられたロック部を備え、前記処理を実行することは、前記ドアをアンロックすることを含む。
いくつかの態様では、上記方法は、ユーザーのモバイルデバイスと前記ターゲットアクセス制御デバイスとの間の無線通信リンクを確立すること、前記無線通信リンクを介して認証情報を交換すること、前記認証情報に基づいて、前記ユーザーが前記ターゲットアクセス制御デバイスにアクセスする権限を付与されていると判定した後に、前記処理を実行すること、を含む。
【0005】
いくつかの態様では、上記方法は、前記認証情報に基づいて、前記処理を実行する前に、前記ユーザーが前記ターゲットアクセス制御デバイスにアクセスする権限を付与されていることを判定すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの前記所与の予測軌跡の前記閾値範囲内にあると判定されるまで、前記ユーザーが権限を付与されていると判定した後に前記処理を実行することを遅延させること、を含む。
【0006】
いくつかの態様では、上記方法は、前記認証情報に基づいて、前記処理を実行する前に前記ユーザーが前記ターゲットアクセス制御デバイスにアクセスする権限を付与されていることを判定すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの前記所与の予測軌跡の前記閾値範囲外にあると判定したことに応答して、前記ユーザーが権限を付与されていると判定した後に前記処理を実行することを防止すること、を含む。
【0007】
いくつかの態様では、前記機械学習技法は、条件付き変分オートエンコーダを含む。
いくつかの態様では、前記ユーザー挙動情報に基づいて前記複数の予測軌跡を調整することは、前記複数の予測軌跡を生成するために前記条件付き変分オートエンコーダによって前記観測軌跡および前記ユーザー挙動情報を処理することを含み、前記複数の予測軌跡の各々は、前記ユーザーが対応する前記予測軌跡に沿って移動する可能性を示すそれぞれの尤度に関連付けられる。
【0008】
いくつかの態様では、前記機械学習技法は、変分オートエンコーダを含む。
いくつかの態様では、前記ユーザー挙動情報に基づいて前記複数の予測軌跡を調整することは、前記ユーザー挙動情報を前記変分オートエンコーダによって出力された前記複数の予測軌跡と結び付けることを含み、前記複数の予測軌跡の各々は、前記ユーザーが対応する前記予測軌跡に沿って移動する可能性を示すそれぞれの尤度に関連付けられる。
【0009】
いくつかの態様では、上記方法は、結び付けられた前記ユーザー挙動情報および前記複数の予測軌跡を第2の機械学習技法で処理することを含み、前記第2の機械学習技法は、複数の訓練ユーザー挙動情報と複数のアクセス制御デバイスを作動させる予測された複数の意図との間の関係を確立するように訓練される。
【0010】
いくつかの態様では、上記方法は、前記ユーザーの観測軌跡を符号化することをさらに備え、前記機械学習技法は、前記ユーザーの符号化された観測軌跡に適用される。
いくつかの態様では、上記方法は、受信した前記ユーザー挙動情報がユーザー挙動情報の最低限のパラメータを満たすか否かを判定すること、を含む。
【0011】
いくつかの態様では、上記方法は、前記受信したユーザー挙動情報が前記ユーザー挙動情報の前記最低限のパラメータを満たすと判定したことに応答して、前記ターゲットアクセス制御デバイスに前記処理を実行させることを含む。
【0012】
いくつかの態様では、上記方法は、前記受信したユーザー挙動情報が前記ユーザー挙動情報の前記最低限のパラメータを満たさないと判定したことに応答して、前記ターゲットアクセス制御デバイスが前記処理を実行することを防止することを含む。
【0013】
いくつかの態様では、前記最低限のパラメータは、指定された複数のタイプのユーザー挙動情報の閾値量を含む。
いくつかの態様では、上記方法は、特徴ベクトルを符号化することによって前記ユーザー挙動情報を生成することを含み、前記ユーザー挙動情報を生成することは、前記ユーザーの物理的な動きを監視すること、前記ユーザーの歩幅を監視すること、前記ユーザーが異なる複数のタイプのアクセス制御デバイスを作動させる複数の時間帯および複数の場所を特定すること、所与のアクセス制御デバイスが前記ユーザーによって作動されている場合に、前記ユーザーの範囲内の他のクライアントデバイスおよび他のタイプのアクセス制御デバイスを特定すること、ユーザー自身のソーシャルネットワーク内に通常の場合にいる他のユーザーを特定すること、のうちの少なくとも1つを含む。
【0014】
いくつかの態様では、前記機械学習技法は、第1の機械学習技法を含み、上記方法は、第2の機械学習技法によって前記ユーザー挙動情報を生成することであって、前記第2の機械学習技法は、訓練ユーザー挙動情報と予測されたユーザー挙動情報との間の関係を確立するように訓練される、前記ユーザー挙動情報を生成すること、第3の機械学習技法によって前記ターゲットアクセス制御デバイスを作動させる前記ユーザー意図を生成することであって、前記第3の機械学習技法は、一組の軌跡と結び付けられた訓練ユーザー挙動情報と、複数のアクセス制御デバイスを作動させる予測されたユーザー意図との間の関係を確立するように訓練される、前記ユーザー意図を生成すること、をさらに備える。
【0015】
いくつかの態様では、前記第1、第2、および第3の機械学習技法の各々は、エンドツーエンドで訓練される。
いくつかの態様では、システムが提供され、該システムは、非一時的コンピュータ命令を含むメモリに結合された1つまたは複数のプロセッサを備え、前記非一時的コンピュータ命令は、前記1つまたは複数のプロセッサによって実行されると、複数の処理を実行させ、前記複数の処理は、ユーザーの観測軌跡および前記ユーザーについてのユーザー挙動情報を受信すること、前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成することであって、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練される、前記複数の予測軌跡を生成すること、ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を含む。
【0016】
いくつかの態様では、非一時的コンピュータ可読媒体が提供され、該非一時的コンピュータ可読媒体は、複数の処理を実行するための非一時的コンピュータ可読命令を含む非一時的コンピュータ可読媒体であって、前記複数の処理は、ユーザーの観測軌跡および前記ユーザーについてのユーザー挙動情報を受信すること、前記観測軌跡を機械学習技法によって処理して複数の予測軌跡を生成することであって、前記機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練される、前記複数の予測軌跡を生成すること、ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて前記複数の予測軌跡を調整すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定すること、前記ターゲットアクセス制御デバイスが前記複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、前記ターゲットアクセス制御デバイスに関連付けられた処理を実行すること、を含む。
【図面の簡単な説明】
【0017】
【
図1】
図1は、いくつかの実施形態による、例示的なアクセス制御システムのブロック図である。
【
図2】
図2は、例示的な実施形態による、軌跡予測に基づく例示的なアクセス制御システムを示す。
【
図3A】
図3Aは、いくつかの実施形態による、
図1のアクセス制御システム内に配置され得る例示的な軌跡および意図予測システムのブロック図である。
【
図3B】
図3Bは、いくつかの実施形態による、
図1のアクセス制御システム内に配置され得る例示的な軌跡および意図予測システムのブロック図である。
【
図3C】
図3Cは、いくつかの実施形態による、
図1のアクセス制御システム内に配置され得る例示的な軌跡および意図予測システムのブロック図である。
【
図4】
図4は、いくつかの実施形態による、
図1,2,および3A~Cのシステム内に配置され得る例示的なデータベースである。
【
図5】
図5は、例示的な実施形態による、アクセス制御システムの例示的な複数の処理を示すフローチャートである。
【
図6】
図6は、本明細書において説明される様々なハードウェアアーキテクチャと併せて使用され得る例示的なソフトウェアアーキテクチャを示すブロック図である。
【
図7】
図7は、いくつかの例示的な実施形態による、機械の複数の構成要素を示すブロック図である。
【発明を実施するための形態】
【0018】
軌跡及び意図予測に基づくアクセス制御システム(例えば、物理的又は論理的アクセス制御システム)のための例示的な方法及びシステムが説明される。以下の説明では、例示的な実施形態の完全な理解を提供するために、説明の目的で多数の具体的詳細が説明される。しかしながら、本発明の複数の実施形態がこれらの具体的詳細無しに実施され得ることは、当業者には明らかであろう。
【0019】
典型的なアクセス制御システムでは、ユーザーは、一組のクレデンシャル(credential)(例えば、認証情報)を含む物理的なカードまたはデバイスを携帯する。そのようなクレデンシャルは、物理的なカードまたはデバイスがアクセスデバイス(例えば、電子ドアロック(electronic door lock))に約20センチメートル以内に(近接して)運ばれたときにそのアクセスデバイスと交換される。その時点で、アクセスデバイスは、クレデンシャルがユーザーに対してアクセスデバイスにアクセスする権限を付与するか否かを判定し、付与する場合に、アクセスデバイスはアクセスを許可する(例えば、ドアロックを解錠する)。このようなシステムは全体的に良好に動作するが、アクセスデバイスを作動させるためには、ユーザーがアクセスデバイスの非常に近くにいる必要がある。これは、デバイスを作動させる際に様々な待ち時間(レイテンシ)をもたらす可能性があり、ユーザーにフラストレーションを感じさせる可能性がある。
【0020】
複数のモバイルデバイスが一般化した場合、そのようなモバイルデバイスは、一般的に使用される複数の物理的なカードと同じ組のクレデンシャルを保持するようにプログラムされ得る。これらのモバイルデバイスは、BLE(Bluetooth Low Energy)通信プロトコルを使用するなどして、より長い距離でアクセスデバイスと通信することができる。たとえば、モバイルデバイスは、100メートルまでの範囲にわたってクレデンシャルを送信し、アクセスデバイスと交換することができる。そのような場合、アクセスデバイスは、ユーザーが物理的なカードまたはデバイスを使用する場合よりもアクセスデバイスから離れた距離にいるときに作動することができる。このようにして、ユーザーが最終的にアクセスデバイスに到達したとき、アクセスデバイスは、クレデンシャルをすでに受信し、認証しており、ユーザーに対してアクセスを許可または拒否している。ユーザーがデバイスに到達したとき、デバイスを作動させるためにユーザーからのさらなるアクションは必要とされない(たとえば、ユーザーが、物理的なカードをアクセスデバイスに近接させる必要がない)。
【0021】
しかしながら、BLEを介してクレデンシャルを交換するこれらの他の手法は、別の問題を導入する。すなわち、BLE通信プロトコルの範囲内に複数のアクセスデバイスが存在する場合、クレデンシャルは、ユーザーが作動させることを意図していないデバイスと交換され得る。例えば、ユーザーがアクセスするためのクレデンシャルを有するユーザーのモバイルデバイスの範囲内に複数の電子ドアロックが存在する場合がある。しかしながら、ユーザーは、複数の電子ドアロックのうちの1つの電子ドアロックをアンロックするかまたは作動させることのみを意図する場合がある。別の例として、ユーザーは、ユーザーがアクセスする権限を付与されている所与のドアまたはアクセス制御デバイスのそばを通り過ぎることがあるが、所与のドアまたはアクセス制御デバイスを通過するかまたは作動させることを意図していない場合がある。そのような場合、ユーザーの軌跡を特定することは、複数の正しいアクセスデバイスのうちのどのアクセスデバイスを作動させるか、およびそのようなデバイスを作動させることに関するユーザーの意図を判定することに重要な役割を果たすことができる。
【0022】
典型的な軌跡予測システムは、数ステップ(a few steps)の観測された軌跡を入力として受け取り、将来のタイムライン内のいくつかの連続する位置を生成する。これらの典型的な軌跡予測システムは、ユーザーの移動経路内にあると予測される一組の軌跡を提供することができる。将来の軌跡予測の従来および現在の方法のほとんどは、多くのユーザーのための予測に対処することになる1つのモデルを構築することを目的としている。このようなアプローチは、人間の動きが本質的に固有であり且つ動的であるため、非常に制限される。また、あるユーザーが電話機を保持する方法は、別のユーザーが電話機を保持する方法とは非常に異なる可能性がある。例えば、一部のユーザーは、モバイルデバイスを手に持つことを好む。これは、そのようなユーザーが歩くとき、腕を振り、それによってモバイルデバイスを前後に変位させるため、二次元(2D)または三次元(3D)位置座標のノイズが非常に多いことを意味する。他のユーザーは、前部ポケットまたは後部ポケットに電話機を有し得る。また、ユーザーの身長または歩行についての自身の一般的な選好に基づいて、ユーザーは歩幅に差を有する。したがって、ユーザーの位置に依存する典型的な軌跡予測システムは、概して、複数の将来軌跡を予測するのにうまく機能するが、それらは、典型的に、ユーザー特異性を考慮せず、したがって、精度要件を欠いており、クレデンシャル交換およびアクセスデバイスの制御の場合にそれらが正確に適用されることを妨げる。
【0023】
開示された複数の実施形態は、アクセス制御システムが高いセキュリティを維持しながら、ユーザーに対してプロアクティブ(proactive)でシームレスな体験を提供することができるように、ユーザーの複数の将来位置を正確に予測し、ユーザーの意図を判定することができるインテリジェントな解決策を提供する。開示される複数の実施形態は、過去および現在のユーザー挙動情報にも基づいてユーザーの軌跡を予測する軌跡予測システムを提供する。予測軌跡または所与の一組の予測軌跡およびユーザー挙動情報に基づいて、所与のアクセスデバイスが軌跡の範囲内にあり、(BLEを介してなど、クレデンシャルの長距離での交換によって決定されるように)ユーザーがアクセスの権限を付与されている場合、所与のアクセスデバイスを作動させる。一例として、所与のアクセスデバイス(例えば、ドアロック)は、最初に、特定の通信プロトコル(例えば、BLE)を介してユーザーのモバイルデバイスと通信して、権限付与データ(例えば、クレデンシャル)を交換することができる。次いで、所与のアクセスデバイスが、ユーザーの予測された軌跡の範囲内にあると判定され、ユーザーが、通常、現在の日/時間帯にそのデバイスにアクセスするかもしくはそのデバイスを作動させるか、またはユーザーの近傍にある別のデバイスよりもそのデバイスを作動させる選好を有する場合、所与のアクセスデバイスは、作動するように命令される(例えば、ドアロックが解錠される)。このようにして、ユーザーが所与のアクセスデバイスに到達すると、所与のアクセスデバイスは、ユーザーがアクセスカードを所与のアクセスデバイスに近接させる必要なしに作動する準備ができている。
【0024】
いくつかの実施形態では、開示される複数の実施形態は、軌跡および意図予測に基づいて長距離アクセス制御を実行するシステムおよび方法を提供する。開示される複数の実施形態によれば、ユーザーの観測された軌跡およびユーザーについてのユーザー挙動情報が受信される。開示された複数の実施形態は、機械学習技法によって観測軌跡を処理して複数の予測軌跡を生成する。機械学習技法は、複数の訓練観測軌跡(training observed trajectories)と複数の訓練予測軌跡(training predicted trajectories)との間の関係を確立するように訓練されることができる。開示される複数の実施形態は、ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて複数の予測軌跡を調整する。開示される複数の実施形態は、ターゲットアクセス制御デバイスが複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、ターゲットアクセス制御デバイスに関連付けられた処理を実行する。
【0025】
図1は、様々な例示的な実施形態による例示的なシステム100を示すブロック図である。システム100は、クライアントデバイス120と、ロック可能なドアなどを通して保護されるアセット(資産:asset)またはリソース(資源:resource)へのアクセスを制御する1つまたは複数のアクセス制御デバイス110と、ネットワーク130(たとえば、インターネット、BLE、超広帯域(UWB : ultra-wideband)通信プロトコル、電話ネットワーク)を介して通信可能に結合された認証管理システム140とを含むアクセス制御システムであり得る。
【0026】
超広帯域(UWB : Ultra-wide band)は、広い周波数スペクトルにわたって低いパワーの短いパルスを使用する無線周波数(RF : radio frequency)技法である。複数のパルスは、1秒あたり数百万のオーダーの個別パルスである。周波数スペクトルの幅は、一般に500メガヘルツを超えるか、または演算中心周波数(arithmetic center frequency)の20パーセントを超える。
【0027】
UWBは、時間変調(例えば、パルス位置符号化)を用いてデータを符号化すること等により通信に用いることができる。ここで、複数のシンボルは、利用可能な一組の単位時間のうち、一部の単位時間における複数のパルスにより指定される。UWB符号化の他の例は、振幅変調及び/又は極性変調を含み得る。広帯域送信は、キャリア利用送信技術よりもマルチパス減衰に耐性を有する傾向がある。更に、パルスの出力が任意の所与の周波数で弱いため、キャリア利用通信技術との干渉が減少する傾向がある。
【0028】
UWBは、数十センチメートル単位の正確度で位置推定(localization)を行い得るレーダー動作で利用できる。パルスでは異なる周波数の吸収及び反射が変化する可能性があるため、物体の表面及び遮蔽された(例えば、覆われた)特徴の両方を検知することができる。いくつかのケースにおいて、位置推定により距離に加え、入射角も得られる。
【0029】
クライアントデバイス120および複数のアクセス制御デバイス110は、電子メッセージ(たとえば、インターネット、BLE、UWB、WiFi direct、または任意の他のプロトコルを介して交換されるパケット)を用いて通信可能に結合され得る。
図1は、単一のアクセス制御デバイス110および単一のクライアントデバイス120を示しているが、他の実施形態では、複数のアクセス制御デバイス110および複数のクライアントデバイス120がシステム100に含まれ得ることが理解される。本明細書で使用される場合、「クライアントデバイス」という用語は、アクセス制御デバイス110によって保護されたアセットまたはリソースへのアクセスを取得するために、アクセス制御デバイス110、認証管理システム140、別のクライアントデバイス120、または任意の他の構成要素とクレデンシャルを交換するために、通信ネットワーク(ネットワーク130など)にインタフェースする任意の機械を指すことができる。クライアントデバイス120は、UWBを使用して位置情報を取得し、クライアントデバイス120の現在の軌跡を計算することができる。
【0030】
一実施形態では、クライアントデバイス120は、現在の軌跡情報を認証管理システム140に供給することができる。いくつかの実施形態では、アクセス制御デバイス110は、クライアントデバイス120の現在の軌跡を決定し、そのような情報を認証管理システム140に供給することができる。クライアントデバイス120は(単独で、またはアクセス制御デバイス110と組み合わせて)、クライアントデバイス120のユーザーから様々なユーザー挙動情報を収集する。そのようなユーザー挙動情報は、ユーザーの物理的移動、ユーザーの歩幅、ユーザーが異なるタイプのアクセス制御デバイス110を作動させる時間帯および場所、ならびに所与のアクセス制御デバイスがユーザーによって作動されるときのユーザーの範囲内の他のクライアントデバイスまたは複数のタイプのアクセス制御デバイスのうちのいずれかの1つ以上を含むことができる。様々なユーザー挙動情報は、認証管理システム140によって記憶および/または収集され得る。いくつかの実施形態では、クライアントデバイス120は(単独で、またはアクセス制御デバイス110と組み合わせて)、クライアントデバイス120の物理的移動および/またはユーザーの歩幅を監視することによって、この情報を収集する。いくつかの実装形態では、ユーザー挙動情報の少なくともいくつかは、クライアントデバイス120(単独で、またはアクセス制御デバイス110と組み合わせて)および/または認証管理システム140によって収集される。認証管理システム140は、ユーザーが、ユーザーのプライバシーを保持するために、収集したユーザー挙動情報の一部または全部をオプトインまたはオプトアウトすることを可能にする。
【0031】
いくつかの場合では、認証管理システム140の構成要素および機能の一部または全部をクライアントデバイス120に含めることができる(たとえば、認証管理システム140に関して説明された機械学習技法のいずれかをそれぞれのクライアントデバイス120上で実装することができる)。システム100において軌跡および意図予測を実行する任意の構成要素は、認証管理システム140、クライアントデバイス120、またはアクセス制御デバイス110のうちのいずれか1つのスタンドアロン構成要素として実装され得る。システム100において軌跡および意図予測を実行する任意の構成要素の複数の機能は、認証管理システム140、クライアントデバイス120、および/またはアクセス制御デバイス110の任意のものにわたって分散された方法で実装されてもよい。
【0032】
認証管理システム140は、現在の軌跡に基づいて機械学習技法を使用して1つまたは複数の軌跡を予測する。認証管理システム140はまた、ユーザー挙動情報を受信または取得し、ユーザー挙動情報に基づいて、予測された1つまたは複数の軌跡を調整する(たとえば、認証管理システム140は、予測された軌跡をユーザー挙動情報と結び付ける(concatenates))。いくつかの実装形態では、認証管理システム140は、機械学習技法を使用して、ユーザーに関連付けられたユーザー挙動情報に基づいて特徴ベクトルを計算する。いくつかの実装形態では、認証管理システム140は、入力された現在の軌跡および入力されたユーザー挙動情報に機械学習モデルを適用して、1つまたは複数の軌跡の予測を生成する。各軌跡は、ユーザーがその軌跡をたどる経路をとる特定の確率または所与の確率に関連付けられ得る。認証管理システム140は、最も高い確率を有する予測軌跡を特定する。次いで、認証管理システム140は、所与のアクセス制御デバイス110が、特定された予測軌跡の指定された範囲内にあるか否かを判定する。そうである場合、認証管理システム140は、所与のアクセス制御デバイス110に、アクセスを許可するか、または動作を実行するように命令し、そうでない場合、認証管理システム140は、(ユーザーがアクセスする権限を付与されている)所与のアクセス制御デバイス110に、アクセスを拒否させるか、または動作を実行させないように命令する。
【0033】
クライアントデバイス120は、携帯電話、デスクトップコンピュータ、ラップトップ、携帯情報端末(PDA)、スマートフォン、ウェアラブルデバイス(たとえば、スマートウォッチ)、タブレット、ウルトラブック、ネットブック、ラップトップ、マルチプロセッサシステム、マイクロプロセッサベースもしくはプログラマブル家電、またはユーザーがネットワークにアクセスするべく使用し得る任意の他の通信デバイスであってもよいが、それらに限定されるものではない。
【0034】
アクセス制御デバイス110は、物理リソース(例えば、ドアロック機構またはバックエンドサーバー)に接続され、物理リソース(例えば、ドアロック機構)を制御するアクセス読取デバイスを含むことができる。アクセス制御デバイス110に関連付けられた物理リソースは、ドアロック、車両のイグニッションシステム(ignition system)、または物理コンポーネントへのアクセスを許可または拒否し、物理コンポーネントへのアクセスを許可または拒否するように動作することができる任意の他のデバイスを含むことができる。例えば、ドアロックの場合、アクセス制御デバイス110は、アクセスを拒否することができ、この場合、ドアロックはロックされたままであり、ドアを開けることができないか、または、アクセス制御デバイス110は、アクセスを許可することができ、この場合、ドアロックはアンロックされてドアを開けることができる。別の例として、イグニッションシステムの場合、アクセス制御デバイス110は、アクセスを拒否することができ、この場合、車両イグニッションシステムは無効化されたままであり、車両を始動させることができず、または、アクセス制御デバイス110は、アクセスを許可することができ、この場合、車両イグニッションが有効化されて車両を始動させることができる。
【0035】
アクセス制御は、セキュリティ保護された領域またはアセットへの、例えば人々によるアクセスを管理するためのシステムおよび方法の範囲をカバーする。アクセス制御は、権限を付与されたユーザーまたはデバイス(例えば、車両、ドローンなど)の識別と、ゲート、ドア、もしくはエリアを保護するために使用される他の設備の作動、または制御機構、例えば、物理的もしくは電子的/ソフトウェア制御機構の作動を含み、セキュリティ保護されたアセットへのアクセスを可能にする。アクセス制御デバイス110は、複数のアクセス制御システムの一部(PACS : part of access control systems)を形成し、PACSは、権限付与データを保持する読取機(例えば、オンラインまたはオフライン読取機)を含むことができ、(例えば、カード、フォブ、または携帯電話などのパーソナル電子デバイス内の無線周波数識別(RFID)チップなどのクレデンシャルデバイスまたはキーデバイスからの)複数のクレデンシャルがアクチュエータまたは制御機構(例えば、ドアロック、ドア開閉機、ソフトウェア制御機構、警報をオフにすることなど)について権限を付与されているか否かを判定することができ、またはPACSは、読取機およびアクチュエータが中央管理構成(centrally managed configuration)において(例えば、コントローラを介して)接続されているホストサーバーを含むことができる。中央管理構成では、読取機は、クレデンシャルまたはキーデバイスからクレデンシャルを取得し、それらのクレデンシャルをPACSホストサーバーに渡すことができる。次いで、ホストサーバーは、クレデンシャルがセキュリティ保護された領域またはアセットにアクセスする権限を付与するか否かを判定し、それに応じてアクチュエータまたは他の制御機構に命令する。本明細書では物理アクセス制御の複数の例が使用されるが、本開示は、論理アクセス制御システム(LACS : logical access control system)の使用事例(たとえば、パーソナル電子デバイスへの論理アクセス、輸送サービスにおける乗客識別、無人決済店舗におけるアクセスおよびアセット制御など)に等しく適用される。
【0036】
例えば、読取機とクレデンシャルまたはキーデバイスとの間の無線通信を利用する無線PACSは、IEEE 802.15.1、Bluetooth(登録商標)、BLE(Bluetooth Low Energy)、近距離無線通信(NFC : near field communications)、ZigBee、GSM、CDMA、Wi-FiなどのRFIDまたはパーソナルエリアネットワーク(PAN : personal area network)技術を使用することができる。これらの技術の多くには、シームレスなユーザー体験(user experience)についてのいくつかの欠点がある。たとえば、NFCの範囲が非常に短いため、通常、ユーザーがセキュリティ保護された領域またはアセットに非常に近くにいてアクセス許可を得ようと試みるまで、クレデンシャルの交換は行われない。読取機へのクレデンシャルの転送及び読取機またはホストサーバーによる応答には数秒を要する場合があり、ユーザーがフラストレーションを感じる結果となる。更に、ユーザーは通常、処理を開始するために例えば、ポケットからデバイスを取り出して、読取機又はその近傍に配置する必要がある。
【0037】
一方、BLEデバイスは、数十メートル(たとえば、10~20メートル)の範囲を有する。従って、ユーザーが読取機に接近すると、クレデンシャル交換を実行することができる。ただし、BLEや多くの他のPAN標準は、デバイスの正確な物理的な追跡(トラッキング)(例えば、測距、位置特定等)を提供しない。従って、ユーザーの意図がセキュリティ保護された領域またはアセットに実際にアクセスすることであるか否かを読取機が更なる意図の根拠無しに判定するのは困難な場合がある。例えば、権限を付与されたユーザーがホール内で読取機を通り過ぎているだけで、ドアのロックがアンロックされたり、ドアが開かれたりした場合には問題がある。意図の根拠は、ドアノブに触れること、キーデバイスを弄る(gesturing)こと等を含んでいてもよい。しかし、これは、ユーザー側でそれ以上のアクションや対話を行わずに、ユーザーが単に読取機まで歩いて行ってセキュリティ保護された領域へのアクセス許可を得る場合と比較して理想的なユーザー体験とはいえないであろう。
【0038】
これらの問題または他の問題の1つまたは複数に対処するために、(例えば、セキュリティ保護されたUWB測距を用いる)位置推定技術を用いることができ、且つPAN発見およびキー交換と組み合わせることができる。UWBの位置推定技術は、いくつかの従来の技術よりも正確であり得、且つ例えば数十センチメートル単位の正確度が得られる。UWB位置推定技術は、読取機に対するクレデンシャルまたはキーデバイスの範囲及び方向の両方を提供し得る。この正確度は、読取機同士が連携していない場合のBLE等の約10メートルの正確度を遙かに凌ぐ。UWBの正確度の精度によって、ユーザーの意図(例えば、ユーザーがセキュリティ保護された領域またはアセットにアクセスすることを試みているのか、または単に通り過ぎているのか)およびユーザーの現在の軌跡または予測された軌跡をシームレスに判定するのに役立つツールとなり得る。例えば、ユーザーの意図を異なる観点から理解するべく、例えば、読取機の近傍に、読取機において等、いくつかのゾーンを規定してもよい。追加的にまたは代替的に、追跡(トラッキング)の正確度は、ユーザーの動きまたはユーザーの動きの方向から意図を識別できる正確なモデルを提供するのに役立つ。従って、読取機はユーザーの動きを、例えば、読取機に接近している可能性が高いか、又は単に歩いて通り過ぎている等に分類することができる。
【0039】
意図トリガーが生じると、読取機は、たとえばPAN技術を介して交換されたクレデンシャルに基づいて動作し得る。オフライン読取機、例えば、コントロールパネルまたはホストサーバーに接続されていない読取機の場合、読取機は、アクチュエータまたは他の制御機構(例えば、接続されていないドアのロック)を直接制御し得る。集中管理されたPACSにおいて、(オンライン)読取機は、作用するコントロールパネルまたはホストサーバーにクレデンシャルを転送してもよい。
【0040】
概して、アクセス制御デバイス110は、メモリ、プロセッサ、1つまたは複数のアンテナ、通信モジュール、ネットワークインタフェースデバイス、ユーザーインタフェース、および電源または電源回路のうちの1つ以上を含むことができる。
【0041】
アクセス制御デバイス110のメモリは、アクセス制御デバイス110のプロセッサによるアプリケーションプログラミングまたは命令の実行に関連して、およびプログラム命令または命令セットおよび/またはクレデンシャルデータ、クレデンシャル権限付与データ、またはアクセス制御データまたは命令等のクレデンシャルまたは権限付与データの一時的または長期の記憶のために使用されることができる。例えば、メモリは、アクセス制御デバイス110の他のコンポーネントを動作させるため、および/またはクレデンシャルまたは権限付与データに基づいてアクセス決定を行うためにプロセッサによって使用される実行可能命令を含むことができる。アクセス制御デバイス110のメモリは、アクセス制御デバイス110によってまたはそれに関連して使用されるデータ、プログラムコード、または命令を含み、格納し、通信し、または転送し得る任意の媒体であり得るコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、例えば、これらに限定されないが、電子、磁気、光学、電磁気、赤外線、または半導体のシステム、装置、またはデバイスであり得る。適切なコンピュータ可読媒体のより具体的な例は、1つまたは複数のワイヤを有する電気接続、またはポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、ダイナミックRAM(DRAM)、任意の固体ストレージデバイス、一般的なコンパクトディスク読み出し専用メモリ(CD-ROM)、または他の光学または磁気ストレージデバイスなどの有形の記憶媒体を含むが、これらに限定されない。コンピュータ可読媒体は、これと混同されるべきではないが、コンピュータ可読媒体のすべての物理的、非一時的、または類似の実施形態をカバーすることを意図としたコンピュータ可読記憶媒体を含む。
【0042】
アクセス制御デバイス110のプロセッサは、1つまたは複数のコンピュータ処理デバイスまたはリソースに対応することができる。例えば、プロセッサは、シリコンとして、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、任意の他のタイプの集積回路(IC)チップ、ICチップの集合などとして提供されることができる。より具体的な例として、プロセッサは、マイクロプロセッサ、中央処理装置(CPU)、またはアクセス制御デバイス110の内部メモリおよび/またはメモリに格納された命令セットを実行するように構成された複数のマイクロプロセッサまたはCPUとして提供され得る。アクセス制御デバイスはまた、アンテナを有するかまたは有しない複数の検知デバイスをカプセル化する(encapsulate)。
【0043】
アクセス制御デバイス110のアンテナは、1つまたは複数のアンテナに対応することができ、アクセス制御デバイス110とクレデンシャルデバイスまたはキーデバイス(たとえば、クライアントデバイス120)との間の無線通信を提供するように構成され得る。アンテナは、IEEE 802.15.1、Bluetooth、Bluetooth Low Energy(BLE)、近距離無線通信(NFC)、ZigBee(登録商標)、GSM(登録商標)、CDMA、Wi-Fi、RF、UWB等を含むが、これらに限定されない1つまたは複数の無線通信プロトコルおよび動作周波数を使用して動作するように構成され得る。例として、1つまたは複数のアンテナは、1つまたは複数のRFアンテナであり得、したがって、自由空間を介してRF送受信機を有するクレデンシャルまたはキーデバイスによって受信/転送されるRF信号を送信/受信することができる。いくつかの例では、少なくとも1つのアンテナは、読取機がUWB技術を使用してクライアントデバイス120と通信できるように、UWB信号を送信および/または受信するように設計または構成されたアンテナ(本明細書では簡単に「UWBアンテナ」と呼称する)である。
【0044】
アクセス制御デバイス110の通信モジュールは、任意の適切な通信プロトコルに従って、1つまたは複数のクライアントデバイス120および/または認証管理システム140等のアクセス制御デバイス110に対して遠隔またはローカルのいずれかである1つまたは複数の異なるシステムまたはデバイスと通信するように構成されることができる。
【0045】
アクセス制御デバイス110のネットワークインタフェースデバイスは、いくつかの転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、送信制御プロトコル(TCP)、ユーザーデータグラムプロトコル(UDP : user datagram protocol)、ハイパーテキスト転送プロトコル(HTTP)など)のいずれか1つを利用して、ネットワーク130等の通信ネットワークを介して、1つまたは複数のクライアントデバイス120および/または認証管理システム140等の他のデバイスとの通信を可能にするハードウェアを含む。例示用の通信ネットワークは、ローカルエリアネットワーク(LAN : Local Area Network)、ワイドエリアネットワーク(WAN : Wide Area Network)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、セルラーネットワーク)、POTS(Plain Old Telephone)ネットワーク、無線データネットワーク(例えば、Wi-Fi(登録商標)と呼称されるIEEE802.11規格ファミリー、WiMax(登録商標)と呼称されるIEEE802.16規格ファミリー)、IEEE802.15.4規格ファミリー、及びピアツーピア(P2P)ネットワークなどを含みうる。いくつかの例では、ネットワークインタフェースデバイスは、イーサネット(登録商標)ポートまたは他の物理ジャック、Wi-Fiカード、ネットワークインタフェースカード(NIC : Network Interface Card)、セルラーインタフェース(例えば、アンテナ、フィルター、および関連する回路)などを含むことができる。いくつかの例において、ネットワークインタフェースデバイスは、単一入力複数出力(SIMO : Single-Input Multiple-Output)、複数入力複数出力(MIMO : Multiple-Input Multiple-Output)、又は複数入力単一出力(MISO(Multiple Input Single Output)技法の少なくとも1つを使用して無線通信するべく、複数のアンテナを含み得る。
【0046】
アクセス制御デバイス110のユーザーインタフェースは、1つまたは複数の入力デバイスおよび/または表示デバイスを含むことができる。ユーザーインタフェースに含まれ得る適切なユーザー入力デバイスの例は、1つまたは複数のボタン、キーボード、マウス、タッチセンシティブ面(touch-sensitive surface)、スタイラス(stylus)、カメラ、マイクロフォンなどを含むが、これらに限定されない。ユーザーインタフェースに含まれ得る適切なユーザー出力デバイスの例は、1つまたは複数のLED、LEDパネル、ディスプレイ画面、タッチスクリーン、1つまたは複数のライト、スピーカーなどを含むが、これらに限定されない。ユーザーインタフェースはまた、タッチセンシティブディスプレイなどのような、組み合わされたユーザー入力及びユーザー出力デバイスを含むことができることを理解されたい。
【0047】
ネットワーク130は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、LAN(local area network)、無線ネットワーク、無線LAN(WLAN)、WAN(wide area network)、無線WAN(WWAN)、大都市圏ネットワーク(MAN)、BLE、UWB、インターネット、インターネットの一部、公衆交換電話網(PSTN)の一部、POTS(plain old telephone service)ネットワーク、セルラー電話ネットワーク、無線ネットワーク、Wi-Fi(登録商標)ネットワーク、別のタイプのネットワーク、または2つ以上のこのようなネットワークの組み合わせを含むか、またはこれらとともに動作し得る。例えば、ネットワークまたはネットワークの一部は、無線またはセルラーネットワークを備えてもよく、結合は、符号分割多重アクセス(CDMA)接続、移動通信用グローバルシステム(GSM(登録商標))接続、または他のタイプのセルラーまたは無線結合であってもよい。この例では、結合は、シングルキャリア無線伝送技術(1xRTT)、進化データ最適化(EVDO)技術、一般パケット無線サービス(GPRS)技術、GSM(登録商標)進化のための拡張データレート(EDGE)技術、3Gを含む第3世代パートナーシッププロジェクト(3GPP(登録商標))、第4世代無線(4G)ネットワーク、第5世代無線(5G)ネットワーク、UMTS(Universal Mobile Telecommunications System)、HSPA(High Speed Packet Access)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)規格、各種標準化団体が定めた他のもの、他の短距離もしくは長距離プロトコル、様々なタイプのデータ転送技術、などのいずれかを実装してもよい。
【0048】
一例では、クライアントデバイス120がアクセス制御デバイス110に接近する(たとえば、BLE通信プロトコルの範囲内に入る)と、クライアントデバイス120は、ネットワーク130を介してクライアントデバイス120のクレデンシャルを送信する。いくつかの場合では、クレデンシャルは、クライアントデバイス120の現在の地理的位置に基づいて複数のクレデンシャルから選択され得る。例えば、異なる地理的位置にそれぞれ関連付けられた複数のクレデンシャルをクライアントデバイス120に格納することができる。クライアントデバイス120が、複数のクレデンシャルのうちの1つに関連付けられた地理的位置から特定の距離内(例えば、10メートル以内)に入ると、クライアントデバイス120は、関連付けられたクレデンシャルをローカルメモリから取り出す。
【0049】
一例では、クライアントデバイス120は、クレデンシャルをアクセス制御デバイス110に直接的に供給する。そのような場合、アクセス制御デバイス110は、クレデンシャルを認証管理システム140と通信する。
図1の認証管理システム140は、認証システム142と、軌跡および意図予測システム144とを含む。認証管理システム140は、プロセッサによって実行されたときにプロセッサに認証管理システム140の複数の機能を制御させる複数の命令を記憶したプロセッサおよびメモリなど、
図6および
図7に関して説明される複数の構成要素をさらに含むことができる。
【0050】
認証管理システム140は、認証システム142に記憶されたクレデンシャルのリストを検索して、受信したクレデンシャルが、アクセス制御デバイス110によって保護するセキュリティ保護されたアセットまたはリソース(例えば、ドアまたはセキュリティ保護された領域)にアクセスする権限を付与されたクレデンシャルのリストからの複数のクレデンシャルと一致するか否かを判定する。受信したクレデンシャルがアクセス制御デバイス110にアクセスする権限を付与されていると判定したことに応答して、認証管理システム140は、軌跡および意図予測システム144にアクセスして、以下でより詳細に説明されるように、クライアントデバイス120の軌跡がアクセス制御デバイス110の指定された範囲(たとえば、2メートル)内にあると予測されるか否か、ならびにユーザー挙動情報が、所与の軌跡をたどるおよび/または所与のアクセス制御デバイス110を作動させるユーザーの意図を示すか否かを判定する。軌跡および意図予測システム144が、クライアントデバイス120がアクセス制御デバイス110の指定された範囲内にある軌跡をたどると予測されること、およびユーザー挙動情報がデバイス110にアクセスまたはデバイス110を作動させるユーザー意図を示すことを認証管理システム140に対して示すと、認証管理システム140は、クライアントデバイス120についてのアクセスを許可する動作を実行するようにアクセス制御デバイス110に命令する(たとえば、ドアのロックをアンロックするようにアクセス制御デバイスに命令する)。
【0051】
別の例では、クライアントデバイス120は、クレデンシャルを認証管理システム140に供給する。認証管理システム140は、認証システム142に記憶されたクレデンシャルのリストを検索して、受信した複数のクレデンシャルが、アクセス制御デバイス110によって保護されたセキュリティ保護されたアセットまたはリソース(例えば、ドアまたはセキュリティ保護された領域)にアクセスする権限を付与されたクレデンシャルのリストからの複数のクレデンシャルと一致するか否かを判定する。受信した複数のクレデンシャルがアクセス制御デバイス110にアクセスする権限を付与されていると判定したことに応答して、認証管理システム140は、軌跡および意図予測システム144にアクセスして、クライアントデバイス120の軌跡がアクセス制御デバイス110の指定された範囲(たとえば、2メートル)内にあると予測されるか否か、ならびにユーザー挙動情報が、以下でより詳細に説明されるように、所与の軌跡をたどるおよび/または所与のアクセス制御デバイス110を作動させるユーザーの意図を示すか否かを判定する。軌跡および意図予測システム144が、クライアントデバイス120がアクセス制御デバイス110の指定された範囲内にある軌跡をたどると予測されること、およびユーザー挙動情報が所与の軌跡をたどる、および/または所与のアクセス制御デバイス110を動作させるユーザー意図を示すことを認証管理システム140に対して示すと、認証管理システム140は、クライアントデバイス120へのアクセスを許可する動作を実行するように(受信したクレデンシャルに関連付けられ、クライアントデバイス120の地理的距離内にある)アクセス制御デバイス110に命令する(たとえば、ドアのロックをアンロックするようにアクセス制御デバイスに命令する)。
【0052】
一例では、軌跡および意図予測システム144は、アクセス制御デバイス110上にローカルに実装される。そのような事例では、アクセス制御デバイス110は、ハードコーディングされた(hard coded)範囲または閾値距離情報に基づいて、クライアントデバイス120についてアクセスを許可/拒否することをローカルで判定する。別の例では、軌跡および意図予測システム144は、クライアントデバイス120上に実装され、軌跡および意図予測をアクセス制御デバイス110に提供する。次いで、アクセス制御デバイス110は、クライアントデバイス120がアクセス制御デバイス110に関連付けられた範囲内にあるかどうかを判定して、クライアントデバイス120についてアクセスを許可/拒否する。
【0053】
軌跡および意図予測システム144は、認証管理システム140によって実装される1つまたは複数の機械学習技法を訓練して、観測軌跡および一組のユーザー挙動情報に基づいてクライアントデバイス120についての1つまたは複数の軌跡を予測する。
【0054】
一実施形態では、軌跡および意図予測システム144は、ユーザーの現在の軌跡を示す特徴ベクトルを受信し、一組のユーザー挙動情報に基づいて1つまたは複数の予測軌跡の予測を調整する第1の機械学習技法を実装する。予測軌跡は、ユーザーが予測軌跡の範囲内にあるアクセス制御デバイスを作動させることを意図しているか否かに関する予測を示す意図予測機械学習技法に入力される。
【0055】
別の実施形態では、軌跡および意図予測システム144は、ユーザーの現在の軌跡を示す特徴ベクトルを受信し、現在の軌跡に基づいて1つまたは複数の軌跡を予測する第1の機械学習技法を実装する。予測された1つまたは複数の軌跡は、ユーザー挙動情報を示す特徴ベクトルと結び付けられるか、または他の方法で組み合わされる。いくつかの事例では、ユーザー挙動情報を示す特徴ベクトルは、別の機械学習技法によって決定または提供される。ユーザー挙動情報を示す特徴ベクトルに結び付けられた予測軌跡は、ユーザーが予測軌跡の範囲内にあるアクセス制御デバイスを作動させることを意図しているか否かに関する予測を示す意図予測機械学習技法に入力される。
【0056】
別の実施形態では、軌跡および意図予測システム144は、ユーザーの現在の軌跡を示す特徴ベクトルおよびユーザー挙動情報を示す特徴ベクトルを受信し、現在の軌跡およびユーザー挙動情報を示す特徴ベクトルに基づいて1つまたは複数の軌跡を予測する第1の機械学習技法を実装する。いくつかの事例では、予測された1つまたは複数の軌跡も、ユーザー挙動情報を示す特徴ベクトルと結び付けられるか、または他の方法で組み合わされる。いくつかの事例では、ユーザー挙動情報を示す特徴ベクトルは、別の機械学習技法によって決定または提供される。ユーザー挙動情報を示す特徴ベクトルに結び付けられた予測軌跡は、ユーザーが予測軌跡の範囲内にあるアクセス制御デバイスを作動させることを意図しているか否かに関する予測を示す意図予測機械学習技法に入力される。
【0057】
軌跡および意図予測システム144は、機械学習技法を訓練するために、訓練する観測された現在の軌跡および/またはユーザー挙動情報と、対応するグラウンドトゥルース軌跡(ground-truth trajectories)およびユーザー挙動情報との複数のペアを処理する。グラウンドトゥルース軌跡は、1つ以上の観測軌跡の後に続く後続の複数の軌跡を表す。例えば、グラウンドトゥルース軌跡は、軌跡の第1の区間(セグメント)に続く軌跡の第2の区間を示す。グラウンドトゥルースユーザー挙動情報は、ユーザー挙動情報の入力データセットに存在するおよび/またはそこから欠落している特徴の集合を含む特徴ベクトルを示す。
【0058】
開示される複数の機械学習技法は、長期短期記憶ニューラルネットワーク(LSTM : Long-Short Term Memory Neural Networks)、オートエンコーダ(autoencoder)、変分オートエンコーダ(variational auto-encoder)、条件付き変分オートエンコーダ(conditioned variational auto-encoder)、畳み込みニューラルネットワーク、ラジアル基底ネットワーク、ディープフィードフォワードネットワーク、リカレントニューラルネットワーク、ゲート付きリカレントユニット(gated recurrent unit)、ノイズ除去オートエンコーダ、スパースオートエンコーダ(sparse autoencoder)、マルコフ連鎖、ホップフィールドネットワーク、ボルツマンマシン、ディープビリーフネットワーク、ディープ畳み込みネットワーク、デコンボリューションニューラルネットワーク、敵対的生成ネットワーク、液体状態マシン、極限学習マシン、エコー状態ネットワーク、ディープ残差ネットワーク、サポートベクターマシン、Korhonenネットワーク、またはそれらの任意の組合せなどのニューラルネットワークの任意の組合せによって実装され得る。
【0059】
軌跡および意図予測システム144は、アクセス制御デバイス110の起動または動作の指定範囲を取得する。例えば、軌跡および意図予測システム144は、アクセス制御デバイス110の固有の識別子を取得し、データベース400(
図4)に記憶された1つまたは複数のアクセス制御デバイス範囲(access control devices range(s))430を検索して、アクセス制御デバイス110の固有の識別子に関連付けられた範囲を特定し、読み出す。異なる複数のアクセス制御デバイス110または複数のタイプのアクセス制御デバイス110は、異なる範囲の起動または作動と関連付けられることができ、各々は、1つまたは複数のアクセス制御デバイス範囲430内にそのそれぞれの固有の識別子とともに記憶される。いくつかの事例では、1つまたは複数のアクセス制御デバイス範囲430は、それぞれの範囲とともにデバイスタイプを格納する。そのような状況では、デバイスタイプは、固有の識別子ではなく、1つまたは複数のアクセス制御デバイス範囲430から関連付けられた範囲を読み出すために使用される。軌跡および意図予測システム144は、予測された軌跡がアクセス制御デバイス110の指定された範囲内に入るか否か、および意図予測がアクセス制御デバイス110を作動させるユーザー意図を示すか否かを判定する。そうである場合、軌跡および意図予測システム144は、クライアントデバイス120へのアクセスを許可するために、アクセス制御デバイス110が起動または作動するように認証管理システム140に命令する。
【0060】
別の例では、軌跡および意図予測システム144は、アクセス制御デバイス110上にローカルに実装される。そのような事例では、アクセス制御デバイス110は、起動の対応する範囲(たとえば、アクセス制御デバイス110についてのアクセス制御デバイス範囲430に記憶された範囲)を用いてハードプログラミングされる(hard programmed)。アクセス制御デバイス110上に実装された軌跡および意図予測システム144は、予測軌跡がハードコーディングされた範囲内に入るかどうかを判定する。そうである場合、軌跡および意図予測システム144は、アクセス制御デバイス110にクライアントデバイス120についてアクセスを許可させる。別の例では、軌跡および意図予測システム144は、クライアントデバイス120上に実装され、軌跡および意図予測をアクセス制御デバイス110に提供する。次いで、アクセス制御デバイス110は、クライアントデバイス120がアクセス制御デバイス110に関連付けられた範囲内にあるかどうかを判定して、クライアントデバイス120についてアクセスを許可/拒否する。
【0061】
いくつかの事例では、軌跡および意図予測システム144は、範囲情報にアクセスせず、単に、予測軌跡または一組の予測軌跡を認証管理システム140、クライアントデバイス120、および/またはアクセス制御デバイス110に供給する。次いで、これらのデバイスは、予測軌跡が閾値範囲内にあるか否かに関する決定を集合的にまたは個々に行う。
【0062】
図2は、例示的な実施形態による、軌跡および意図予測に基づく例示的なアクセス制御システム200を示す。例えば、ユーザー210は、モバイルデバイスまたは電話機などのクライアントデバイス120(図示せず)を携帯し得る。クライアントデバイス120(またはアクセス制御デバイス110)は、一組の観測された2Dおよび/または3D座標230を収集し得る。クライアントデバイス120(またはアクセス制御デバイス110)は、ユーザーの現在の軌跡を計算し得る。クライアントデバイス120は(単独で、またはアクセス制御デバイス110と組み合わせて)、ユーザーの歩幅および/またはユーザーの物理的な動きなど、ユーザーに関する一組のユーザー挙動情報も収集する。クライアントデバイス120は(単独で、またはアクセス制御デバイス110と組み合わせて)、クライアントデバイス120が様々なアクセス制御デバイス110を作動させるために使用される時間帯および場所を収集することもできる。この情報を使用して、訓練される機械学習技法は、いくつかのアクセス制御デバイス110を作動させることに関するユーザーの意図または選好を決定または導出することができる。いくつかの事例では、アクセス制御デバイス110は、アクセス制御デバイス110を作動させる複数のクライアントデバイス120の識別子と、様々なクライアントデバイス120がアクセス制御デバイス110を作動させる複数の時間帯とを記憶する。次いで、このユーザー挙動情報は、クライアントデバイス120のそれぞれのプロファイルに集約されて、それぞれのクライアントデバイス120に関連付けられたユーザー挙動情報を生成する。
【0063】
一例では、クライアントデバイス120は、2つのアクセス制御デバイス220および222がクライアントデバイス120の指定された範囲内にあることを判定することができる。例えば、アクセス制御デバイス220および222の各々は、クライアントデバイス120とのBLE通信の範囲内にある。それに応答して、クライアントデバイス120は、アクセス制御デバイス220および222の両方のクレデンシャルを読み出し、それらのクレデンシャルを認証管理システム140に送信する。認証管理システム140は、クライアントデバイス120がアクセス制御デバイス220および222の両方にアクセスする権限を付与されていることを判定する。アクセスする権限を付与されていると判定したことに応答して、認証管理システム140は、クライアントデバイス120が、それぞれのアクセス制御デバイス220または222の特定の範囲250内にある予測軌跡をたどって移動していると判定されるまで、アクセス制御デバイス220または222の特定のアクセス制御デバイスへのアクセスの許可を遅延させる。
【0064】
別の例では、単一のアクセス制御デバイス110によって保護される領域へのアクセスを確保する単一のアクセス制御デバイス110があってもよい。そのような事例では、セキュリティ保護された領域に入るユーザーの意図は、所与のクライアントデバイス120についてアクセスを許可するために、アクセス制御デバイス110に命令する前に判定される。具体的には、クライアントデバイス120に対してアクセスを許可するために、アクセス制御デバイス110に命令する前に、ユーザーの予測軌跡がアクセス制御デバイス110の範囲内に入るか否かに関する判定が行われる。
【0065】
たとえば、クライアントデバイス120(またはアクセス制御デバイス110)は、観測された現在の軌跡を軌跡および意図予測システム144に供給する。クライアントデバイス120は(単独で、またはアクセス制御デバイス110と組み合わせて)、クライアントデバイス120に関連付けられたユーザーについてのユーザー挙動情報も供給する。別の例では、アクセス制御デバイス110は、観測された現在の軌跡を軌跡および意図予測システム144に供給する。アクセス制御デバイス110は、独立して、またはクライアントデバイス120と組み合わせて、クライアントデバイス120に関連付けられたユーザーに関するユーザー挙動情報を供給することができる。
【0066】
軌跡および意図予測システム144は、現在の軌跡及びユーザー挙動情報に基づいて1つまたは複数の軌跡を予測する。軌跡および意図予測システム144は、次いで、クライアントデバイス120が移動すると予測される予測軌跡240を特定する。予測軌跡240が第1のアクセス制御デバイス220の範囲内にあると判定したことに応答して、軌跡および意図予測システム144は、第1のアクセス制御デバイス220がクライアントデバイス120に対してアクセスを許可するように認証管理システム140に命令する(たとえば、第1のアクセス制御デバイス220は、電子ドアロックをアンロックするなどの動作を実行するように命令される)。予測軌跡240が第2のアクセス制御デバイス222の範囲内に入らないと判定したことに応答して、軌跡および意図予測システム144は、第2のアクセス制御デバイス222がクライアントデバイス120に対してアクセスを拒否するように認証管理システム140に命令する(たとえば、第2のアクセス制御デバイス222は、クライアントデバイス120の複数のクレデンシャルが第2のアクセス制御デバイス222にアクセスする権限を付与されていても、ロックされたままであるように命令される)。いくつかの事例では、予測軌跡は、第1および第2のアクセス制御デバイス220および222の両方の範囲内に入る。しかしながら、軌跡および意図予測システム144は、(例えば、ユーザー挙動情報に基づいて)第1のアクセス制御デバイス220を作動させるユーザー意図を予測する。そのような事例では、軌跡および意図予測システム144は、第1のアクセス制御デバイス220がクライアントデバイス120に対してアクセスを許可し(たとえば、第1のアクセス制御デバイス220は、電子ドアロックをアンロックするなどの動作を実行するように命令される)、第2のアクセス制御デバイス222がクライアントデバイス120に対してアクセスを拒否するように認証管理システム140に命令する。
【0067】
図3A~
図3Cは、いくつかの実施形態による、
図1のアクセス制御システム内に配置され得る例示的な軌跡および意図予測システム144のブロック図である。訓練入力310は、複数のモデルパラメータ312と、訓練データ320とを含み、これらは、対になった複数の訓練データセット322(例えば、複数の入力・出力訓練ペア(input-output training pairs))および複数の制約326を含み得る。複数のモデルパラメータ312は、複数の機械学習モデルのうちの対応する複数の機械学習モデルのパラメータまたは係数を含むかまたは提供する。訓練中、これらのパラメータ312は、訓練データ320の複数の入力・出力訓練ペアに基づいて適応される(adapted)。複数のパラメータ312が適応された後(訓練後)、複数の訓練済み機械学習(ML : machine learning)モデルを新しい一組のデータ370について実行するために、複数のパラメータは、複数の訓練済みモデル360によって使用される。
【0068】
訓練データ320は、所与の軌跡およびユーザー挙動情報の制約を定義し得る複数の制約326を含む。対となる訓練データ320は、複数の訓練観測軌跡および訓練ユーザー挙動情報と対応する複数の訓練予測軌跡(グラウンドトゥルース軌跡)との複数のペアなどの複数組の入力・出力ペア322を含み得る。複数のグラウンドトゥルース予測軌跡は、観測軌跡に続く1つまたは複数の将来の時点における実際の複数の軌跡と、複数の早い時点における一組のユーザー挙動情報とを示す。例えば、観測軌跡及びユーザー挙動測定値は、経路の第1の区間について第1の時点で取得することができる。グラウンドトゥルース予測軌跡は、第1の区間に続く第2の区間についての第2の時点での実際の観測軌跡を表す。
【0069】
訓練入力310のいくつかの構成要素は、訓練入力310の他の構成要素とは異なるオフサイト設備(off-site facility)または複数の設備において別個に記憶され得る。対になった訓練データ320は、訓練ユーザー挙動情報と、ユーザー挙動情報(グラウンドトゥルースユーザー挙動情報)の対応する訓練特徴ベクトルとの複数の対を含み得る。対になった訓練データ320は、ユーザー挙動情報に結び付けられた訓練予測軌跡と、対応するアクセス制御デバイスを作動させる訓練意図(training intent)(グランドトゥルース意図)との複数のペアを含み得る。複数のグラウンドトゥルース意図は、あるユーザー挙動情報と結び付けられた軌跡が観測された場合に、所与のアクセスデバイス110が作動したか否かを示す情報を収集することによって生成される。
【0070】
1つまたは複数の機械学習モデルの訓練330は、対になった訓練データ322の複数組の入力・出力ペアに基づいて1つまたは複数の機械学習技法を訓練する。たとえば、モデルの訓練330は、1つまたは複数のグラウンドトゥルース測定値に基づいて損失関数を最小化することによって、第1の組のMLモデルパラメータ312を訓練し得る。特に、第1の組のMLモデルパラメータ312は、予測軌跡を推定するために、一組のユーザー挙動情報を条件とする(conditioned on)観測された現在の軌跡の訓練セットに適用され得る。いくつかの実装形態では、損失関数の導関数(derivative)は、推定された予測軌跡とグラウンドトゥルース軌跡との比較に基づいて計算され、第1の組のMLモデルパラメータは、損失関数の計算された導関数に基づいて更新される。第1の組のMLモデルパラメータは、第1の機械学習技法(例えば、条件付き変分オートエンコーダ(conditioned variational autoencoder))に適用されて、新しいデータ370が与えられると第1の予測を生成することができる。
【0071】
別の例として、モデルの訓練330は、1つまたは複数のグラウンドトゥルース測定値に基づいて損失関数を最小化することによって、第2の組のMLモデルパラメータ312を訓練し得る。特に、第2の組のMLモデルパラメータ312は、ユーザー挙動情報を示す特徴ベクトルを推定するために、観測されたユーザー挙動情報の訓練セットに適用され得る。いくつかの実装形態では、損失関数の導関数は、推定されたユーザー挙動情報とグラウンドトゥルースユーザー挙動情報との比較に基づいて計算され、第2の組のMLモデルパラメータは、損失関数の計算された導関数に基づいて更新される。第2組のMLモデルパラメータは、第2の機械学習技法(例えば、ニューラルネットワーク)に適用されて、新しいデータ370を与えられると第2の予測を生成することができる。
【0072】
別の例として、モデルの訓練330は、1つまたは複数のグラウンドトゥルース測定値に基づいて損失関数を最小化することによって、第3の組のMLモデルパラメータ312を訓練し得る。特に、第2の組のMLモデルパラメータ312は、アクセス制御デバイスを作動させる予測意図を推定するために、複数の予測軌跡と結び付けられたユーザー挙動情報の訓練セットに適用され得る。いくつかの実装形態では、損失関数の導関数は、アクセス制御デバイスを作動させる推定された予測意図とアクセス制御デバイスを動作させるグラウンドトルース意図との比較に基づいて計算され、第3の組のMLモデルパラメータは、損失関数の計算された導関数に基づいて更新される。第3組のMLモデルパラメータは、第3の機械学習技法(例えば、ニューラルネットワーク)に適用されて、新しいデータ370を与えられると第3の予測を生成することができる。
【0073】
第1、第2、および/または第3のMLモデルはすべて、同じデバイス上に(たとえば、クライアントデバイス120上に、アクセス制御デバイス110上に、または集中的に認証管理システム140上に)記憶され得る。いくつかの事例では、第1、第2、および/または第3のMLモデルのうちの特定のMLモデルは、特定のデバイスによって(例えば、クライアントデバイス120上に、アクセス制御デバイス110上に、または集中的に認証管理システム140上に)実装され得るが、第1、第2、および第3のMLモデルの別のMLモデルは、異なるデバイスによって(例えば、クライアントデバイス120上に、アクセス制御デバイス110上に、または集中的に認証管理システム140上に)実装される。
【0074】
複数の組の訓練データ列(training data trains)について損失関数を最小化したことにより、対応する複数のMLモデルのモデルパラメータ312は適応または最適化される。このようにして、これらMLモデルは、複数の訓練データ(たとえば、観測軌跡、観測されたユーザー挙動情報、結び付けられた軌跡およびユーザー挙動情報)と、対応する複数の予測された訓練データ(たとえば、予測軌跡、予測されたユーザー挙動情報、アクセス制御デバイスを作動させる予測意図)との間の関係を確立するように訓練される。
【0075】
これらMLモデルは、一実装形態では、教師あり学習技法に従って訓練されて、訓練観測軌跡(training observed trajectory)およびユーザー挙動情報から軌跡を推定する。そのような事例では、MLモデルを訓練するために、複数の訓練観測軌跡およびユーザー挙動情報が、それらの対応する訓練予測または推定軌跡とともに読み出される。例えば、訓練観測軌跡及びユーザー挙動情報は、データベース400(
図4)に記憶された訓練データ410から読み出される。MLモデルは、所与の組の軌跡を推定するために、第1の群の訓練観測軌跡およびユーザー挙動情報に適用される。その群の訓練観測軌跡およびユーザー挙動情報は、同じパラメータを用いてMLモデルを訓練するために使用することができ、特定の訓練観測軌跡およびユーザー挙動情報から、訓練観測軌跡およびユーザー挙動情報のすべての範囲であり得る。いくつかの実装形態では、MLモデルの出力または結果は、第1の組の予測軌跡を計算または予測するために使用される。
【0076】
第1の組の予測軌跡は損失関数に適用され、損失関数の勾配(gradient)または導関数は、予測軌跡の期待されるセットまたはグラウンドトゥルースセットに基づいて計算される。損失関数の勾配または導関数に基づいて、MLモデルの更新された複数のパラメータが計算される。例えば、MLモデルの複数のパラメータは、データベース400の訓練済み機械学習技法420に含まれる。次いで、MLモデルは、更新された複数のパラメータを用いて、第2群の訓練観測軌跡およびユーザー挙動情報に適用されて、所与の組の予測軌跡を再び推定し、その予測軌跡を、それらの対応するグラウンドトゥルース予測軌跡との比較のために損失関数に適用する。MLモデルの複数のパラメータは再び更新され、この訓練プロセスの反復は、指定された反復回数またはエポック(epochs)数の間、または所与の収束基準が満たされるまで継続される。
【0077】
機械学習モデルが訓練された後、1つまたは複数の観測軌跡およびユーザー挙動情報を含む新しいデータ370が受信され得る。訓練済み機械学習技法は、新しいデータ370に適用されて、複数の予測軌跡を含む生成された結果380を、ユーザーが各それぞれの軌跡に沿った経路をたどることになるそれらの対応する尤度とともに生成することができる。
【0078】
図3Bは、
図1のシステム内で設けられ得る軌跡および意図予測システム144の一実装形態301を示す。観測軌跡は、クライアントデバイス120から受信され得る。観測軌跡は、現在の軌跡に対応する特徴ベクトルを生成するために軌跡エンコーダ(trajectory encoder)371によって処理される。現在の軌跡に対応する特徴ベクトルは、訓練済み軌跡予測モデル361に入力される。訓練済み軌跡予測モデル361は、第1の組のモデルパラメータ312を使用して動作することができ、条件付き変分オートエンコーダを実装することができる。任意の他のタイプのニューラルネットワークまたは機械学習技法が、訓練済み軌跡予測モデル361として同様に使用され得る。訓練済み軌跡予測モデル361はまた、訓練済みユーザー挙動情報モデル362からユーザー挙動情報を受信する。訓練済みユーザー挙動情報モデル362は、(たとえば、ベクトルとして符号化された)一組のユーザー挙動情報を受信し、ユーザー挙動情報を示す特徴ベクトルを生成するように構成されている。一例では、訓練済み軌跡予測モデル361および訓練済みユーザー挙動情報モデル362は、エンドツーエンド(end-to-end)で訓練される。
【0079】
訓練済み軌跡予測モデル361は、現在の軌跡に対応する特徴ベクトルと、ユーザー挙動情報を示す特徴ベクトルとを処理し、1つまたは複数の軌跡を予測する。複数の予測軌跡は、1つまたは複数の軌跡のうちの1つまたは複数の範囲内でアクセス制御デバイスを作動させるユーザー意図を判定するために、別の機械学習技法(図示せず)によって処理されることができる。ユーザーのクレデンシャルにクライアントデバイス120の範囲内にあるアクセス制御デバイスにアクセスする権限を付与した後、ユーザーが1つまたは複数の軌跡のうちの1つまたは複数の軌跡の範囲内でアクセス制御デバイスを作動させることを意図していると判定したことに応答して、軌跡および意図予測システム144は、クライアントデバイス120の範囲内にあるアクセス制御デバイスに、アクセスを許可するかまたは作動を実行する(たとえば、ドアロックをアンロックする)ように命令する。
【0080】
図3Cは、
図1のシステム内で設けられ得る軌跡および意図予測システム144の一実装形態302を示す。観測軌跡は、クライアントデバイス120から受信され得る。観測軌跡は、現在の軌跡に対応する特徴ベクトルを生成するために軌跡エンコーダ(trajectory encoder)371によって処理される。現在の軌跡に対応する特徴ベクトルは、訓練済み軌跡予測モデル361に入力される。訓練済み軌跡予測モデル361は、第1の組のモデルパラメータ312を使用して動作することができ、変分オートエンコーダを実装することができる。任意の他のタイプのニューラルネットワークまたは機械学習技法が、訓練済み軌跡予測モデル361として同様に使用され得る。訓練済み軌跡予測モデル361は、現在の軌跡に対応する特徴ベクトルを処理し、1つまたは複数の軌跡を予測する。これらの予測された1つまたは複数の軌跡は、連結器(concatenator)392に供給される。いくつかの事例では、訓練済み軌跡予測モデル361は、現在の軌跡に対応する特徴ベクトルと、ユーザー挙動情報を示す特徴ベクトルとを処理し、1つまたは複数の軌跡を予測する。(現在の軌跡およびユーザー挙動情報を示す特徴ベクトルに基づいて予測される)これらの1つまたは複数の軌跡は、連結器392に供給される。
【0081】
訓練済みユーザー挙動情報モデル362は、(たとえば、ベクトルとして符号化された)一組のユーザー挙動情報を受信し、ユーザー挙動情報を示す特徴ベクトルを生成するように構成されている。ユーザー挙動情報を示す特徴ベクトルも連結器392に供給される。いくつかの実施形態では、訓練済みユーザー挙動情報モデル362は、(たとえば、ユーザー挙動情報は、ユーザー挙動情報の最低限のパラメータを満たさない)生成された結果についての非常に低い信頼スコアを示す結果または特徴ベクトルを出力する可能性がある。これは、ユーザー挙動情報の(例えば、異なるタイプおよび場所のアクセスデバイスが作動される時間帯、ユーザーの歩幅、ユーザーの物理的移動、ユーザーがクライアントデバイス120を携帯しているか、またはデバイスをポケットに入れているか、アクセス制御デバイスが作動されるときのユーザーが誰であるか等の指定された複数のタイプの閾値量より少ない)不十分な量が、所与のユーザーについて収集された場合であり得る。そのような状況では、ユーザー意図に関する複数の予測および複数の軌跡には、非常に低い確率を割り当てることができ、クライアントデバイス120の複数のクレデンシャルがアクセス制御デバイスにアクセスする権限を付与されている場合であっても、クライアントデバイス120の範囲内にあるアクセス制御デバイスへのアクセスを防止する。
【0082】
一例として、ユーザーが最近、新しいキーを電子ドアロックに追加した場合、高レベルの信頼度でユーザー挙動を示す特徴ベクトルを生成するために実行される必要がある訓練期間が存在し得る。高レベルの信頼度でユーザー挙動を示す特徴ベクトルが達成されると、高レベルの確率で意図予測を提供することができ、クライアントデバイス120の範囲内にあるアクセス制御デバイスは、クライアントデバイス120のクレデンシャルが該アクセス制御デバイスにアクセスする権限を付与されている場合に作動される(たとえば、アンロックされる)ように命令される。すなわち、対応するアクセス制御デバイスにアクセスするためにユーザーによってクライアントデバイス120に追加されるクレデンシャルまたはキーの各新しいセットに関連付けられた訓練期間が存在し得る。この期間中、アクセス制御デバイスは、20センチメートル以内等の短距離通信プロトコル(例えば、NFC)を使用して、クライアントデバイス120によってのみアクセスおよび作動され得る。新たに追加されたクレデンシャルについて訓練済みユーザー挙動情報モデル362の訓練が完了した後、アクセス制御デバイスは、10メートル以内など、長距離通信プロトコル(たとえば、BLE)を使用してクライアントデバイス120によってアクセスされ、作動され得る。
【0083】
一例では、連結器392は、ユーザー挙動情報を示す特徴ベクトルに基づいて、(現在の軌跡のみに基づいて予測された)1つまたは複数の軌跡を組み合わせる(たとえば、調整する)。別の例では、連結器392は、ユーザー挙動情報を示す特徴ベクトルに基づいて、(現在の軌跡に基づいて、およびユーザー挙動情報を示す特徴ベクトルに基づいて予測された)1つまたは複数の軌跡を組み合わせる(たとえば、調整する)。連結器392による結び付けられた結果は、訓練済み意図予測モデル363に供給される。連結器392は、複数の入力データセットからの単一の表現(representation)を組み合わせる、乗算する、集約する、合計する、および/または生成する任意のデバイスとして実装されることができる。
【0084】
訓練済み意図予測モデル363は、1つまたは複数の軌跡のうちの1つまたは複数の軌跡の範囲内でアクセス制御デバイスを作動させるユーザー意図を判定する。訓練済み意図予測モデル363はまた、エンドツーエンドで訓練されるニューラルネットワークであり得る。訓練済み意図予測モデル363は、(例えば、ユーザー挙動情報を示す特徴ベクトルによって調整されるような一組の予測軌跡に基づいて)ユーザーがクライアントデバイス120の範囲内で所与のアクセス制御デバイスを作動させることを意図しているか否かに関する予測を出力するように訓練される。訓練済み意図予測モデル363は、ユーザーがアクセス制御デバイスを作動させる尤度を示す確率とともに、ユーザーが所与のアクセス制御デバイスを作動させるかまたは作動させる意図があるかどうかについての意図(例えば、イエスまたはノー)を出力することができる。ユーザーのクレデンシャルにクライアントデバイス120の範囲内にあるアクセス制御デバイスにアクセスする権限を付与した後、閾値確率よりも大きい特定の確率でユーザーが1つまたは複数の軌跡のうちの1つまたは複数の軌跡の範囲内でアクセス制御デバイスを作動させることを意図していると判定したことに応答して、軌跡および意図予測システム144は、クライアントデバイス120の範囲内にあるアクセス制御デバイスに、アクセスを許可するかまたは動作を実行する(たとえば、ドアロックをアンロックする)ように命令する。
【0085】
一例では、訓練済み意図予測モデル363は、1日のうちのある時間帯に、かつユーザーが1つまたは複数の他のクライアントデバイス120の範囲内にいるときに、アクセス制御デバイスを作動させるユーザー意図を予測するように訓練される。すなわち、訓練済みユーザー挙動情報モデル362は、特定のアクセス制御デバイスがユーザーによって作動される時間帯(たとえば、午前9時および午後5時)と、そのアクセス制御デバイスが作動されるときのクライアントデバイス120のある範囲(たとえば、5メートル)内の他のクライアントデバイス120の一組の識別子とを提供し得る。訓練済み意図予測モデル363は、ユーザーの予測された軌跡の範囲内のアクセス制御デバイスを特定し、現在の時刻が午前9時または午後5時の時間帯の指定された閾値内であることを判定し得る。そのような事例では、ユーザー挙動情報に含まれるソーシャルネットワーク情報に関連して、訓練済み意図予測モデル363はまた、一組の識別子に一致する複数の識別子を有する他の複数のクライアントデバイスがクライアントデバイス120の指定された範囲内にあるかどうかを判定する。そうである場合、訓練済み意図予測モデル363は、ユーザーがアクセス制御デバイスを動作させる意図が非常に高い(例えば、90%)と判定し、そのアクセスデバイスにユーザーに対してアクセスを許可させる。訓練済み意図予測モデル363はまた、複数の予測軌跡の範囲内にある別のアクセス制御デバイスが、ユーザーが作動させる非常に低い意図(例えば、10%未満)を有すると判定し(例えば、ユーザーが、過去の特定の時間帯に、および他のクライアントデバイス120の一組の識別子の範囲内にあるときに、そのデバイスが作動されなかったため)、ユーザーがアクセスデバイスにアクセスまたは作動させるためのクレデンシャルを有していても、そのアクセスデバイスにユーザーに対するアクセスを拒否させることができる。
【0086】
いくつかの実施形態では、ユーザー挙動データは、複数の訓練済みモデルのうちの1つ以上が複数のクライアントデバイス120を含むシステム内で実装された後、経時的に収集される。この場合、ユーザー挙動モデル(たとえば、訓練済みユーザー挙動情報モデル362)と軌跡モデル(たとえば、訓練済み軌跡予測モデル361)とは切り離される(decoupled)。これは、訓練データがないためにユーザー挙動モデルが利用可能でないためであり得る。この場合、軌跡モデルのみを使用して軌跡予測を実行し、アクセスデバイスにユーザーに対してアクセスを許可または拒否させる。そのような状況では、ユーザー挙動モデルは、入力としてユーザー挙動情報(たとえば、歩幅、時刻、選好、ソーシャルネットワーク情報、ターゲットドア(複数可))を受信し、所与のアクセスデバイスにアクセスするユーザーの意図の確率を出力する分類器(classifier)を含む。次に、この確率を軌跡の確率と組み合わせて、所与のアクセスデバイスを作動させるユーザーの意図の予測を生成する。
【0087】
いくつかの実施形態では、ユーザー挙動モデルは、単一のドアまたはアクセス制御デバイスの代わりに、複数のドアまたは複数のアクセス制御デバイスを入力として受信する。この場合、ユーザー挙動モデルは、複数のアクセス制御デバイスの各々を作動させるユーザーの意図の確率を出力する。すなわち、アクセス制御デバイスごとに、ユーザーがそのアクセス制御デバイスを作動させる確率を示す確率が出力される。この確率を軌跡の確率と組み合わせることで、複数のアクセス制御デバイスのうちの所与の1つにアクセスするか、まったくアクセスしないかのユーザーの意図を判定する。いくつかの実施形態では、軌跡とユーザー挙動モデルによって出力された確率との組み合わせは、2つのモデル(訓練済みユーザー挙動情報モデル362および訓練済み軌跡予測モデル361)によって行われた予測の加重平均(weighted average)として生成される。重みは、システム管理者により設定可能であり、および/または、収集されるユーザー挙動データが増えてモデルの精度が高まるにつれて、時間とともに自動的に動的に良好に変化し得る。
【0088】
図5は、例示的な実施形態による、アクセス制御システム100のプロセス500の例示的な動作を示すフローチャートである。プロセス500は、プロセス500の複数の処理がシステム100の複数の機能コンポーネントによって部分的にまたは全体的に実行され得るように、1つまたは複数のプロセッサにより実行される複数のコンピュータ可読命令において具現化され得、したがって、プロセス500は、それを参照して例として以下で説明される。しかしながら、他の実施形態では、プロセス500の複数の処理のうちの少なくともいくつかは、様々な他のハードウェア構成上に展開され得る。プロセス500の複数の処理の一部または全部は、並列であっても、順序が違っていても、または完全に省略されてもよい。
【0089】
処理501において、認証管理システム140は、ユーザーの観測軌跡およびユーザーについてのユーザー挙動情報を受信する。例えば、認証管理システム140は、クライアントデバイス120についての現在の軌跡および一組のユーザー挙動情報(例えば、ユーザーの物理的移動、ユーザーの歩幅、特定の時刻に特定のアクセスデバイスにアクセスする選好、ユーザーが異なる時刻または曜日に誰の周りにいるかなどのユーザーのソーシャルネットワーク、ユーザーが特定の順序で特定のドアを開く選好など)を受信する。
【0090】
処理502において、認証管理システム140は、複数の予測軌跡を生成するために機械学習技法によって観測軌跡を処理し、機械学習技法は、複数の訓練観測軌跡と複数の訓練予測軌跡との間の関係を確立するように訓練される。例えば、訓練済み軌跡予測モデル361は、現在の軌跡を処理して、1つまたは複数の軌跡の予測を生成する。
【0091】
処理503において、認証管理システム140は、ターゲットアクセス制御デバイスを作動させるユーザー意図を判定するために、ユーザー挙動情報に基づいて複数の予測軌跡を調整する。例えば、訓練済み軌跡予測モデル361は、ユーザー挙動情報を条件とする現在の軌跡を処理し、1つまたは複数の軌跡の予測を調整する。
【0092】
処理504において、認証管理システム140は、ターゲットアクセス制御デバイスが複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあることを判定する。例えば、認証管理システム140は、第1のアクセス制御デバイス220の位置が、1つまたは複数の予測軌跡内にある範囲250を有することを判定する。
【0093】
処理505において、認証管理システム140は、ターゲットアクセス制御デバイスが複数の予測軌跡のうちの所与の予測軌跡の閾値範囲内にあると判定したことに応答して、ターゲットアクセス制御デバイスに関連付けられた動作を実行する。例えば、認証管理システム140は、(例えば、電子ドアロックをアンロックすることによって)クライアントデバイス120に対してアクセスを許可するようにアクセス制御デバイス220に命令する。いくつかの事例では、認証管理システム140は、アクセス制御デバイス110をバイパスして、ロックされるかまたはセキュリティ保護されたリソースを直接的に制御する。
【0094】
図6は、本明細書で説明される様々なハードウェアアーキテクチャと併せて使用され得る例示的なソフトウェアアーキテクチャ606を示すブロック図である。
図6は、ソフトウェアアーキテクチャの非限定的な例であり、本明細書で説明される機能を可能にするために、多くの他のアーキテクチャが実装され得ることが理解されよう。ソフトウェアアーキテクチャ606は、特に、プロセッサ704、メモリ714、および入力/出力(I/O)コンポーネント718を含む
図7の機械700などのハードウェア上で実行することができる。代表的なハードウェア層652が示されており、例えば、
図7の機械700を示すことができる。代表的なハードウェア層652は、関連する複数の実行可能命令604を有する処理ユニット654を含む。複数の実行可能命令604は、本明細書で説明される方法、構成要素などの実装を含むソフトウェアアーキテクチャ606の複数の実行可能命令を表す。ハードウェア層652はまた、複数の実行可能命令604も有するメモリおよび/またはストレージデバイスメモリ/ストレージ656を含む。ハードウェア層652はまた、他のハードウェア658を備えてもよい。ソフトウェアアーキテクチャ606は、
図1に示される複数の構成要素のうちの任意の1つ以上において展開され得る。
【0095】
図6の例示的なアーキテクチャでは、ソフトウェアアーキテクチャ606は、各層が特定の機能を提供する層のスタックとして概念化され得る。例えば、ソフトウェアアーキテクチャ606は、オペレーティングシステム602、複数のライブラリ620、複数のフレームワーク/ミドルウェア618、複数のアプリケーション616、およびプレゼンテーション層614などの複数の層を含むことができる。動作上、複数のアプリケーション616および/またはそれらの層内の他の構成要素は、ソフトウェアスタックを介してAPIコール608を呼び出し(invoke)、APIコール608に応答してメッセージ612を受信することができる。図示された複数の層は、本質的に代表的なものであり、すべてのソフトウェアアーキテクチャがすべての層を有するわけではない。例えば、いくつかのモバイルまたは専用オペレーティングシステムは、複数のフレームワーク/ミドルウェア618を提供しない場合があるが、他のものは、そのような層を提供する場合がある。他のソフトウェアアーキテクチャは、追加の層または異なる層を含み得る。
【0096】
オペレーティングシステム602は、複数のハードウェアリソースを管理し、複数の共通サービス(common services)を提供し得る。オペレーティングシステム602は、例えば、カーネル622、複数のサービス624、および複数のドライバ626を含み得る。カーネル622は、ハードウェア層と他のソフトウェア層との間の抽象化層(abstraction layer)として働くことができる。例えば、カーネル622は、メモリ管理、プロセッサ管理(例えば、スケジューリング)、コンポーネント管理、ネットワーキング、セキュリティ設定などを担うことができる。複数のサービス624は、他のソフトウェア層に他の共通サービスを提供し得る。複数のドライバ626は、基本的なハードウェアを制御すること、または基本的なハードウェアとインタフェースすることを担う。たとえば、複数のドライバ626は、ハードウェア構成に応じて、ディスプレイドライバ、カメラドライバ、BLEドライバ、UWBドライバ、Bluetooth(登録商標)ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(たとえば、USB(Universal Serial Bus)ドライバ)、Wi-Fi(登録商標)ドライバ、オーディオドライバ、電力管理ドライバなどを含む。
【0097】
複数のライブラリ620は、アプリケーション616および/または他のコンポーネントおよび/または層によって使用される共通インフラストラクチャを提供する。ライブラリ620は、他のソフトウェアコンポーネントが、基本的なオペレーティングシステム602の機能(例えば、カーネル622、複数のサービス624および/または複数のドライバ626)と直接的にインタフェースするよりも容易にタスクを実行することを可能にする機能を提供する。複数のライブラリ620は、メモリ割り当て機能、文字列操作機能(string manipulation function)、数学的機能などの機能を提供し得るシステムライブラリ644(例えば、C標準ライブラリ(C standard library))を含み得る。加えて、複数のライブラリ620は、メディアライブラリ(例えば、MPREG4、H.264、MP3、AAC、AMR、JPG、PNGなどの様々なメディアフォーマットの提示および操作をサポートするライブラリ)、グラフィックスライブラリ(例えば、ディスプレイ上のグラフィックコンテンツにおいて2次元および3次元をレンダリングするために使用され得るOpenGLフレームワーク)、データベースライブラリ(例えば、様々なリレーショナルデータベース機能を提供し得るSQLite)、ウェブライブラリ(例えば、ウェブブラウジング機能を提供し得るWebKit)などのAPIライブラリ646を含んでもよい。複数のライブラリ620はまた、複数のアプリケーション616および他のソフトウェアコンポーネント/デバイスに多くの他のAPIを提供するために、多種多様な他のライブラリ648を含んでもよい。
【0098】
複数のフレームワーク/ミドルウェア618(ミドルウェアと呼称されることもある)は、複数のアプリケーション616および/または他のソフトウェアコンポーネント/デバイスによって使用され得るより高レベル共通インフラストラクチャ(higher-level common infrastructure)を提供する。たとえば、複数のフレームワーク/ミドルウェア618は、様々なグラフィックユーザインタフェース機能、高レベルリソース管理、高レベル位置特定サービス(high-level location services)などを提供し得る。複数のフレームワーク/ミドルウェア618は、複数のアプリケーション616および/または他のソフトウェアコンポーネント/デバイスによって利用され得る広範囲の他のAPIを提供することができ、それらのうちのいくつかは、特定のオペレーティングシステム602またはプラットフォームに固有であり得る。
【0099】
複数のアプリケーション616は、内蔵アプリケーション638および/またはサードパーティアプリケーション640を含む。代表的な内蔵アプリケーション638の例は、連絡先アプリケーション、ブラウザアプリケーション、ブックリーダーアプリケーション、位置特定アプリケーション、メディアアプリケーション、メッセージングアプリケーション、および/またはゲームアプリケーションを含み得るが、これらに限定されない。サードパーティアプリケーション640は、特定のプラットフォームのベンダー以外のエンティティによってANDROID(商標)またはIOS(商標)ソフトウェア開発キット(SDK : software development kit)を使用して開発されたアプリケーションを含んでもよく、IOS(商標)、ANDROID(商標)、WINDOWS(登録商標)Phone、または他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステム上で実行されるモバイルソフトウェアであってもよい。サードパーティアプリケーション640は、本明細書で説明する機能を可能にするために、(オペレーティングシステム602などの)モバイルオペレーティングシステムによって提供されるAPIコール608を呼び出し得る。
【0100】
複数のアプリケーション616は、組み込みのオペレーティングシステム機能(例えば、カーネル622、サービス624、および/またはドライバ626)、複数のライブラリ620、および複数のフレームワーク/ミドルウェア618を使用して、システムの複数のユーザーと対話するためのUIを作成し得る。代替的にまたは追加的に、いくつかのシステムでは、ユーザーとの対話は、プレゼンテーション層614などのプレゼンテーション層を介して行われ得る。これらのシステムでは、アプリケーション/コンポーネント「ロジック」は、ユーザーと対話するアプリケーション/コンポーネントの態様から分離されることができる。
【0101】
図7は、いくつかの例示的な実施形態による、機械可読媒体(例えば、機械可読記憶媒体)から複数の命令を読み取り、本明細書において説明される複数の方法のうちの任意の1つまたは複数を実行することができる機械700の複数の構成要素を示すブロック図である。具体的には、
図7は、コンピュータシステムの例示的な形態における機械700の概略図を示し、その中で、本明細書で論じられる複数の方法のうちの任意の1つまたは複数を機械700に実行させるための命令710(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能コード)が実行され得る。
【0102】
したがって、命令710は、本明細書で説明されるデバイスまたは構成要素を実装するために使用され得る。命令710は、一般的なプログラムされていない機械700を、説明され、図示された機能を説明された方法で実行するようにプログラムされた特定の機械700に変換する。代替的な実施形態では、機械700は、スタンドアロンデバイスとして動作するか、または他の機械に結合(例えば、ネットワーク化)され得る。ネットワーク化された配置では、機械700は、サーバ-クライアントネットワーク環境におけるサーバマシンもしくはクライアントマシンの立場で、またはピアツーピア(もしくは分散)ネットワーク環境におけるピアマシンとして動作し得る。機械700は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、STB、PDA、エンターテイメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートホームデバイス(例えば、スマートアプライアンス)、他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、又は機械700によって行われる動作を指定する命令710を順次又は他の方法で実行することができる任意の機械を含んでもよいが、これらに限定されない。さらに、単一の機械700のみが図示されているが、「機械」という用語は、本明細書で説明される方法のうちの任意の1つまたは複数を実行するために命令710を個別にまたは共同で実行する機械の集合を含むとも解釈されるものとする。
【0103】
機械700は、プロセッサ704、メモリ/ストレージ706、及びI/Oコンポーネント718を含み得、これらは、バス702などを介して互いに通信するように構成され得る。一実施形態では、プロセッサ704(例えば、中央処理装置(CPU)、縮小命令セットコンピューティング(RISC)プロセッサ、複合命令セットコンピューティング(CISC)プロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、ASIC(application-specific integrated circuit)、無線周波数集積回路(RFIC)、別のプロセッサ、またはそれらの任意の適切な組合せ)は、例えば、命令710を実行し得るプロセッサ708およびプロセッサ712を含み得る。「プロセッサ」という用語は、命令を同時に実行することができる2つ以上の独立したプロセッサ(「コア」と呼ばれることもある)を備え得るマルチコアプロセッサ704を含むことを意図している。
図7は複数のプロセッサ704を示しているが、機械700は、単一のコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ(例えば、マルチコアプロセッサ)、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらの任意の組み合わせを含んでもよい。
【0104】
メモリ/ストレージ706は、メインメモリまたは他のメモリストレージなどのメモリ714と、命令710と、ストレージユニット716とを含むことができ、両方ともバス702などを介してプロセッサ704にアクセス可能である。ストレージユニット716およびメモリ714は、本明細書で説明される方法または機能のうちの任意の1つまたは複数を具現化する命令710を記憶する。また、命令710は、機械700によるその実行中に、メモリ714内、ストレージユニット716内、プロセッサ704のうちの少なくとも1つ内(例えば、プロセッサのキャッシュメモリ内)、またはそれらの任意の適切な組合せに、完全にまたは部分的に存在し得る。したがって、メモリ714、ストレージユニット716、およびプロセッサ704のメモリは、機械可読媒体の例である。
【0105】
I/Oコンポーネント718は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を取り込む等のための多種多様なコンポーネントを含み得る。特定の機械に含まれる特定のI/Oコンポーネント718は、機械700のタイプに依存する。例えば、携帯電話などの携帯機器は、タッチ入力装置または他のそのような入力機構を含む可能性が高いが、ヘッドレスサーバマシンは、そのようなタッチ入力装置を含まない可能性が高い。I/Oコンポーネント718が、
図7に示されない多くの他のコンポーネントを含み得ることが理解されるであろう。I/Oコンポーネント718は、単に以下の説明を簡略化するために機能に従ってグループ化されており、このグループ化は決して限定的なものではない。様々な実施形態において、I/Oコンポーネント718は、出力コンポーネント726及び入力コンポーネント728を含み得る。出力コンポーネント726は、視覚コンポーネント(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、または陰極線管(CRT)などのディスプレイ)、聴覚コンポーネント(例えば、スピーカー)、触覚コンポーネント(例えば、振動モータ、抵抗機構)、他の信号発生器などを含み得る。入力コンポーネント728は、英数字入力コンポーネント(例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、フォトオプティカルキーボード、または他の英数字入力コンポーネント)、ポイントベースの入力コンポーネント(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、または別のポインティング機器)、触覚入力コンポーネント(例えば、物理ボタン、タッチまたはタッチジェスチャの位置および/または力を提供するタッチスクリーン、または他の触覚入力コンポーネント)、音声入力コンポーネント(例えば、マイクロフォン)などを含み得る。
【0106】
さらなる実施形態では、I/Oコンポーネント718は、多種多様な他のコンポーネントの中でも、バイオメトリックコンポーネント739、モーションコンポーネント734、環境コンポーネント736、またはポジションコンポーネント738を含み得る。例えば、バイオメトリックコンポーネント739は、表情(例えば、手の表情、顔の表情、声の表情、身振り、または視線追跡)を検出し、生体信号(例えば、血圧、心拍数、体温、発汗、または脳波)を測定し、人を識別する(例えば、音声識別、網膜識別、顔識別、指紋識別、または脳波ベースの識別)などのコンポーネントを含み得る。モーションコンポーネント734は、加速度センサコンポーネント(例えば、加速度計)、重力センサコンポーネント、回転センサコンポーネント(例えば、ジャイロスコープ)などを含み得る。環境コンポーネント736は、例えば、照明センサコンポーネント(例えば、光度計)、温度センサコンポーネント(例えば、周囲温度を検出する1つ以上の温度計)、湿度センサコンポーネント、圧力センサコンポーネント(例えば、気圧計)、音響センサコンポーネント(例えば、背景ノイズを検出する1つ以上のマイクロフォン)、近接センサコンポーネント(例えば、近くの物体を検出する赤外線センサ)、ガスセンサ(例えば、安全のために有害ガスの濃度を検出するか、または大気中の汚染物質を測定するガス検出センサ)、または周囲の物理的環境に対応する表示、測定値、もしくは信号を提供し得る他のコンポーネントを含み得る。ポジションコンポーネント738は、位置センサコンポーネント(例えば、GPS受信機コンポーネント)、高度センサコンポーネント(例えば、高度が導出され得る空気圧を検出する高度計または気圧計)、方位センサコンポーネント(例えば、磁力計)などを含み得る。
【0107】
通信は、多種多様な技術を使用して実現され得る。I/Oコンポーネント718は、それぞれ結合724および結合722を介して機械700をネットワーク737またはデバイス729に結合するように動作可能な通信コンポーネント740を含み得る。例えば、通信コンポーネント740は、ネットワーク737とインタフェースで接続するためのネットワークインタフェースコンポーネントまたは別の適切なデバイスを含み得る。さらなる実施例において、通信コンポーネント740は、有線通信コンポーネント、無線通信コンポーネント、セルラー通信コンポーネント、近距離無線通信(NFC)コンポーネント、Bluetooth(登録商標)コンポーネント(例えば、Bluetooth(登録商標)Low Energy)、Wi-Fi(登録商標)コンポーネント、および他のモダリティを介して通信を提供する他の通信コンポーネントを含み得る。デバイス729は、別の機械または多種多様な周辺デバイス(例えば、USBを介して接続された周辺デバイス)のいずれかであり得る。
【0108】
さらに、通信コンポーネント740は、識別子を検出してもよく、または識別子を検出するように動作可能なコンポーネントを含み得る。例えば、通信コンポーネント740は、無線周波数識別(RFID)タグリーダコンポーネント、NFCスマートタグ検出コンポーネント、光学リーダコンポーネント(例えば、ユニバーサルプロダクトコード(UPC)バーコードなどの一次元バーコード、QR(Quick Response)コード、Aztecコード、Data Matrix、Dataglyph、MaxiCode、PDF417、Ultra Code、UCC RSS-2Dバーコード、および他の光学コードなどの多次元バーコードを検出するための光学センサ)、または音響検出コンポーネント(例えば、タグ付けされたオーディオ信号を識別するためのマイクロフォン)を含み得る。加えて、インターネットプロトコル(IP)ジオロケーションを介したロケーション、Wi-Fi(登録商標)信号三角測量を介したロケーション、特定のロケーションを示し得るNFCビーコン信号の検出によるロケーションなど、様々な情報が通信コンポーネント740を介して導出され得る。
【0109】
<用語解説>
この文脈における「キャリア信号」は、機械による実行のための一時的または非一時的な命令を格納、符号化、または搬送することができる任意の無形媒体を指すだけでなく、そのような命令の通信を促進するためのデジタルまたはアナログ通信信号または他の無形媒体が含まれる。一時的または非一時的な命令は、ネットワークインタフェースデバイスを介した伝送媒体を使用することで、多数の周知の転送プロトコルのうちの任意の1つを使用することで、ネットワークを介して送信または受信されてもよい。
【0110】
この文脈における「クライアントデバイス」は、1つまたは複数のサーバシステムまたは他のクライアントデバイスからリソースを取得するべく、通信ネットワークにインタフェースする任意の機械を指す。クライアントデバイスは、携帯電話、デスクトップコンピュータ、ラップトップ、PDA、スマートフォン、タブレット、ウルトラブック、ネットブック、ラップトップ、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家電、ゲームコンソール、セット・トップ・ボックス、またはユーザーがネットワークにアクセスするべく使用し得る他の任意の通信デバイス、であってよいが、それらに限定されるものではない。
【0111】
この文脈における「通信ネットワーク」は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、LAN、BLEネットワーク、UWBネットワーク、無線LAN(WLAN)、WAN(wide area network)、無線WAN(WWAN)、大都市圏ネットワーク(MAN)、インターネット、インターネットの一部、公衆交換電話網(PSTN)の一部、POTS(plain old telephone service)ネットワーク、セルラー電話ネットワーク、無線ネットワーク、Wi-Fi(登録商標)ネットワーク、別のタイプのネットワーク、または2つ以上のこのようなネットワークの組み合わせ、であってよいネットワークの1以上の部分を指している。例えば、ネットワークまたはネットワークの一部は、無線またはセルラーネットワークを備えてもよく、結合は、符号分割多重アクセス(CDMA)接続、移動通信用グローバルシステム(GSM(登録商標))接続、または他のタイプのセルラーまたは無線結合であってもよい。この例では、結合は、シングルキャリア無線伝送技術(1xRTT)、進化データ最適化(Evolution-Data Optimized : EVDO)技術、一般パケット無線サービス(General Packet Radio Service : GPRS)技術、GSM(登録商標)進化のための拡張データレート(Enhanced Data rates for GSM Evolution : EDGE)技術、3Gを含む第3世代パートナーシッププロジェクト(3GPP(登録商標))、第4世代無線ネットワーク(4G)、UMTS(Universal Mobile Telecommunications System)、HSPA(High Speed Packet Access)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)規格、その他各種標準化団体が定めるプロトコル、その他の長距離データ転送技術、様々なタイプのデータ転送技術、などのいずれかを実装してもよい。
【0112】
この文脈における「機械可読媒体」は、命令およびデータを一時的または永久的に格納することができる構成要素、デバイス、または他の有形媒体を指し、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、バッファメモリ、フラッシュメモリ、光学媒体、磁気媒体、キャッシュメモリ、他のタイプのストレージ(例えば、消去可能プログラム可能読取専用メモリ(EEPROM))、および/またはそれらの任意の適切な組み合わせ、を備えていることができるが、これらに限定されるものではない。「機械可読媒体」という用語は、命令を格納することができる単一の媒体または複数の媒体(例えば、集中型または分散型データベース、または関連するキャッシュおよびサーバ)を備えていると解釈されるべきである。また、「機械可読媒体」という用語は、機械による実行のための命令(例えば、コード)を格納することができる任意の媒体、または複数の媒体の組み合わせ、を備えていると見なされ、命令が、機械の1つまたは複数のプロセッサによって実行されると、機械に、本明細書に記載する方法論のいずれか1つまたは複数を実行させるようなものであるものとする。したがって、「機械可読媒体」は、単一の記憶装置またはデバイスを、ならびに複数の記憶装置またはデバイスを備えている「クラウドベースの」記憶システムまたは記憶ネットワークを、指す。「機械可読媒体」という用語は、信号そのものを除外する。
【0113】
この文脈での「構成要素」(コンポーネント)とは、関数またはサブルーチン呼び出し、分岐点、アプリケーションプログラミングインタフェースAPI、または特定の処理または制御機能のパーティショニングまたはモジュール化、を提供する他の技術によって定義された境界を持つデバイス、物理的実体、またはロジック、を指す。構成要素は、他の構成要素とのインタフェースを介して組み合わされ、機械処理を実行することができる。構成要素は、他の構成要素とで共に使用するべく設計されたパッケージ化された機能的なハードウェアユニットであり、通常、関連する機能のうち特定の機能を実行するプログラムの一部である場合がある。構成要素は、ソフトウェア構成要素(例えば、機械可読媒体に具現化されたコード)またはハードウェア構成要素のいずれかを構成することができる。「ハードウェア構成要素」は、特定の動作を実行することができる有形のユニットであり、特定の物理的な方法で構成または配置されることができる。様々な例示的な実施形態において、1つまたは複数のコンピュータシステム(例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、またはサーバコンピュータシステム)またはコンピュータシステムの1つまたは複数のハードウェア構成要素(例えば、プロセッサまたはプロセッサのグループ)は、ソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって、本書に記載するように特定の動作を行うように動作するハードウェア構成要素として構成され得る。
【0114】
ハードウェア構成要素はまた、機械的、電子的、またはそれらの任意の適切な組み合わせ、で実装されてもよい。例えば、ハードウェア構成要素は、特定の動作を実行するように恒久的に構成された専用の回路またはロジックを備えてもよい。ハードウェア構成要素は、FPGA(Field-Programmable Gate Array)やASICなどの特殊用途のプロセッサであってもよい。また、ハードウェア構成要素は、ソフトウェアによって一時的に特定の動作を実行するように構成されたプログラマブルロジックまたは回路を備えていることができる。例えば、ハードウェア構成要素は、汎用プロセッサまたは他のプログラマブルプロセッサによって実行されるソフトウェアを備えてもよい。このようなソフトウェアによって構成されていると、ハードウェア構成要素は、構成された機能を実行するべく独自に調整された特定の機械(または機械の特定の構成要素)となるので、もはや汎用プロセッサではない。ハードウェア構成要素を機械的に、専用の恒久的に構成された回路に、または一時的に構成された回路(例えば、ソフトウェアによって構成された)に、実装するという判定は、コストおよび時間の考慮によって行われ得ることが理解されよう。したがって、「ハードウェア構成要素」(または「ハードウェア実装構成要素」)という語句は、物理的に構築されたエンティティ、恒久的に構成されたエンティティ(例えば、ハードワイヤード)、または一時的に構成されたエンティティ(例えば、プログラムされる)、であって、特定の方法で動作するように、または本書に記載の特定の動作を実行するべく、有形エンティティを包含するものと理解されるべきである。ハードウェア構成要素が一時的に構成されている(例えば、プログラムされる)実施形態を考慮すると、ハードウェア構成要素の各々は、任意の1つのインスタンスにおいて構成されていたりまたはインスタンス化されていたりする必要はない。例えば、ハードウェア構成要素が、ソフトウェアによって特殊目的プロセッサになるように構成された汎用プロセッサからなる場合、汎用プロセッサは、異なる時間にそれぞれ異なる特殊目的プロセッサとして(例えば、異なるハードウェア構成要素を備えるように)構成されてもよい。ソフトウェアは、それに応じて、例えば、特定のプロセッサまたはプロセッサグループを、或る時間のインスタンスにおいて特定のハードウェア構成要素を構成する一方で、異なる時間のインスタンスにおいては異なるハードウェア構成要素を構成するように、構成される。
【0115】
ハードウェア構成要素は、他のハードウェア構成要素に情報を提供したり、他のハードウェア構成要素から情報を受信したり、することができる。従って、説明されたハードウェア構成要素は、通信可能に結合されているとみなすことができる。複数のハードウェア構成要素が同時期に存在する場合、通信は、ハードウェア構成要素の2つ以上の間または中で(例えば、適切な回路およびバスを介して)信号伝送によって達成され得る。複数のハードウェア構成要素が異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェア構成要素同士間の通信は、例えば、複数のハードウェア構成要素がアクセスするメモリ構造における情報の記憶および検索を通じて達成されてもよい。例えば、あるハードウェア構成要素は、操作(動作、オペレーション)を実行するだけでなく、その操作の出力を、通信可能に結合されているメモリデバイスに格納することができる。その後、別のハードウェア構成要素が、後日、メモリデバイスにアクセスすることで、保存された出力を取り出して処理することができる。
【0116】
ハードウェア構成要素は、入力または出力デバイスとの通信を開始することもできるし、リソース(例えば、情報の集合体)上で動作することもできる。本明細書に記載される例示的方法の様々な動作は、関連する動作を実行するように一時的に(例えば、ソフトウェアによって)構成されているか、または恒久的に構成されている、1つまたは複数のプロセッサによって、少なくとも部分的に実行され得る。一時的に構成されたか恒久的に構成されたかにかかわらず、そのようなプロセッサは、本明細書に記載される1つ以上の動作または機能を実行するように動作するプロセッサ実装構成要素を構成してもよい。本明細書で使用される場合、「プロセッサ実装構成要素」は、1つ以上のプロセッサを使用して実装されるハードウェア構成要素を指す。同様に、本明細書に記載される方法は、特定のプロセッサまたは複数のプロセッサがハードウェアの一例である、少なくとも部分的にプロセッサ実装され得る。例えば、方法の動作の少なくとも一部は、1つ以上のプロセッサまたはプロセッサ実装構成要素によって実行されてもよい。さらに、1つ以上のプロセッサは、「クラウドコンピューティング」環境において、または「サービスとしてのソフトウェア」(SaaS)として、関連する動作の実行をサポートするように動作してもよい。例えば、操作(動作)の少なくとも一部は、(複数のプロセッサを含むマシンの例として)コンピュータのグループによって実行されてもよく、これらの操作は、ネットワーク(例えば、インターネット)を介して、および1つまたは複数の適切なインタフェース(例えば、API)を介して、アクセス可能である。操作の特定の性能は、単一のマシン内に存在するだけでなく、多数のマシン同士にわたって展開されたプロセッサ同士の間で分散されてもよい。いくつかの例示的な実施形態では、プロセッサまたはプロセッサ実装構成要素は、単一の地理的な場所(例えば、家庭環境、オフィス環境、またはサーバファーム内)に配置されてもよい。他の例示的な実施形態では、プロセッサまたはプロセッサ実装構成要素は、多数の地理的な場所に分散していてもよい。
【0117】
この文脈における「プロセッサ」は、制御信号(例えば、「コマンド」、「オペコード」、「機械コード」など)に従ってデータ値を操作するだけでなく、機械(マシン)を動作させるべく適用される対応する出力信号を生成する、任意の回路または仮想回路(実際のプロセッサ上で実行される論理によってエミュレートされる物理回路)を意味する。プロセッサは、例えば、CPU、RISCプロセッサ、CISCプロセッサ、GPU、DSP、ASIC、RFIC、またはそれらの任意の組み合わせであってもよい。プロセッサはさらに、命令を同時に実行することができる2つ以上の独立したプロセッサ(「コア」と呼ばれることもある)を有するマルチコアプロセッサであってもよい。
【0118】
この文脈における「タイムスタンプ」は、特定のイベントがいつ発生したかを識別する文字列または符号化された情報を指し、例えば、日付および時刻を提供し、場合によっては1秒の数分の1かの精度である。
【0119】
本開示の範囲から逸脱することなく、開示された実施形態に対して変更および修正を行うことができる。これらおよび他の変更または修正は、以下の特許請求の範囲に示されるように、本開示の範囲内に含まれることが意図される。
【0120】
加えて、前述の詳細な説明では、本開示を簡素化する目的で、様々な特徴が単一の実施形態にまとめられていることが分かる。本開示の方法は、特許請求される実施形態が各請求項に明示的に記載されるよりも多くの特徴を必要とするという意図を反映するものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態の全ての特徴よりも少ない特徴にあってもよい。従って、添付の請求項は、これにより、それぞれの請求項が別個の実施形態として独立している状態において、詳細な説明に組み込まれる。
【国際調査報告】