GENERATING CAPTCHAS USING GENERATIVE IMAGING MODELS

Methods and systems for generating completely automated public Turing test (CAPTCHA) images are provided. In some examples, a method includes generating a plurality of images using a generative imaging model, providing the plurality of images to a user with a description that corresponds to one of a similarity or difference between the plurality of images, receiving a selection of an image of the plurality of images, determining if the selection is correct based on the provided description, and outputting an indication of whether the selection is correct.

BACKGROUND

A completely automated public Turing test (CAPTCHA) is a type of security measure known as challenge-response authentication. A CAPTCHA helps to protect systems, such as from spam and password decryption, by asking users to complete a simple test that proves the user is human, as compared to a computer that is trying to break into the systems.

SUMMARY

Aspects of the present disclosure relate to methods, systems, and media for generating CATPCHA images, and training users to provide accurate prompts to generative imaging models.

In some examples, one or more images for a CATPCHA are generated using a generative imaging model. The images may be generated based on a plurality of categories of variables (e.g., including a subject, a verb, a setting, a style, etc.). Each of the one or more images may be generated based on a respective prompt. The images may be provided to a user (e.g., via a graphical user-interface). In some examples, the images are a plurality of images that are provided to a user with a description that corresponds to one of a similarity or difference between the plurality of images. In such examples, a selection of an image of the plurality of images may be received (e.g., via user-input) and it may be determined if the selection is correct based on the provided description. In some examples, a description (e.g., in natural language) of the one or more images is received (e.g., via user input). The description may be compared to the respective prompts based on which the one or more images were generated, such that an indication of whether the description is correct can be output. In some examples, when the images are a plurality of images, the description includes similarities or differences between the plurality of images and is compared to similarities or difference between the prompts based on which the images were generated. Further, in some examples, the description of the one or more images is received as part of a training process that teaches users how to provide accurate prompts to generative models.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and/or advantages of examples will be set forth in part in the following description and, in part, will be apparent from the description, or may be learned by practice of the disclosure.

DETAILED DESCRIPTION

As mentioned above, a completely automated public Turing test (CAPTCHA) is a type of security measure known as challenge-response authentication. A CAPTCHA helps to protect systems, such as from spam and password decryption, by asking users to complete a simple test that proves the user is human, as compared to a computer that is trying to break into the systems.

Traditional CAPTCHAs are boring and some recycle the same images (e.g., of a hydrant, bicycles, crosswalks, traffic lights, etc.) over and over again. Those recycled images may be retrieved from a database of images and/or scraped from images found on the Internet. Further, traditional CAPTCHAs may be relatively insecure in light of the development of new advanced machine-learning techniques.

Generative image models, such as DALL-E 2 and Stable Diffusion, can create images with near limitless subjects, across a wide range of artistic and photographic styles. These can include subjects that are mythical and impossible, but still immediately recognizable to the human eye. The variety of styles and content mean that few (if any) image recognition techniques, operated by adversarial agents, may be able to effectively identify all images and defeat the CAPTCHAs.

The present disclosure describes several ways in which image-generation artificial intelligence (AI) models can power a new generation of CAPTCHAs with increased security. Furthermore, active interaction with these controls can serve to train and improve the image generation models themselves by feeding back positive/negative human detection into the model training loop.

In some examples, an image-selection type CATPCHA may be provided with images generated by AI (e.g., a generative imagery model). For example, a user may be provided with instructions to “Select the images with horses.” Images may be created with horses in various styles, positions, settings, etc. The user may be shown a number of images with horses and a number without, and be asked to select any and all images with the desired label (e.g., containing horses).

In some examples, a user may describe images. For example, the user may be shown one or more AI-generated image(s) with a number of elements that can be described. The user may be presented with a text box and asked to type a description of the image content. A countdown timer may show how much time the user has left to meet the challenge before the one or more images are replaced with one or more new images. As the user types, several factors may be assessed and processed by an AI to determine whether the user is likely a bot or a human. These include factors may include the cadence and regularity of keystrokes, incidences of mistakes, typos, backspaces, etc. The typed content (in any language) may be interpreted by an AI model to determine if, or how accurately, it describes the image that was generated.

In some examples provided herein, a plurality of images may be generated using a generative imaging model. The plurality of images may be generated based on a plurality of categories of variables, such as a subject (e.g., person, animal, object), a verb (e.g., sitting, swimming, jumping), a setting (a farm, underwater, outer space), and a style (e.g., cartoon, Picasso, watercolor, pop art, vintage, other art styles). The plurality of images may be provided to a user. In some examples, the plurality of images may be provided with a description corresponding to a similarity and/or difference between the plurality of images, such that a user may select one or more of the images based on the description. In some examples, a user may provide a description corresponding to aspects of one or more images and/or similarities/differences between one or more images. Mechanisms disclosed herein may determine whether the selection and/or the user-provided description are correct, and provide an indication of such.

Advantages of aspects disclosed herein may include an improved user experience, such as by providing images that are of more interest to a user who is completing CAPTCHA challenges. Further, aspects described herein may improve security of systems that are protected by CAPTCHAs generated according to teachings provided herein. Still further, a user may be trained on how to effectively and accurately draft prompts for generative imaging models, according to some aspects described herein. Additional and/or alternative advantages will be recognized by those of ordinary skill in the art, at least in light the present disclosure.

FIG.1shows an example of a system100, in accordance with some aspects of the disclosed subject matter. The system100may be a system for generating CAPTCHAs. The system100includes one or more computing devices102, one or more servers104, an input data source107, and a communication network or network108.

The computing device102can receive input data111from the input data source107, which may be, for example, a camera, a microphone, a computer-executed program that generates input data, and/or memory with data stored therein corresponding to input data. The input data111may be, for example, a voice query, text query, touch, gesture, keystroke, mouse click, gaze, or some other user input data that may be recognized by those of ordinary skill in the art. Additionally, or alternatively, the network108can receive input data111from the input data source107.

Computing device102may include a communication system112, a CAPTCHA generator114, an input analyzer116, and/or a prompt trainer118. In some examples, computing device102can execute at least a portion of the CAPTCHA generator114to generate one or more images via an AI model, such as a generative imaging model. For example, one or more prompts may be provided the AI model, such that the model may generated the images based on one or more of a plurality of categories of variables. In some examples, computing device102can execute at least a portion of the input analyzer116to compare an input provided by a user to prompts used to generate the CATPCHAs. Based, on the comparison, it may be determined whether the provided input was one of correct or incorrect. In some examples, computing device102can execute at least a portion of the prompt trainer118to provide instructions to a user for guessing a prompt corresponding to an image that was generated using an AI model. In some examples, the prompt trainer118may provide feedback regarding whether the user's guessed prompt was correct, incorrect, and/or a degree of how correct/incorrect the guess was.

Server104may include a communication system112, a CAPTCHA generator122, an input analyzer124, and/or a prompt trainer126. In some examples, server104can execute at least a portion of the CAPTCHA generator122to generate one or more images via an AI model, such as a generative imaging model. For example, one or more prompts may be provided the AI model, such that the model may generated the images based on one or more of a plurality of categories of variables. In some examples, server104can execute at least a portion of the input analyzer124to compare an input provided by a user to prompts used to generate the CATPCHAs. Based, on the comparison, it may be determined whether the provided input was one of correct or incorrect. In some examples, server104can execute at least a portion of the prompt trainer126to provide instructions to a user for guessing a prompt corresponding to an image that was generated using an AI model. In some examples, the prompt trainer126may provide feedback regarding whether the user's guessed prompt was correct, incorrect, and/or a degree of how correct/incorrect the guess was.

Additionally, or alternatively, in some examples, computing device102can communicate data received from input data source107to the server104over a communication network108, which can execute at least a portion of the CAPTCHA generator114/122, input analyzer116/124, and/or prompt trainer118/126. In some examples, the CATPCHA generator114/122, input analyzer116/124, and/or prompt trainer118/126may execute one or more portions of method/process300,700, and/or800described below in connection withFIGS.3,7, and/or8.

In some examples, computing device102and/or server104can be any suitable computing device or combination of devices, such as a desktop computer, a vehicle computer, a mobile computing device (e.g., a laptop computer, a smartphone, a tablet computer, a wearable computer, etc.), a server computer, a virtual machine being executed by a physical computing device, a web server, etc. Further, in some examples, there may be a plurality of computing device102and/or a plurality of servers104. It should be recognized by those of ordinary skill in the art that input data111may be received at one or more of the plurality of computing devices102and/or one or more of the plurality of servers104, such that mechanisms described herein can generate CATPCHAs and/or analyze user input associated with the CAPTCHAs.

In some examples, input data source107can be any suitable source of input data (e.g., a microphone, a camera, a sensor, etc.). In a more particular example, input data source107can include memory storing input data (e.g., local memory of computing device102, local memory of server104, cloud storage, portable memory connected to computing device102, portable memory connected to server104, privately accessible memory, publicly-accessible memory, etc.). In another more particular example, input data source107can include an application configured to generate input data. In some examples, input data source107can be local to computing device102. Additionally, or alternatively, input data source107can be remote from computing device102and can communicate input data111to computing device102(and/or server104) via a communication network (e.g., communication network108).

In some examples, communication network108can be any suitable communication network or combination of communication networks. For example, communication network108can include a Wi-Fi network (which can include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, a 4G network, a 5G network, etc., complying with any suitable standard), a wired network, etc. In some examples, communication network108can be a local area network (LAN), a wide area network (WAN), a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. Communication links (arrows) shown inFIG.1can each be any suitable communications link or combination of communication links, such as wired links, fiber optics links, Wi-Fi links, Bluetooth links, cellular links, etc.

FIG.2illustrates an example CAPTCHA200generated according to some aspects described herein. The CAPTCHA200includes an instruction or description202and a plurality of images, such as a first image204, a second image206, a third image208, and a fourth image210.

The instruction202may correspond to one of a similarity or difference between the plurality of images. For example, the instruction202illustrated inFIG.2instructs a user to “select all of the images that show a horse.” Therefore, the illustrated instruction202corresponds to a similarity between each of the plurality of images204-210. In some examples, the instruction202corresponds to a difference between each of the plurality of images204-210, such as by stating “select the images that do not show a horse.” Instructions may be more specific and/or more general than the above-examples. For example, the instruction202may guide a user to simply select one or more images that do not belong alongside the other images, without explicitly stating why the image does not belong (e.g., because it does not show the same subject, verb, setting, and/or style as the other images).

In some examples, the plurality of images204-210are generated by an artificial intelligence and/or machine-learning model, such as a generative imaging model. The generative imaging model may a deep learning model developed to generate images from natural language descriptions (e.g., prompts). For example, the first image204, the second image206, and the third image208may all be generated using the same first prompt (e.g., a Picasso image of a horse jumping over a fence in space). Comparatively, the fourth image210may be generated using a second prompt that is different than the first prompt (e.g., a Picasso image of a lion jumping over a fence in space).

The prompts used to generate the plurality of images204-210may include a plurality of categories of variables. For example, the plurality of categories of variables may include a subject (e.g., an animal, a person, an object, etc.), a verb (e.g., jumping, swimming, sitting, etc.), a setting (e.g., a desert, underwater, outer space, farm, etc.), and/or a style (e.g., cartoon, Picasso, pop art, vintage, pixelated, etc.). Additional and/or alternative categories of variables, and/or examples of specific variables provided herein, may be recognized by those of ordinary skill in the art. It should be recognized that the length of a prompt (e.g., the number of categories of variables and/or the number of variables included in the prompt) may impact the security standard of the prompt. For example, a longer prompt may be relatively more secure than a shorter prompt.

In some examples, the prompts may be generated based on interests specific to a user (e.g., from a database of personal data that is collected with a user's permission). Additionally, or alternatively, the prompts may be generated based on demographic features of a user (e.g., age, race, ethnicity, education, employment, etc.). Additionally, or alternatively, the prompts may be generated based on geographic boundaries corresponding to where a user is located and/or cultural norms associated with the geographic boundaries. Additional and/or alternative personalization techniques related to characteristics of a user, which may make corresponding CATPCHAs relatively more effective for and/or enjoyable to a user, may be recognized by those of ordinary skill in the art.

To generate images according to aspects provided herein, prompts may be created by fixing a variable for one or more categories of the plurality of categories and altering (e.g., randomizing) a variable for one or more other categories of the plurality of categories, such that there are distinguishable differences/similarities between images generated based on the various prompts. For example, in the plurality of images204-210, the first, second, and third images204-208were generated based on prompts with the same subject, setting, verb, and style. However, the fourth image210only has the same setting, verb, and style, with the subject having been altered (e.g., from a horse to a lion).

A user may select one or more of the images204-210in response to the instruction202. For example, a user may correctly select images204-206as showing horses. However, if a user were to select image210, then the selection would be incorrect. Those of ordinary skill in the art should recognize that while four images have been shown in the example ofFIG.2, any multitude of images may be generated. Further, while the correct answer to the instruction202in the example ofFIG.2includes selecting three images, those of ordinary skill in the art should recognize that in other examples, it may be correct to select a different number of images.

Further, in some examples, the CAPTCHA200may include a timer (not shown) that provides an indication to the user of how long they have to select one or more of the plurality of images204-210. If the user fails to select the correct images within a time specified by the timer and/or if the user's selection(s) are incorrect, then mechanisms provided herein may generate a new set of images204-210. Additionally, or alternatively, in some examples, the CATPCHA may lock a user out of a system and/or provide notification of a failed access attempt, in response to the user failing to select the correct images within the specified time and/or making an incorrect selection.

FIG.3illustrates an example method300for generating CATPCHA images, according to some aspects described herein. In examples, aspects of method300are performed by a device, such as computing device102and/or server104, discussed above with respect toFIG.1.

Method300begins at operation302, wherein a plurality of images (e.g., images204-210ofFIG.2) are generated using an AI model, such as a generative imaging model. The plurality of images may be generated based on a plurality of categories of variables. For example, the plurality of images may be generated based on prompts that include the plurality of categories of variables.

The plurality of categories of variables may include a subject (e.g., an animal, a person, an object, etc.), a verb (e.g., jumping, swimming, sitting, etc.), a setting (e.g., a desert, underwater, outer space, farm, etc.), and/or a style (e.g., cartoon, Picasso, pop art, vintage, pixelated, etc.). Additional and/or alternative categories of variables, and/or examples of specific variables provided herein, may be recognized by those of ordinary skill in the art. It should be recognized that the length of a prompt (e.g., the number of categories of variables and/or the number of variables included in the prompt) may impact the security standard of the prompt. For example, a longer prompt may be relatively more secure than a shorter prompt.

In some examples, the prompts may be generated based on interests specific to a user (e.g., from a database of personal data that is collected with a user's permission). For example, the prompts may be interest or history specific to the user based on cookies, web beacons, and/or other web tracking technology recognized by those of ordinary skill in the art. Additionally, or alternatively, the prompts may be generated based on demographic features of a user (e.g., age, race, ethnicity, education, employment, etc.). Additionally, or alternatively, the prompts may be generated based on geographic boundaries corresponding to where a user is located and/or cultural norms associated with the geographic boundaries. Additional and/or alternative personalization techniques related to characteristics of a user, which may make corresponding CATPCHAs relatively more effective for and/or enjoyable to a user, may be recognized by those of ordinary skill in the art.

To generate images according to aspects provided herein, prompts may be created by fixing a variable for one or more categories of the plurality of categories and altering (e.g., randomizing) a variable for one or more other categories of the plurality of categories, such that there are distinguishable differences/similarities between images generated based on the various prompts. The variables may be retrieved from a database of variables corresponding to a given category and/or a database corresponding to the plurality of categories that includes indications of to which category a given variable is associated.

At operation304, the plurality of images are provided to a user with a description (e.g., the description202ofFIG.2) corresponding to one of a similarity or difference between the plurality of images (e.g., between one or more images that form the plurality of images). The similarity or difference may be associated with one or more categories of the plurality of categories of variables, as discussed earlier herein. Further, the providing a plurality of images may include displaying the plurality of images and/or the description to a user, such as via a display screen of a computing device. Additionally, or alternatively, the images and/or the description may be provided via audio corresponding to the images and/or the description.

In some examples, the description may be generated based on one or more of the variables used to generate the plurality of images. For example, the description may instruct a user to select one or more images based on a similarity or difference based on similarities or differences between the prompts used to generate the plurality of images. Additionally, or alternatively, the descriptions may be pulled from a database of pre-prepared descriptions.

At operation306, a selection of an image of the plurality of images is received. In some examples the selection may be of a plurality of images. The selection may be received based on an input from a user. For example, the input may be a voice query, text query, touch, gesture, keystroke, mouse click, gaze, or some other input that may be recognized by those of ordinary skill in the art as corresponding to a selection.

At operation308, it is determined if the selection is correct based on the description provided at operation304. For example, when the images are generated, they may include an indication of which images were generated based on prompts that include the same and/or different variables. Additionally, or alternatively, the prompts that generate the images may be analyzed to determine a semantic similarity between the prompts and the provided description.

If the selection is not correct based on the provided description, flow branches “NO” to operation310, wherein an indication that the selection is not correct is output. For example, if a user selects one or more images not associated with the description, then the selection may be incorrect. As another example, if a user fails to select one or more images associated with the description, then the selection may also be incorrect.

The indication that the selection is incorrect may be an audio and/or visual indication. Additionally, or alternatively, the indication that the selection is incorrect may be the execution of a process, such as locking a user out of a system protected by the CAPTCHA generated via method300. In some examples, the plurality of images are a first plurality of images, and when the method300reaches operation310, the method300may return to operation302and generate a second plurality of images using the generative imaging model. Therefore, in some examples, a user may have multiple opportunities to correctly select images based on provided descriptions.

If the selection is correct based on the provided description, flow branches “YES” to operation312, wherein an indication that the selection is correct is output. For example, if a user selects each and every one of the images associated with the description, then the selection may be correct.

The indication that the selection is correct may be an audio and/or visual indication. Additionally, or alternatively, the indication that the selection is correct may be the execution of a process, such as granting a access to a system protected by the CAPTCHA generated via method300. In some examples, the plurality of images are a first plurality of images, and when the method300reaches operation312, the method300may return to operation302and generate a second plurality of images using the generative imaging model. Therefore, in some examples, a user may be required to correctly select images multiple times based on provided descriptions, such as to increase security before being granted access to a system.

Method300may terminate at operation312and/or operation314. Alternatively, method300may return to operation302to provide an iterative loop of generating a plurality of images using a generative imaging model, providing the plurality of images to a user with a description thereof, receiving a selection of one or more of the plurality of images, and determining if the selection is correct.

FIG.4Aillustrates an example first image410that may be generated for a CATPCHA, andFIG.4Billustrates an example second image420that may also be generated for a CAPTCHA, according to some aspects described herein.FIG.4Awas generated by a generative imaging model, using the prompt: “a shiba inu playing catch in space.” Comparatively,FIG.4Bwas generated by a generative imaging model, using the prompt: “a shiba inu playing catch underwater.”

In some examples provided herein, a user may be provided with a single image, such as one of the first image410or the second image420as part of a CAPTCHA. Alternatively, in some examples, the user may be provided with a plurality of images, such as both of the first image410and the second image420, as part of a CATPCHA.

In examples where the user is provided with a single image, the user may be prompted to provide a description of the single image. For example, if a user is provided with the first image410in a CATPCHA, then the user may advance past the CATPCHA by providing the correct description “a shiba inu playing catch in space.” In some examples, the user may provide a different description, but the different description may be determined to be sufficiently similar to the correct description, such that the user may still advance past the CAPTCHA. Sufficiently similarity may be based on generating an input embedding based on the received description and comparing it to a prompt embedding that is generated based on the prompt used to generate the first image410.

In examples where the user is provided with a plurality of images (e.g., the first image410and the second image420), the user may be prompted to provide a description of each of the images (similar as was discussed above tow hen the user is provided with a single image). Additionally, or alternatively, the user may be prompted to provide a description of similarities or differences between the plurality of images (e.g., between the first image410and the second image420). For example, referring to the example first and second images410,420ofFIGS.4A and4B, a user who is prompted to describe differences between the first image410and the second image420may accurately provide a description including that the first image410has a setting of “space”, whereas the second image420has a setting of “underwater.” Variations of exact language for the description be acceptable based on comparing an embedding of the description to an embedding of the differences between the prompt used to generate the first image410and the prompt used to generate the second image420.

Referring still to the example first and second images410,420, a user who is prompted to describe similarities between the first image410and the second image420may accurately provide a description including that both images show a Shiba Inu playing catch. Variations of exact language for the description be acceptable based on comparing an embedding of the description to an embedding of the similarities between the prompt used to generate the first image410and the prompt used to generate the second image420. For example, in some configurations of mechanisms provided herein, a user may be correct by stating that the first image410and the second image420both show a Shiba Inu, and/or both show a dog playing catch. Such tolerancing between an exactly correct answer and sufficiently correct answer may be configurable for specific use cases, while considering that systems may be relatively more secure (e.g., less accessible) with stricter tolerances.

FIG.5illustrates an example system500for training a user to provide accurate prompts to an image generator, according to some aspects described herein. The example system500includes a first image502, a second image504, instructions506, a first input interface508, and a second input interface510. The system500may include a graphical user-interface on which the first image502, the second image504, and/or the instructions506are displayed. Further, the first input interface508and/or the second input interface510may be integrated into the graphical user-interface.

The first image502may be generated using a generative imaging model based on a prompt. The prompt may include a plurality of categories of variables (e.g., a subject, action, style, setting, other factors), such that the first image502is generated based on the plurality of categories of variables. The first image502illustrated inFIG.5was generated based on the prompt “stain glass of a cartoon wolf howling at a moon.”

The system500includes instructions506. The instructions506instruct a user to try to guess a prompt that generated the first image502. In some examples, the instructions506may include that a user may try to guess multiple times for the prompt that generated the first image502. In some examples, the instructions506may provide the option for users to give up on guessing, such as by providing input indicative of such, and the prompt that generated the first image502may be revealed.

The user's guess may be provided via the first input interface508. The first input interface508may receive the user's guess in the form of text (e.g., received via a text box, a chat window, etc.), audio (e.g., received from a microphone, an audio file, etc.), or in the form of another input that corresponds to a guess for a prompt that generated the first image502. In some examples, the first input interface508may further include one or more buttons, such as for submitting the guess.

After receiving the guess, the example system500may generate, using a generative imaging model, the second image504, based on the guess. For example, inFIG.5, a guess was provided as “wolf.” Therefore, “wolf” was used as the prompt based on which the second image504was generated. However, as one of ordinary skill in the art will recognize, the illustrated second image504does not look the same as the illustrated first image502. Accordingly, mechanisms provided herein may determine that the second image504is not sufficiently similar to the first image502to constitute a correct guess. Alternatively, in some examples with a relatively relaxed tolerance, the second image504may be determined to be sufficiently similar to the first image502.

A user may provide subsequent guesses via the first input interface508, to update the second image504to try to make it look like the first image502. Alternatively, the user may give-up on guessing and/or believe that they have guessed correctly and provide an indication of such to the second input interface510. The second input interface510may be configured to receive text data, audio data, gaze data, gesture data, keystroke data, mouse data, or another type of input indicative of the user terminating the guessing process (e.g., because they give up, or because they believe they guessed correctly). In the illustrated example ofFIG.5, the second input interface510includes a button that a user may select to reveal the prompt that generated the first image502. By selecting the button of the second input interface510, the prompt that generated the first image502may be provided to the user (e.g., in the form of a visual and/or audio indication).

Generally the system500provides a gamified way to train users on how to effectively and accurately draft prompts for generative imaging models. With the rising prevalence of generative models and large language models in everyday life, training users on how to effectively interact with such models may be advantageous, such that the models can be integrated into various facets of user's lives. Additional and/or alternative advantages will be recognized by those of ordinary skill in the art, at least in light the present disclosure.

FIG.6illustrates an example vector space600according to some aspects described herein. The vector space600includes a plurality of feature vectors, such as a first feature vector602, a second feature vector604, a third feature vector606, a fourth feature vector608, and a fifth feature vector610. Each of the plurality of feature vectors602,604,606, and608correspond to a respective embedding603,605,607,609generated based on prompt information (e.g., prompts used to generate one or more CATPCHA images, similarities between prompts, differences between prompts, etc.). The embeddings603,605,607, and609may be semantic embeddings. The fifth feature vector610is generated based on an input embedding611(e.g., a description provided by a user describing a CATPCHA image, similarities between images, and/or differences between images).

The feature vectors602,604,606,608,610each have distances that are measurable between each other. For example, a distance between the feature vectors602,604,606, and608and the fifth feature vector610corresponding to the input embedding611may be measured using cosine similarity. Alternatively, a distance between the feature vectors602,604,606,608and the fifth feature vector610may be measured using another distance measuring technique (e.g., an n-dimensional distance function) that may be recognized by those of ordinary skill in the art.

A similarity of each of the feature vectors602,604,606,608to the feature vector610corresponding to the input embedding611may be determined, for example based on the measured distances between the feature vectors602,604,606,608and the feature vector610. The similarity between the feature vectors602,604,606,608and the feature vector610may be used to group or cluster the feature vectors602,604,606, and608in one or more collections of feature vectors, such as a collection612, thereby generating a collection or subset of embeddings within a threshold of relatedness.

In some examples, the collection612may include a predetermined number of feature vectors, such that groups of feature vectors are given a predetermined size. Additionally, or alternatively, in some examples, the distances between each of the feature vectors602,604,606,608and the feature vector610corresponding to the input embedding611may be compared to a predetermined threshold.

The embeddings603and605that correspond to feature vectors602and604, respectively, may correspond to similar prompts (e.g., provided to a generative imagery model). For example, the embedding603may be related to a first image generated by the generative imagery model, and the embedding605may be related to a second image generated by the generative imagery model.

The collection612may be stored in a data structure, such as a metric graph, an ANN tree, a k-d tree, an octree, another n-dimensional tree, or another data structure that may be recognized by those of ordinary skill in the art that is capable of storing vector space representations. Further, memory corresponding to the data structure in which the collection612is stored may be arranged or stored in a manner that groups the embeddings and/or vectors in the collection612together, within the data structure. In some examples, feature vectors and their corresponding embeddings generated in accordance with mechanisms described herein may be stored for an indefinite period of time. Additionally, or alternatively, in some examples, as new feature vectors and/or embeddings are generated and stored, the new feature vectors and/or embeddings may overwrite older feature vectors and/or embeddings that are stored in memory (e.g., based on metadata of the embeddings indicating a version), such as to improve memory capacity. Additionally, or alternatively, in some examples, feature vectors and/or embeddings may be deleted from memory at specified intervals of time, and/or based on an amount of memory that is available, to improve memory capacity.

Generally, the ability to store embeddings corresponding to prompts used to generate images, via a generative imagery model, allows a user to associate, compare, and/or provide feedback based on input descriptions and prompts used to generate images in a novel manner that has the benefit of being computationally efficient. Mechanisms described herein are efficient for reducing memory usage, as well as for reducing usage of processing resources to search through stored content, such as because embeddings occupy relatively little space in memory compared to alternative data objects, such as text, videos, images, etc. Additional and/or alternative advantages may be recognized by those of ordinary skill in the art.

FIG.7illustrates an example method700for generating CATPCHA images (e.g., similar as to discussed with respect toFIGS.4A and4B), according to some aspects described herein. Alternatively, in some examples,FIG.7is a method for training a user to provide accurate prompts for generating an image (e.g., similar as to discussed with respect toFIG.5). In examples, aspects of method700are performed by a device, such as computing device102and/or server104, discussed above with respect toFIG.1.

Method700begins at operation702wherein one or more images (e.g., the first image410and/or the second image420ofFIGS.4A and4B, or the first image502and the second image504ofFIG.5) are generated using a generative imaging model. Each of the one or more images are generated based on a respective prompt. The prompts may include a plurality of categories of variables, such that each of images are generated based on the plurality of categories of variables.

The plurality of categories of variables may include a subject (e.g., an animal, a person, an object, etc.), a verb (e.g., jumping, swimming, sitting, etc.), a setting (e.g., a desert, underwater, outer space, farm, etc.), and/or a style (e.g., cartoon, Picasso, pop art, vintage, pixelated, etc.). Additional and/or alternative categories of variables, and/or examples of specific variables provided herein, may be recognized by those of ordinary skill in the art. It should be recognized that the length of a prompt (e.g., the number of categories of variables and/or the number of variables included in the prompt) may impact the security standard of the prompt. For example, a longer prompt may be relatively more secure than a shorter prompt.

In some examples, the prompts may be generated based on interests specific to a user (e.g., from a database of personal data that is collected with a user's permission). Additionally, or alternatively, the prompts may be generated based on demographic features of a user (e.g., age, race, ethnicity, education, employment, etc.). Additionally, or alternatively, the prompts may be generated based on geographic boundaries corresponding to where a user is located and/or cultural norms associated with the geographic boundaries. Additional and/or alternative personalization techniques related to characteristics of a user, which may make generated images relatively more recognizable and/or enjoyable to a user, may be recognized by those of ordinary skill in the art.

To generate images according to aspects provided herein, prompts may be created by fixing a variable for one or more categories of the plurality of categories and altering (e.g., randomizing) a variable for one or more other categories of the plurality of categories, such that there are distinguishable differences/similarities between images generated based on the various prompts. The variables may be retrieved from a database of variables corresponding to a given category and/or a database corresponding to the plurality of categories that includes indications of to which category a given variable is associated.

At operation704, the one or more images are provided to a user. Providing the images may include displaying the images, such as via a display screen of a computing device. For example, the images may be integrated into a graphical user-interface being shown on the display screen.

At operation706, a description of the one or more images is received. The description may be in natural language. For example, a user may provide the description via a text input and/or via a speech input that include natural language. In some examples, the description may be a guess (e.g., as shown in the first input interface508ofFIG.5) of what prompt generated the one or more provided images.

At operation708, the description of the one or more images is compared to the respective prompts of the images. In some examples, the comparing is a standard text comparison using techniques that may be recognized by those of ordinary skill in the art. In some examples, the comparing includes generating an input embedding based on the received description. For example, the received description may be provided to a model, such as a machine-learning model, that is trained to generate embeddings based on natural language. A prompt embedding may also be generated based on the prompts used to generate the one or more images at operation702. For example, the prompts may be provided to a model, such as a machine-learning model, that is trained to generate embeddings based on prompts.

A distance may be determined between the input embedding and the prompt embedding, such as within a vector space. The distance may be determined based on cosine similarity or another distance measurement that may be recognized by those of ordinary skill in the art. The distance may be compared to a similarity threshold (e.g., as may be configured for specific use cases), thereby determining if the description is correct (e.g., if the prompt embedding is similar enough to the input embedding, based on the similarity threshold, even if not exact).

At operation710, it is determined if the description of the one or more images is correct. For example, the determining may include checking the result of comparing the description of the one or more images to the respective prompts of the images.

If the description is determined to not be correct, flow branches “NO” to operation712, wherein an indication that the description is not correct is output. For example, if a user provides a description of the one or more images that is not similar enough to the prompts of the one or more images, then the description may be determined to be incorrect. As another example, if the one or more images are a plurality of images, and a user fails to provide a description of a similarity or difference between the images that is similar enough to a similarity or difference between prompts of the images, then the description may be determined to be incorrect.

The indication that the selection is incorrect may be an audio and/or visual indication. Additionally, or alternatively, the indication that the selection is incorrect may be the execution of a process, such as locking a user out of a system protected by the CAPTCHA generated via method700. In some examples, the one or more images are a first set of one or more images, and when the method700reaches operation712, the method700may return to operation702and generate a second set of one or more images using the generative imaging model. Therefore, in some examples, a user may have multiple opportunities to correctly describe images.

In some examples, the indication indicates that the description is not correct and the method700further includes receiving a signal (e.g., from the second input interface510ofFIG.5) that corresponds to the user terminating providing descriptions (e.g., giving up on guessing a description for the image). Subsequently, the prompt(s) based on which the one or more images were generated may be provided. By providing the prompt to a user who has given up on guessing, a user may be able to learn what they were expected to guess. Such a gamified learning process may be beneficial for teaching users how to provide relatively accurate prompts for generating the one or more images, as may be useful should the user interface with a generative imaging model.

If the description is determined to be correct, flow branches “YES” to operation714, wherein an indication that the description is correct is output. For example, if a user provides a description of the one or more images that is similar enough to the prompts of the one or more images, then the description may be determined to be correct. As another example, if the one or more images are a plurality of images, and a user provides a description of a similarity or difference between the images that is similar enough to a similarity or difference between prompts of the images, then the description may be determined to be correct.

The indication that the description is correct may be an audio and/or visual indication. Additionally, or alternatively, the indication that the selection is correct may be the execution of a process, such as granting a access to a system protected by the CAPTCHA generated via method700. In some examples, the one or more images are a first set of one or more images, and when the method700reaches operation712, the method700may return to operation702and generate a second set of one or more images using the generative imaging model. Therefore, in some examples, a user may be required to correctly describe images multiple times, such as to increase security before being granted access to a system.

Method700may terminate at operation712and/or operation714. Alternatively, method700may return to operation702to provide an iterative loop of generating one or more images using a generative imaging model, receiving a description thereof, and determining if the description of the images is correct.

FIG.8illustrates an example method800for generating CATPCHA images, according to some aspects described herein. In examples, aspects of method800are performed by a device, such as computing device102and/or server104, discussed above with respect toFIG.1.

Method800begins at operation802wherein a plurality of images (e.g., the first image410and the second image420) are generated using a generative imaging model. Each image of the plurality of images is generated based on a respective prompt. The prompts may include a plurality of categories of variables, such that each of images are generated based on the plurality of categories of variables.

The plurality of categories of variables may include a subject (e.g., an animal, a person, an object, etc.), a verb (e.g., jumping, swimming, sitting, etc.), a setting (e.g., a desert, underwater, outer space, farm, etc.), and/or a style (e.g., cartoon, Picasso, pop art, vintage, pixelated, etc.). Additional and/or alternative categories of variables, and/or examples of specific variables provided herein, may be recognized by those of ordinary skill in the art. It should be recognized that the length of a prompt (e.g., the number of categories of variables and/or the number of variables included in the prompt) may impact the security standard of the prompt. For example, a longer prompt may be relatively more secure than a shorter prompt.

In some examples, the prompts may be generated based on interests specific to a user (e.g., from a database of personal data that is collected with a user's permission). Additionally, or alternatively, the prompts may be generated based on demographic features of a user (e.g., age, race, ethnicity, education, employment, etc.). Additionally, or alternatively, the prompts may be generated based on geographic boundaries corresponding to where a user is located and/or cultural norms associated with the geographic boundaries. Additional and/or alternative personalization techniques related to characteristics of a user, which may make corresponding CATPCHAs relatively more effective for and/or enjoyable to a user, may be recognized by those of ordinary skill in the art.

To generate images according to aspects provided herein, prompts may be created by fixing a variable for one or more categories of the plurality of categories and altering (e.g., randomizing) a variable for one or more other categories of the plurality of categories, such that there are distinguishable differences/similarities between images generated based on the various prompts. The variables may be retrieved from a database of variables corresponding to a given category and/or a database corresponding to the plurality of categories that includes indications of to which category a given variable is associated.

At operation804, the plurality of images are provided to a user. Providing the plurality of images may include displaying the plurality of images, such as via a display screen of a computing device. Additionally, or alternatively, the images may be provided via audio corresponding to the images.

At operation806, a description of similarities or differences between the plurality of images is received. The description may be in natural language. For example, a user may provide the description via a text input and/or via a speech input that include natural language.

In some examples, the similarities or differences between the prompts may be based on similarities or difference between the plurality of categories of variables. For example, a first image may have one of a different subject, verb, setting, or style than a second image. Additionally, or alternatively, a first image may have one of a same subject, verb, setting, or style than a second image. Accordingly, the description may include an identification of which variables in the prompts based on which the first image and the second image were generated differ between the first image and the second image.

At operation808, the description is compared to similarities or differences between the prompts (e.g., the prompts based on which the plurality of images were generated). In some examples, the comparing includes generating an input embedding based on the received description. For example, the received description may be provided to a model, such as a machine-learning model, that is trained to generate embeddings based on natural language. A prompt embedding may also be generated based on similarities or differences between the prompts used to generate the plurality of images at operation802. For example, the similarities or difference may be identified and provided to a model, such as a machine-learning model, that is trained to generate embeddings.

A distance may be determined between the input embedding and the prompt embedding, such as within a vector space. The distance may be determined based on cosine similarity or another distance measurement that may be recognized by those of ordinary skill in the art. The distance may be compared to a similarity threshold (e.g., as may be configured for specific use cases), thereby determining if the description is correct (e.g., if the prompt embedding is similar enough to the input embedding, based on the similarity threshold, even if not exact).

At operation810, it is determined if the description of the one or more images is correct. For example, the determining may include checking the result of comparing the description of the plurality of images to the similarities or differences between the prompts of the images.

If the description is determined to not be correct, flow branches “NO” to operation812, wherein an indication that the description is not correct is output. For example, if a user provides a description that is not similar enough to the similarities or differences of the prompts of the one or more images, then the description may be determined to be incorrect.

The indication that the selection is incorrect may be an audio and/or visual indication. Additionally, or alternatively, the indication that the selection is incorrect may be the execution of a process, such as locking a user out of a system protected by the CAPTCHA generated via method800. In some examples, the images are a first set of images, and when the method700reaches operation812, the method800may return to operation802and generate a second set of images using the generative imaging model. Therefore, in some examples, a user may have multiple opportunities to correctly describe similarities and/or differences between images.

If the description is determined to be correct, flow branches “YES” to operation814, wherein an indication that the description is correct is output. For example, if a user provides a description that is similar enough to the similarities or differences between the prompts of the images, then the description may be determined to be correct.

The indication that the description is correct may be an audio and/or visual indication. Additionally, or alternatively, the indication that the selection is correct may be the execution of a process, such as granting a access to a system protected by the CAPTCHA generated via method800. In some examples, the images are a first set of images, and when the method800reaches operation812, the method800may return to operation802and generate a second set of images using the generative imaging model. Therefore, in some examples, a user may be required to correctly describe similarities and/or differences between images multiple times, such as to increase security before being granted access to a system.

Method800may terminate at operation812and/or operation814. Alternatively, method800may return to operation802to provide an iterative loop of generating a plurality of images using a generative imaging model, receiving a description of similarities or differences between the plurality of images, and determining if the description of the images is correct.

FIGS.9A and9Billustrate overviews of an example generative machine learning model that may be used according to aspects described herein. With reference first toFIG.9A, conceptual diagram900depicts an overview of pre-trained generative model package904that processes an input902to generate output for CAPTCHA images906according to aspects described herein. Examples of pre-trained generative model package904includes, but is not limited to, Megatron-Turing Natural Language Generation model (MT-NLG), Generative Pre-trained Transformer 3 (GPT-3), Generative Pre-trained Transformer 4 (GPT-4), BigScience BLOOM (Large Open-science Open-access Multilingual Language Model), DALL-E, DALL-E 2, Stable Diffusion, or Jukebox.

In examples, generative model package904is pre-trained according to a variety of inputs (e.g., a variety of human languages, a variety of programming languages, and/or a variety of content types) and therefore need not be finetuned or trained for a specific scenario. Rather, generative model package904may be more generally pre-trained, such that input902includes a prompt that is generated, selected, or otherwise engineered to induce generative model package904to produce certain generative model output906. For example, a prompt includes a context and/or one or more completion prefixes that thus preload generative model package904accordingly. As a result, generative model package904is induced to generate output based on the prompt that includes a predicted sequence of tokens (e.g., up to a token limit of generative model package904) relating to the prompt. In examples, the predicted sequence of tokens is further processed (e.g., by output decoding916) to yield output906. For instance, each token is processed to identify a corresponding word, word fragment, or other content that forms at least a part of output906. It will be appreciated that input902and generative model output906may each include any of a variety of content types, including, but not limited to, text output, image output, audio output, video output, programmatic output, and/or binary output, among other examples. In examples, input902and generative model output906may have different content types, as may be the case when generative model package904includes a generative multimodal machine learning model.

As such, generative model package904may be used in any of a variety of scenarios and, further, a different generative model package may be used in place of generative model package904without substantially modifying other associated aspects (e.g., similar to those described herein with respect toFIGS.1-8). Accordingly, generative model package904operates as a tool with which machine learning processing is performed, in which certain inputs902to generative model package904are programmatically generated or otherwise determined, thereby causing generative model package904to produce model output906that may subsequently be used for further processing.

Generative model package904may be provided or otherwise used according to any of a variety of paradigms. For example, generative model package904may be used local to a computing device (e.g., computing device102inFIG.1) or may be accessed remotely from a machine learning service. In other examples, aspects of generative model package904are distributed across multiple computing devices. In some instances, generative model package904is accessible via an application programming interface (API), as may be provided by an operating system of the computing device and/or by the machine learning service, among other examples.

With reference now to the illustrated aspects of generative model package904, generative model package904includes input tokenization908, input embedding910, model layers912, output layer914, and output decoding916. In examples, input tokenization908processes input902to generate input embedding910, which includes a sequence of symbol representations that corresponds to input902. Accordingly, input embedding910is processed by model layers912, output layer914, and output decoding916to produce model output906. An example architecture corresponding to generative model package904is depicted inFIG.9B, which is discussed below in further detail. Even so, it will be appreciated that the architectures that are illustrated and described herein are not to be taken in a limiting sense and, in other examples, any of a variety of other architectures may be used.

FIG.9Bis a conceptual diagram that depicts an example architecture950of a pre-trained generative machine learning model that may be used according to aspects described herein. As noted above, any of a variety of alternative architectures and corresponding ML models may be used in other examples without departing from the aspects described herein.

As illustrated, architecture950processes input902to produce generative model output906, aspects of which were discussed above with respect toFIG.9A. Architecture950is depicted as a transformer model that includes encoder952and decoder954. Encoder952processes input embedding958(aspects of which may be similar to input embedding910inFIG.9A), which includes a sequence of symbol representations that corresponds to input956. In examples, input956includes input content902which may include a user-input and/or a machine-generated input, such as a prompt, a command, context, or the like.

Further, positional encoding960may introduce information about the relative and/or absolute position for tokens of input embedding958. Similarly, output embedding974includes a sequence of symbol representations that correspond to output972, while positional encoding976may similarly introduce information about the relative and/or absolute position for tokens of output embedding974.

As illustrated, encoder952includes example layer970. It will be appreciated that any number of such layers may be used, and that the depicted architecture is simplified for illustrative purposes. Example layer970includes two sub-layers: multi-head attention layer962and feed forward layer966. In examples, a residual connection is included around each layer962,966, after which normalization layers964and968, respectively, are included.

Decoder954includes example layer990. Similar to encoder952, any number of such layers may be used in other examples, and the depicted architecture of decoder954is simplified for illustrative purposes. As illustrated, example layer990includes three sub-layers: masked multi-head attention layer978, multi-head attention layer982, and feed forward layer986. Aspects of multi-head attention layer982and feed forward layer986may be similar to those discussed above with respect to multi-head attention layer962and feed forward layer966, respectively. Additionally, masked multi-head attention layer978performs multi-head attention over the output of encoder952(e.g., output972). In examples, masked multi-head attention layer978prevents positions from attending to subsequent positions. Such masking, combined with offsetting the embeddings (e.g., by one position, as illustrated by multi-head attention layer982), may ensure that a prediction for a given position depends on known output for one or more positions that are less than the given position. As illustrated, residual connections are also included around layers978,982, and986, after which normalization layers980,984, and988, respectively, are included.

Multi-head attention layers962,978, and982may each linearly project queries, keys, and values using a set of linear projections to a corresponding dimension. Each linear projection may be processed using an attention function (e.g., dot-product or additive attention), thereby yielding n-dimensional output values for each linear projection. The resulting values may be concatenated and once again projected, such that the values are subsequently processed as illustrated inFIG.9B(e.g., by a corresponding normalization layer964,980, or984).

Feed forward layers966and986may each be a fully connected feed-forward network, which applies to each position. In examples, feed forward layers966and986each include a plurality of linear transformations with a rectified linear unit activation in between. In examples, each linear transformation is the same across different positions, while different parameters may be used as compared to other linear transformations of the feed-forward network.

Additionally, aspects of linear transformation992may be similar to the linear transformations discussed above with respect to multi-head attention layers962,978, and982, as well as feed forward layers966and986. Softmax994may further convert the output of linear transformation992to predicted next-token probabilities, as indicated by output probabilities996. It will be appreciated that the illustrated architecture is provided in as an example and, in other examples, any of a variety of other model architectures may be used in accordance with the disclosed aspects. In some instances, multiple iterations of processing are performed according to the above-described aspects (e.g., using generative model package904inFIG.9Aor encoder952and decoder954inFIG.9B) to generate a series of output tokens (e.g., words), for example which are then combined to yield a complete sentence (and/or any of a variety of other content). It will be appreciated that other generative models may generate multiple output tokens in a single iteration and may thus use a reduced number of iterations or a single iteration.

Accordingly, output probabilities996may thus form embedding output906according to aspects described herein, such that the output of the generative ML model (e.g., which may include structured output) is used as input for determining an action according to aspects described herein. In other examples, embedding output906is provided as generated output for CAPTCHA images.

FIGS.10-9and the associated descriptions provide a discussion of a variety of operating environments in which aspects of the disclosure may be practiced. However, the devices and systems illustrated and discussed with respect toFIGS.10-9are for purposes of example and illustration and are not limiting of a vast number of computing device configurations that may be utilized for practicing aspects of the disclosure, described herein.

FIG.10is a block diagram illustrating physical components (e.g., hardware) of a computing device1000with which aspects of the disclosure may be practiced. The computing device components described below may be suitable for the computing devices described above, including computing device102inFIG.1. In a basic configuration, the computing device1000may include at least one processing unit1002and a system memory1004. Depending on the configuration and type of computing device, the system memory1004may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories.

The system memory1004may include an operating system1005and one or more program modules1006suitable for running software application1020, such as one or more components supported by the systems described herein. As examples, system memory1004may store CAPTCHA generator1024, input analyzer1026, and/or prompt trainer1028. The operating system1005, for example, may be suitable for controlling the operation of the computing device1000.

Furthermore, aspects of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated inFIG.10by those components within a dashed line1008. The computing device1000may have additional features or functionality. For example, the computing device1000may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG.10by a removable storage device1009and a non-removable storage device1010.

As stated above, a number of program modules and data files may be stored in the system memory1004. While executing on the processing unit1002, the program modules1006(e.g., application1020) may perform processes including, but not limited to, the aspects, as described herein. Other program modules that may be used in accordance with aspects of the present disclosure may include electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc.

The computing device1000may also have one or more input device(s)1012such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or swipe input device, etc. The output device(s)1014such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device1000may include one or more communication connections1016allowing communications with other computing devices1050. Examples of suitable communication connections1016include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.

FIG.11is a block diagram illustrating the architecture of one aspect of a computing device. That is, the computing device can incorporate a system (e.g., an architecture)1102to implement some aspects. In some examples, the system1102is implemented as a “smart phone” capable of running one or more applications (e.g., browser, e-mail, calendaring, contact managers, messaging clients, games, and media clients/players). In some aspects, the system1102is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.

One or more application programs1166may be loaded into the memory1162and run on or in association with the operating system1164. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system1102also includes a non-volatile storage area1168within the memory1162. The non-volatile storage area1168may be used to store persistent information that should not be lost if the system1102is powered down. The application programs1166may use and store information in the non-volatile storage area1168, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system1102and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area1168synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory1162and run on the mobile computing device1100described herein (e.g., an embedding object memory insertion engine, an embedding object memory retrieval engine, etc.).

The system1102has a power supply1170, which may be implemented as one or more batteries. The power supply1170might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.

The system1102may also include a radio interface layer1172that performs the function of transmitting and receiving radio frequency communications. The radio interface layer1172facilitates wireless connectivity between the system1102and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio interface layer1172are conducted under control of the operating system1164. In other words, communications received by the radio interface layer1172may be disseminated to the application programs1166via the operating system1164, and vice versa.

The visual indicator1120may be used to provide visual notifications, and/or an audio interface1174may be used for producing audible notifications via the audio transducer1125. In the illustrated example, the visual indicator1120is a light emitting diode (LED) and the audio transducer1125is a speaker. These devices may be directly coupled to the power supply1170so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor1160and/or special-purpose processor1161and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface1174is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer1125, the audio interface1174may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with aspects of the present disclosure, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system1102may further include a video interface1176that enables an operation of an on-board camera1130to record still images, video stream, and the like.

A computing device implementing the system1102may have additional features or functionality. For example, the computing device may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG.11by the non-volatile storage area1168.

Data/information generated or captured by the computing device and stored via the system1102may be stored locally on the computing device, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio interface layer1172or via a wired connection between the computing device and a separate computing device associated with the computing device, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the computing device via the radio interface layer1172or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.

FIG.12illustrates one aspect of the architecture of a system for processing data received at a computing system from a remote source, such as a personal computer1204, tablet computing device1206, or mobile computing device1208, as described above. Content displayed at server device1202may be stored in different communication channels or other storage types. For example, various documents may be stored using a directory service1224, a web portal1225, a mailbox service1226, an instant messaging store1228, or a social networking site1230.

An application1220(e.g., similar to the application1020) may be employed by a client that communicates with server device1202. Additionally, or alternatively, CAPTCHA generator1221, input analyzer1222, and/or prompt trainer1223may be employed by server device1202. The server device1202may provide data to and from a client computing device such as a personal computer1204, a tablet computing device1206and/or a mobile computing device1208(e.g., a smart phone) through a network1215. By way of example, the computer system described above may be embodied in a personal computer1204, a tablet computing device1206and/or a mobile computing device1208(e.g., a smart phone). Any of these examples of the computing devices may obtain content from the store1216, in addition to receiving graphical data useable to be either pre-processed at a graphic-originating system, or post-processed at a receiving computing system.

As will be understood from the foregoing disclosure, one aspect of the technology relates to a method for generating captcha images. The method comprises: generating a plurality of images using a generative imaging model; providing the plurality of images to a user with a description corresponding to one of a similarity or difference between the plurality of images; receiving a selection of an image of the plurality of images; determining if the selection is correct based on the provided description; and outputting an indication of whether the selection is correct. In some examples, each of the plurality of images are generated based on a plurality of categories of variables. In some examples, the plurality of categories of variables comprise a subject, a verb, a setting, and a style. In some examples, the similarity or difference is associated with a category of the plurality of categories of variables. In some examples, the providing a plurality of images comprises displaying the plurality of images on a display screen of a computing device. In some examples, the plurality of images is a first plurality of images, the indication indicates that the selection is not correct, and the method further comprises generating a second plurality of images using the generative imaging model.

Another aspect of the technology relates to a method for generating captcha images. The method comprises: generating one or more images using a generative imaging model, wherein each of the one or more images are generated based on a respective prompt; providing the one or more images to a user; receiving a description of the one or more images; comparing the description of the one or more images to the respective prompts of the images; and outputting an indication of whether the description is correct, based on the comparison. In some examples, the description comprises natural language. In some examples, each of the plurality of images are generated based on a plurality of categories of variables. In some examples, the plurality of categories of variables comprise a subject, a verb, a setting, and a style. In some examples, the comparing comprises: generating an input embedding based on the received description; generating a prompt embedding based on the prompts used to generate the one or more images; determining a distance between the input embedding and the prompt embedding within a vector space; and comparing the distance to a similarity threshold, thereby determining if the description is correct. In some examples, the one or more images are a plurality of images, and the description comprises a description of one of a similarity or difference between the plurality of images. In some examples, the providing a plurality of images comprises displaying the plurality of images on a display screen of a computing device. In some examples, the indication indicates that the description is not correct, and the method further comprises: receiving a signal corresponding to the user terminating providing descriptions; and providing the prompt based on which the one or more images were generated.

A further aspect of the technology relates to a method for generating captcha images. The method comprises: generating a plurality of images using a generative imaging model, wherein each image of the plurality of images is generated based on a respective prompt; providing the plurality of images to a user; receiving a description of similarities or differences between the plurality of images; comparing the description to similarities or differences between the prompts based on which the plurality of images were generated; and outputting an indication of whether the description is correct, based on the comparison. In some examples, the description comprises natural language. In some examples, each of the plurality of images are generated based on a plurality of categories of variables. In some examples, the plurality of categories of variables comprise a subject, a verb, a setting, and a style. In some examples, the similarities or differences between the prompts are based on similarities or differences between the plurality of categories of variables. In some examples, the comparing comprises: generating an input embedding based on the received description of similarities or differences; generating a prompt embedding based on the similarities or difference between the prompts; determining a distance between the input embedding and the prompt embedding within a vector space; and comparing the distance to a similarity threshold, thereby determining if the description is correct.