Digital supplemental association and retrieval for visual search
A system using neural networks to identify supplemental anchors and retrieve digital supplements from network resources addresses the inefficiencies in existing systems, enabling efficient augmented reality content presentation.
Patent Information
- Application Number
- JP2022077546
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-06-21
- Filing Date
- 2022-05-10
- Publication Date
- 2025-09-17
- Estimated Expiration
- 2039-06-21
AI Technical Summary
Existing systems fail to efficiently identify and present digital supplements relevant to image content, limiting the ability to provide augmented reality content or experiences in response to visual searches.
A system that generates an index of digital supplements associated with image content, using neural networks to identify supplemental anchors, and retrieves relevant digital content from network-accessible resources based on image queries, enabling efficient retrieval and presentation of augmented reality content.
Enables efficient retrieval and presentation of digital supplements, enhancing user experiences by providing relevant augmented reality content in response to visual searches.
Smart Images

Figure 0007741026000001 
Figure 0007741026000002 
Figure 0007741026000003
Abstract
Description
[Technical Field]
[0001] REFERENCE TO RELATED APPLICATIONS This application is a joint venture of the DIGITAL SUPPLEMENT ASSOCIATION AND This application is a continuation of and claims priority to U.S. Non-provisional Patent Application No. 16 / 014,520, entitled "Visual Search and Retrieval," the disclosure of which is incorporated herein by reference in its entirety. [Background technology]
[0002] background Mobile computing devices, such as smartphones, often include cameras. These cameras can be used to capture images of entities in the environment surrounding the computing device. Various types of content or experiences related to these entities can be made available to users via the mobile computing device. Summary of the Invention
[0003] overview This disclosure describes systems and methods for digital supplement association and retrieval for visual search. For example, the systems and techniques described herein can be used to provide digital supplements, such as augmented reality (AR) content or experiences, that are responsive to visual searches. The visual search can be based, for example, on images or entities identified within the images. The digital supplement can include, for example, providing information or functionality associated with the image. [Means for solving the problem]
[0004] One aspect is a computer-implemented method that includes receiving data specifying a digital supplement, the data identifying the digital supplement and a supplemental anchor for associating the digital supplement with image content. The method also includes generating a data structure instance that specifies the digital supplement and the supplemental anchor. After generating the data structure instance, the method further includes enabling triggering of the digital supplement by the image based on storing at least the data structure instance in a database that includes multiple other data structure instances. Each of the other data structure instances specifies the digital supplement and one or more supplemental anchors.
[0005] Another aspect is a computing device including at least one processor and a memory storing instructions that, when executed by the at least one processor, cause the computing device to receive data specifying a digital supplement, the data receiving the digital supplement, a supplemental anchor for associating the digital supplement with image content, and contextual information. The instructions also cause the computing device to generate a data structure instance that specifies the digital supplement, the supplemental anchor, and the contextual information. The instructions further cause the computing device, after generating the data structure instance, to enable triggering of the digital supplement by an image based at least on storing the data structure instance in a database that includes multiple other data structure instances, each of which specifies the digital supplement and one or more supplemental anchors.
[0006] Yet another aspect is to receive an image content query from a computing device. and identifying supplemental anchors based on the image content query. The method also includes generating an ordered list of digital supplements based on the identified supplemental anchors and transmitting the ordered list to a client computing device.
[0007] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a block diagram illustrating a system according to an exemplary embodiment. [Figure 2] 2 is a third-person perspective of an exemplary physical space in which an embodiment of the client computing device of FIG. 1 is accessing a digital capture. [Figure 3] 10A-10C are diagrams of exemplary methods for enabling triggers for digital capture according to embodiments described herein. [Figure 4] 10A-10C are diagrams of exemplary methods for enabling triggers for digital capture according to embodiments described herein. [Figure 5] 1 is a diagram of an exemplary method for retrieving and presenting a digital supplement according to embodiments described herein. [Figure 6] 1 is a diagram of an exemplary method for identifying and presenting a digital supplement based on an image according to embodiments described herein. [Figure 7A] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 7B] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 7C] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 8A] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 8B] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 8C] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 9A] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 9B] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 10A] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 10B] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 10C] 2 is a schematic diagram of a user interface screen displayed by an embodiment of the client computing device of FIG. 1 for performing an image content search and displaying a digital supplement. [Figure 11A] 2A-2C are schematic diagrams of user interface screens displayed by an embodiment of the client computing device of FIG. 1 for conducting various image content searches in a store. [Figure 11B] 2A-2C are schematic diagrams of user interface screens displayed by an embodiment of the client computing device of FIG. 1 for conducting various image content searches in a store. [Figure 11C] 2A-2C are schematic diagrams of user interface screens displayed by an embodiment of the client computing device of FIG. 1 for conducting various image content searches in a store. [Figure 12A] 2A-2C are schematic diagrams of user interface screens displayed by an embodiment of the client computing device of FIG. 1 during various image content searches. [Figure 12B] 2A-2C are schematic diagrams of user interface screens displayed by an embodiment of the client computing device of FIG. 1 during various image content searches. [Figure 12C] 2A-2C are schematic diagrams of user interface screens displayed by an embodiment of the client computing device of FIG. 1 during various image content searches. [Figure 13] 1 is a schematic diagram of an example of a computing device and a mobile computing device that can be used to implement the techniques described herein. DETAILED DESCRIPTION OF THE INVENTION
[0009] Detailed Description This disclosure describes technical improvements that simplify the identification and presentation of digital supplements based on image content. Certain embodiments of the techniques described herein generate an index of digital supplements relevant to a particular type of image content and provide those digital supplements in response to image content queries received from client computing devices. This index allows users to access relevant digital supplements provided by network-accessible resources (e.g., web pages) located around the world. This can provide a functional data structure that enables more efficient retrieval of information.
[0010] For example, a client computing device such as a smartphone may obtain an image of a supplemental anchor, such as an entity. The client computing device may then send an image content query based on the image to a server computing device to search for a digital supplement associated with the identified supplemental anchor. In some embodiments, the supplemental anchor is based on the physical environment surrounding the client computing device, and the digital supplement is virtual content that may supplement a user's experience in the physical environment.
[0011] An image content query may include an image or data determined from an image (such as, for example, an indicator of an identified supplemental anchor). An example of data determined from an image is, for example, text extracted from an image using optical character recognition. Other examples of data extracted from an image include barcodes, QR codes, etc. in the image, identifiers or descriptions of entities, products, or types of entities identified in the image.
[0012] Entities, products, or entity types may be identified in an image using, for example, a neural network system, such as a convolutional neural network system. The data may include metadata or references to records in a database related to a property, product, or entity type. Non-limiting examples of entities include buildings, works of technology, products, books, posters, photographs, catalogs, signs, documents (e.g., business cards, receipts, coupons, catalogs), people, and body parts.
[0013] Various types of digital supplements may be available that are associated with supplemental anchors. Digital supplements may be provided by network-accessible resources, such as web pages available on the Internet. A method is needed to locate and provide these digital supplements in response to image content queries. One embodiment generates and maintains an index of digital supplements associated with entities for use in responding to image content queries. The index may be populated, for example, by crawling network-accessible resources to determine whether they contain or provide digital supplements and determining supplemental anchors associated with those digital supplements.
[0014] For example, a network-accessible resource may include metadata that identifies a supplemental anchor (e.g., text, code, entity, or type of entity) with which the digital supplement is associated. The metadata may be included by the network-accessible resource in response to a Hypertext Transfer Protocol (HTTP) request. The metadata may be provided in a variety of formats, such as extensible markup language (XML), JavaScript Object Notation (JSON), or other formats.
[0015] Metadata for a digital supplement may include one or more of the following: a type indicator, an anchor indicator, a name, a description, a content snippet (i.e., an excerpt or preview of a portion of the content), an associated image, a link such as a URL to the digital supplement, and an identifier for an application associated with the digital supplement. The metadata may also include information about the publisher of the digital supplement. For example, the metadata may include one or more of a publisher name, a publisher description, and an image or icon associated with the publisher. In some embodiments, the metadata includes contextual information associated with providing the digital supplement. For example, the metadata may also include conditions (e.g., geographic conditions, required applications) associated with providing or accessing the digital supplement.
[0016] The identified digital supplement may be added to an index stored in memory. In at least some embodiments, the associated supplement anchor for the digital supplement is used as a key to the index. The digital supplement may also be associated with various scores. For example, a digital supplement may be associated with a prestige score based on how many other links referencing the digital supplement or a network-accessible resource associated with the digital supplement are found (e.g., while crawling the network-accessible resource) and the prestige of the network-accessible resource that provides those links. As another example, a digital supplement may be associated with one or more relevance scores that correspond to the relevance of the digital supplement (or associated network-accessible resource) to a particular anchor. Relevance scores may also be associated with keywords or subjects. Relevance scores may be determined based on one or more of the content of the digital supplement, the content of the network-accessible resource, the content of sites linking to the network-accessible resource, and the content (e.g., text) of the links to the network-accessible resource.
[0017] FIG. 1 is a block diagram illustrating a system 100 according to an exemplary embodiment. The system 100 can associate a digital capture with an entity or entity type. , the digital supplement can be retrieved in response to a visual search. A visual search is a search based on image content. For example, a visual search may be performed based on an image content query. An image content query is a query based on images or other image content. For example, an image content query may include an image. In an embodiment, an image content query may include text or data based on an image. For example, the text or data may be generated by recognizing one or more entities in an image. Some image content queries do not include images (e.g., an image content query may include only data or text generated from an image). In an embodiment, system 100 includes client computing device 102, search server 152, and digital supplement server 172. Also shown is network 190 over which client computing device 102, search server 152, and digital supplement server 172 may communicate.
[0018] Client computing device 102 may include a processor assembly 104, a communications module 106, a sensor system 110, and a memory 120. Sensor system 110 may include various sensors, such as a camera assembly 112, an inertial motion unit (IMU) 114, and a global positioning system (GPS) receiver 116. Embodiments of sensor system 110 may also include other sensors, including, for example, light sensors, audio sensors, image sensors, distance and / or proximity sensors, contact sensors such as capacitive sensors, timers, and / or other sensors, and / or different combinations of sensors. In one embodiment, client computing device 102 is a mobile device (e.g., a smartphone).
[0019] Camera assembly 112 captures images or footage of the physical space around client computing device 102. Camera assembly 112 may include one or more cameras. Camera assembly 112 may also include an infrared camera. Images captured by camera assembly 112 may be used to supplement anchors and to identify them for forming image content queries.
[0020] In some embodiments, images acquired by camera assembly 112 may also be used to determine the position and orientation of client computing device 102 within a physical space, such as an interior space, based on a representation of the physical space received from memory 120 or an external computing device. In some embodiments, the representation of the physical space may include visual features of the physical space (e.g., features extracted from an image of the physical space). The representation may also include positioning data associated with those features that may be used by a visual positioning system to determine a position and / or location within the physical space based on one or more images of the physical space. The representation may also include a three-dimensional model of at least some structures within the physical space. In some embodiments, the representation does not include a three-dimensional model of the physical space.
[0021] The IMU 114 may detect the motion, movement, and / or acceleration of the client computing device. The IMU 114 may include a variety of different types of sensors, such as, for example, an accelerometer, a gyroscope, a magnetometer, and other such sensors. The orientation of the client computing device 102 may be detected and tracked based on data provided by the IMU 114 or the GPS receiver 116.
[0022] The GPS receiver 116 may receive signals transmitted by GPS satellites. The signals include the time and location of the satellites. Based on receiving signals from several (e.g., at least four) satellites, the GPS receiver 116 may determine the global location of the client computing device 102.
[0023] Memory 120 may include application 122, other applications 140, and device positioning system 142. Other applications 140 include any other applications installed or otherwise available to run on client computing device 102. In some embodiments, application 122 may cause one of other applications 140 to provide a digital supplement. In some embodiments, some digital supplements may be available only if other applications 140 include a particular application associated with or required to provide the digital supplement.
[0024] The device positioning system 142 determines the location of the client computing device 102. The device positioning system 142 may use the sensor system 110 to determine the location and orientation of the client computing device 102 globally or within physical space. In an embodiment, the device positioning system 142 determines the location of the client computing device 102 based on, for example, cellular triangulation.
[0025] In an embodiment, client computing device 102 may include a visual positioning system that compares images acquired by camera assembly 112 (or features extracted from those images) with known arrangements of features within a representation of physical space to determine a six-degree-of-freedom pose (e.g., position and orientation) of client computing device 102 within physical space.
[0026] The application 122 may include a supplemental anchor identification engine 124, a digital supplemental search engine 126, a digital supplemental presentation engine 128, and a user interface engine 130. Some embodiments of the application 122 may include fewer, additional, or other components.
[0027] The supplemental anchor identification engine 124 identifies supplemental anchors based on, for example, images captured by the camera assembly 112. In one embodiment, the supplemental anchor identification engine 124 analyzes the images to identify text. The text can then be used to identify anchors. For example, the text can be mapped to nodes in a knowledge graph. For example, the text can be recognized as the name of an entity, such as a person, place, product, building, artwork, movie, or other type of entity. In one embodiment, the text can be recognized as a phrase commonly associated with a particular entity or as a phrase that describes a particular entity. For example, the text can then be recognized as an anchor associated with the particular entity.
[0028] In one embodiment, the supplemental anchor identification engine 124 identifies one or more codes, such as a barcode, a QR code, or another type of code, within the image. The codes can then be mapped to supplemental anchors.
[0029] The supplemental anchor identification engine 124 may include a machine learning module capable of recognizing at least some types of entities in an image. For example, the machine learning module may include a neural network system. A neural network is a computational model used for machine learning, consisting of nodes organized into layers with weighted connections. Training a neural network uses multiple training examples, each of which is an input and a desired output, and over a series of iterative rounds determines weight values for the connections between layers that increase the likelihood that the neural network will provide the desired output for a given input. During each training round, the weights are adjusted to address erroneous output values. Once trained, a neural network can be used to predict outputs based on inputs provided.
[0030] In one embodiment, the neural network system includes a convolutional neural network (CNN). A convolutional neural network (CNN) is a neural network in which at least one of the layers of the neural network is a convolutional layer. A convolutional layer is a layer in which the layer's values are calculated based on applying a kernel function to a subset of the values of the previous layer. Training the neural network may include adjusting the weights of the kernel function based on training examples. Typically, the same kernel function is used to calculate each value in the convolutional layer. Therefore, the number of weights that must be learned while training a convolutional layer is much fewer than in a fully connected layer in a neural network (e.g., a layer in which each value in a layer is calculated as an independently adjusted and weighted combination of each value in the previous layer). Because convolutional layers typically have fewer weights, training and using a convolutional layer may require less memory, processor cycles, and time than an equivalent fully connected layer.
[0031] After the supplemental anchor identification engine 124 recognizes an entity or entity type in an image, a text description of the entity or entity type may be generated. Additionally, the entity or entity type may be mapped to a supplemental anchor. In one embodiment, the supplemental anchor is associated with one or more digital supplements.
[0032] In one embodiment, the supplemental anchor identification engine 124 determines a confidence score for the recognized anchor. A higher confidence score may indicate that content from the image (e.g., image, extracted text, barcode, QR code) is more likely to be associated with the determined anchor than if a lower confidence score were determined.
[0033] 1 shows supplemental anchor identification engine 124 as a component of application 122 on client computing device 102, an embodiment includes the supplemental anchor identification engine on search server 152. For example, client computing device 102 can send an image captured by camera assembly 112 to search server 152, and search server 152 can identify supplemental anchors in the image.
[0034] In an embodiment, the supplemental anchor identification engine 124 identifies potential supplemental anchors. For example, the supplemental anchor identification engine 124 may identify (recognize) various entities within the image. Identifiers of the recognized entities can then be sent to the search server 152, which may determine whether any of the entities are associated with any supplemental anchors. In an embodiment, the search server 152 may use the identified entities as context information even if the identified entities are not supplemental anchors.
[0035] The digital supplement search engine 126 searches for digital supplements. For example, the digital supplement search engine 126 may search for digital supplements associated with supplement anchors identified by the supplement anchor identification engine 124. In one embodiment, the digital supplement search engine 126 searches for digital supplements from the search server 152 or the digital supplement server 172.
[0036] For example, after a supplemental anchor is identified, the digital supplemental search engine 126 may search for one or more digital supplements associated with the identified supplemental anchor. The supplemental search engine 126 may generate an image content query that includes the image (or an identifier of a supplemental anchor or entity within the image) and send the image content query to the search server 152. The image content query may also include contextual information, such as the location of the client computing device 102. In an embodiment, data associated with the digital supplement, such as a name, image, or description, is retrieved and presented to the user (e.g., by the user interface engine 130). If multiple digital supplements are presented, the user may select one of the digital supplements via a user interface generated by the user interface engine 130.
[0037] The digital supplement presentation engine 128 presents or causes the digital supplement to be presented on the client computing device 102. In an embodiment, the digital supplement presentation engine 128 causes the client computing device to launch one of the other applications 140. In an embodiment, the digital supplement presentation engine 128 causes information or content to be displayed. For example, the digital supplement presentation engine 128 may cause the user interface engine 130 to generate a user interface including information or content from the digital supplement that is displayed by the client computing device 102. In an embodiment, the digital supplement presentation engine 128 is triggered by the digital supplement search engine 126 searching for the digital supplement. The digital supplement presentation engine 128 may then trigger the display device 108 to display content associated with the digital supplement. In an embodiment, the digital supplement presentation engine 128 causes the digital supplement to be displayed at a time different from when the digital supplement search engine 126 searches for the digital supplement. For example, the digital supplement may be searched for in response to an image content query at a first time, and the digital supplement may be presented at a second time. For example, a digital supplement may be retrieved in response to an image content query based on an image of a household item or furniture from a catalog or store at a first time (e.g., while the user is viewing the catalog or while in the store), and a digital supplement including AR content of the household item or furniture may be presented at a second time (e.g., while the user is in a room where the household item or furniture may be installed).
[0038] The user interface engine 130 generates a user interface. The user interface engine 130 can also cause the client computing device 102 to display the generated user interface. The generated user interface may, for example, display information or content from the digital supplement. In an embodiment, the user interface engine 130 generates a user interface that includes multiple user-actuable controls, each associated with a digital supplement. For example, a user may actuate one of the user-actuable controls (e.g., by touching the control on a touchscreen, clicking the control using a mouse or another input device, or otherwise actuating the control).
[0039] Search server 152 is a computing device. Search server 152 may respond to search requests, such as image content queries. The response may include one or more digital supplements potentially related to the image content query. In one embodiment, search server 152 includes memory 160, processor assembly 154, and communications module 156. Memory 160 may include content crawler 162, digital supplement search engine 164, and digital supplement data store 166.
[0040] The content crawler 162 may crawl network-accessible resources to identify digital supplements. For example, the content crawler 162 may crawl resources accessible over the Internet, such as web pages provided by a digital supplement server 172. The content crawler 162 may access accessible web pages. Crawling a network-accessible resource may include requesting the resource from a web server and analyzing at least a portion of the resource. Digital supplements may be identified based on metadata provided by the network-accessible resource, such as XML or JSON data that provides information about the digital supplement. In one embodiment, the crawler identifies network-accessible resources based on extracting links from previously crawled network-accessible resources. The content crawler 162 may also identify network-accessible resources to crawl based on receiving input submitted by a user. For example, a user may submit a URL (or other information) to a network-accessible resource, including a digital supplement, via a web form or an application programming interface (API). In one embodiment, the content crawler 162 generates an index of the identified digital supplements. The content crawler 162 may also generate a score associated with the digital supplement, such as a relevance score or a popularity (fame) score.
[0041] The digital supplement search engine 164 receives a search query and generates a response that may include one or more potentially related digital supplements. For example, the digital supplement search engine 164 may receive an image content query from the client computing device 102. The image content query may include an image. The digital supplement search engine 164 may identify supplement anchors within the image and, based on the identified supplement anchors, may identify associated or potentially related digital supplements. The digital supplement search engine 164 may send a response to the client computing device 102 that includes the digital supplement or information that can be used to access the digital supplement. In some embodiments, the digital supplement search engine 164 may return information associated with multiple digital supplements. For example, a list of digital supplements may be included in the response to the query. The list may be ordered based on relevance to the supplement anchors, popularity, or other characteristics of the digital supplements.
[0042] The image content query may include, for example, an image captured by camera assembly 112, or text or other data associated with an image captured by camera assembly 112. The image content query may also include other information, such as the location of client computing device 102 or an identifier of the user of client computing device 102. In an embodiment, search server 152 may determine the expected location of client computing device 102 from the user identifier (e.g., if the user has enabled location services on client computing device 102 that associate information about the user's location with the user's account).
[0043] The digital supplement data store 166 stores information about digital supplements. In one embodiment, the digital supplement data store 166 includes an index of digital supplements. For example, the index may be generated by the content crawler 162. The digital supplement search engine 164 may use the index to respond to search queries.
[0044] Digital supplement server 172 is a computing device. Digital supplement server 172 provides digital supplements. In one embodiment, digital supplement server 172 includes memory 180, processor assembly 174, and communications module 176. Memory 180 may include digital supplements 182 and metadata 184. In one embodiment, memory 180 may also include other network-accessible resources, such as web pages that are not necessarily digital supplements. For example, memory 180 may provide details about one or more digital supplements and how to access those digital supplements. Additionally, memory 180 may include a resource serving engine, such as a web server, that responds to requests, such as HTTP requests, with network-accessible resources, such as web pages and digital supplements.
[0045] A digital supplement 182 is any type of content that can be provided as a supplement to something in the physical environment surrounding a user. A digital supplement 182 can also include any type of content that can supplement a stored image (e.g., of a previous physical environment surrounding a user). For example, a digital supplement can be associated with a supplemental anchor such as an image, an object or product identified in the image, or a location. A digital supplement 182 can include one or more images, audio content, text data, video, games, data files, applications, or structured text documents. Examples of structured text documents include HyperText Markup Language (HTML) documents, XML documents, and other types of structured text documents.
[0046] The digital supplement 182 can launch an application and define parameters for that application. The digital supplement 182 can also send requests to a server (e.g., HTTP requests) and define parameters for the requests. In some embodiments, the digital supplement 182 initiates a workflow to complete an activity, such as a workflow to complete a purchase. For example, the digital supplement 182 can send an HTTP request to a server to add a particular item to a user's shopping cart, add a coupon code, and retrieve a purchase confirmation page.
[0047] Metadata 184 is data that describes a digital supplement. Metadata 184 may describe one or more digital supplements provided by digital supplement server 172 or provided elsewhere. Metadata 184 for a digital supplement may include one or more of the following: a type indicator, an anchor indicator, a name, a description, a preview snippet or excerpt, an associated image, a link such as a URL to the digital supplement, and an identifier for an application associated with the digital supplement. The metadata may also include information about the publisher of the digital supplement, such as the publisher name, a description of the publisher, and an image or icon associated with the publisher. In some embodiments, the metadata also includes contextual information about the digital supplement or contextual information that must be satisfied to provide the digital supplement. For example, the metadata may include conditions that must be met to access the digital supplement (e.g., geographic conditions, client computing device requirements, required applications). Exemplary contextual information includes a location, an entity identified in an image, or multiple entities identified in an image (e.g., some digital supplements may require a combination of entities recognized in an image). A recognized entity may be a supplement anchor. In some embodiments, the recognized entities do not supplement anchors but instead provide contextual information. Metadata 184 may also include supplemental anchors (e.g., text, code, entity, or type of entity) associated with the digital supplement.
[0048] The metadata 184 may be stored in a variety of formats. In one embodiment, the metadata 184 is stored in a database. The metadata 184 may be stored as an XML file, a JSON file, or other format file. In one embodiment, the digital supplement server 172 retrieves the metadata 184 from a database and formats the metadata 184 as XML, JSON, or otherwise provides a response to a request from a client or the search server 152. For example, the search server 152 may retrieve the metadata 184 from the database and format it as XML, JSON, or otherwise provide a response to a request from a client or the search server 152. For example, the search server 152 may retrieve the metadata 184 from the digital supplement data store 166 and from the client computing device. The metadata 184 may be accessed to generate data used to respond to search requests from the device 102.
[0049] Communications module 106 includes one or more devices for communicating with other computing devices, such as search server 152 or digital supplemental server 172. Communications module 106 may communicate over a wireless or wired network, such as network 190. Communications module 156 of search server 152 and communications module 176 of digital supplemental server 172 may be similar to communications module 106.
[0050] Display device 108 may include, for example, an LCD (liquid crystal display) screen, an LED (light emitting diode) screen, an OLED (organic light emitting diode) screen, a touch screen, or any other screen or display for displaying images or information to a user. In an embodiment, display device 108 includes a light projector configured to project light onto a portion of the user's eye.
[0051] Memory 120 may include one or more non-transitory computer-readable storage media. Memory 120 may store instructions and data usable by client computing device 102 to implement the techniques described herein, such as to generate image content queries based on captured images, send image content queries, receive responses to the image content queries, and present digital supplements identified in the responses to the image content queries. Memory 160 of search server 152 and memory 180 of digital supplement server 172 may be similar to memory 120 and may store data instructions usable to implement the techniques of search server 152 and digital supplement server 172, respectively.
[0052] Processor assembly 104 includes one or more devices capable of executing instructions, such as instructions stored by memory 120, to perform various tasks associated with digital supplement association and retrieval for visual search. For example, processor assembly 104 may include a central processing unit (CPU) and / or a graphics processor unit (GPU). For example, if a GPU is present, some image / video rendering tasks, such as generating and displaying a user interface or displaying portions of a digital supplement, may be offloaded from the CPU to the GPU. In an embodiment, some image recognition tasks may also be offloaded from the CPU to the GPU.
[0053] 1 does not show, some embodiments include a head-mounted display device (HMD). The HMD may be a separate device from the client computing device 102, or the client computing device 102 may include the HMD. In some embodiments, the client computing device 102 communicates with the HMD via a cable. For example, the client computing device 102 may send video and / or audio signals to the HMD for display to the user, and the HMD may send movement, position, and / or orientation information to the client computing device 102.
[0054] The client computing device 102 may also include various user input components (not shown), such as a controller that communicates with the client computing device 102 using a wireless communication protocol. In one embodiment, the client computing device 102 communicates with the HMD via a wired connection (e.g., a Universal Serial Bus (USB) cable) or via a wireless communication protocol (e.g., any WiFi protocol, any BlueTooth protocol, Zigbee, etc.). In some embodiments, the client computing device may communicate with Chair 102 is a component of the HMD and may be contained within the housing of the HMD.
[0055] The network 190 may be the Internet, a local area network (LAN), a wireless local area network (WLAN), and / or any other network. The client computing device 102 may receive, for example, audio / video signals, which in one exemplary embodiment may be provided over the network as part of a digital supplement.
[0056] 2 is a third-person perspective of an exemplary physical space 200 in which an embodiment of a client computing device 102 is accessing a digital capture. In this example, physical space 200 includes an object 222, where object 222 is artwork on a wall of physical space 200. Object 222 is included within field of view 204 of camera assembly 112 of client computing device 102.
[0057] An exemplary user interface screen 206 is also shown. The user interface screen 206 may be generated, for example, by the user interface engine 130 of the client computing device 102. The user interface screen 206 includes an image display panel 208 and a digital capture selection panel 210. The image display panel 208 displays images. For example, the image display panel 208 may show images corresponding to a real-time feed from the camera assembly 112 of the client computing device 102. In an embodiment, the image display panel 208 shows previously acquired images or images retrieved from the memory 120 of the client computing device 102.
[0058] In one embodiment, the user interface screen 206 is presented to the user on a display device of the client computing device 102. In one embodiment, the user interface screen 206 may be so overlaid on an image of the physical space (or a video feed being acquired by a camera of the computing device). Additionally, the user interface screen 206 may be displayed as AR content across the user's field of view using an HMD worn by the user.
[0059] Image display panel 208 may also include annotations or user interface elements associated with the image. For example, image display panel 208 may include an indicator that an object in the image (e.g., object 222) has been recognized as a supplemental anchor. The indicator may include user-actuable controls for accessing or viewing information about the digital supplement associated with the identified supplemental anchor. In some situations, an image displayed on image display panel 208 may include multiple objects recognized as supplemental anchors, and image display panel 208 may include multiple annotations overlaying the image to identify those supplemental anchors.
[0060] Supplemental anchors may be recognized by a supplemental anchor identification engine of client computing device 102. In one embodiment, supplemental anchors are identified by sending an image to search server 152. Search server 152 may then analyze the image and identify supplemental anchors within the image. In one embodiment, search server 152 may send one or more of the locations (e.g., image coordinates) associated with the supplemental anchors or dimensions of any identified objects to client computing device 102. Client computing device 102 may then update its user interface screen to show annotations identifying the supplemental anchors (or associated objects) within the image. In one embodiment, client computing device 102 may update a user interface screen to show annotations identifying the supplemental anchors (or associated objects) within the image. In one embodiment, client computing device 102 may update a user interface screen to show annotations identifying the supplemental anchors (or associated objects) within the image. The supplemental anchor identification engine 124 may track the location of supplemental anchors (or associated objects) within a frame (e.g., a sequence of sequentially acquired images) (e.g., the supplemental anchor identification engine 124 may track supplemental anchors identified by the search server 152).
[0061] The digital supplement selection panel 210 allows a user to select a digital supplement for presentation. For example, the digital supplement selection panel 210 may include a menu including user-actuatable controls, each associated with a digital supplement. In this example, the digital supplement selection panel 210 includes user-actuatable controls 212 and 214, each including information about the associated digital supplement. For example, the user-actuatable controls may display one or more of a name (or title), a short description, and an image associated with the digital supplement, which may be received from the search server 152. When the user-actuatable control 212 or the user-actuatable control 214 is actuated, content of the associated digital supplement may be presented to the user. Presenting the digital supplement to the user may include causing the client computing device 102 to display a user interface screen including images, video, text, other content, or a combination thereof from the digital supplement. In some embodiments, the digital supplement content is displayed as an overlay on the image display panel 208 over an image or camera feed. The digital supplement content may be three-dimensional augmented reality content.
[0062] In some embodiments, presenting the digital supplement includes launching an application (e.g., one of the other applications 140) installed on the client computing device 102. Presenting the digital supplement may also include sending a request to a URL associated with the digital supplement. The request may include parameters associated with the digital supplement, such as an identifier for a product or object identified in the image. In some embodiments, the image (or other content) from the image content query is passed with the parameters. The image may also be provided through an API associated with the digital supplement server 172. In some embodiments, the client computing device 102 sends the image to the digital supplement server 172. In some embodiments, the search server 152 may send the image to the digital supplement server 172. For example, in response to a user selecting a digital supplement, the client computing device 102 can send an indicator of the selection to the search server 152, which may then send the image to the corresponding digital supplement server. The client computing device 102 may also send a URL to a location on the search server 152 that the digital supplement server 172 can use to access the image. Beneficially, these implementations may reduce the amount of data that the client computing device needs to transmit.
[0063] A digital supplement associated with user-actuatable control 212 may cause information about object 222 to be displayed, such as information from the museum. A digital supplement associated with user-actuatable control 214 may cause information related to the museum to be displayed. For example, presentation of a digital supplement may cause a stop on a museum tour to be marked as completed and information for the next stop to be displayed.
[0064] 3 is a diagram of an example method 300 for enabling triggers for a digital supplement according to embodiments described herein. This method 300 may be performed, for example, by a content crawler 162 of a search server 152 to enable a user to access a digital supplement based on an image content query.
[0065] In operation 302, data specifying a digital capture is received. The search server 152 may identify the digital supplement and the context in which the digital supplement should be provided. The data specifying the digital supplement may be received in a variety of ways. For example, the data specifying the digital supplement may be received from a network-accessible resource, such as a web page, that includes metadata about the digital supplement. The data specifying the digital supplement may also be received, for example, through an API or form provided by the search server 152. The data specifying the digital supplement may also be received from a memory location or data store.
[0066] The data about the digital supplement may include access data that can be used by the client computing device to access the digital supplement. For example, the access data may include the URL of the digital supplement and parameters passed to the URL. The access data may also include an application identifier and parameters for the application. The data about the digital supplement may also include descriptive data about the digital supplement. The descriptive data may be used by the client computing device to present information about the digital supplement to a user (e.g., on a menu from which the user can select the digital supplement). The descriptive data may include, for example, a name (or title), a description, the name of the publisher, and an image. The data about the digital supplement may also include an identifier of a supplement anchor.
[0067] At operation 304, a data structure instance based on the received data is generated. The data structure may be, for example, a record in a database. The database may be a relational database, and the data structure instance may be linked (e.g., via an external key) to one or more records associated with the supplemental anchor.
[0068] In operation 306, after generating the data structure instance, the digital supplement is enabled for searching by image content queries. For example, a database field associated with the data structure instance may be set to active so that digital supplement search engine 164 can access and return the associated digital supplement. In some embodiments, triggering the digital supplement may include saving or committing a record in the database. In some embodiments, enabling searching of the digital supplement includes enabling triggering of the digital supplement by a client computing device. For example, after the instance is generated, the digital supplement may be returned to the client computing device in response to a search and activated or presented by the client computing device.
[0069] 4 is a diagram of an example method 400 for enabling triggers for a digital supplement according to embodiments described herein. This method 400 may be performed, for example, by a content crawler 162 of a search server 152 to enable a user to access a digital supplement based on an image content query.
[0070] In operation 402, network-accessible resources are analyzed. In one embodiment, the network-accessible resources are, for example, web pages presented by digital supplement server 172. In one embodiment, a set of network-accessible resources is analyzed. The set of network-accessible resources may be generated based on submissions via a form or API. In one embodiment, the set of network-accessible resources may be generated by crawling other network-accessible resources to identify URLs. This crawling process may be performed recursively.
[0071] In operation 404, metadata associated with the digital supplement within the network-accessible resource is identified. The network-accessible resource may include an indicator of metadata associated with the digital supplement. For example, the network-accessible resource may include a tag that identifies the portion of the network-accessible resource that contains the metadata. The tag may be an XML tag with a particular type or attributes. The tag may be an HTML tag, such as a script tag, that includes a JSON data structure containing the metadata.
[0072] A digital supplemental data structure instance based on the metadata is generated in operation 406. Operation 406 may be similar to operation 304.
[0073] At operation 408, an image content query is received. The image content query may be sent by a client computing device, such as client computing device 102, for example. In one embodiment, the image content query includes an image. The image content query may also include text data describing the image. For example, the text data may include an identifier of a supplemental anchor in an image captured by a camera assembly of the client computing device. In one embodiment, the image content query also includes other information, such as the location of the client computing device or an identifier of a user account associated with the client computing device.
[0074] In operation 410, multiple digital supplemental data structure instances are identified based on the image content query. In some embodiments, supplemental anchors are identified within the image provided in the image content query. The supplemental anchors may then be used to query an index or database for associated digital supplements. In some embodiments, other data provided with the query may also be used to identify the digital supplement, such as the location of the client computing device or information associated with a user account. In some embodiments, multiple supplemental anchors may be used to identify the associated supplemental anchors.
[0075] At operation 412, an ordering of the plurality of digital supplemental data structure instances is determined. The ordering may be based on various scores associated with the digital supplements or the relevance of the digital supplements to the image content query. In one embodiment, a relevance score corresponding to the relevance of the digital supplements to the image content query may be used to order the plurality of digital supplemental data structure instances. The relevance score may be determined from multiple factors, such as one or more of the content of the digital supplement, the content of network-accessible resources that link to the digital supplement (or network-accessible resources associated with the digital supplement), link text, or content near links to the digital supplement on other network-accessible resources.
[0076] The score may also be based on a popularity metric. A fame metric is one example of a popularity metric. The fame metric may be based on how many other network resources link to the digital supplement in combination with the fame scores of those other network-accessible resources. In some embodiments, the popularity score may be based on how frequently a digital resource is selected or chosen. In some embodiments, the popularity score may correspond to how frequently a digital resource is selected for an image content query.
[0077] The score may be determined or retrieved from a data store or an API. In one embodiment, an API is accessed to retrieve the score of the digital supplement. For example, the score may be a measure of the relevance of the digital resource with respect to the search term based on the supplemental anchor. and / or may be retrieved from a search engine that determines popularity.
[0078] The plurality of digital supplemental data structures may also be ordered based on frequency of use by a particular user (e.g., a user of a client computing device) or recency of use by that particular user. The data structures are randomly ordered.
[0079] In operation 414, the image content query is responded to based on the plurality of digital supplement data structure instances. For example, information associated with the plurality of digital supplement data structure instances may be sent to the client computing device in the order determined in operation 412. In one embodiment, the information includes descriptive data that may be presented in a menu or another type of user interface configured to receive a user selection of a digital supplement. The information may also include access data that may be used by the client computing device to access or present the digital supplement.
[0080] 5 is a diagram of an example method 500 for searching and presenting a digital supplement according to an embodiment described herein. The method 500 may be performed, for example, by application 122 of client computing device 102 to identify and access a digital supplement based on an image content query.
[0081] At operation 502, an image content query based on an image is sent to a server computing device (e.g., search server 152). For example, the image may be captured by camera assembly 112 of client computing device 102. The image may also be a stored image, such as an image previously captured by camera assembly 112. In some embodiments, the image content query includes only the image. In some embodiments, the image content query includes additional information. For example, the image content query may include information such as the location of client computing device 102 or an identifier for an account associated with the user of client computing device 102. Application 122 may also identify anchors within the image (e.g., using supplemental anchor identification engine 124). The image content query may include an identifier (e.g., text, number, or other type of identifier) for the identified anchor. In at least some embodiments, the image content query does not include an image.
[0082] In some embodiments, sending the image content query to the server includes invoking an API. In some embodiments, sending the image content query to the server includes invoking an API provided by the server. In some embodiments, sending the image content query to the server includes submitting a form using the HTTP protocol (e.g., by submitting a GET request or a POST request).
[0083] In operation 504, a response to the image content query identifying a digital supplement is received. The response may be received over network 190 from search server 152. The response may include one or more digital supplements identified by search server 152 based on the image content query. For example, the response may include an array of data associated with the digital supplement. In one embodiment, the data associated with the digital supplement may include descriptive data that can be used to present digital supplement options for a user to select. For example, the descriptive data may include a name, a short description, a publisher name, and an image. The data may also include access data, such as the URL and parameters to include in a request via the URL, or an application name and associated parameters. The data may also include the image content (e.g., if a supplemental anchor is identified by search server 152). The content may include the location, coordinates, or dimensions of the supplemental anchor in the image sent in the content query.
[0084] In operation 506, a user interface screen including information associated with the digital supplement is displayed. In one embodiment, the user interface screen includes an annotation overlaying the identified supplemental anchor (e.g., based on the provided coordinates). The annotation may provide information about an object in the image associated with the identified supplemental anchor. The annotation may include a user-actuable control that may be actuated to present or launch the digital supplement. The user interface screen may also include a digital supplement selection panel that may be used to select from multiple digital supplements identified in the response received in operation 504. In one embodiment, the user interface screen may be generated by a web browser that opens a URL specified by the digital supplement. The user interface screen may also be generated by another application that is launched to provide the digital supplement.
[0085] 6 is a diagram of an example method 600 for identifying and presenting a digital supplement based on an image, according to embodiments described herein. The method 600 may be performed, for example, by application 122 of client computing device 102 to identify and access a digital supplement based on an image content query.
[0086] At operation 602, an image is captured. For example, the image may be captured by camera assembly 112 of client computing device 102. In one embodiment, a series of images (i.e., video) may be captured by camera assembly 112.
[0087] At operation 604, the image-based image content query is sent to a server computing device, such as search server 152. Operation 604 may be similar to operation 502. In embodiments where a sequence of images is obtained, the image content query may include multiple images or a sequence of images. In some embodiments, the sequence of images may be streamed to the server computing device.
[0088] A response to the image content query that identifies a plurality of digital captures is received in operation 606. Operation 606 may be similar to operation 504 described above.
[0089] In operation 608, a user interface screen including user-actuatable controls for selecting a digital supplement from the plurality of digital supplements is displayed. For example, a digital supplement selection panel may be displayed. The digital supplement selection panel may include multiple user-actuatable controls, each associated with one of the plurality of digital supplements identified in the response. The digital supplement selection may provide the user-actuatable controls based on an ordering or ranking of the digital supplements provided by the server computing device. The digital supplement selection panel may arrange the user-actuatable controls vertically, horizontally, or in other manners. The user-actuatable controls may be associated with or include information about the associated digital supplement that the user can consider when determining whether to select the digital supplement. For example, the displayed information may include one or more of the name, description, image, and publisher name of the digital supplement.
[0090] In operation 610, a user input is received to select a digital supplement. The user input may be a click with a mouse or other device. The user input may also be touch input from a stylus or finger. Another example of user input is near touch input. (e.g., holding a finger or pointing device close to the screen.) In some embodiments, user input may also include hand gestures, head movements, eye movements, or speech input.
[0091] In operation 612, information is provided to a resource associated with the selected digital supplement. For example, information about the user of the client computing device may be sent to a server that provides the digital supplement (if permission to provide the information has been provided). The information may also be provided to an application that provides the digital supplement. Various types of information may be provided. For example, the information may include user information such as username, user preferences, or location.
[0092] The information may also include information associated with the image content query, such as an image or a sequence of images. The information may also include identifiers and / or locations of one or more supplemental anchors within the image. This information may be used to provide a digital supplement to a user. For example, AR content of the digital supplement may be formed and positioned based on the image.
[0093] The information may be sent by the client computing device 102 directly to the resource associated with the digital supplement (e.g., digital supplement server 172). In some embodiments, the information is provided to the resource associated with the digital supplement by the search server 152 (e.g., the client computing device does not have to send as much data). In at least some of these implementations, the client computing device 102 may send selection information identifying the selected digital supplement to the search server 152. Upon receiving the selection and confirming that the user has authorized the information to be shared, the search server 152 may send the information to the resource providing the digital supplement. The client computing device 102 may also prompt the user to allow the information to be shared. In some embodiments, the search server 152 may determine the information to send to the resource based on the digital supplement data structure instance (which may be based on metadata associated with the digital supplement).
[0094] In operation 614, the user interface is updated based on the selected digital supplement. Operation 614 may be similar to operation 506.
[0095] 7A-7C are schematic diagrams of user interface screens displayed by an embodiment of client computing device 102 for conducting an image content search and displaying a digital supplement. In FIG. 7A, user interface screen 700a is shown. User interface screen 700a includes an image display panel 708 and an information panel 730. In this example, image display panel 708 displays an image of a shelf full of wine bottles (e.g., as might be found in a store). Image display panel 708 also includes indicator 740 and indicator 742. Each of these indicators indicates that the wine bottle shown in the image below the indicator has been recognized as a supplement anchor (e.g., as a recognized product in this case). Indicator 740 and indicator 742 are examples of user-actuatable controls. Within information panel 730, instructions are provided to "tap what interests you."
[0096] 7B, user interface screen 700b is shown after a user activates indicator 740. After activation, annotations 744 from the digital supplement are displayed. Annotations 744 include information about the wine's rating, which may help the user select a bottle of wine to purchase.
[0097] In Figure 7C, another user interface screen 700c is shown after a user activates indicator 740. User interface screen 700c is shown instead of or in addition to displaying user interface screen 700b (e.g., after activation of annotation 744 or when a user swipes up on information panel 730 of Figure 7B). Figure 7C shows an expanded information panel 732. The expanded information panel 732 takes up more of user interface screen 700c than the information panel 730 featured in Figures 7A and 7B.
[0098] The expanded information panel 732 includes a digital supplement selection panel 710 and a digital supplement content display panel 734. The digital supplement selection panel 710 includes a user-actuable control 712, a user-actuable control 714, and a (partially visible) user-actuable control 716. In an embodiment, when a user swipes on the digital supplement selection panel 710, additional user-actuable controls may be displayed. The user-actuable controls of the digital supplement selection panel 710 may be arranged in ranked order. The user-actuable control 712 is associated with a digital supplement for meal pairings. When the user-actuable control 712 is activated, a digital supplement displaying food and meal pairing information for the selected wine may be displayed. The user-actuable control 714 is associated with a digital supplement for saving photos. When activated, a photo saving application may be activated to provide the image. Additional information may be saved with the photo, such as an identified supplement anchor.
[0099] The digital supplemental content display panel 734 may display content from the digital supplement. The digital supplemental content display panel 734 may display a default digital supplement or the highest-ranked digital supplement associated with the identified supplemental anchor. In this example, the digital supplemental content display panel 734 includes product information about the product associated with the selected supplemental anchor. In this case, the wine name, rating, origin, image, and comments are provided.
[0100] 8A-8C are schematic diagrams of user interface screens displayed by an embodiment of a client computing device 102 for performing an image content search and displaying a digital supplement. In this example, the image content search is based on an image of a receipt.
[0101] 8A illustrates user interface screen 800a. User interface screen 800a includes image display panel 808 and information panel 830. In this example, image display panel 808 displays an image of a receipt from a restaurant. Image display panel 808 also includes indicator 840, indicator 842, annotation 844, and highlight overlay 846. In this case, indicator 840 is associated with the receipt as a document, and indicator 842 is associated with the particular restaurant named on the receipt. The identified receipt document and the identified restaurant name are both examples of supplemental anchors.
[0102] Annotation 844 is associated with a digital supplement that provides a tip calculator. In this example, an exemplary tip calculator is included in annotation 844 and overlaid in an appropriate location on image display panel 808. In some embodiments, the digital supplement may be selected by default or may be displayed upon identifying the appropriate supplement anchor. A highlight overlay 846 is overlaid on a portion of the receipt document that includes information used by the tip calculator digital supplement.
[0103] In this example, the items displayed in the information panel 830 are The supplemental anchors are associated with the receipt as a document, as if they were a document. In some embodiments, the identified supplemental anchors are ranked based on the user's likely relevance or interest, for example, based on the user's past actions, other users' actions on similar images, the supplemental anchor's confidence score, or the location or size of the portion of the image to which the supplemental anchor is associated. Information panel 830 may then, in at least some embodiments, display items related to the highest-ranked supplemental anchors. If indicator 842 is activated instead, information panel 830 may include items related to a particular restaurant.
[0104] Here, information panel 830 includes digital supplement selection panel 810. The digital supplement panel includes user-actuatable control 812, user-actuatable control 814, and user-actuatable control 816. In this example, user-actuatable control 812 is associated with a tip calculator digital supplement, user-actuatable control 814 is associated with a check split digital supplement, and user-actuatable control 816 is associated with an expense report digital supplement. For example, when user-actuatable control 812 is actuated, user interface controls for adjusting parameters of the tip calculator (e.g., to adjust a percentage) may be displayed.
[0105] 8B, user interface screen 800b is shown after a user activates user-actuatable control 814. After activation, expanded information panel 832 is shown containing items to help the user calculate how to split the bill. For example, the number of people splitting the bill can be entered to determine the amount each person owes.
[0106] In FIG. 8C , user interface screen 800c is shown after a user activates user-actuatable control 816. After activation, an expanded information panel 834 is shown containing items to help the user store the receipt in an expense report. For example, the user can select the expense report with which the receipt should be associated (e.g., "Sydney Trip 2018"). Once the expense report is selected, the image of the receipt can be uploaded to an expense report submission or management system. In some embodiments, the entire image displayed in image display panel 808 is uploaded. In some embodiments, a portion of the image is uploaded (e.g., the image is cropped to include only the receipt).
[0107] 9A and 9B are schematic diagrams of user interface screens displayed by an embodiment of a client computing device 102 for performing an image content search and displaying a digital supplement. In this example, the image content search is based on images of faces.
[0108] 9A illustrates a user interface screen 900a. User interface screen 900a includes an image display panel 908 and an information panel 930. In this example, image display panel 908 displays an image of a face, where the face is an example of a supplemental anchor. Information panel 930 includes user-actuable controls 912 for a digital supplement identified for the supplemental anchor in the image (i.e., the face). User-actuable controls 912 are associated with a digital supplement for binding to eyeglasses.
[0109] In FIG. 9B , user interface screen 900b is shown after a user activates user-actuatable control 912. After activation, an expanded information panel 932 is shown containing items to help the user visually try on eyeglasses on a face in an image. Here, multiple eyeglass styles are displayed, and the user can select a pair to try on. Upon selecting a pair of eyeglasses, AR content 960 is overlaid on image display panel 908, where the AR content 960 corresponds to the selected eyeglasses and is sized to fit the face in the image. In one embodiment, once a digital supplement for trying on eyeglasses is selected, image display panel 908 displays an AR content 960. The image shown in 8 is sent to a server that provides digital supplements so that the image can be analyzed to determine where and how to place the AR content 960, how large it should be, or whether to recommend trying on glasses.
[0110] 10A-10C are schematic diagrams of user interface screens displayed by an embodiment of a client computing device 102 for conducting an image content search and displaying a digital supplement. In this example, the image content search is based on images of furniture in a catalog.
[0111] 10A illustrates user interface screen 1000a. User interface screen 1000a includes image display panel 1008. In this example, image display panel 1008 displays an image of a portion of a page from a furniture catalog. Image display panel also includes indicator 1040, indicator 1042, and indicator 1044. In this example, indicator 1040 is associated with a bed, indicator 1042 is associated with a decorative item, and indicator 1044 is associated with a rug. The images of the bed, decorative item, and rug in the catalog are examples of supplemental anchors.
[0112] 10B, user interface screen 1000b is shown after a user selects indicator 1040 (e.g., by touching the screen at or near where indicator 1040 appears). User interface screen 1000b includes digital supplement selection panel 1010 and information panel 1030. Information panel 1030 includes information (e.g., product name, description, image) about the supplement anchor associated with the selected indicator.
[0113] Digital supplement selection panel 1010 includes user-actuatable control 1012 and user-actuatable control 1014. User-actuatable control 1012 is associated with a digital supplement that provides an in-home view. User-actuatable control 1014 is associated with another digital supplement (e.g., a digital supplement for posting to a social media site).
[0114] 10C, user interface screen 1000c is shown after activation of user-actuatable control 1012. User interface screen 1000c includes image display panel 1008, digital supplement selection panel 1010, and reduced information panel 1032. Reduced information panel 1032 may include user-actuatable controls that, when activated, may cause an information panel to pop up and be displayed.
[0115] Here, the image display panel 1008 displays an image of a room and includes AR content 1060. The AR content 1060 includes a 3D model of a bed associated with the indicator 1040 overlaid on the image panel. The user may adjust the position of the AR content 1060 within the room to see how the bed fits within the room. In one embodiment, when a digital supplement for the home view is selected, the image shown on the image display panel 1008 is transmitted to a server providing the digital supplement, so that the image can be analyzed to determine where and how to position and size the AR content 1060. In one embodiment, the AR content 1060 may be provided after the image content query.
[0116] 11A-11C are schematic diagrams of user interface screens displayed by an embodiment of a client computing device 102 for conducting various image content searches in a store. In this example, the image content searches are performed on images of products acquired in the store. Based on.
[0117] FIG. 11A illustrates user interface screen 1100a. User interface screen 1100a includes image display panel 1108 and information panel 1130. In this example, image display panel 1108 displays an image taken in a store. Image display panel 1108 also includes indicator 1140 associated with a vase. The vase displayed in image display panel 1108 is an example of a supplement anchor. Information panel 1130 displays a digital supplement including product information about the vase and functionality for purchasing the vase. The digital supplement may include, for example, a workflow for initiating a purchase of the vase. In this example, the digital supplement is identified based on the image content and the location of the client computing device, such that a digital supplement published by (or associated with) the store where the image was taken may be identified and provided as a high-ranking result for an image content query when the client computing device is in the store. In some embodiments, if the location of the client computing device is changed, a different digital supplement may be provided for the same image.
[0118] FIG. 11B illustrates user interface screen 1100b. User interface screen 1100b includes image display panel 1108 and information panel 1130. In this example, image display panel 1108 displays another image captured in a store. Image display panel 1108 also includes indicator 1142 associated with a rug. The rug displayed in image display panel 1108 is an example of a supplement anchor. Information panel 1130 displays a digital supplement that includes product information about the rug and functionality for selecting a size and purchasing the rug. As in FIG. 11A, the digital supplement is identified based on the image content and the location of the client computing device.
[0119] FIG. 11C illustrates user interface screen 1100c. User interface screen 1100c includes image display panel 1108 and information panel 1130. In this example, image display panel 1108 displays another image captured in a store. Image display panel 1108 also includes indicator 1144 associated with a vase. The vase displayed in image display panel 1108 is an example of a supplement anchor. Information panel 1130 displays a digital supplement including product information about the vase. Information panel 1130 also includes coupon indicator 1132 and functionality for redeeming the coupon. Redeeming the coupon may include purchasing the item at a discounted price from a website associated with the retailer. In some embodiments, a coupon code is presented that can be used to secure the discount during checkout. Similar to FIGS. 11A and 11B, the digital supplement is identified based on the image content and the location of the client computing device.
[0120] 12A-12C are schematic diagrams of user interface screens displayed by an embodiment of a client computing device 102 during various image content searches. In this example, the image content search is based on images of movie posters (e.g., as might be obtained at a movie theater).
[0121] 12A illustrates a user interface screen 1200a. The user interface screen 1200a includes an image display panel 1208. In this example, the image display panel 1208 displays an image of a movie poster. The image display panel 1208 also includes an indicator 1240 associated with the movie poster identified in the image. The movie poster is an example of a supplement anchor. The indicator 1240 is a user-actuable control that, when activated, displays a digital supplement or a menu for selecting a digital supplement. This may include trolls.
[0122] 12B shows user interface screen 1200b. Image display panel 1208 also includes a preview digital supplement 1242 associated with the movie poster identified in the image. For example, preview digital supplement 1242 may be shown after activation of indicator 1240 (of FIG. 12A). Preview digital supplement 1242 may overlay an image or footage from the movie associated with the identified movie poster over the image of the movie poster.
[0123] 12C illustrates user interface screen 1200c. Image display panel 1208 also includes rating indicators 1244 and 1246. Rating indicators 1244 and 1246 may be generated by one or more digital supplements in response to an image content query that includes a movie poster. The digital supplement may, for example, overlay rating information within the image for a movie associated with the movie poster. Rating indicators 1244 and 1246 may include user-actuable controls that, when activated, cause the rating and additional information about the associated movie to be revealed.
[0124] 13 shows examples of a computing device 1300 and a mobile computing device 1350 that may be used with the technologies described herein (e.g., to implement client computing device 102, search server 152, and digital supplement server 172). Computing device 1300 includes a processor 1302, memory 1304, storage device 1306, a high-speed interface 1308 for connecting to memory 1304 and a high-speed expansion port 1310, and a low-speed interface 1312 for connecting to a low-speed bus 1314 and storage device 1306. Each of components 1302, 1304, 1306, 1308, 1310, and 1312 are interconnected using various buses and may be mounted on a common motherboard or otherwise as desired. The processor 1302 can process instructions for execution within the computing device 1300, including instructions stored in the memory 1304 or storage device 1306, to display graphical information for a GUI on an external input / output device, such as a display 1316 coupled to a high-speed interface 1308. In other embodiments, multiple processors and / or multiple buses may be used, along with multiple memories and types of memory, as needed. Multiple computing devices 1300 may also be connected, with each device providing a portion of the required operations (e.g., as a bank of servers, a group of blade servers, or a multiprocessor system).
[0125] The memory 1304 stores information within the computing device 1300. In one embodiment, the memory 1304 is one or more volatile memory units. In another embodiment, the memory 1304 is one or more non-volatile memory units. The memory 1304 may also be another form of computer-readable storage medium, such as a magnetic or optical disk.
[0126] The storage device 1306 may provide mass storage for the computing device 1300. In one embodiment, the storage device 1306 may be or include a computer-readable storage medium such as a floppy disk drive, a hard disk drive, an optical disk drive, or an array of devices, including a tape drive, a flash memory or other similar solid-state memory device, or a device in a storage area network or other configuration. A computer program product may be tangibly embodied on an information carrier. The computer program product may also include instructions that, when executed, perform one or more methods, such as those described above. The information carrier may include the memory 1304. , storage device 1306, or memory on processor 1302.
[0127] High-speed controller 1308 manages bandwidth-intensive operations for computing device 1300, while low-speed controller 1312 manages less bandwidth-intensive operations. This allocation of functionality is exemplary only. In one embodiment, high-speed controller 1308 is coupled to memory 1304, to display 1316 (e.g., via a graphics processor or accelerator), and to high-speed expansion port 1310, which can accept various expansion cards (not shown). In this embodiment, low-speed controller 1312 is coupled to storage device 1306 and low-speed expansion port 1314. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, Wireless Ethernet), may be coupled to one or more input / output devices, such as a keyboard, pointing device, scanner, or networking device such as a switch or router, for example, via a network adapter.
[0128] Computing device 1300, as shown in the figure, may be implemented in several different forms. For example, it may be implemented as a standard server 1320, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 1324. Additionally, it may be implemented as a personal computer, such as a laptop computer 1322. Alternatively, components from computing device 1300 may be combined with other components in a mobile device (not shown), such as device 1350. Each such device may include one or more of computing devices 1300, 1350, or an entire system may be composed of multiple computing devices 1300, 1350 in communication with each other.
[0129] Computing device 1350 includes, among other components, a processor 1352, memory 1364, input / output devices such as a display 1354, a communication interface 1366, and a transceiver 1368. Device 1350 may also include a storage device such as a microdrive or other device to provide additional storage. Each of components 1350, 1352, 1364, 1354, 1366, and 1368 are interconnected using various buses, and some of the components may be located on a common motherboard or otherwise as desired.
[0130] The processor 1352 can execute instructions within the computing device 1350, including instructions stored in the memory 1364. The processor may be implemented as a chipset of chips including separate analog and digital processors. The processor may provide, for example, control of a user interface, applications executed by the device 1350, and coordination of other components of the device 1350, such as wireless communication by the device 1350.
[0131] The processor 1352 may communicate with a user via a control interface 1358 and a display interface 1356 coupled to a display 1354. The display 1354 may be, for example, a thin-film-transistor liquid crystal display (TFT LCD), a light emitting diode (LED), an organic light emitting diode (OLED), or a liquid crystal display (LCD). ) display, or other suitable display technology. Display interface 1356 may include appropriate circuitry for driving display 1354 to present graphics and other information to a user. Control interface 1358 may receive commands from a user and translate and submit them to processor 1352. In addition, Thus, an external interface 1362 may be provided in communication with the processor 1352 to enable short-range communication between the device 1350 and other devices. The external interface 1362 may, for example, provide for wired communication in some embodiments or for wireless communication in other embodiments, and multiple interfaces may also be used.
[0132] Memory 1364 stores information within computing device 1350. Memory 1364 may be embodied as one or more computer-readable storage media, one or more volatile memory units, or one or more nonvolatile memory units. Expansion memory 1374 may also be provided and connected to device 1350 via expansion interface 1372, which may include, for example, a Single In-Line Memory Module (SIMM) card interface. Such expansion memory 1374 may provide additional storage space for device 1350 or store applications or other information for device 1350. Specifically, expansion memory 1374 may include instructions for performing or supplementing the processes described above and may also include secure information. Thus, for example, expansion memory 1374 may be provided as a security module for device 1350 and may be programmed with instructions that enable secure use of device 1350. Additionally, secure applications may be provided via a SIMM card along with additional information, such as placing identifying information on the SIMM card in an unhackable manner.
[0133] The memory may include, for example, flash memory and / or NVRAM memory, as described below. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable storage medium or machine-readable medium, such as memory 1364, expansion memory 1374, or memory on processor 1352, which may be received, for example, via transceiver 1368 or external interface 1362.
[0134] Device 1350 may communicate wirelessly via communication interface 1366, which may include digital signal processing circuitry as needed. Communication interface 1366 may provide communication under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, via radio frequency transceiver 1368. Additionally, short-range communication may occur, such as with Bluetooth, Wi-Fi, or other such transceivers (not shown). Additionally, GPS (Global Positioning System) receiver module 1370 may provide device 1350 with additional navigation- and location-related wireless data that may be used as needed by applications executing on device 1350.
[0135] Device 1350 may also communicate audibly using voice codec 1360, which may receive speech information from a user and convert it into usable digital information. Voice codec 1360 may also generate audible sounds for the user, such as through a speaker in the handset of device 1350. Such sounds may include sounds from a voice telephone call, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications running on device 1350.
[0136] The computing device 1350 may be implemented in several different forms, as shown in the figure. For example, it may be implemented as a mobile phone 1380. , may be implemented as part of a smartphone 1382, personal digital assistant, or other similar mobile device.
[0137] Various embodiments of the systems and techniques described herein may be realized in digital electronic circuitry, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementation in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0138] These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable storage medium" refer to any computer program product, apparatus, and / or device used to provide machine instructions and / or data to a programmable processor (e.g., magnetic disk, optical disk, memory, programmable logic device (PLD)), including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0139] To provide for user interaction, the systems and techniques described herein may be implemented on a computer having a display device (such as an LED (light emitting diode) or OLED (organic LED) or LCD (liquid crystal display) monitor / screen) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) by which the user may provide input to the computer. Other types of devices may also be used to provide for user interaction; for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be received in any form, including acoustic, speech, or tactile input.
[0140] The systems and techniques described herein may be implemented in a computing system that includes back-end components (e.g., as a data server), or includes middleware components (e.g., as an application server), or includes front-end components (e.g., a client computer having a graphical user interface or web browser through which a user may interact with embodiments of the systems and techniques described herein), or includes any combination of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.
[0141] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of a client and server is determined by the presence of a respective computer running on the respective computer. It arises from computer programs that have a client-server relationship with each other.
[0142] In some embodiments, the computing device shown in FIG. 13 may include sensors to interface with the AR headset / HMD device 1390 to generate an augmented environment for viewing inserted content within a physical space. For example, one or more sensors included in the computing device 1350 or other computing devices shown in FIG. 13 may provide input to the AR headset 1390 or may provide input to the AR space generally. The sensors may include, but are not limited to, a touchscreen, an accelerometer, a gyroscope, a pressure sensor, a biometric sensor, a temperature sensor, a humidity sensor, and an ambient light sensor. The computing device 1350 may use the sensors to determine the computing device's absolute position and / or detected rotation in the AR space, and the absolute position and / or detected rotation may be used as input to the AR space. For example, the computing device 1350 may be incorporated into the AR space as a virtual object such as a controller, laser pointer, keyboard, or weapon. When incorporated into the AR space, a user's positioning of the computing device / virtual object may allow the user to position the computing device to view the virtual object in a particular way within the AR space. For example, if the virtual object represents a laser pointer, the user may manipulate the computing device as if it were a real laser pointer. The user can move the computing device left and right, up and down, in a circular motion, and use the device in the same manner as using a laser pointer. In some embodiments, the user can use the virtual laser pointer to aim at a target.
[0143] In some embodiments, one or more input devices included in or coupled to computing device 1350 can be used as input to the AR space. The input devices can include, but are not limited to, a touchscreen, a keyboard, one or more buttons, a trackpad, a touchpad, a pointing device, a mouse, a trackball, a joystick, a camera, a microphone, earphones or earbuds with input capabilities, a game controller, or other connectable input devices. When the computing device is integrated into the AR space, a user interacting with an input device included in computing device 1350 can cause specific actions in the AR space.
[0144] In some embodiments, the touchscreen of the computing device 1350 may be rendered as a touchpad within the AR space. A user may interact with the touchscreen of the computing device 1350. The interaction is rendered, for example, in the AR headset 1390, as movements on the touchpad rendered within the AR space. The rendered movements can control virtual objects within the AR space.
[0145] In some embodiments, one or more output devices included in computing device 1350 can provide output and / or feedback to a user of AR headset 1390 within the AR space. The output and / or feedback can be visual, tactile, or audio. The output and / or feedback can include, but is not limited to, vibration, turning one or more lights or strobes on and off or flashing and / or emitting light, sounding an alarm, playing a chime, playing a song, and playing an audio file. Output devices can include, but are not limited to, vibration motors, vibration coils, piezoelectric devices, electrostatic devices, light-emitting diodes (LEDs), strobes, and speakers.
[0146] In some embodiments, the computing device 1350 may appear as another object in a computer-generated 3D environment. A user's interaction with the computing device 1350 (e.g., rotating, shaking, touching the touchscreen, swiping a finger across the touchscreen) may be interpreted as an interaction with an object in the AR space. In the example of a laser pointer in an AR space, the computing device 1350 appears as a virtual laser pointer in the computer-generated 3D environment. As the user manipulates the computing device 1350, the user in the AR space sees the movement of the laser pointer. The user receives feedback from their interaction with the computing device 1350 in the AR environment on the computing device 1350 or the AR headset 1390. The user's interaction with the computing device may be translated into an interaction with a user interface generated in the AR environment for the controllable device.
[0147] In some embodiments, computing device 1350 may include a touchscreen. For example, a user can interact with the touchscreen to interact with a user interface for the controllable device. For example, the touchscreen may include user interface elements, such as sliders, that can control characteristics of the controllable device.
[0148] Computing device 1300 is intended to represent various forms of digital computers and devices, including, but not limited to, laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Computing device 1350 is intended to represent various forms of mobile devices, such as personal digital assistants, mobile phones, smartphones, and other similar computing devices. The components, their connections and relationships, and their functions shown herein are merely exemplary and are not intended to limit the embodiments of the invention described and / or claimed herein.
[0149] Several embodiments have been described. However, it will be understood that various modifications can be made without departing from the spirit and scope of the specification.
[0150] Additionally, the logic flows depicted in the figures do not require the particular order shown or sequential order to achieve desirable results. Additionally, other steps may be provided or steps may be eliminated from the described flows, and other components may be added to or removed from the described systems. Accordingly, other embodiments are within the scope of the following claims.
[0151] While several features of the described embodiments have been illustrated as set forth herein, many modifications, substitutions, changes, and equivalents will occur to those skilled in the art. It is therefore to be understood that the appended claims are intended to cover all such modifications and variations that fall within the scope of the embodiments. It is to be understood that they have been presented by way of example only, and not limitation, and that various changes in form and detail may be made. Any portion of the apparatus and / or methods described herein may be combined in any combination, except mutually exclusive combinations. The embodiments described herein may include various combinations and / or subcombinations of the functions, components, and / or features of the different described embodiments.
Claims
1. 1. A computer-implemented method comprising: a processor of the computing device executing an application; acquiring an image of a physical object with a camera assembly of the computing device operating within the application; a communication module of the computing device sending a query including the image and context information including location information to a search server; and receiving, from the search server, a response to the query, the response identifying a digital supplement server and identifying a digital supplement provided by the search server from the identified digital supplement server, the digital supplement including information associated with the image, the computer-implemented method further comprising: A computer-implemented method, wherein the application displays on a display device of the computing device a user interface including the information from the digital capture associated with the image, wherein in the user interface, the information from the digital capture is displayed overlaid on the image of the physical object as augmented reality content.
2. The computer-implemented method of claim 1 , wherein receiving the response identifying the digital capture comprises receiving information related to at least one product identified in the image.
3. Displaying the user interface includes: purchasing information associated with the at least one product identified in the image; or The computer-implemented method of claim 2 , further comprising displaying at least one of characteristic information associated with the at least one product identified in the image.
4. A computer program for causing a processor to execute the method according to any one of claims 1 to 3.
Citation Information
Patent Citations
Information output device, information output method, program, information provision device, information provision method, and program
JP2015207258A
Methods and systems for object recognition
US20180165370A1