SYSTEM AND METHOD FOR PERFORMING IMAGE SEARCH FOR PETS BASED ON USER GENERATED
Patent Information
- Application Number
- JP2024548405
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-02-18
- Filing Date
- 2023-01-31
- Publication Date
- 2026-01-09
AI Technical Summary
The traditional method of finding a pet by describing its appearance using keywords is challenging, especially for individuals unfamiliar with pet breeds or children who struggle to convey their desired pet characteristics.
A system and method that analyze a user-generated pet sketch to identify matching pet images by processing the sketch to extract features and sending an API request to an external system to retrieve matching images based on those features.
Enables users to easily find matching pet images that correspond to their sketches, simplifying the pet selection process by overcoming the limitations of keyword-based searches and catering to users who may not know the appropriate terminology.
Smart Images

Figure 00000020_0000 
Figure 00000020_0001 
Figure 00000021_0000
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 311,553, filed February 18, 2022, the entire contents of which are incorporated herein by reference. [Technical field]
[0002] Various embodiments of the present disclosure relate generally to identifying pets from user-created pet sketches, and in some embodiments, the present disclosure relates to systems and methods for utilizing machine learning models to analyze pet sketches and identify matching pet images. [Background technology]
[0003] For prospective pet owners, the pet's appearance can be one of the most important search variables when looking for a pet to adopt or buy. However, with the vast number of pet breeds with different looks, the pet search process can seem overwhelming for prospective pet owners. Additionally, prospective pet owners are often unfamiliar with what each pet breed looks like.
[0004] Conventional methods for finding a particular pet include a procedure in which a prospective pet owner conducts a keyword search using words that describe the pet's appearance. However, such conventional methods are not easy for prospective pet owners because the prospective pet owner may not know the appropriate terms to accurately describe the pet. In addition, some prospective pet owners may want their children to participate in the pet selection process. However, children may not know the appropriate words to convey the appearance of the pet they desire.
[0005] The present disclosure is intended to address the above-mentioned problems. Note that the description of the background art in this section is intended to provide a brief overview of the background of the present disclosure. Unless otherwise specified in this specification, the contents described in this section are not prior art to the claims of the present application. Therefore, the descriptions in this section are not acknowledged as prior art or suggest prior art. Summary of the Invention
[0006] According to certain aspects of the present disclosure, a method and system are disclosed for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet.
[0007] In one aspect, an exemplary embodiment of a method for analyzing a sketch of a pet to identify a matching pet image may include receiving, by one or more processors, a sketch of the pet from a user device. The method may further include analyzing, by the one or more processors, the sketch of the pet to identify one or more features corresponding to the sketch of the pet. The method may further include sending, by the one or more processors, an API request to at least one external system that includes the one or more features included in the sketch of the pet. The method may further include receiving, by the one or more processors, one or more matching pet images from the at least one external system in response to sending the API request. The method may further include displaying, by the one or more processors, the one or more matching pet images on the user device.
[0008] In a further aspect, an exemplary embodiment of a computer system for analyzing a sketch of a pet to identify matching pet images is disclosed. The computer system includes at least one memory storing instructions and at least one processor configured to perform operations by executing the instructions. The operations may include receiving a sketch of the pet from a user device. The operations may further include analyzing the sketch of the pet to identify one or more features corresponding to the sketch of the pet. The operations may further include sending an API request to at least one external system including the one or more features included in the sketch of the pet. The operations may further include receiving one or more matching pet images from the at least one external system in response to sending the API request. The operations may further include displaying the one or more matching pet images on the user device.
[0009] In a further aspect, an exemplary embodiment of a non-transitory computer-readable medium is disclosed having instructions stored thereon that, when executed by a processor, cause the processor to perform operations for analyzing a sketch of a pet to identify a matching pet image. The operations may include receiving a sketch of the pet from a user device. The operations may further include analyzing the pet sketch to identify one or more features corresponding to the pet sketch. The operations may further include sending an API request to at least one external system that includes the one or more features included in the pet sketch. The operations may further include receiving one or more matching pet images from the at least one external system in response to sending the API request. The operations may further include displaying the one or more matching pet images on the user device.
[0010] It is to be understood that the foregoing general description and the following detailed description are merely illustrative of embodiments of the present disclosure as set forth in the claims, and are not intended to limit the disclosure of the embodiments of the present disclosure as set forth in the claims. [Brief description of the drawings]
[0011] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various exemplary embodiments and, together with the following description, serve to explain the principles of embodiments of the present disclosure. [Figure 1] 1 is a flowchart illustrating an example method for analyzing a sketch of a pet to identify a matching pet image according to one or more embodiments. [Figure 2-1] 1 is a flowchart illustrating an example embodiment for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet, according to one or more embodiments. [Figure 2-2] 1 is a flowchart illustrating an example embodiment for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet, according to one or more embodiments. [Figure 2-3] 1 is a flowchart illustrating an example embodiment for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet, according to one or more embodiments. [Figure 3A] FIG. 1 illustrates an example interface of an example platform for analyzing a sketch of a pet to identify a matching pet image in accordance with one or more embodiments. [Figure 3B] FIG. 1 illustrates an example of an interface of an exemplary environment for sharing a composite image on at least one social media platform in accordance with one or more embodiments. [Figure 3C] FIG. 1 illustrates an example synthetic image interface of an example environment for analyzing a sketch of a pet to identify a matching pet image in accordance with one or more embodiments. [Figure 4]FIG. 1 illustrates an example environment in which the techniques presented herein can be utilized, in accordance with one or more embodiments. [Diagram 5] FIG. 1 illustrates an example of a computing device capable of executing the techniques presented herein, in accordance with one or more embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] According to certain aspects of the present disclosure, a method and system are disclosed for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet. It is believed that the prior art has been inadequate because it may rely on a prospective pet owner manually entering words describing the pet's appearance into a search section. Furthermore, the prior art has not been able to provide the ability to search for pets based on a sketch of the pet. Therefore, there is a need for an improved technique for analyzing a sketch of a pet to identify a matching pet.
[0013] Choosing a pet, whether buying or adopting, is a very important process. Prospective pet owners are often overwhelmed by the number of pet breeds available. Also, prospective pet owners may want a pet with certain physical characteristics. However, prospective pet owners may find it difficult to describe the physical characteristics of their desired pet. Prospective pet owners may not have knowledge about the physical characteristics of various pet breeds. Furthermore, some prospective pet owners may want their children to participate in the pet selection process. However, describing the physical characteristics of a pet may not be easy for children. However, if you ask them to draw a picture of a pet instead of using words, they may be able to describe the physical characteristics they want.
[0014] Thus, there is a need for a search technique that analyzes a sketch of a pet and uses the results of the analysis to identify matching pet images that correspond to pets that resemble the sketch. The search technique disclosed herein can analyze a drawing made by a person or child who is considering getting a pet and identify the pet image (e.g., a photo of the pet) that most closely matches the drawing. The search technique can also find matching pet images that correspond to pets that are available for purchase or adoption. The search technique can also take into account the location information of the person considering getting a pet, so that matching pet images can be found that correspond to pets that are in the vicinity of the person considering getting a pet and that are available for purchase or adoption.
[0015] As described in more detail below, various embodiments describe systems and methods for analyzing a pet sketch to identify matching pet images that match the pet sketch. The systems and methods can identify one or more matching pet images that correspond to one or more pets by analyzing the pet sketch to identify one or more features that correspond to the pet sketch. The systems and methods can then display the one or more matching pet images on a user device.
[0016] Exemplary Methods for Identifying One or More Matching Pet Images 1 illustrates an exemplary method 100 for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet, according to one or more embodiments. It should be noted that method 100 may be performed by one or more processors of a server in communication with one or more user devices and other external systems over a network. However, it should be noted that method 100 may also be performed by any one or more of the server, one or more user devices, and other external systems.
[0017] The method may include displaying, by the one or more processors, a prompt on the user device prompting the user to upload or draw a sketch of the pet (step 102). For example, the prompt may be displayed on a user interface of the user device. In some embodiments, the prompt may be displayed as part of an advertising campaign or pet service to promote pet adoption or purchase. In some embodiments, the prompt may also be displayed in response to scanning a QR code or selecting a link from the user device.
[0018] The method may include receiving, by one or more processors, a sketch of the pet from the user device (step 104). The receiving step may be in response to a prompt displayed on the user device. The pet sketch may be a sketch created by one or more users depicting one or more pets. In some embodiments, the pet sketch may be a user-drawn drawing or a photograph of the pet. The user may draw the pet sketch using a writing implement such as a pen, crayon, pencil, paint, etc. The user may scan the pet sketch and upload the scanned pet sketch to the user device or to an external storage device (e.g., a database). Alternatively, the user may use the user device to capture the pet sketch (e.g., take a picture of the sketch) and store the pet sketch on the user device. Alternatively, the user may draw the pet sketch directly on the user device. For example, the user may draw the pet sketch on a user interface of the user device (e.g., using a finger or a stylus), and the user interface may capture and / or save the pet sketch on the user device and / or other external storage device.
[0019] Alternatively, the user may create a pet sketch by taking a photograph of the one or more pets. For example, the user may take a photograph of the one or more pets via the user device. As another example, the user may take a photograph of the one or more pets using a device separate from the user device (e.g., a digital camera), which the user may then transfer to the user device.
[0020] The method may include receiving a user-uploaded sketch of the pet from the user device (step 104). Alternatively, the user may draw a sketch of the pet and the user device may automatically capture and store the sketch, as described above. In some embodiments, the user may manually upload a sketch of the pet from an external storage device.
[0021] In some embodiments, the method may also include receiving user location information from a user device. The user location information may be in the form of a zip code, GPS coordinates, etc. In one embodiment, the user may manually upload the zip code. In some embodiments, the user device may also receive a location query request. In response to the location query request, the location information may be automatically sent from the user device, in which case the user does not need to manually input the location information. Additionally, in other embodiments, the method may include determining whether the location information is valid. If the location information is not valid, the user may be prompted to re-enter the location information.
[0022] The method may include identifying, by one or more processors, one or more features corresponding to the pet sketch by analyzing the pet sketch (step 106). For example, the one or more features may include at least one of color, hair texture, ear length, limb length to body length ratio, tail length, tail shape, body type, head shape, nose length, color pattern, ear shape, ear size, nose size, and nose shape. The color may correspond to one or more colors, color patterns, or both of the pet in the pet sketch. Examples of colors include black, brown, white, or a mixture thereof. Also, for example, the color pattern may be a characteristic pattern of the pet depicted in the pet sketch, such as a black and white spotted pattern (e.g., a Dalmatian) or a black body with white paws. The hair texture may correspond to one or more types or textures of the pet's coat or fur depicted in the pet sketch. Examples of hair textures (types of coat) include curly, straight, long, and short. The ear length may correspond to whether the pet's ears are short, long, droopy, pointed, etc. depicted in the pet sketch. The limb length to body length ratio may correspond to at least one ratio between the limb length of the pet and the body length of the pet depicted in the pet sketch. The tail length may correspond to the tail length of the pet depicted in the pet sketch. For example, the tail length may be expressed as short or long, or may be expressed in units of inches or feet. The tail shape may correspond to the tail shape of the pet depicted in the pet sketch. Examples of tail shapes include straight, curly, thick, thin, etc. The body type may correspond to the body shape of the pet depicted in the pet sketch. Examples of body types include skinny, thin, long torso, short torso, etc. The head shape may correspond to the head shape of the pet depicted in the pet sketch. For example, the head shape may be round, pointy, small, large, etc. The head shape may also include the placement of the pet's eyes and nose as depicted in the pet sketch, and the length of the nose may correspond to the shape of the pet's nose as depicted in the pet sketch.For example, the length of the nose may be expressed as short, long, or in inches or feet. The shape of the ears may correspond to the shape of one or both of the pet's ears depicted in the pet sketch. Examples of ear shapes include round, pointy, bent, etc. The size of the ears may correspond to the size of one or both of the pet's ears depicted in the pet sketch. For example, the size of the ears may be expressed as small, large, or in inches. The dimensions of the nose may correspond to the width and height of the pet's nose depicted in the pet sketch. For example, the dimensions of the nose may be expressed in inches or other units. The shape of the nose may correspond to the shape of the pet's nose depicted in the pet sketch. Examples of nose shapes include short nose, long nose, etc.
[0023] In one embodiment, a machine learning model can be used to identify one or more features by analyzing a sketch of a pet. The machine learning model can be pre-trained with a dataset including a sketch of a pet and corresponding features. Additionally, the machine learning model can be pre-trained with a dataset including features of a pet and corresponding breeds. In some embodiments, the machine learning model can comprise two models. For example, a first model can include removing background from one or more sketches of a pet that have been pre-trained with one or more matching pet images. Additionally, for example, a second model can predict one or more potential breeds based on one or more features included in the sketch image of the pet.
[0024] In some embodiments, the method may also include identifying at least one breed associated with the pet sketch by analyzing the pet sketch. A recommendation may be made to the user to adopt the at least one breed through purchase or adoption based on the pet depicted in the pet sketch. The analyzing step may also include identifying the at least one breed using one or more features. For example, as described above, a machine learning model may be used to predict one or more potential breeds based on one or more features included in the pet sketch image. Additionally, for example, the machine learning model may be pre-trained using a dataset including a pet sketch, corresponding features, and corresponding breeds.
[0025] The method can include sending, by the one or more processors, an API request including one or more features included in the sketch of the pet to at least one external system (Step 108). The at least one external system can include at least one pet adoption service, at least one pet shelter, at least one pet breeder, or any combination thereof.
[0026] The API request may include at least one of one or more features, a feature threshold, a result threshold, user location information, and a proximity. The API request may include some or all of the one or more features. The feature threshold may be a threshold corresponding to a number or a ratio of one or more features that one or more matching pet images must have. For example, the API request may include all of the one or more features and request that only matching pet images include all of the one or more features. As another example, the API request may include all of the one or more features and request that only matching pet images include at least half of the one or more features. The result threshold may indicate a threshold number of matching pet images. For example, the API request may indicate a threshold number of images of "10", limiting the number of matching pet images to a maximum of 10. The API request may also include user location information so that at least one external system may search for pet images corresponding to pets near the location of the user device. The proximity may correspond to a numerical value indicating a maximum distance between one or more pets in one or more matching pet images and the user location information.
[0027] In some embodiments, the API request may specify that the search should only include one or more matching pet images that correspond to one or more pets available for adoption or purchase by at least one external service. For example, a user may submit a sketch of a pet with the intent to find a pet that matches the pet sketch and is available for adoption or purchase.
[0028] The method may also include receiving, by the one or more processors, one or more matching pet images from at least one external system in response to sending the API request described above (step 110). The one or more matching pet images may include one or more photos of the pet. The one or more matching pet images may correspond to pet images according to one or more features, feature thresholds, result thresholds, user location information, proximity, or any combination thereof included in the API request. For example, the one or more matching pet images may be images that share the same features as a sketch of the pet. Additionally, the one or more matching pet images may correspond to adoptable pets that are located within a particular proximity range of the user device. In some embodiments, if there are no matching pet images, an error message may be returned.
[0029] Upon receiving the API request, the at least one external system may query one or more databases within the at least one external system. The query may include some or all of the information included in the API request. In response, the at least one external system may send a response that includes one or more matching pet images responsive to the API request. The response may also include additional information regarding the one or more matching pet images. For example, the additional information may include names, breeds, ages, weights, sexes, personalities, etc., of some or all of the pets depicted in the one or more matching pet images.
[0030] For example, the response from the at least one external system may include a matching pet image corresponding to a pet image that most closely matches the sketch of the pet. Further, the matching pet image may depict a pet that is closest to the user device and available for adoption or purchase. In another example, the response from the at least one external system may include one or more matching pet images corresponding to one or more pets that are located near the user location. The user device may receive the closest matching pet image or a list of the closest matching pet images and display the same on the user device. The user device may also receive information corresponding to the closest matching pet image or a list of the closest matching pet images and display the same on the user device.
[0031] Additionally or alternatively, the at least one external system may query one or more databases located outside the at least one external system. The query may include some or all of the information included in the API request. For example, the at least one external system may be a system corresponding to a pet adoption service. In some embodiments, the pet adoption service receiving the API request may send a further API request to one or more further external systems, the further API request may include some or all of the information included in the received API request. The one or more further external systems may include one or more pet shelter systems, one or more pet breeder systems, or one or more further pet adoption systems. The pet adoption service may receive a response from the one or more further external systems, the response from the one or more further external systems may include one or more matching pet images in response to the further API request.
[0032] The method may also include searching one or more databases based on the one or more features to find one or more matching pet images corresponding to the pet sketch. The one or more databases may be located, for example, in an external system. Additionally, the one or more databases may be located in an internal system, such as database 415A in server system 415 shown in FIG. 4. The one or more databases may include database records that include past database queries that correspond to past pet sketches and one or more matching past pet images. As described above, the database query may include one or more features, a feature threshold, a result threshold, user location information, proximity, or any combination thereof. The one or more databases may return one or more matching pet images in response to the database query. An error message may also be returned if there are no matching pet images.
[0033] The method may include displaying, by the one or more processors, the one or more matching pet images on the user device (step 112). Some or all of the one or more matching pet images may be displayed on the user device, such as via a user interface of the user device. A sketch of the pet may also be displayed in addition to the one or more matching pet images. In some embodiments, there may be no matching pet images, in which case an error message may be displayed on the user device.
[0034] In some embodiments, the method may also include displaying at least one breed suggestion on the user device, such as via a user interface of the user device, that identifies the at least one identified breed. In some embodiments, there may be no matching pet image. In such cases, at least one breed suggestion may be made and the breed suggestion may be displayed on the user device. In other embodiments, the method may identify both a matching pet image and at least one breed associated with the pet sketch, but only display the breed suggestion on the user device that identifies the at least one breed.
[0035] In other embodiments, the user device may also display additional information corresponding to one or more pets depicted in one or more matching pet images, such as the names, breeds, ages, weights, sexes, feeding recommendations, personality traits, etc. of some or all of the pets depicted in the one or more matching pet images.
[0036] Additionally or alternatively, the method may include displaying at least one link to at least one external system (i.e., a link to a web page hosted by the external system), where the at least one link may correspond to one or more matching pet images. For example, when a user selects the at least one link, the user device may display a web page providing the user with the pet depicted in the matching pet image and additional information regarding adopting or purchasing the pet.
[0037] The method may also include storing the pet sketch and the one or more matching pet images in one or more databases (e.g., in an external system, an internal system, or both). For example, the one or more databases may include database records that include past database queries and results. For example, the results may correspond to past pet sketches and the one or more matching past pet images. The pet sketch and the one or more matching pet images may be stored in database records in the one or more databases.
[0038] It should be noted that, although example blocks of the example method 100 are illustrated in Figure 1, in some implementations example method 100 may include additional blocks, fewer blocks, different blocks, or a different order of blocks than those illustrated in Figure 1. Additionally or alternatively, two or more blocks of example method 100 may be performed simultaneously.
[0039] Example embodiment of search 2-1-2-3 illustrate an example embodiment of an example method 200 for analyzing a sketch of a pet to identify a matching pet image that matches and corresponds to the pet, according to one or more embodiments.
[0040] The method may include displaying (step 202) the campaign and a corresponding number by the user device, which may be texted to initiate the analysis process. For example, the user may text a code (e.g., "DOODLE") to initiate the analysis process of a sketch of a pet. The method may also include displaying (step 204) a prompt by the user device in response to the initiation step, prompting the user to agree to terms and conditions of the campaign. The method may further include the user agreeing to the terms and conditions by texting a code (e.g., pressing "1") (step 206). The method may also include displaying (step 208) a reminder prompt on the user display prompting the user to agree to the terms and conditions if the user does not agree to the terms and conditions. In some embodiments, the user may respond with another code (e.g., texting "STOP") indicating that they do not want to participate in the campaign.
[0041] The method may also include receiving and displaying at the user device (step 210) a prompt to the user to submit a sketch of their pet once the user agrees to the terms of use (e.g., “Send us a photo of the dog you drew and we’ll see if there are any rescue dogs nearby that match your drawing and are waiting to be adopted!”).
[0042] The method may also include the user submitting a sketch of the pet via the user device in response to the prompt (step 212). The user may submit the pet sketch by uploading a photo of the sketch (or a photo of the pet) from the user device. Alternatively, the user may submit the pet sketch by drawing a sketch of the pet directly on a user interface of the user device.
[0043] The method may include analyzing the pet sketch to determine whether the pet sketch is valid (step 214). If the pet sketch is not valid, a notification may be displayed by the user device to the user (e.g., "Sorry! We're having trouble recognizing your drawing. Please try again using the hints below.") (step 216). If the pet sketch is not recognized after the user submits the pet sketch a certain number of times (e.g., three times), the user device may display an additional prompt instructing the user to search for adoptable pets directly in an external system (e.g., "Please try again using the hints below. You can also go to https: / / genericdogadoption.com to search for dogs available for adoption yourself.") (step 218).
[0044] The method may include, in response to determining that the pet sketch is valid, displaying a prompt on the user device (e.g., "Please enter your zip code") to have the user submit location information (step 220). The method may also include having the user submit location information via the user device (step 222).
[0045] The method may include analyzing the location information to determine whether the location information is valid (step 224). If the location information is not valid, a notice may be displayed by the user device to resubmit the location information (e.g., "Please enter your 5-digit zip code with no extra characters or spaces") (step 226). However, if the location information is valid, the user device may display a prompt indicating that the pet sketch analysis process has begun (e.g., "We're looking for your dog drawing!") (step 228).
[0046] The method may include identifying at least one matching pet image (step 230) that corresponds to a pet that is nearby the user and that matches the pet sketch, by analyzing the pet sketch as described in FIG. 1 . The method may further include determining whether the pet sketch matches the at least one matching pet image based on the analyzing step (step 232). The method may further include prompting the user device to resubmit another pet sketch if no matching pet image is found (step 234). The method may further include transmitting the at least one matching pet image to the user device if at least one matching pet image is found (step 236). In response, the user device may display a notification indicating the match (e.g., "Congratulations! A cute, perfect mutt!") (step 238). The user device may also display the at least one matching pet image and a link on the user device. A user may select this link to provide more information about the pet depicted in at least one matching pet image and how to adopt or purchase the pet.
[0047] The method may also include displaying by the user device (step 240) a notification (e.g., “Publish your matching Rescue Doodle match? Share this image with your friends!”) that allows the user to share the pet sketch and at least one matching pet image on at least one social media account. The method may further include displaying by the user device (step 242) a composite image of the pet sketch and the one or more matching pet images and a prompt to share the composite image. The user device may then share the composite image on the at least one social media account.
[0048] The method may also include displaying (step 244) by the user device a link for the user to sign up to receive offers and feeding information (e.g., "If you would like to receive offers and learn more about feeding your new friend healthy, sign up here to receive emails from us..."). The user device may also receive and display to the user at least one suggestion based on the pet corresponding to the at least one matching pet image. For example, if the at least one matching pet image corresponds to a golden retriever, the user device may receive and display on the user device an advertisement that may correspond to dog food for golden retrievers. The at least one suggestion may correspond to a personalized advertisement, a personalized product suggestion, a personalized pet service suggestion, or a suggestion to sign up for personalized communications.
[0049] An Exemplary Platform for Analyzing Pet Sketches FIG. 3A illustrates an exemplary interface of an exemplary platform for analyzing a pet sketch and identifying a matching pet image according to one or more embodiments. For example, uploading a pet sketch and receiving at least one pet image can occur via a text message exchange between a user and the platform. More specifically, a user can upload a pet sketch (e.g., the top image of FIG. 3A ) to the platform. In response, the platform can ask the user where the user is based (e.g., “Cute! Where do you live?”). The user can provide location information (e.g., “I live in Tennessee”). The platform can provide at least one matching pet image (e.g., the bottom image of FIG. 3A ) and corresponding information (e.g., “Rascal, 3 years old, male, available for adoption...”).
[0050] 3B illustrates an example interface of an exemplary environment for sharing a composite image on at least one social media platform, according to one or more embodiments. The composite image may include a sketch of a pet (e.g., the top image of FIG. 3B) and at least one matching pet image (e.g., the bottom image of FIG. 3B). The composite image may be shared on at least one social media platform (e.g., Facebook). Sharing of the composite image may be done, for example, by posting it on at least one social media platform.
[0051] 3C illustrates an exemplary composite image interface of an exemplary environment for analyzing a sketch of a pet to identify matching pet images according to one or more embodiments. The platform can display a composite image, which can include a sketch of a pet (e.g., the top image of FIG. 3B) and at least one matching pet image (e.g., the bottom image of FIG. 3B) that matches the sketch of the pet.
[0052] Exemplary Environment and Exemplary Device 4 illustrates an example environment 400 in which the techniques presented herein can be utilized. One or more user devices 405, one or more external systems 410, and one or more server systems 415 can communicate over a network 401. As described in more detail below, the one or more server systems 415 can communicate with one or more other components of the environment 400 over the network 401. The one or more user devices 405 can be associated with a user.
[0053] In some embodiments, the components of environment 400 are associated with a public entity, such as, for example, a pet adoption service, a pet breeder, a pet-related advertiser, a pet-related service agency, a veterinarian, a clinic, an animal professional, a research center, etc. In some embodiments, one or more of the components of environment 400 are associated with a different entity than the other components. The systems and devices of environment 400 can communicate in any configuration.
[0054] The user device 405 may be configured to enable a user to access and interact with other systems in the environment 400 through the user device 405. For example, the user device 405 may be a computer system such as a desktop computer, a mobile device, a tablet, etc. In some embodiments, the user device 405 may include one or more electronic applications (e.g., programs, plug-ins, browser extensions, etc.) installed on the memory of the user device 405.
[0055] The user device 405 may include a display / user interface (UI) 405A, a processor 405B, a memory 405C, a network interface 405D, or any combination thereof. The user device 405 may execute an operating system (O / S) and at least one electronic application, all of which are stored in the memory 405C, via the processor 405B. The electronic application may be a desktop program, a browser program, a web client, or a mobile application program (which may be a browser program in a mobile O / S), an applicant-specific program, system control software, system monitoring software, software development tools, and the like. For example, the environment 400 may extend the information of a web client accessible through a web browser. In some embodiments, the electronic application may be associated with one or more of the other components in the environment 400. The application may manage the memory 405C, such as a database, and send streaming data to the network 401. The display / UI 405A may be a display with a touch panel or other input system (e.g., mouse, keyboard, etc.) that allows a user to interact with the application and the O / S. Network interface 405D may be a TCP / IP network interface (e.g., for Ethernet or wireless communication with network 401). Processor 405B may generate data, receive user input from display / UI 405A, send messages to or receive messages from server system 415, or any combination thereof, in parallel with executing applications, and may further perform one or more steps before providing output to network 401.
[0056] The external system 410 can be, for example, one or more third party and / or auxiliary systems that can be integrated into or communicate with the server system 415 to perform various image analysis and match detection tasks. For example, the external system 410 can include one or more pet shelters, one or more pet adoption agencies, one or more services that provide a repository of pet images, or any combination thereof. Further, for example, such pet images can correspond to one or more pets available for purchase or adoption. However, the pet images do not necessarily correspond to pets available for purchase or adoption, but instead can correspond to a plurality of pet images stored in one or more databases. The external system 410 can communicate with other devices or systems in the environment 400 via one or more networks 401. For example, the external system 410 can communicate with the server system 415 on one or more networks 401 via API (Application Programming Interface) access, and can communicate with the user device 405 on one or more networks 401 via web browser access.
[0057] In various embodiments, the network 401 can be a wide area network ("WAN"), a local area network ("LAN"), a personal area network ("PAN"), or the like. In some embodiments, the network 401 includes the Internet, and the provision of information and data between various systems is online. The term "online" can mean connecting to or accessing source data or information from a location that is separate from other devices or networks connected to the Internet. Alternatively, the term "online" can refer to connecting to or accessing a network (wired or wireless) through a mobile communication network or device. The Internet is a global system of computer networks that allows a party at a device, such as a computer, to obtain information from other computers and to communicate with parties with other computers or devices. The most widely used part of the Internet is the World Wide Web (often abbreviated as "WWW" or simply "Web"). The term "website page" is intended to broadly encompass any location or data store that is made available online, for example by being hosted or operated by a computer system, and that may contain data that is configured to cause a program, such as a web browser, to perform operations such as receiving or transmitting data, processing, displaying a visual display, or generating an interactive interface.
[0058] The server system 415 may comprise an electronic data system and may comprise computer-readable memory, such as, for example, a hard drive, a flash drive, a disk, etc. In some embodiments, the server system 415 provides and / or interacts with application programming interfaces for data exchange with other systems (e.g., one or more of the other components in the environment).
[0059] The server system 415 may include a database 415A and at least one server 415B. The server system 415 may be a computer, a system of computers (e.g., a rack server), a computer system of a cloud service, or any combination thereof. The server system may store or access the database 415A (e.g., hosted on a third-party server or memory 415E). The server may include a display / UI 415C, a processor 415D, a memory 415E, a network interface 415F, or any combination thereof. The display / UI 415C may be a display with a touch panel or other input system (e.g., mouse, keyboard, etc.) that allows a person operating the server 415B to control the functions of the server 415B. The server system 415 may run an operating system (O / S) and at least one instance of a servlet program (both of which are stored in the memory 415E) via the processor 415D.
[0060] 4 depicts the components of environment 400 as separate components, it should be understood that in some embodiments, the components of environment 400, or portions of the components, may be integrated with or incorporated into one or more other components. For example, a portion of display 415C may be integrated with user device 405, etc. In some embodiments, operations or aspects of one or more components described above may be distributed among one or more other components. Any suitable arrangement and integration of the various systems and devices of environment 400 may be used.
[0061] It should be noted that in the method descriptions above and below, components shown in FIG. 4 (e.g., server system 415, user device 405, or components therein) may be described as performing various operations. However, it should be understood that in various embodiments, various components of environment 400 described above may execute instructions or perform operations, including those described above. When a device performs an operation, a processor, actuator, etc. associated with the device may be considered to perform the operation. It should also be understood that various steps may be added, omitted, or rearranged in any suitable manner in various embodiments.
[0062] In general, any process or operation described in this disclosure that is understood to be computer-implementable, such as the processes illustrated in FIGS. 1-3C, may be performed by one or more processors of a computer system (e.g., any of the systems or devices of the environment 400 illustrated in FIG. 4), as described above. A process or processing step performed by one or more processors may also be referred to as an operation. One or more processors may be configured to perform an operation by accessing instructions (e.g., software or computer readable code) that, when executed by one or more processors, cause the one or more processors to perform such an operation. These instructions may be stored in a memory of the computer system. The processor may be a central processing unit (CPU), a graphics processing unit (GPU), or any suitable type of processing device.
[0063] A computer system (e.g., a system or device that performs the processes or steps illustrated in the examples above) may include one or more computing devices (e.g., one or more of the systems or devices illustrated in FIG. 4). The one or more processors of the computer system may be included in a single computing device or may be distributed across multiple computing devices. Additionally, the memory of the computer system may include the memory of each of the multiple computing devices.
[0064] FIG. 5 is a simplified functional block diagram of a computer 500 that can be configured as a device for executing the environments and / or methods shown in FIGS. 1-3C according to an exemplary embodiment of the present disclosure. For example, the device 500 can include a central processing unit (CPU) 520. The CPU 520 can be any type of processor device, for example, any type of dedicated or general-purpose microprocessor device. As will be appreciated by those skilled in the art, the CPU 520 can also be one processor in a multi-core / multi-processor system operating alone or as a cluster of multiple computing devices operating as a cluster or server farm. The CPU 520 can also be connected to a data communication infrastructure 510 (e.g., a bus (BUS), a message queue, a network, or a multi-core message passing scheme).
[0065] The device 500 may also include a main memory 540 (e.g., random access memory (RAM)) and may further include a secondary memory 530. The secondary memory 530 (e.g., read only memory (ROM)) may be, for example, a hard disk drive or a removable storage drive. Such a removable storage drive may be, for example, a floppy disk drive, a magnetic tape drive, an optical disk drive, or a flash memory. The removable storage drive in this example reads and writes to a removable storage unit in a well-known manner. The removable storage unit may be, for example, a floppy disk, a magnetic tape, an optical disk, or the like, which may be read and written by the removable storage drive. As will be appreciated by those skilled in the art, such a removable storage unit typically includes a computer usable storage medium having computer software, data, or both stored thereon.
[0066] In alternative embodiments, secondary memory 530 may comprise other similar means by which computer programs or other instructions can be loaded into device 500. Examples of such means include a program cartridge and cartridge interface (e.g., as found in video game devices) or a combination of a removable storage unit and interface, such as a removable memory chip and corresponding socket (e.g., EPROM or PROM), that allows transfer of software and data from the removable storage unit to device 500.
[0067] Device 500 may also include a communications interface ("COM") 560. Communications interface 560 allows for the transfer of software and data between device 500 and external devices. Communications interface 560 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, and the like. The software and data transferred through communications interface 560 may be in the form of signals receivable by communications interface 560, such as electronic, electromagnetic, or optical signals. These signals may be provided to communications interface 560 via a communications path in device 500. Such a communications path may be implemented using, for example, a communications channel such as wire or cable, optical fiber, a telephone line, a cellular phone link, an RF link, and the like.
[0068] The hardware elements, operating systems, and programming languages of such equipment are conventional in nature and are presumed to be fully familiar to those skilled in the art. The device 500 may also include input / output ports 550 for connecting input / output devices such as a keyboard, mouse, touch panel, monitor, display, etc. Of course, the various server functions may be implemented in a distributed manner across multiple similar platforms to distribute the processing load. Alternatively, the server may be implemented by appropriate programming of a single computer hardware platform.
[0069] The programmatic aspects of the technology may be considered "products" or "articles of manufacture" representative of executable code and / or associated data carried or embodied by any type of machine-readable medium. The "storage" medium type of medium includes any or all of the tangible memory of a computer, processor, or the like, or its associated modules (e.g., various semiconductor memories, tape drives, disk drives, etc.), capable of providing non-transient storage locations for software programming at any time. All or part of the software may also be transmitted over various communications networks, such as the Internet. Such communications may, for example, allow the software to be loaded from one computer or processor to another, such as from a management server or host computer of a mobile communications network to load the software into a server's computer platform, or from a server to load the software into a mobile device. Other types of media on which software elements may be carried include light waves, radio waves, and electromagnetic waves (e.g., the light waves, radio waves, and electromagnetic waves used in physical interfaces between local devices, wired and optical fixed line networks, and various air links). Also, the physical elements that carry such waves (e.g., wired or wireless links, optical links, etc.) may be considered media carrying the software. As used herein, except when limited to non-transitory, tangible "storage" media, terms such as computer "readable medium" and machine "readable medium" refer to any medium that participates in providing instructions to a processor for execution.
[0070] Where specific activities are referred to in this disclosure, such description is for convenience only and is not intended to limit the disclosure. Those skilled in the art will recognize that the concepts underlying the disclosed devices and methods may be utilized in any activity suitable therefor. The present disclosure may be understood by reference to the description herein and the accompanying drawings, in which like elements are designated by the same reference numerals.
[0071] The terms used in the above description may be interpreted in the broadest possible sense, even if the terms are used in describing a particular embodiment of the present disclosure in detail. In fact, some terms may be emphasized in the above description, but if a term is intended to be interpreted in a limited manner, the term is clearly and specifically defined in the above "Detailed Description of the Invention" section. Both the general description and the detailed description are merely illustrative of the present disclosure and do not limit the features described in the claims.
[0072] In this disclosure, the phrase "based on" means "based at least in part on." The singular forms "a," "an," and "the" are intended to include reference to the corresponding plurals unless the context clearly indicates otherwise. Additionally, the word "exemplary" is used in its "example" sense, not its "ideal" sense. The terms "comprise," "comprising," "include," "including," and other variations thereof are intended to have a non-exclusive inclusive meaning. Thus, when a process, method, or product "comprises" ("includes" or "has") recited elements, it does not necessarily include only the recited elements, but may include other elements not expressly recited or inherent to such process, method, article, or apparatus. Additionally, the term "or" is used disjunctively, and the phrase "at least one of A or B" includes (A), (B), (A and A), (A and B), etc. Relative terms such as "substantially" and "generally" are used to indicate that there may be a variation of ±10% from the stated or implied value.
[0073] As used herein, terms such as "user" are intended to broadly encompass one or more potential pet owners, one or more current pet owners, or any combination thereof. Additionally, terms such as "pet" are intended to broadly encompass domestic animals (e.g., domestic dogs, cats, rabbits, ferrets, horses, cows, etc.). In an exemplary embodiment, "pet" may refer to a dog.
[0074] In the above description of the exemplary embodiments of the present invention, various features of the present invention may be grouped together in one embodiment, one figure, or description thereof, for the purpose of streamlining the disclosure and facilitating understanding of one or more of the various aspects of the present invention. However, such a method of disclosure should not be interpreted as reflecting an intention that the present invention requires more features than are expressly recited in each claim. Rather, as recited in the following claims, the number of features that provide an inventive step to the present invention is fewer than all of the features shown in the one embodiment disclosed above. Therefore, the claims following this Detailed Description of the Invention are expressly incorporated into the Detailed Description of the Invention, and each claim in the claims is intended to stand alone as an embodiment of the present invention.
[0075] Furthermore, while some of the embodiments described herein may include some features of other embodiments but not others, it is understood by those skilled in the art that combinations of features from different embodiments are within the scope of the present invention and are intended to form various different embodiments. For example, in the following claims, any of the embodiments defined by the claims may be used in any combination.
[0076] Thus, although specific embodiments have been described, those skilled in the art will recognize that other and further modifications may be made without departing from the spirit of the claims, and that all such modifications and variations are intended to be included within the scope of the present invention. For example, functions shown in the block diagrams may be added or removed, steps may be interchanged between functional blocks, etc. Also, steps may be added or removed from methods described within the scope of the present invention.
[0077] The subject matter of the present disclosure has been described above, but it should be considered as illustrative and not limiting, and the appended claims are intended to include all modifications, extensions, and other embodiments that fall within the true spirit and scope of the present disclosure. Thus, the scope of the present disclosure should be determined by interpreting the following claims and their equivalents in the broadest possible sense to the maximum extent permitted by law, and should not be limited or restricted by the detailed description of the invention set forth above. Although various embodiments of the present disclosure have been described above, it will be apparent to one skilled in the art that many more embodiments are possible within the scope of the present disclosure. Thus, the present disclosure is not limited except as limited by the claims and their equivalents. [Explanation of symbols]
[0078] 400 Environment 401 Network 405 User Device 405A User Device Display / User Interface 405B User device processor 405C User Device Memory 405D User Device Network Interface 410 External Systems 415 Server System 415A Database 415B Server 415C Server System Display / User Interface 415D Server System Processor 415E Server System Memory 415F Server System Network Interface 500 devices (computers) 510 Data Communication Infrastructure 520 Central Processing Unit (CPU) 530 Auxiliary Memory 540 Main memory 550 I / O ports 560 Communication Interface
Claims
1. 1. A computer-implemented method for analyzing a sketch of a pet to identify one or more matching pet images, comprising: displaying, by the one or more processors, a prompt on a user device prompting the user to upload or draw a sketch of the pet; receiving, by the one or more processors, a sketch of the pet from the user device; analyzing, by the one or more processors, a sketch of the pet to identify one or more features corresponding to the sketch of the pet; sending, by the one or more processors, an API request to at least one external system that includes the one or more features included in the sketch of the pet; receiving, by the one or more processors, the one or more matching pet images from the at least one external system in response to sending the API request; displaying, by the one or more processors, the one or more matching pet images on the user device; The method includes:
2. searching, by the one or more processors, one or more databases based on the one or more characteristics to find the one or more matching pet images that correspond to the sketch of the pet. The computer-implemented method of claim 1 , further comprising:
3. The computer-implemented method of claim 1 , wherein the pet sketch is a user-drawn drawing or a photograph of the pet.
4. identifying at least one breed by analyzing, with the one or more processors, a sketch of the pet; displaying, by the one or more processors, at least one breed suggestion on the user device that identifies the at least one breed; The computer-implemented method of claim 1 , further comprising:
5. The computer-implemented method of claim 1 , wherein the at least one external system includes at least one pet adoption service.
6. 2. The computer-implemented method of claim 1, wherein the one or more characteristics include at least one of color, coat type, ear length, limb length to body length ratio, tail length, tail shape, body type, head shape, nose length, color pattern, ear shape, ear size, nose dimension, and nose shape.
7. the method further comprising receiving, by the one or more processors, user location information from the user device; The computer-implemented method of claim 1 , wherein the API request sent to the at least one external system further includes location information of the user.
8. the one or more matching pet images include a closest matching pet image identified by the at least one external system based on location information of the user; The computer-implemented method of claim 7 , wherein the closest matching pet image corresponds to a matching pet that is located closest to the user device.
9. the one or more matching pet images include one or more closest matching pet images identified by the at least one external system based on location information of the user; 8. The computer-implemented method of claim 7, wherein the one or more closest matching pet images correspond to one or more matching pets located in a vicinity of a user location.
10. 2. The computer-implemented method of claim 1, wherein the API request specifies that the search should only focus on the one or more matching pet images that correspond to one or more pets available for adoption or purchase.
11. the method further comprising displaying, by the one or more processors, at least one link to the at least one external system; The computer-implemented method of claim 10 , wherein the at least one link corresponds to the one or more matching pet images.
12. 2. The computer-implemented method of claim 1, further comprising storing, by the one or more processors, the pet sketch and the one or more matching pet images in one or more databases.
13. at least one memory for storing instructions; at least one processor configured to perform operations by executing the instructions; 1. A computer system for analyzing a sketch of a pet to identify one or more matching pet images, comprising: The operation, displaying a prompt on a user device prompting the user to upload or draw a sketch of the pet; receiving a sketch of the pet from the user device; analyzing the pet sketch to identify one or more features corresponding to the pet sketch; sending an API request including the one or more features included in the sketch of the pet to at least one external system; receiving the one or more matching pet images from the at least one external system in response to sending the API request; displaying the one or more matching pet images on the user device; 2. A computer system comprising:
14. The operation, receiving user location information from the user device; The computer system of claim 13 , wherein the API request sent to the at least one external system further includes location information of the user.
15. the one or more matching pet images include a closest matching pet image identified by the at least one external system based on location information of the user; The computer system of claim 14 , wherein the closest matching pet image corresponds to a matching pet that is located closest to the user device.
16. the one or more matching pet images include one or more closest matching pet images identified by the at least one external system based on location information of the user; The computer system of claim 14 , wherein the one or more closest matching pet images correspond to one or more matching pets located in a vicinity of a user location.
17. 15. The computer system of claim 14, wherein the API request specifies that the search should only focus on the one or more matching pet images that correspond to one or more pets available for adoption or purchase.
18. the operations further comprising displaying at least one link to the at least one external system; 20. The computer system of claim 17, wherein the at least one link corresponds to the one or more matching pet images.
19. A non-transitory computer-readable medium having instructions stored thereon, comprising: The instructions, when executed by a processor, cause the processor to perform an operation to analyze a sketch of a pet to identify one or more matching pet images that match the sketch; The operation is displaying a prompt on a user device prompting the user to upload or draw a sketch of the pet; receiving a sketch of the pet from the user device; analyzing the pet sketch to identify one or more features corresponding to the pet sketch; sending an API request including the one or more features included in the sketch of the pet to at least one external system; receiving the one or more matching pet images from the at least one external system in response to sending the API request; displaying the one or more matching pet images on the user device; A non-transitory computer readable medium comprising:
20. 20. The non-transitory computer readable medium of claim 19, wherein the pet sketch is a user drawn drawing or a photograph of the pet.