【文献】
Bruno Norberto da Silva et al.,A Hybrid Method for Image Taxonomy: Using CAPTCHA for Collaborative Knowledge Acquisition,American Association for Artificial Intelligence,2006年,P1-7,URL,https://www.aaai.org/Papers/Symposia/Fall/2006/FS-06-06/FS06-06-003.pdf
(58)【調査した分野】(Int.Cl.,DB名)
1つまたは複数のコンピュータデバイスによって、ユーザコンピュータデバイスから検証プロセスを行う要求を受信するステップをさらに含み、前記1つまたは複数の第1の画像は、前記要求を受信したことに応じて取得される、請求項1に記載のコンピュータ実施方法。
前記1つまたは複数の第1の画像の前記未知の特性は、前記1つまたは複数の機械学習モデルに少なくとも部分的に基づいて未知であると決定され、前記1つまたは複数の機械学習モデルは、入力として1つまたは複数の画像を受信し、出力として前記1つまたは複数の画像の1つまたは複数の特性を決定するように構成される、請求項1に記載のコンピュータ実施方法。
前記検証チャレンジに関連付けられた前記1つまたは複数の指示は、基準を満たす1つまたは複数の前記第1または第2の画像とインタラクションを行うように前記ユーザに促す、請求項1に記載のコンピュータ実施方法。
前記検証チャレンジに関連付けられた前記1つまたは複数の指示は、基準を満たす前記1つまたは複数の第1の画像の少なくとも一部とインタラクションを行うように前記ユーザに促し、必要に応じて、
前記検証チャレンジに関連付けられた前記1つまたは複数の指示は、前記1つまたは複数の第1の画像のうちの少なくとも1つの一部を選択するように前記ユーザに促す、請求項1に記載のコンピュータ実施方法。
前記1つまたは複数のコンピュータデバイスによって、前記検証チャレンジにおいて第3の画像を提供するステップであって、前記第3の画像は、アイテムまたはオブジェクトを描写する、ステップをさらに含み、前記検証チャレンジに関連付けられた前記1つまたは複数の指示は、前記第3の画像に描写されている前記アイテムまたはオブジェクトと同一の分類のアイテムまたはオブジェクトを描写している前記1つまたは複数の第1の画像のうちの1つまたは複数もしくは第2の画像の前記少なくともサブセットを選択するように前記ユーザに促す、請求項1に記載のコンピュータ実施方法。
前記1つまたは複数のコンピュータデバイスによって、前記検証チャレンジに対する前記応答に少なくとも部分的に基づいて前記複数のユーザデバイスの各々を検証するかどうかを決定するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
前記1つまたは複数のコンピュータデバイスによって、前記1つまたは複数の第1の画像の前記未知の特性を決定するステップは、前記1つまたは複数のコンピュータデバイスによって、ユーザ応答の閾値数が前記1つまたは複数の第1の画像の特性を示している場合には前記1つまたは複数の第1の画像の前記未知の特性を推測するステップを含む、請求項1に記載のコンピュータ実施方法。
【発明を実施するための形態】
【0012】
ここで、その1つまたは複数の例が図面に示されている実施形態を詳細に参照する。各例は、実施形態の説明を目的として提供しており、本開示の限定を目的としたものではない。むしろ、本開示の範囲または精神を逸脱しない限り様々な修正および変形を実施形態に行い得ることは当業者にとっては明白であろう。例えば、一実施形態の一部として図示および説明した特徴は、別の実施形態とともに使用されさらに別の実施形態をもたらし得る。そのため、本開示の態様がそのような修正および変形をカバーしていることを意図している。
【0013】
本開示の例示的な態様は、画像ベースの検証チャレンジに少なくとも部分的に基づいて画像分類を決定することを目的としている。例えば、1つまたは複数の未知の特性を有する画像が、取得され、コンピュータと人間を区別する完全に自動化された公開チューリングテスト(CAPTCHA)チャレンジなどの検証チャレンジの一部として複数のユーザデバイスに提供され得る。より具体的には、チャレンジは、指定の方式で第1の画像とインタラクションを行うようにユーザに促す1つまたは複数の指示を含み得る。チャレンジに対する応答が、複数のユーザデバイスの各々から取得され得る。第1の画像の1つまたは複数の未知の特性のうちの少なくとも1つが、その後、複数のユーザデバイスからの応答に少なくとも部分的に基づいて決定され得る。少なくとも1つの未知の特性が決定されると、第1の画像が1つまたは複数の機械学習モデルを訓練するために使用され得る。
【0014】
より具体的には、ユーザは、ユーザデバイスを介してオンラインサービスまたはリソースにアクセスを試みようとし得る。本明細書で使用しているように、ユーザデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレット、ウェアラブルコンピュータデバイス、または任意の他の適切なユーザコンピュータデバイスであり得る。オンラインサービスにアクセスするために、ユーザはまず、コンピュータ制御CAPTCHAシステムとやり取りしてユーザの人間としての状態を検証する必要があり得る、それによって、「ボット(bot)」がオンラインサービスに損害を与えることを防いでいる。例えば、CAPTCHAシステムは、検証チャレンジをユーザに提供し得るし、ユーザがチャレンジに「パス」した場合には、ユーザは、オンラインサービスへのアクセス権を得ることができる。いくつかの実施形態においては、検証チャレンジは、1つまたは複数の画像とのインタラクションを介してチャレンジを解決するようにユーザに促す指示を含む、画像ベースのチャレンジであり得る。
【0015】
例えば、ここで示しているように、1つまたは複数の未知の特性を有する1つまたは複数の第1の画像が検証チャレンジにおいてユーザに提供され得る。例えば、未知の特性とは、画像に関連付けられた分類が未決定のものであり得る。このように、1つまたは複数の未知の特性を有する画像は、画像に描写されている内容の分類が妥当な確実性内で決定され得ない画像であり得る。別の例として、未知の特性は、画像内のオブジェクトまたはアイテムの場所に関連付けられ得る。いくつかの実施形態においては、画像の特性が既知であるか未知であるかは、1つまたは複数の機械学習モデルを使用して決定され得る。例えば、1つまたは複数の機械学習モデル(例えば、画像分類、オブジェクト検出、または他のモデル)は、入力として画像を受信するように、および出力として画像に描写されている1つまたは複数のオブジェクトまたはアイテムを識別、カテゴライズ、分類、またさもなければ、検出するように構成され得る。モデルは、モデルの出力が的確であるという確実性の度合いに対応する確実性確率を決定するようにさらに構成され得る。いくつかの実施形態においては、画像がある閾値を下回る関連付けされた確実性確率を有している場合には、画像の特性は未知であり得る。例えば、1つまたは複数の未知の特性を有する第1の画像は、ある閾値を下回る確実性確率を有する画像であり得る。
【0016】
いくつかの実施形態においては、複数の第2の画像も取得され得るし、複数の第2の画像の少なくともサブセットが検証チャレンジにおける使用のために複数のユーザデバイスに提供され得る。複数の第2の画像は、既知の特性を有する画像であり得る。例えば、複数の第2の画像は、前記閾値を上回る関連付けされた確実性確率を有する画像であり得る。別の例として、第2の画像は、画像の内容を記述するメタデータまたは他の情報などといった関連する記述的情報を有する画像であり得る。このように、複数の第2の画像の少なくともサブセットが検証チャレンジにおいて第1の画像とともに提供され得る。
【0017】
検証チャレンジは、画像ベースのチャレンジであり得る。いくつかの実施形態においては、検証チャレンジは、第1の画像の未知の特性に関連付けられ得る。例えば、検証チャレンジは、指定の方式で第1の画像の少なくとも一部とインタラクションを行うようにユーザに促す指示を含み得る。具体的には、指示は、基準を満たす第1の画像の少なくとも一部とインタラクションを行うようにユーザに促し得る。例えば、検証チャレンジに関連付けられた指示は、特定のオブジェクトを描写している第1の画像の一部を探してインタラクションを行うようにユーザに促し得る。別の例として、検証チャレンジは、第1の画像または第2の画像のうちの少なくとも1つとインタラクションを行うようにユーザに促し得る。例えば、検証チャレンジは、特定のオブジェクトまたはアイテムを描写している、または、特定のカテゴリまたは分類に関連付けられている、画像のすべてを選択するようにユーザに促し得る。このように、検証チャレンジは、未知の特性を決定または推測するために検証チャレンジに対する応答を使用することができるように、調整され得る。さらに別の例として、いくつかの実施形態においては、参照画像が、第1および第2の画像とともに検証チャレンジにおいてユーザに提供され得る。そのような実施形態においては、検証チャレンジに関連付けられた指示は、参照画像に描写されているオブジェクトまたはアイテムと同一のカテゴリまたは分類から、オブジェクトまたはアイテムを描写している第1および第2の画像の各々を選択するようにユーザに促し得る。さらに別の例として、検証チャレンジは、1つまたは複数の画像、および画像を描写しているカテゴリのリストから1つまたは複数のカテゴリを選択するようにユーザに促す指示を含み得る。
【0018】
検証チャレンジは、1つまたは複数のオンラインサービスへのアクセス権を得ることを試みている1つまたは複数のユーザデバイスに提供され得る。検証チャレンジに対する応答が、その後、ユーザデバイスから受信され得る。例えば、検証チャレンジが指定の基準を満たす1つまたは複数の画像を選択するようにユーザに促した場合には、ユーザからの応答は、ユーザが選択した画像を示すデータを含み得る。ユーザからの応答は、オンラインサービスへのアクセス権をユーザデバイスに与えるべきかどうかを決定するために使用され得る。例えば、応答が選択されたチャレンジを満足いく形で完了または解決した場合には、その後、コンピュータ制御CAPTCHAシステムは、ユーザコンピュータデバイスを検証し得る。一例として、ユーザデバイスが(例えば、検証チャレンジに対する応答に基づいて)人間によって操作されているとコンピュータ制御CAPTCHAシステムが十分に確信すると、コンピュータ制御CAPTCHAシステムは、ユーザコンピュータデバイスに検証トークンまたは証明書を提供し得る。ユーザコンピュータデバイスは、その後、オンラインサービスに関連付けられたリソースプロバイダに検証トークンを提供し得る。そして、リソースプロバイダは、コンピュータ制御CAPTCHAシステムを用いて検証トークンの正当性を確認し得る。トークンの正当性が確認されると、リソースプロバイダは、リソースをユーザデバイスに提供し得る。いくつかの実施形態においては、検証チャレンジに対するユーザ応答が、ユーザデバイスを検証するかどうかを決定する上で決定的なものではないことがあり得る。例えば、ユーザが検証チャレンジを的確に解決した場合でも、ユーザを拒否し得る(例えば、検証しない)。別の例として、ユーザが検証チャレンジを的確に解決していない場合でも、ユーザを検証し得る。そのような実施形態においては、ユーザおよび/またはユーザコンピュータデバイスに関連付けられた1つまたは複数の追加の信号が、ユーザを検証するかどうかを決定するために、(例えば、ユーザ応答と併せて)使用され得る。例えば、検証チャレンジをほぼ解決しているユーザは、1つまたは複数の追加の信号に少なくとも部分的に基づいて検証され得る。
【0019】
検証チャレンジに対する応答は、第1の画像の未知の特性を決定または推測するためにさらに使用され得る。具体的には、ユーザ応答の閾値数が第1の画像の特性を示している場合には、第1の画像の未知の特性が決定または推測され得る。例えば、検証チャレンジの観点における第1の画像とのユーザインタラクションは、画像に描写されているオブジェクトまたはアイテムを示し得る。一例として、画像ベースの検証チャレンジが虎を描写している画像のすべてを選択するようにユーザに促す指示を含む場合には、ユーザが検証チャレンジに応答して第1の画像を選択したかどうかは、第1の画像が虎を描写しているかどうかを示し得る。このように、十分な数のユーザ(例えば、閾値を上回るユーザの数)が検証チャレンジを受信したことに応答して第1の画像を選択している場合には、前記画像が虎を描写していると推測され得る。第1の画像を選択するユーザの数が閾値を下回っている場合には、第1の画像が虎を描写していないと推測され得る。いくつかの実施形態においては、推測は、画像を選択するユーザの割合に少なくとも部分的に基づいてなされ得る。別の例として、検証チャレンジが特定のオブジェクトを描写している第1の画像の一部を探してインタラクションを行うようにユーザに促す指示を含む実施形態においては、ユーザ選択は、第1の画像内のオブジェクトの配置を決定するために使用され得る。
【0020】
いくつかの実施形態においては、検証チャレンジに対するユーザ応答は、既知の画像を確認するために使用され得る。例えば、検証チャレンジに対するユーザ応答は、既知の画像の既知の特性が的確であることを検証するために使用され得る。このように、既知の特性が的確ではないと既知の画像に関連付けられた十分な数のユーザ応答が示している場合には、前記画像は、既知の画像のセットから除去され得る。別の例として、既知の特性は、ユーザ応答に少なくとも部分的に基づいて調整または改善され得る。
【0021】
未知の特性が決定されると、第1の画像は、1つまたは複数の機械学習モデルを訓練するために使用され得る。具体的には、第1の画像を示すデータは、モデルを訓練するために使用される訓練データのコーパスに追加され得る。例えば、機械学習モデルは、画像認識アプリケーション、オブジェクト検出アプリケーション、および/または他の適切なアプリケーションにおいて使用され得る。具体的には、機械学習モデルは、訓練データのセットを使用して訓練され得る。そのような訓練データは、既知の特性を有する1つまたは複数の画像を示すデータ(例えば、ベクトルデータまたは他のデータ)を含み得る。例えば、訓練データは、1つまたは複数の画像を示すデータ、既に既知となっている内容を含み得る。このように、訓練データは、複数の入力/出力のペアを含み得る、ここで、入力は、画像を示すベクトルデータであり、出力は、画像の内容を示すデータ(例えば、画像に描写されている1つまたは複数のアイテム)である。機械学習モデルは、訓練データの入力/出力のペアに少なくとも部分的に基づいて訓練され得る。例えば、画像に関連付けられたベクトルデータが機械学習モデルに入力され得るし、モデルの出力が訓練データの出力と比較され得る。モデルは、比較に少なくとも部分的に基づいて調整または改善され得る。
【0022】
ここで、図面を参照して、本開示の例示的な態様をより詳細に説明することにする。例えば、
図1は、画像ベースの検証チャレンジを提供する例示的なシステム100の概要を図示している。具体的には、システム100は、コンピュータ制御CAPTCHAシステム102、機械学習ネットワーク104、およびリソースプロバイダ106を含み得る。いくつかの実施形態においては、CAPTCHAシステム102、機械学習ネットワーク104、および/またはリソースプロバイダ106は、ネットワークを通じて互いに通信し得る。
【0023】
CAPTCHAシステム102は、例えば、1つまたは複数のサーバなどといった1つまたは複数のコンピュータデバイスを使用して実装され得る。CAPTCHAシステム102は、ユーザデバイスからの検証要求に応答して、検証CAPTCHAチャレンジを決定し、ユーザデバイスにそのようなチャレンジを提供するように構成され得る。いくつかの実施形態においては、検証チャレンジは、画像ベースのCAPTCHAチャレンジであり得る。例えば、CAPTCHAチャレンジは、1つまたは複数の既知および/または未知の画像をユーザに提供することを含み得る。そのような画像ベースのチャレンジは、1つまたは複数の画像とインタラクションを行うことによってチャレンジを解決するようにユーザに促す関連付けされた指示を有し得る。例えば、上述したように、チャレンジは、特定のカテゴリまたは分類に一致または属する提示された画像のすべてを選択するようにユーザに促す指示を含み得る。別の例として、チャレンジは、特定のアイテム、オブジェクト、動物などを描写している画像の一部を選択するように、またさもなければ、インタラクションを行うようにユーザに促す指示を含み得る。
【0024】
図示したように、CAPTCHAシステム102は、画像データベース108からの画像データにアクセスし得る。画像データベース108は、1つまたは複数の検証チャレンジにおいて使用されることになる複数の画像を含み得る。例示的な実施形態においては、画像データベース108は、単一の場所に位置する単一のデータベースであり得る、または複数の場所にわたって展開された複数のデータベースを含み得る。具体的には、画像データベース108は、既知の画像および未知の画像を含み得る。既知の画像は、1つまたは複数の既知の特性を有する画像を含み得る。例えば、既知の画像は、分類またはカテゴライズされた画像であり得る。いくつかの実施形態においては、1つまたは複数の既知の特性は、画像に関連付けられたメタデータまたは他の記述的情報に少なくとも部分的に基づいて決定され得る。いくつかの実施形態においては、1つまたは複数の既知の特性は、機械学習ネットワーク104に少なくとも部分的に基づいて決定され得る。例えば、機械学習ネットワーク104は、画像に描写されている1つまたは複数のオブジェクトを分類、カテゴライズ、識別、またさもなければ、検出するために使用され得る。
【0025】
画像データベース108は、1つまたは複数の未知の特性を有する1つまたは複数の未知の画像をさらに含み得る。既知の画像と同様に、未知の特性は、未知の特性に関連付けられたメタデータまたは他の記述的情報の欠如に少なくとも部分的に基づいて未知であると決定され得る。別の例として、未知の特性は、機械学習ネットワーク104に少なくとも部分的に基づいて未知であると決定され得る。
【0026】
いくつかの実施形態においては、既知および/または未知の画像は、検証チャレンジに関連して決定され得る。例えば、検証チャレンジに関連付けられた指示が虎を描写している各画像を選択するようにユーザに促す実施形態においては、既知の画像は、既に虎を描写していることが既知となっているおよび/または虎を描写していないことが既知となっている、画像データベース108からの1つまたは複数の画像を含み得る。このように、未知の画像は、画像に描写されている内容が未知である画像を含み得る。いくつかの実施形態においては、検証チャレンジは、その後、未知の画像に描写されている内容を決定またさもなければ推測するために使用され得る。
【0027】
機械学習ネットワーク104は、1つまたは複数のニューラルネットワークなどの1つまたは複数の機械学習モデルを含み得る。例えば、1つまたは複数のモデルは、画像を分類するようにおよび/または画像内に描写されているオブジェクトを検出するように構成され得る。このように、機械学習ネットワーク104は、入力として画像を受信し、出力として画像分類を提供するように構成され得る。いくつかの実施形態においては、機械学習ネットワーク104は、確実性確率または出力のための信頼性レベルを規定する出力に関連付けられた他の指標を提供するようにさらに構成され得る。いくつかの実施形態においては、機械学習ネットワーク104は、画像データベース108と通信して、画像データベース108に関連付けられた1つまたは複数の画像を分類するように構成され得る。このように、いくつかの実施形態においては、未知の画像はある閾値を下回る関連付けされた確実性確率を有する画像であり得るし、既知の画像は前記閾値を上回る関連付けされた確実性確率を有する画像であり得る。
【0028】
機械学習ネットワーク104は、1つまたは複数の機械学習モデルを訓練するようにさらに構成され得る。例えば、様々な適切なアルゴリズムが、訓練データのセットに少なくとも部分的に基づいて機械学習モデルを改善または調整するために使用され得る。このように、訓練データは、機械学習モデルを改善するために使用され得る。機械学習ネットワーク104をCAPTCHAシステム102とは別個且つ個別のシステムとして図示しているが、いくつかの実施形態においては、機械学習ネットワーク104がCAPTCHAシステム102内に実装されてもよいことは諒解されよう。
【0029】
システム100は、リソースプロバイダ106をさらに含む。リソースプロバイダ106は、オンラインまたは他のサービスと関連付けられ得る。リソースプロバイダ106は、オンラインサービスへのアクセス権に関するユーザデバイスからの要求を受信し得る。要求に応じて、リソースプロバイダ106は、CAPTCHAシステム102と連携して検証チャレンジをユーザデバイスに提供し得る。このように、CAPTCHAシステム102は、検証チャレンジを決定し、検証チャレンジをユーザに提供し得る。いくつかの実施形態においては、CAPTCHAシステム102は、未知の画像に少なくとも部分的に基づいて検証チャレンジを決定し得る。例えば、CAPTCHAシステム102は、検証チャレンジに対するユーザ応答を未知の画像の分類またはカテゴライズの証拠として使用できるように、検証チャレンジを調整し得る。いくつかの実施形態においては、検証チャレンジは、要求がボットではなく人間によって提供されたという信頼性レベルに少なくとも部分的に基づいて決定され得る。例えば、検証チャレンジの難易度は、信頼性レベルに少なくとも部分的に基づいて調整され得る。
【0030】
検証チャレンジに対するユーザ応答は、未知の画像の未知の特性を決定するために使用され得る。例えば、ユーザ応答は、未知の画像の分類に関連付けられた証拠として使用され得る。例えば、検証チャレンジが虎を描写しているすべての画像を選択する指示を含んでいる実施形態においては、ユーザが未知の画像を選択したかどうかは、未知の画像が虎を描写しているかどうかを示し得る。このように、未知の画像が1つまたは複数の検証チャレンジにおいて複数のユーザに提示され得るし、1つまたは複数の検証チャレンジに対するユーザからの応答は、画像の未知の特性を推測するために使用され得る。例えば、十分な数のユーザ(例えば、ユーザの高い十分な割合および/またはある閾値を上回るユーザの数)が、虎を含む画像を選択するようにユーザに指示する検証チャレンジに応答して未知の画像を選択している場合には、未知の画像が虎を描写していると推測され得る。
【0031】
未知の特性が妥当な確実性をもって推測され得ると、画像は、注釈が付けられ画像の分類を示し得る。画像は、その後、機械学習ネットワーク104の機械学習モデルを訓練するために使用される訓練データセットに含まれ得る。このように、画像は、モデルの分類性能を改善するために使用され得る。いくつかの実施形態においては、注釈が付けられた画像は、CAPTCHAシステム102によって決定される将来の検証チャレンジにおいてさらに使用され得る。例えば、注釈が付けられた画像は、1つまたは複数の検証チャレンジにおいて既知の画像として以降使用される。
【0032】
図2は、本開示の例示的な実施形態による、例示的な画像ベースのCAPTCHAチャレンジ110を図示している。図示したように、CAPTCHAチャレンジ110は、指示112と犬を描写していることが既知となっている関連参照画像114とを含んでいる。指示112は、参照画像114と「類似」した画像のすべてを選択するようにユーザに促す。CAPTCHAチャレンジ110は、既知の画像116および負の既知の画像118をさらに含んでいる。既知の画像116は、犬を描写していることが既知となっている画像であり、負の既知の画像118は、犬が描写されていないことが既知となっている画像である。負の既知の画像118の各々は猫を描写しているが、負の既知の画像が1つまたは複数の他のオブジェクト、アイテム、植物、動物、人間などを描写していてもよいことは諒解されよう。CAPTCHAチャレンジ110は、未知の画像120をさらに描写している。未知の画像120は、画像の内容が未知である画像であり得る。
図2に示したように、未知の画像120は、トカゲを描写している。
【0033】
上述したように、CAPTCHAチャレンジ110を受信すると、ユーザは、指示に従い、ユーザの見解において、参照画像114と「類似」した1つまたは複数の画像を選択し得る。ユーザの選択は、ユーザがリソースプロバイダによって提供されたリソースまたはサービスへのアクセス権を与えられるかどうかを決定し得る。例えば、ユーザがチャレンジに「パス」した場合には、ユーザは、リソースまたはサービスへのアクセス権が与えられ得る。例えば、ユーザが的確な画像の組合せまたはほぼ的確な画像の組合せを選択した場合には、ユーザは、チャレンジをパスし得る。CAPTCHAチャレンジ110において、ユーザが既知の画像116の各々を選択し負の既知の画像118を選択しなかった場合には、ユーザはパスし得る。いくつかの実施形態においては、ユーザが「パス」していない場合には、ユーザは、異なるCAPTCHAチャレンジを提示され得る。
【0034】
未知の画像120は犬を描写していないので、この検証チャレンジに応答する人間のユーザの大部分がCAPTCHAチャレンジ110に応答して未知の画像120を選択するであろう可能性は低い。このように、未知の画像120が犬を描写していないと推測され得る。同様に、未知の画像が犬を描写している事例においては、人間のユーザの大部分がCAPTCHAチャレンジに応答して未知の画像を選択するであろう可能性は高い。このように、未知の画像が犬を描写していると推測され得る。
【0035】
未知の画像120が犬を描写していないと推測がなされると、以降の検証チャレンジにおいて使用され得る。例えば、それは、犬を描写していない参照画像を有する検証チャレンジにおいて未知の画像として使用され得る。いくつかの実施形態においては、未知の画像120は、犬を描写している参照画像を有する検証チャレンジにおいて負の既知の画像として以降使用され得る。
【0036】
図3および4は、本開示の例示的な実施形態による、追加の例示的な画像ベースのCAPTCHAチャレンジを図示している。例えば、
図3は、飲み物を図示している参照画像124を有するCAPTCHAチャレンジ122を図示している。指示は、参照画像124に関連付けられた1つまたは複数の適切なカテゴリを選択するようにユーザに促す。1つまたは複数の推測および/または確認が、ユーザの選択に少なくとも部分的に基づいて参照画像124に関連してなされ得る。
図4は、あるシーンを描写している参照画像128を描写するCAPTCHAチャレンジ126を描写している。図示したように、参照画像128は、複数の領域(例えば、正方形)に分割されている。CAPTCHAチャレンジ126は、「商号に関する正方形をすべて選択」するようにユーザに促す指示をさらに含む。このように、1つまたは複数の推測が、ユーザ応答に基づいて参照画像128内の商号の場所に関してなされ得る。例えば、人間のユーザの大部分が、指示に応答して画像正方形130および132を選択する可能性が高くなり得る。このように、商号が参照画像128の左下部分の画像正方形130および132に位置していると推測され得る。
【0037】
図5は、本開示の例示的な実施形態による、コンピュータ制御CAPTCHAシステムを使用して1つまたは複数の画像特性を決定する例示的な方法(200)のフロー図を示している。方法(200)は、
図7に示した1つまたは複数のコンピュータデバイスなどの1つまたは複数のコンピュータデバイスによって実施され得る。加えて、
図5は、図示および説明を目的として特定の順序で行われるステップを図示している。本明細書に開示のいずれの方法のステップを、本開示の範囲を逸脱しない限り様々な方法で、改変、再編成、拡張、省略、または変更することができることを、当業者は、本明細書に提供した開示を使用して、理解するであろう。
【0038】
(202)において、方法(200)は、検証プロセスを行う要求を受信するステップを含み得る。例えば、要求は、オンラインサービスまたはリソースへのアクセス権を得ようとしているユーザによって操作されたユーザデバイスによって提供され得る。(204)において、方法(200)は、未知の特性を有する第1の画像を取得するステップを含み得る。いくつかの実施形態においては、未知の特性を有する1つまたは複数の第1の画像が取得され得る。上述したように、未知の特性は、画像に描写されている内容に関連付けられ得る。例えば、未知の特性は、画像の内容の分類またはカテゴライズに関連付けられ得る。別の例として、未知の特性は、画像に描写されているオブジェクトの検出に関連付けられ得る。
【0039】
いくつかの実施形態においては、未知の特性は、1つまたは複数の機械学習モデルに少なくとも部分的に基づいて未知であると決定され得る。例えば、機械学習モデルが妥当な確実性をもって画像を分類またはカテゴライズできなかった場合には、画像は、未知の画像として識別され得る。具体的には、モデルが画像に関してある閾値を下回る確実性確率を提供している場合には、画像は、未知の特性を有する未知の画像として識別され得る。別の例として、未知の特性は、特性に関連付けられた十分なメタデータまたは他の記述的データの欠如が存在する場合には、未知であると決定され得る。
【0040】
(206)において、方法(200)は、既知の特性を有する複数の第2の画像を取得するステップを含み得る。第1の画像と同様に、第2の画像の既知の特性は、画像に関連付けられた機械学習モデルおよび/またはメタデータに少なくとも部分的に基づいて決定され得る。いくつかの実施形態においては、第2の画像は、第1の画像および/または第1の画像の未知の特性に少なくとも部分的に基づいて選択され得る。
【0041】
(208)において、方法(200)は、第1および第2の画像に少なくとも部分的に基づいてCAPTCHAチャレンジを生成するステップを含み得る。例えば、CAPTCHAチャレンジは、画像とインタラクションを行うようにユーザに促す指示とともに、第1の画像および/または複数の第2の画像の少なくともサブセットを含み得る。上述したように、いくつかの実施形態においては、チャレンジは、第1の画像の未知の特性に少なくとも部分的に基づいて選択および/または生成され得る。
【0042】
(210)において、方法(200)は、CAPTCHAチャレンジを複数のユーザデバイスに送信するステップを含み得る。例えば、CAPTCHAチャレンジは、1つまたは複数のリソースプロバイダに関連付けられた1つまたは複数のオンラインサービスまたはリソースへのアクセス権を得ようとしている複数のユーザデバイスに送信され得る。
【0043】
(212)において、方法(200)は、複数のユーザデバイスの少なくともサブセットからCAPTCHAチャレンジに対する1つまたは複数の応答を受信するステップを含み得る。応答は、CAPTCHAチャレンジとのユーザインタラクションを示すデータを含み得る。いくつかの実施形態においては、応答は、オンラインサービスまたはリソースへのアクセス権をユーザに与えるかどうかを決定するために使用され得る。
【0044】
(214)において、方法(200)は、ユーザ応答に少なくとも部分的に基づいて第1の画像の未知の特性を決定するステップを含み得る。例えば、CAPTCHAチャレンジにおいて提供した画像についてのユーザの選択および/またはインタラクションは、第1の画像に関連付けられた1つまたは複数の特性の証拠として使用され得る。例えば、ユーザ応答は、第1の画像の1つまたは複数の特性を決定するために、CAPTCHAチャレンジにおいて提供した指示を考慮して分析され得る。このように、十分な数のユーザ応答が第1の画像の特性を示している場合には、その特性が推測され得る。例えば、虎を描写している各画像を選択するようにユーザに指示するCAPTCHAチャレンジに応答して十分な数のユーザが第1の画像を選択している場合には、その後、第1の画像が虎を描写していると推測され得る。
【0045】
(216)において、方法(200)は、第1の画像の決定した特性に少なくとも部分的に基づいて1つまたは複数の機械学習モデルを訓練するステップを含み得る。例えば、1つまたは複数の機械学習モデルを訓練するステップは、画像を示すデータおよび決定した特性が訓練データセットに追加されるように、モデルを訓練するために使用される訓練データのセットに画像を示すデータおよび決定した特性を提供するステップを含み得る。このように、第1の画像を示すデータがモデルに入力され得るし、モデルの出力が決定した特性と比較され得る。モデルは、その後、比較に少なくとも部分的に基づいて調整またさもなければ改善され得る。
【0046】
いくつかの実施形態においては、第1の画像は、その後、以降の検証チャレンジにおいて使用され得る。例えば、第1の画像は、以降のCAPTCHAチャレンジにおいて既知の画像として使用され得る。このように、第1の画像は、CAPTCHAチャレンジにおいて使用され得る既知の画像のセットに追加され、未知の画像のセットから削除され得る。
【0047】
図6は、本開示の例示的な実施形態による、ユーザデバイスを検証するための例示的な方法(300)のフローチャートを図示している。方法(300)は、
図7に示した1つまたは複数のコンピュータデバイスなどの1つまたは複数のコンピュータデバイスによって実施され得る。加えて、
図6は、図示および説明を目的として特定の順序で行われるステップを図示している。本明細書に開示のいずれの方法のステップを、本開示の範囲を逸脱しない限り様々な方法で、改変、再編成、拡張、省略、または変更することができることを、当業者は、本明細書に提供した開示を使用して、理解するであろう。
【0048】
(302)において、ユーザデバイスは、リソースプロバイダからリソースまたはオンラインサービスへのアクセス権を要求し得る。(304)において、リソースプロバイダは、要求をユーザデバイスから受信し得る。
【0049】
(306)において、リソースプロバイダは、検証プロセスにおいてコンピュータ制御CAPTCHAシステムと直ちに関与するようにユーザデバイスに指示し得る。(308)において、ユーザデバイスは、コンピュータ制御CAPTCHAシステムと直ちに関与するためのリソースプロバイダからの指示を受信し得る。一例として、リソースプロバイダは、ユーザデバイスに、直ちにコンピュータ制御CAPTCHAシステムと接続して検証プロセスを開始するように、ユーザデバイスのブラウザをリダイレクトすることによって(306)において指示し得る。
【0050】
別の例として、(306)において、リソースプロバイダは、ユーザデバイスによって実行されるとユーザデバイスにコンピュータ制御CAPTCHAシステムと直ちに関与させるクライアントサイドスクリプトをユーザデバイスに提供し得る。例えば、クライアントサイドスクリプトは、インラインフレーム、組み込みオブジェクト、ポートレット、または他の組み込みアプリケーションもしくはウィジェットに含まれ得る。いくつかの実施形態においては、クライアントサイドスクリプトは、コンピュータ制御CAPTCHAシステムからリソースプロバイダに提供されるプラグインに含まれ得る。さらに、いくつかの実施形態においては、(306)において、リソースプロバイダは、コンピュータ制御CAPTCHAシステムがリソースプロバイダを識別する公開鍵をユーザデバイスに提供し得る。
【0051】
(310)において、ユーザデバイスは、コンピュータ制御CAPTCHAシステムに直ちに送信して検証プロセスを行い得る。(312)において、コンピュータ制御CAPTCHAシステムは、要求をユーザデバイスから受信し得る。
【0052】
一例として、(310)において送信された要求は、コンピュータ制御CAPTCHAシステムに関連付けられたアプリケーションプログラミングインターフェースに従ってフォーマットされ得る。例えば、要求は、(306)においてユーザデバイスに提供されたクライアントサイドスクリプトを実行する結果として送信され得る。さらに、いくつかの実施形態においては、(310)において送信された要求は、リソースプロバイダに関連付けられた公開鍵を含み得る。
【0053】
(314)において、コンピュータ制御CAPTCHAシステムは、1つまたは複数の未知の画像特性を有する1つまたは複数の第1の画像を取得し得る。例えば、第1の画像は、妥当な確実性内に分類またはカテゴライズできないまたはされなかった画像であり得る。別の例として、第1の画像は、アイテム、オブジェクト、植物、動物、人間などの場所を妥当な確実性内で決定できない画像であり得る。上述したように、未知の画像は、画像および/または1つまたは複数の機械学習モデルに関連付けられたメタデータまたは他の記述的情報に少なくとも部分的に基づいて未知であると決定され得る。
【0054】
(316)において、コンピュータ制御CAPTCHAシステムは、第1の画像および/または第1の画像の未知の特性に少なくとも部分的に基づいてCAPTCHAチャレンジを選択し、選択されたチャレンジをユーザデバイスに提供し得る。例えば、コンピュータ制御CAPTCHAシステムは、様々なフォーマット、難易度、形状、サイズ、ファイルフォーマット、プログラミング言語、または他の変数パラメータを有するCAPTCHAチャレンジのデータベースを含み得る。例えば、いくつかの実施形態においては、CAPTCHAチャレンジは、画像ベースであり得る。いくつかの実施形態においては、CAPTCHAチャレンジを選択するステップは、既知の画像特性を有する1つまたは複数の第2の画像を取得するステップを含み得る。上述したように、第2の画像は、CAPTCHAチャレンジに関連付けられた指示、および/または第1の画像に少なくとも部分的に基づいて選択され得る。
【0055】
一例として、(314)において取得された第1の画像に描写されている内容が未知である事例においては、CAPTCHAチャレンジは、画像の分類を決定するために選択され得る。例えば、CAPTCHAチャレンジは、複数の既知の画像を含み得るし、指示は、特定の共通の特性を共有する各画像を選択するようにユーザに促し得る。上述したように、CAPTCHAチャレンジは、CAPTCHAチャレンジに対するユーザ応答が第1の画像の特性を決定および/または絞り込む証拠として使用され得るように、調整され得る。別の例として、第1の画像の未知の特性が画像内のオブジェクトの未知の場所に関連付けられている場合には、CAPTCHAチャレンジは、オブジェクトを描写している画像の一部とインタラクションを行う(例えば、選択する、ハイライトを付ける、注釈を付ける、または他のインタラクションを行う)ようにユーザに促し得る。
【0056】
いくつかの実施形態においては、(316)において、チャレンジフォーマット、チャレンジタイプ、またはチャレンジの他の属性は、様々な他の適切な因子に基づいて選択され得る。例えば、ユーザデバイスが、例えば、スマートフォンまたはタブレットなどといったモバイルデバイスである事例においては、その後、(316)において、コンピュータ制御CAPTCHAシステムは、モバイルデバイス向けに設計されたCAPTCHAチャレンジを選択し得る。
【0057】
(318)において、ユーザデバイスは、コンピュータ制御CAPTCHAシステムからCAPTCHAチャレンジを受信し、ユーザに、例えば、ユーザデバイスのディスプレイ上に、それを提示し得る。(320)において、ユーザデバイスは、ユーザから1つまたは複数の応答を受信し、応答をコンピュータ制御CAPTCHAシステムに送信し得る。(322)において、コンピュータ制御CAPTCHAシステムは、応答をユーザデバイスから受信し得る。
【0058】
(324)において、コンピュータ制御CAPTCHAシステムは、検証トークンを生成し、1つまたは複数の検証条件を満足している場合には、それをユーザデバイスに提供し得る。(326)において、ユーザデバイスは、検証トークンをコンピュータ制御CAPTCHAシステムから受信し得る。
【0059】
一例として、コンピュータ制御CAPTCHAシステムは、検証トークンを生成し、(322)において受信した応答が的確に解決している場合には、またさもなければ、(316)において提供されたチャレンジを満足している場合には、(324)においてそれをユーザデバイスに提供し得る。検証トークンは、認証証明書または他のセキュリティもしくは認証デバイスもしくはメカニズムであり得る。例えば、いくつかの実施形態においては、検証トークンは、ユーザデバイス識別子のハッシュもしくは他の情報を含み得る、または、リソースプロバイダの公開鍵を包含し得る。
【0060】
いくつかの実施形態においては、ステップ(310)〜(326)は検証プロセスとみなされ得ることは諒解されよう。さらに、いくつかの実施形態においては、ステップ(310)〜(326)は、リソースプロバイダのウェブサイトに含まれる、インラインフレーム、組み込みオブジェクト、ポートレット、または他の組み込みウィジェットもしくはアプリケーションを介して行われ得る。
【0061】
(328)において、ユーザデバイスは、検証トークンをリソースプロバイダに提供し得る。(330)において、リソースプロバイダは、検証トークンをユーザデバイスから受信し得る。
【0062】
(332)において、リソースプロバイダは、検証トークンをコンピュータ制御CAPTCHAシステムに送信し得る。いくつかの実施形態においては、(332)において、リソースプロバイダはまた、その秘密鍵を検証トークンとともにコンピュータ制御CAPTCHAシステムに送信し得る。
【0063】
(334)において、コンピュータ制御CAPTCHAシステムは、検証トークンが有効である場合には、リソースプロバイダに検証トークンの正当性を提供し得る。検証トークンが無効であるまたは改竄されていた場合には、その後、コンピュータ制御CAPTCHAシステムは、検証トークンが無効であることをリソースプロバイダに通知し得る。
【0064】
(336)において、リソースプロバイダは、検証トークンの正当性をコンピュータ制御CAPTCHAシステムから受信し得る。(336)において正当性を受信したことに応じて、(338)において、リソースプロバイダは、リソースへのアクセス権を有するユーザデバイスへ提供し得る。(340)において、ユーザデバイスは、リソースにアクセスし得る。
【0065】
図7は、本開示の例示的な態様による、方法およびシステムを実施するために使用され得る例示的なコンピューティングシステム400を図示している。システム400は、ネットワーク440を介して1つまたは複数のクライアントデバイス430と通信するサーバ410を含むクライアントサーバ機構を使用して実装され得る。システム400は、単一のコンピュータデバイスなどの他の適切な機構を使用して実装され得る。
【0066】
システム400は、ウェブサーバなどのサーバ410を含む。サーバ410は、オンラインサービスまたはリソースへのアクセス権を与えるまたは拒否するように構成されるコンピュータ制御CAPTCHAシステムをホストし得る。サーバ410は、任意の適切なコンピュータデバイスを使用して実装され得る。サーバ410は、1つまたは複数のプロセッサ412および1つまたは複数のメモリデバイス414を有し得る。サーバ410はまた、ネットワーク440を介して1つまたは複数のクライアントデバイス430と通信するために使用されるネットワークインターフェースを含み得る。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、または他の適切なコンポーネントを含む、1つまたは複数のネットワークとインターフェースで接続するための任意の適切なコンポーネントを含み得る。
【0067】
1つまたは複数のプロセッサ412は、マイクロプロセッサ、マイクロコントローラ、集積回路、ロジックデバイス、または他の適切な処理デバイスなどといった、任意の適切な処理デバイスを含み得る。1つまたは複数のメモリデバイス414は、非一時的コンピュータ可読媒体、RAM、ROM、ハードドライブ、フラッシュドライブ、または他のメモリデバイスを含むがそれらに限定されない、1つまたは複数のコンピュータ可読媒体を含み得る。1つまたは複数のメモリデバイス414は、1つまたは複数のプロセッサ412によって実行され得るコンピュータ可読命令416を含む、1つまたは複数のプロセッサ412によってアクセス可能な情報を記憶し得る。命令416は、1つまたは複数のプロセッサ412によって実行されると1つまたは複数のプロセッサ412に動作を行わせる任意のセットの命令であり得る。例えば、命令416は、例えば、チャレンジ生成器420、ユーザ正当性検証器422、および画像分類器424を実施するために、1つまたは複数のプロセッサ412によって実行され得る。例えば、チャレンジ生成器420は、1つまたは複数の未知の画像および/または1つまたは複数の既知の画像を取得し、画像に少なくとも部分的に基づいてCAPTCHAチャレンジを生成するように構成され得る。ユーザ正当性検証器422は、CAPTCHAチャレンジに対するユーザ応答を受信し、応答に少なくとも部分的に基づいてユーザにアクセス権を与えるかどうかを決定するように構成され得る。画像分類器424は、ユーザ応答に少なくとも部分的に基づいて未知の画像の1つまたは複数の特性を決定し、画像および決定した特性を機械学習ネットワーク450に提供するように構成され得る。
【0068】
図7に示したように、1つまたは複数のメモリデバイス414はまた、1つまたは複数のプロセッサ412によって読み出され、操作され、作成され、または記憶され得るデータ418を記憶し得る。データ418は、例えば、画像データ、チャレンジデータ、および他のデータを含み得る。データ418は、1つまたは複数のデータベースに記憶され得る。1つまたは複数のデータベースは、高帯域幅LANもしくはWANによってサーバ410に接続され得る、または、ネットワーク440を介してサーバ410に接続もされ得る。1つまたは複数のデータベースは、複数の場所に位置するように分散され得る。
【0069】
サーバ410は、ネットワーク440を介して1つまたは複数のクライアントデバイス430とデータを交換し得る。1つのクライアントデバイス430を
図7に示しているが、任意の数のクライアントデバイス430がネットワーク440を介してサーバ410に接続され得る。クライアントデバイス430の各々は、汎用コンピュータ、特殊用途コンピュータ、ラップトップ、デスクトップ、モバイルデバイス、ナビゲーションシステム、スマートフォン、タブレット、ウェアラブルコンピュータデバイス、1つまたは複数のプロセッサを有するディスプレイ、または他の適切なコンピュータデバイスなどといった、任意の適切なタイプのコンピュータデバイスであり得る。
【0070】
サーバ410と同様に、クライアントデバイス430は、1つまたは複数のプロセッサ432およびメモリ434を含み得る。1つまたは複数のプロセッサ432は、1つまたは複数の中央処理ユニット(CPU)、効率的に画像をレンダリングまたは他の特殊な計算を行うことを専門としているグラフィック処理ユニット(GPU)、および/または他の処理デバイスを含み得る。メモリ434は、1つまたは複数のコンピュータ可読媒体を含み得るし、1つまたは複数のプロセッサ432によって実行され得る命令436およびデータ438を含む、1つまたは複数のプロセッサ432によってアクセス可能な情報を記憶し得る。例えば、メモリ434は、本開示の例示的な態様による、CAPTCHAチャレンジを表示するためのユーザインターフェースモジュールを実施するための命令436を記憶し得る。
【0071】
図7のクライアントデバイス430は、タッチスクリーン、タッチパッド、データ入力キー、スピーカ、および/または音声認識に適したマイクロフォンなどといった、情報を提供およびユーザから受信するための様々な入力/出力デバイスを含み得る。例えば、クライアントデバイス430は、本開示の例示的な態様による、セマンティックなプレイス名を表示するユーザインターフェースを提示するための表示デバイス435を有し得る。
【0072】
クライアントデバイス430はまた、ネットワーク440を介して1つまたは複数のリモートコンピュータデバイス(例えば、サーバ410)と通信するために使用されるネットワークインターフェースを含み得る。ネットワークインターフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、または他の適切なコンポーネントなどといった、1つまたは複数のネットワークとインターフェースで接続するための任意の適切なコンポーネントを含み得る。
【0073】
ネットワーク440は、ローカルエリアネットワーク(例えば、イントラネット)、ワイドエリアネットワーク(例えば、インターネット)、セルラネットワーク、またはいくつかのその組合せなどといった、任意のタイプの通信ネットワークであり得る。ネットワーク440はまた、クライアントデバイス430とサーバ410との間の直接接続を含み得る。一般に、サーバ410とクライアントデバイス430との間の通信は、様々な通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(例えば、HTML、XML)、および/または保護スキーム(例えば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプの有線および/または無線接続を用いるネットワークインターフェースを介して行われ得る。
【0074】
サーバ410はまた、機械学習ネットワーク450などの1つまたは複数の機械学習ネットワークとデータを交換し得る。サーバ410およびクライアントデバイス430と同様に、機械学習ネットワークは、1つまたは複数のプロセッサ452およびメモリ454を含み得る。1つまたは複数のプロセッサ452は、1つまたは複数の中央処理ユニット(CPU)および/または他の処理デバイスを含み得る。メモリ454は、1つまたは複数のコンピュータ可読媒体を含み得るし、1つまたは複数のプロセッサ452によって実行され得る命令456およびデータ458を含む、1つまたは複数のプロセッサ452によってアクセス可能な情報を記憶し得る。例えば、メモリ454は、1つまたは複数の機械学習モデルを訓練するように構成されたモデル訓練器を実施するための命令456を含み得る。データ458は、1つまたは複数のモデルおよび訓練データを含み得る。機械学習ネットワーク450はまた、ネットワーク440を介して1つまたは複数のリモートコンピュータデバイス(例えば、サーバ410)と通信するために使用されるネットワークインターフェースを含み得る。
【0075】
本明細書に開示の技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステムを参照するとともに、そのようなシステムに対してとられたアクションならびにそのようなシステムに送信されるおよびから送信される情報も参照している。コンピュータベースのシステムのもともと備わっているフレキシビリティが、コンポーネント間のタスクおよび機能性の非常に多種多様な考えられ得る構成、組合せ、ならびに分割を可能としていることを当業者は理解されよう。例えば、本明細書に開示のサーバプロセスは、単一のサーバを使用してまたは共同して動作する複数のサーバを使用して実施され得る。データベースおよびアプリケーションは、単一のシステム上に実装され得る、または、複数のシステムにわたって分散され得る。分散コンポーネントは、シーケンシャルにまたはパラレルに動作し得る。
【0076】
本願の特定事項についてその特定の例示的な実施形態に関して詳細に説明してきたが、前述したことの理解を獲得すれば、当業者がそのような実施形態の変更、変形、および均等物を容易に創出し得ることは理解されよう。それゆえ、本開示の範囲は、限定としてではなく例としてのものであり、特定事項の開示は、当業者にとって容易に明らかとなるように、本願の特定事項に対するそのような修正、変形、および/または追加を含むすべてを排除するものではない。