Identifying textual terms in response to a visual query
Summary by NHIP
Visual Query Text Identification
The method receives a query image and generates a vector of image feature values. It applies this vector to a matrix of image relevance vectors to calculate weights for corresponding query terms, then outputs a ranked subset based on those weights.
Claim Score by NHIP
Abstract
A method, system, and computer readable storage medium is provided for identifying textual terms in response to a visual query is provided. A server system receives a visual query from a client system. The visual query is responded to as follows. A set of image feature values for the visual query is generated. The set of image feature values is mapped to a plurality of textual terms, including a weight for each of the textual terms in the plurality of textual terms. The textual terms are ranked in accordance with the weights of the textual terms. Then, in accordance with the ranking the textual terms, one or more of the ranked textual terms are sent to the client system.

Term
5.9 yearsleft in the term
Expires 23 August 2032, including 15 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
17 claims: 3 independent, 14 dependent
- 1Broadest claimClaim Score 53, average(NHIP)A computer-implemented method comprising:receiving a query image;obtaining a set of image features that are associated with the query image;obtaining a vector of image feature values for the set of image features;obtaining a set of query terms that correspond to the set of image features;for each query term of the set, obtaining a weight for the query term by applying the vector of image feature values to a respective image relevance vector for the query term, wherein each component of the image relevance vector indicates a relative importance of each corresponding component in the vector of image feature values in determining whether the query term is relevant;selecting a subset of the query terms based on the respective weight for each query term;and providing, for output, one or more of the query terms of the subset of the query terms.
- 8A system comprising:one or more computers and one or more storage devices storing instructions that are configured to, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving a query image;obtaining a set of image features that are associated with the query image;obtaining a vector of image feature values for the set of image features;obtaining a set of query terms that correspond to the set of image features;for each query term of the set, obtaining a weight for the query term by applying the vector of image feature values to a respective image relevance vector for the query term, wherein each component of the image relevance vector indicates a relative importance of each corresponding component in the vector of image feature values in determining whether the query term is relevant;selecting a subset of the query terms based on the respective weight for each query term;and providing, for output, one or more of the query terms of the subset of the query terms.
- 14A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:receiving a query image;obtaining a set of image features that are associated with the query image;obtaining a vector of image feature values for the set of image features;obtaining a set of query terms that correspond to the set of image features, for each query term of the set, obtaining a weight for the query term by applying the vector of image feature values to a respective image relevance vector for the query term, wherein each component of the image relevance vector indicates a relative importance of each corresponding component in the vector of image feature values in determining whether the query term is relevant;selecting a subset of the query terms based on the respective weight for each query term;and providing, for output, one or more of the query terms of the subset of the query terms.
Independent claims3
80 paragraphs in 5 sections, as filed
p-0002This application is potentially related to the following U.S. patent applications and Provisional patent application, which is incorporated by reference herein in its entirety U.S. Provisional Patent Application No. 61/266,116, filed Dec. 2, 2009, entitled “Architecture for Responding to a Visual Query,” now U.S. patent application Ser. No. 12/850,483, filed Aug. 4, 2010.
TECHNICAL FIELD
p-0003The disclosed embodiments relate generally to the field of image processing, and in particular to determining one or more textual terms in response to a visual query.
BACKGROUND
p-0004Text-based or term-based based searching, wherein a user inputs a word or phrase into a search engine and receives a variety of results is a useful tool for searching. Term based queries require a user to explicitly provide search terms in the form of words, phrases and/or other terms. Sometimes a user may see an object in the physical world and want to locate information related to the object, but do know what terms to use for a term-based query in a search engine. Accordingly, a system that can receive a visual query such as an image, and use it to determine one or more terms would be desirable.
SUMMARY
p-0005According to some embodiments, a method is performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors. In the method, the server system receives a visual query from a client system. The server system responds to the visual query by: generating a set of image feature values for the visual query; mapping the set of image feature values to a plurality of textual terms, including a weight for each of the textual terms in the plurality of textual terms; ranking the textual terms in accordance with the weights of the textual terms; and in accordance with the ranking the textual terms, sending one or more of the ranked textual terms to the client system.
p-0006A server system includes one or more processors and memory storing one or more programs for execution by the one or more processors. The one or more programs include instructions for receiving a visual query from a client system, and responding to the visual query by: generating a set of image feature values for the visual query; mapping the set of image feature values to a plurality of textual terms, including a weight for each of the textual terms in the plurality of textual terms; ranking the textual terms in accordance with the weights of the textual terms; and in accordance with the ranking the textual terms, sending one or more of the ranked textual terms to the client system.
p-0007A non-transitory computer readable storage medium stores one or more programs configured for execution by a computer, such as a server system having one or more processors for executing programs. The one or more programs include instructions for receiving a visual query from a client system, and responding to the visual query by: generating a set of image feature values for the visual query; mapping the set of image feature values to a plurality of textual terms, including a weight for each of the textual terms in the plurality of textual terms; ranking the textual terms in accordance with the weights of the textual terms; and in accordance with the ranking the textual terms, sending one or more of the ranked textual terms to the client system.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0008<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram illustrating a computer network that includes a visual query server system.
p-0009<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram illustrating a client system, in accordance with some embodiments.
p-0010<figref idrefs="DRAWINGS">FIG. 3</figref> is a block diagram illustrating a front end visual query processing server system, in accordance with some embodiments.
p-0011<figref idrefs="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an image to terms search system utilized to process a visual query, in accordance with some embodiments.
p-0012<figref idrefs="DRAWINGS">FIG. 5</figref> is a flow diagram illustrating a process for training image relevance models by mapping image features to textual terms, in accordance with some embodiments.
p-0013<figref idrefs="DRAWINGS">FIG. 6</figref> is a block diagram illustrating exemplary data structures for training image relevance models by mapping image features to textual terms, in accordance with some embodiments.
p-0014<figref idrefs="DRAWINGS">FIG. 7</figref> is a flow diagram illustrating a process for determining one or more textual terms in response to a visual query, in accordance with some embodiments.
p-0015<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates a client system with a screen shot of an exemplary visual query, in accordance with some embodiments.
p-0016<figref idrefs="DRAWINGS">FIG. 9</figref> illustrates a screen shot of an interactive results document and visual query displayed concurrently with a list of textual terms, in accordance with some embodiments.
p-0017<figref idrefs="DRAWINGS">FIG. 10</figref> illustrates a screen shot of a list of textual terms displayed concurrently with corresponding images, in accordance with some embodiments.
p-0018<figref idrefs="DRAWINGS">FIG. 11</figref> illustrates a client system with a screen shot of an interactive results document with labels, in accordance with some embodiments.
p-0019Like reference numerals refer to corresponding parts throughout the drawings.
DESCRIPTION OF EMBODIMENTS
p-0020Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to one of ordinary skill in the art that various embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
p-0021It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without changing the meaning of the description, so long as all occurrences of the “first contact” are renamed consistently and all occurrences of the second contact are renamed consistently. The first contact and the second contact are both contacts, but they are not the same contact.
p-0022The terminology used in the description of the embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the claims. As used in the description of the embodiments and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
p-0023As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if (a stated condition or event) is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting (the stated condition or event)” or “in response to detecting (the stated condition or event),” depending on the context.
p-0024<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram illustrating a computer network that includes a visual query server system according to some embodiments. The computer network <b>100</b> includes one or more client systems <b>102</b> and a visual query server system <b>106</b>. One or more communications networks <b>104</b> interconnect these components. The communications network <b>104</b> may be any of a variety of networks, including local area networks (LAN), wide area networks (WAN), wireless networks, wireline networks, the Internet, or a combination of such networks.
p-0025The client system <b>102</b> includes a client application <b>108</b>, which is executed by the client system, for receiving a visual query (e.g., visual query <b>802</b> of <figref idrefs="DRAWINGS">FIG. 8</figref>). A visual query is an image that is submitted as a query to a search engine or search system. Examples of visual queries, without limitations include photographs, scanned documents and images, and drawings. In some embodiments, the client application <b>108</b> is selected from the set consisting of a search application, a search engine plug-in for a browser application, and a search engine extension for a browser application. In some embodiments, the client application <b>108</b> is an “omnivorous” search box, which allows a user to drag and drop any format of image into the search box to be used as the visual query.
p-0026A client system <b>102</b> sends queries to and receives data from the visual query server system <b>106</b>. The client system <b>102</b> may be any computer or other device that is capable of communicating with the visual query server system <b>106</b>. Examples include, without limitation, desktop and notebook computers, mainframe computers, server computers, mobile devices such as mobile phones and personal digital assistants, network terminals, and set-top boxes.
p-0027The visual query server system <b>106</b> includes a front end visual query processing server <b>110</b>. The front end server <b>110</b> receives a visual query from the client <b>102</b>, and sends the visual query to a plurality of parallel search systems <b>112</b> for simultaneous processing. The search systems <b>112</b> each implement a distinct visual query search process and access their corresponding databases <b>114</b> as necessary to process the visual query by their distinct search process. For example, a face recognition search system <b>112</b>-A will access a facial image database <b>114</b>-A to look for facial matches to the image query. If the visual query contains a face, the facial recognition search system <b>112</b>-A will return one or more search results (e.g., names, matching faces, etc.) from the facial image database <b>114</b>-A. In another example, the optical character recognition (OCR) search system <b>112</b>-B, converts any recognizable text in the visual query into text for return as one or more search results. In the optical character recognition (OCR) search system <b>112</b>-B, an OCR database <b>114</b>-B may be accessed to recognize particular fonts or text patterns.
p-0028Any number of parallel search systems <b>112</b> may be used. Some examples include a facial recognition search system <b>112</b>-A, an OCR search system <b>112</b>-B, an image-to-terms search system <b>112</b>-C (which may recognize an object or an object category), a product recognition search system (which may be configured to recognize 2-D images such as book covers and CDs and may also be configured to recognized 3-D images such as furniture), bar code recognition search system (which recognizes 1D and 2D style bar codes), a named entity recognition search system, landmark recognition (which may configured to recognize particular famous landmarks like the Eiffel Tower and may also be configured to recognize a corpus of specific images such as billboards), place recognition aided by geo-location information provided by a GPS receiver in the client system <b>102</b> or mobile phone network, a color recognition search system, and a similar image search system (which searches for and identifies images similar to a visual query). Further search systems can be added as additional parallel search systems, represented in <figref idrefs="DRAWINGS">FIG. 1</figref> by system <b>112</b>-N. All of the search systems, except the OCR search system, are collectively defined herein as search systems performing an image-match process. All of the search systems including the OCR search system are collectively referred to as query-by-image search systems. In some embodiments, the visual query server system <b>106</b> includes a facial recognition search system <b>112</b>-A, an OCR search system <b>112</b>-B, an image-to-terms search system <b>114</b>-C, and at least one other query-by-image search system <b>112</b>.
p-0029The parallel search systems <b>112</b> each individually process the visual search query and return their results to the front end server system <b>110</b>. In some embodiments, the front end server <b>100</b> may perform one or more analyses on the search results such as one or more of: aggregating the results into a compound document, choosing a subset of results to display, and ranking the results as will be explained in more detail with regard to <figref idrefs="DRAWINGS">FIG. 3</figref>. The front end server <b>110</b> communicates the search results to the client system <b>102</b>.
p-0030The client system <b>102</b> presents the one or more search results to the user. The results may be presented on a display, by an audio speaker, or any other means used to communicate information to a user. The user may interact with the search results in a variety of ways. In some embodiments, the user's selections, annotations, and other interactions with the search results are transmitted to the visual query server system <b>106</b> and recorded along with the visual query in a query and annotation database <b>116</b>. Information in the query and annotation database can be used to improve visual query results. In some embodiments, the information from the query and annotation database <b>116</b> is periodically pushed to the parallel search systems <b>112</b>, which incorporate any relevant portions of the information into their respective individual databases <b>114</b>.
p-0031The computer network <b>100</b> optionally includes a term query server system <b>118</b>, for performing searches in response to term queries. A term query is a query containing one or more terms, as opposed to a visual query which contains an image. The term query server system <b>118</b> may be used to generate search results that supplement information produced by the various search engines in the visual query server system <b>106</b>. The results returned from the term query server system <b>118</b> may include any format. The term query server system <b>118</b> may include textual documents, images, video, etc. While term query server system <b>118</b> is shown as a separate system in <figref idrefs="DRAWINGS">FIG. 1</figref>, optionally the visual query server system <b>106</b> may include a term query server system <b>118</b>.
p-0032Additional information about the operation of the visual query server system <b>106</b> is provided below with respect to the flowcharts in <figref idrefs="DRAWINGS">FIGS. 5 and 7</figref>.
p-0033<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram illustrating a client system <b>102</b> in accordance with some embodiments. The client system <b>102</b> typically includes one or more processing units (CPU's) <b>202</b>, one or more network or other communications interfaces <b>204</b>, memory <b>212</b>, and one or more communication buses <b>214</b> for interconnecting these components. The communication buses <b>214</b> optionally include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. The client system <b>102</b> includes a user interface <b>205</b>. The user interface <b>205</b> includes a display device <b>206</b> and optionally includes an input means such as a keyboard, mouse, or other input buttons <b>208</b>. Alternatively or in addition the display device <b>206</b> includes a touch sensitive surface <b>209</b>, in which case the display <b>206</b>/<b>209</b> is a touch sensitive display. In client systems that have a touch sensitive display <b>206</b>/<b>209</b>, a physical keyboard is optional (e.g., a soft keyboard may be displayed when keyboard entry is needed). Furthermore, some client systems use a microphone and voice recognition to supplement or replace the keyboard. Optionally, the client <b>102</b> includes a GPS (global positioning satellite) receiver, or other location detection apparatus <b>207</b> for determining the location of the client system <b>102</b>. In some embodiments, visual query search services are provided that require the client system <b>102</b> to provide the visual query server system to receive location information indicating the location of the client system <b>102</b>.
p-0034The client system <b>102</b> also includes an image capture device <b>210</b> such as a camera or scanner. Memory <b>212</b> includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory <b>212</b> may optionally include one or more storage devices remotely located from the CPU(s) <b>202</b>. Memory <b>212</b>, or alternately the non-volatile memory device(s) within memory <b>212</b>, comprises a non-transitory computer readable storage medium. In some embodiments, memory <b>212</b> or the computer readable storage medium of memory <b>212</b> stores the following programs, modules and data structures, or a subset thereof: <ul><li id="ul0001-0001" num="0000"><ul><li id="ul0002-0001" num="0034">an operating system <b>216</b> that includes procedures for handling various basic system services and for performing hardware dependent tasks;</li><li id="ul0002-0002" num="0035">a network communication module <b>218</b> that is used for connecting the client system <b>102</b> to other computers via the one or more communication network interfaces <b>204</b> (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;</li><li id="ul0002-0003" num="0036">a image capture module <b>220</b> for processing a respective image captured by the image capture device/camera <b>210</b>, where the respective image may be sent (e.g., by a client application module) as a visual query to the visual query server system;</li><li id="ul0002-0004" num="0037">one or more client application modules <b>222</b> for handling various aspects of querying by image, including but not limited to: a query-by-image submission module <b>224</b> for submitting visual queries to the visual query server system; optionally a region of interest selection module <b>225</b> that detects a selection (such as a gesture on the touch sensitive display <b>206</b>/<b>209</b>) of a region of interest in an image and prepares that region of interest as a visual query; a results browser <b>226</b> for displaying the results of the visual query; and optionally an annotation module <b>228</b> with optional modules for structured annotation text entry <b>230</b> such as filling in a form or for freeform annotation text entry <b>232</b>, which can accept annotations from a variety of formats, and an image region selection module <b>234</b> (sometimes referred to herein as a result selection module) which allows a user to select a particular sub-portion of an image for annotation;</li><li id="ul0002-0005" num="0038">an optional content authoring application(s) <b>236</b> that allow a user to author a visual query by creating or editing an image rather than just capturing one via the image capture device <b>210</b>; optionally, one or such applications <b>236</b> may include instructions that enable a user to select a sub-portion of an image for use as a visual query;</li><li id="ul0002-0006" num="0039">an optional local image analysis module <b>238</b> that pre-processes the visual query before sending it to the visual query server system. The local image analysis may recognize particular types of images, or sub-regions within an image. Examples of image types that may be recognized by such modules <b>238</b> include one or more of: facial type (facial image recognized within visual query), bar code type (bar code recognized within visual query), and text type (text recognized within visual query); and</li><li id="ul0002-0007" num="0040">additional optional client applications <b>240</b> such as an email application, a phone application, a browser application, a mapping application, instant messaging application, social networking application etc. In some embodiments, the application corresponding to an appropriate actionable search result can be launched or accessed when the actionable search result is selected.</li></ul></li></ul>
p-0035Optionally, the image region selection module <b>234</b> which allows a user to select a particular sub-portion of an image for annotation, also allows the user to choose a search result as a “correct” hit without necessarily further annotating it. For example, the user may be presented with a top N number of facial recognition matches and may choose the correct person from that results list. For some search queries, more than one type of result will be presented, and the user will choose a type of result. For example, the image query may include a person standing next to a tree, but only the results regarding the person is of interest to the user. Therefore, the image selection module <b>234</b> allows the user to indicate which type of image is the “correct” type—i.e., the type he is interested in receiving. The user may also wish to annotate the search result by adding personal comments or descriptive words using either the annotation text entry module <b>230</b> (for filling in a form) or freeform annotation text entry module <b>232</b>.
p-0036In some embodiments, the optional local image analysis module <b>238</b> is a portion of the client application (<b>108</b>, <figref idrefs="DRAWINGS">FIG. 1</figref>). Furthermore, in some embodiments the optional local image analysis module <b>238</b> includes one or more programs to perform local image analysis to pre-process or categorize the visual query or a portion thereof. For example, the client application <b>222</b> may recognize that the image contains a bar code, a face, or text, prior to submitting the visual query to a search engine. In some embodiments, when the local image analysis module <b>238</b> detects that the visual query contains a particular type of image, the module asks the user if they are interested in a corresponding type of search result. For example, the local image analysis module <b>238</b> may detect a face based on its general characteristics (i.e., without determining which person's face) and provides immediate feedback to the user prior to sending the query on to the visual query server system. It may return a result like, “A face has been detected, are you interested in getting facial recognition matches for this face?” This may save time for the visual query server system (<b>106</b>, <figref idrefs="DRAWINGS">FIG. 1</figref>). For some visual queries, the front end visual query processing server (<b>110</b>, <figref idrefs="DRAWINGS">FIG. 1</figref>) only sends the visual query to the search system <b>112</b> corresponding to the type of image recognized by the local image analysis module <b>238</b>. In other embodiments, the visual query to the search system <b>112</b> may send the visual query to all of the search systems <b>112</b>A-N, but will rank results from the search system <b>112</b> corresponding to the type of image recognized by the local image analysis module <b>238</b>. In some embodiments, the manner in which local image analysis impacts on operation of the visual query server system depends on the configuration of the client system, or configuration or processing parameters associated with either the user or the client system. Furthermore, the actual content of any particular visual query and the results produced by the local image analysis may cause different visual queries to be handled differently at either or both the client system and the visual query server system.
p-0037In some embodiments, bar code recognition is performed in two steps, with analysis of whether the visual query includes a bar code performed on the client system at the local image analysis module <b>238</b>. Then the visual query is passed to a bar code search system only if the client determines the visual query is likely to include a bar code. In other embodiments, the bar code search system processes every visual query.
p-0038<figref idrefs="DRAWINGS">FIG. 3</figref> is a block diagram illustrating a front end visual query processing server system <b>110</b> in accordance with some embodiments. The front end server <b>110</b> typically includes one or more processing units (CPU's) <b>302</b>, one or more network or other communications interfaces <b>304</b>, memory <b>312</b>, and one or more communication buses <b>314</b> for interconnecting these components. The communication buses <b>314</b> optionally include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. Memory <b>312</b> includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory <b>312</b> may optionally include one or more storage devices remotely located from the CPU(s) <b>302</b>. Memory <b>312</b>, or alternately the non-volatile memory device(s) within memory <b>312</b>, comprises a non-transitory computer readable storage medium. In some embodiments, memory <b>312</b> or the computer readable storage medium of memory <b>312</b> stores the following programs, modules and data structures, or a subset thereof: <ul><li id="ul0003-0001" num="0000"><ul><li id="ul0004-0001" num="0045">an operating system <b>316</b> that includes procedures for handling various basic system services and for performing hardware dependent tasks;</li><li id="ul0004-0002" num="0046">a network communication module <b>318</b> that is used for connecting the front end server system <b>110</b> to other computers via the one or more communication network interfaces <b>304</b> (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;</li><li id="ul0004-0003" num="0047">a query manager <b>320</b> for handling the incoming visual queries from the client system <b>102</b> and sending them to two or more parallel search systems; as described elsewhere in this document, in some special situations a visual query may be directed to just one of the search systems, such as when the visual query includes an client-generated instruction (e.g., “facial recognition search only”);</li><li id="ul0004-0004" num="0048">a results filtering module <b>322</b> for optionally filtering the results from the one or more parallel search systems and sending the top or “relevant” results to the client system <b>102</b> for presentation;</li><li id="ul0004-0005" num="0049">a results ranking and formatting module <b>324</b> for optionally ranking the results from the one or more parallel search systems and for formatting the results for presentation;</li><li id="ul0004-0006" num="0050">a results document creation module <b>326</b>, is used when appropriate, to create an interactive search results document; module <b>326</b> may include sub-modules, including but not limited to a bounding box creation module <b>328</b> and a link creation module <b>330</b>;</li><li id="ul0004-0007" num="0051">a label creation module <b>331</b> for creating labels that are visual identifiers of respective sub-portions of a visual query.</li><li id="ul0004-0008" num="0052">an annotation module <b>332</b> for receiving annotations from a user and sending them to an annotation database <b>116</b>;</li><li id="ul0004-0009" num="0053">an actionable search results module <b>338</b> for generating, in response to a visual query, one or more actionable search result elements, each configured to launch a client-side action; examples of actionable search result elements are buttons to initiate a telephone call, to initiate email message, to map an address, to make a restaurant reservation, and to provide an option to purchase a product; and</li><li id="ul0004-0010" num="0054">a query and annotation database <b>116</b> which comprises the database itself <b>334</b> and an index to the database <b>336</b>.</li></ul></li></ul>
p-0039The results ranking and formatting module <b>324</b> ranks the results returned from the one or more parallel search systems (<b>112</b>-A-<b>112</b>-N, <figref idrefs="DRAWINGS">FIG. 1</figref>). As already noted above, for some visual queries, only the results from one search system may be relevant. In such an instance, only the relevant search results from that one search system are ranked. For some visual queries, several types of search results may be relevant. In these instances, in some embodiments, the results ranking and formatting module <b>324</b> ranks all of the results from the search system having the most relevant result (e.g., the result with the highest relevance score) above the results for the less relevant search systems. In other embodiments, the results ranking and formatting module <b>324</b> ranks a top result from each relevant search system above the remaining results. In some embodiments, the results ranking and formatting module <b>324</b> ranks the results in accordance with a relevance score computed for each of the search results. For some visual queries, augmented textual queries are performed in addition to the searching on parallel visual search systems. In some embodiments, when textual queries are also performed, their results are presented in a manner visually distinctive from the visual search system results.
p-0040The results ranking and formatting module <b>324</b> also formats the results. In some embodiments, the results are presented in a list format. In some embodiments, the results are presented by means of an interactive results document. In some embodiments, both an interactive results document and a list of results are presented. In some embodiments, the type of query dictates how the results are presented. For example, if more than one searchable subject is detected in the visual query, then an interactive results document is produced, while if only one searchable subject is detected the results will be displayed in list format only.
p-0041The label creation module is used to create labels for one or more images in the visual query. In some embodiments, when one or more textual terms are determined to correspond to one or more images in a visual query, the label creation module <b>331</b> uses the terms to label the image(s) in the visual query. In some embodiments, when the user clicks on the label, a term based query is launched for the term. In other embodiments, the labels are links to the results for a term based query associated with labeled term. In these embodiments, the labels are part of an interactive results document explained below.
p-0042The results document creation module <b>326</b> is used to create an interactive search results document (an example of which is shown in <figref idrefs="DRAWINGS">FIG. 11</figref>.). The interactive search results document may have one or more detected and searched subjects. The bounding box creation module <b>328</b> creates a bounding box around one or more of the searched subjects. The bounding boxes may be rectangular boxes, or may outline the shape(s) of the subject(s). The link creation module <b>330</b> creates links to search results associated with their respective subject in the interactive search results document. In some embodiments, the subject searched is associated with one or more textual terms corresponding to an image in a visual query. In some embodiments, clicking within the bounding box area activates the corresponding link inserted by the link creation module.
p-0043The query and annotation database <b>116</b> contains information that can be used to improve visual query results. In some embodiments, the user may annotate the image after the visual query results have been presented. Furthermore, in some embodiments the user may annotate the image before sending it to the visual query search system. Pre-annotation may help the visual query processing by focusing the results, or running text based searches on the annotated words in parallel with the visual query searches. In some embodiments, annotated versions of a picture can be made public (e.g., when the user has given permission for publication, for example by designating the image and annotation(s) as not private), so as to be returned as a potential image match hit. For example, if a user takes a picture of a flower and annotates the image by giving detailed genus and species information about that flower, the user may want that image to be presented to anyone who performs a visual query research looking for that flower. In some embodiments, the information from the query and annotation database <b>116</b> is periodically pushed to the parallel search systems <b>112</b>, which incorporate relevant portions of the information (if any) into their respective individual databases <b>114</b>.
p-0044<figref idrefs="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an image-to-terms search system <b>112</b>-C utilized to process a visual query in accordance with some embodiments. In some embodiments, the image-to-terms search system recognizes objects (instance recognition) in the visual query. In other embodiments, the image-to-terms search system recognizes object categories (type recognition) in the visual query. In some embodiments, the image to terms system recognizes both objects and object-categories. The image-to-terms search system returns potential term matches for images in the visual query. The image-to-terms search system <b>112</b>-C typically includes one or more processing units (CPU's) <b>402</b>, one or more network or other communications interfaces <b>404</b>, memory <b>412</b>, and one or more communication buses <b>414</b> for interconnecting these components. The communication buses <b>414</b> optionally include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. Memory <b>412</b> includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory <b>412</b> may optionally include one or more storage devices remotely located from the CPU(s) <b>402</b>. Memory <b>412</b>, or alternately the non-volatile memory device(s) within memory <b>412</b>, comprises a non-transitory computer readable storage medium. In some embodiments, memory <b>412</b> or the computer readable storage medium of memory <b>412</b> stores the following programs, modules and data structures, or a subset thereof: <ul><li id="ul0005-0001" num="0000"><ul><li id="ul0006-0001" num="0061">an operating system <b>416</b> that includes procedures for handling various basic system services and for performing hardware dependent tasks;</li><li id="ul0006-0002" num="0062">a network communication module <b>418</b> that is used for connecting the image-to-terms search system <b>112</b>-C to other computers via the one or more communication network interfaces <b>404</b> (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;</li><li id="ul0006-0003" num="0063">an image features identifier <b>419</b> for extracting image feature values from the visual query and other images;</li><li id="ul0006-0004" num="0064">a image-to-terms search application <b>420</b> that maps image feature values from the visual query to one or more terms using image relevance models from image relevance model database <b>422</b>;</li><li id="ul0006-0005" num="0065">an image relevance model database <b>422</b> for storing image relevance models for textual queries, and which can be searched by the image-to-terms search application <b>420</b> to find terms relevant to a visual query;</li><li id="ul0006-0006" num="0066">a results ranking and formatting module <b>424</b> for ranking terms relevant to a visual query identified in the image-to-terms search application <b>420</b>;</li><li id="ul0006-0007" num="0067">a optional terms-to-image search application <b>425</b> for searching for images in response to textual queries from text-based query search engine <b>406</b> and logging such searches; and</li><li id="ul0006-0008" num="0068">an annotation module <b>426</b> for receiving annotation information from an annotation database (<b>116</b>, <figref idrefs="DRAWINGS">FIG. 1</figref>) determining if any of the annotation information is relevant to the image-to terms search system <b>112</b>-C and storing any determined relevant portions of the annotation information into the respective annotation database <b>428</b>.</li></ul></li></ul>
p-0045<figref idrefs="DRAWINGS">FIGS. 2-4</figref> are intended more as functional descriptions of various features present in a set of computer systems than as a structural schematic of the embodiments described herein. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated. For example, some items shown separately in these figures could be implemented on single servers and single items could be implemented by one or more servers. The actual number of systems used to implement visual query processing and how features are allocated among them will vary from one implementation to another.
p-0046Each of the methods described herein is typically governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more processors of one or more servers or clients. The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various embodiments. Each of the operations shown in <figref idrefs="DRAWINGS">FIGS. 5-10</figref> may correspond to instructions stored in a computer memory or non-transitory computer readable storage medium.
p-0047<figref idrefs="DRAWINGS">FIG. 5</figref> is a flow diagram illustrating a process for training image relevance models by mapping image features to textual terms, in accordance with some embodiments. Each of the operations shown in <figref idrefs="DRAWINGS">FIG. 5</figref> may correspond to instructions stored in a computer memory or computer readable storage medium.
p-0048Logs or records of textual queries for image results are accessed (<b>502</b>). Image-to-terms server <b>112</b>-C accesses logs of textual searches for images (e.g., logs generated by terms-to-image search application <b>425</b>). The logs include information on the query terms used for image searches, and for each query term, the images that were selected by the users from the search results.
p-0049Top N query terms in the logs are identified (<b>504</b>). N unique query terms used in image queries, or N image queries, as documented in the logs accessed in operation <b>502</b>, are identified, where N is an integer. N is generally greater than 100. In some embodiments, N is an integer in the range of 5,000 to 30,000. In some embodiments, the N query terms are identified based on number of appearances in the logs; the N query terms that are identified are the terms that appear most often in image queries, as documented in the logs, over the span of a defined time period (e.g., three months).
p-0050For each query term of the top N query terms, representative images are identified (<b>506</b>). In some embodiments, the representative images for a respective query term are a predefined number of top images (e.g., highest ranked images based on relevance to the query) in search results for a textual search for images using the respective query term as the query. For example, a search for images using the respective query term is performed in the terms-to-image search application <b>425</b>, and a top subset of the results of the search are identified. In some other embodiments, the representative images are the images that were selected by users most often from search results for image searches using the respective query term, as documented in the logs accessed in operation <b>502</b>.
p-0051For each representative image, relevant image feature values are extracted (<b>508</b>). For example, the image features identifier <b>419</b> may extract image feature values for a respective representative image. In some embodiments, an image feature value is a visual characteristic of a portion of the image. Examples of image feature values include color histogram values, intensity values, an edge statistic, texture values, and so forth. Further details on extracting image feature values are disclosed in U.S. patent application Ser. No. 12/505,287, titled “Image Relevance Model,” filed Jul. 17, 2009, now U.S. Pat. No. 8,515,212, which is incorporated by reference herein in its entirety.
p-0052Machine learning is applied to generate an image relevance model for each of the top N query terms (<b>510</b>). In some embodiments, the image relevance model is a vector of weights representing the relative importance of corresponding image features to a query term (<b>512</b>). For a respective query term, machine learning is applied to the extracted image feature values of the representative images for the respective query term to train (and generate) an image relevance model for the respective query term. In some embodiments, the image relevance model is implemented as a passive-aggressive model for image retrieval (PAMIR), an example of which is disclosed in D. Grangier and S. Bengio, “A Discriminative Kernel-Based Model to Rank Images from Text Queries,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 30 (2008), pp. 1371-1384, which is incorporated by reference herein in its entirety as background information. Further details on training and generating the image relevance model is described in U.S. patent application Ser. No. 12/505,287, titled “Image Relevance Model,” filed Jul. 17, 2009, now U.S. Pat. No. 8,515,212, which is incorporated by reference above.
p-0053Image relevance models for the top N query terms are combined to produce a matrix for mapping a visual query's image feature vector to N (query term, score) pairs (<b>514</b>). Each image relevance model vector for a respective query term becomes a row in a matrix of N rows for mapping a visual query's image feature vector to N (query term, score) pairs.
p-0054<figref idrefs="DRAWINGS">FIG. 6</figref> is a block diagram illustrating exemplary data structures for training image relevance models by mapping image features to textual terms, in accordance with some embodiments. A log of query terms to image result selections <b>601</b> includes, for a query term X <b>602</b>, one or more records <b>604</b> of image search results selected by users for the query term X. A record <b>604</b> includes an identifier and location of the image (e.g., the filename and Universal Resource Locator of the image, respectively) and data regarding the date of selection. From the records <b>604</b>, a number of representative images are identified for query term X <b>602</b>.
p-0055For a representative image, say Image <b>1</b><b>606</b>, the image feature values <b>608</b> are extracted/identified and a vector <b>605</b> representing the image features is generated.
p-0056For Query Term X <b>602</b>, an image relevance model vector <b>610</b> with image feature weights <b>612</b> is generated and initialized. The image relevance model vector <b>610</b> is trained using the image feature vectors <b>605</b> of the representative images for Query Term X <b>602</b>.
p-0057Trained image relevance model vectors <b>610</b> for different query terms are combined into a matrix of image relevance models <b>614</b>. As described below, matrix <b>614</b> is used to identify one or more textual terms in response to a visual query.
p-0058<figref idrefs="DRAWINGS">FIG. 7</figref> is a flow diagram illustrating a process <b>700</b> for determining one or more textual terms in response to a visual query, in accordance with some embodiments. Each of the operations shown in <figref idrefs="DRAWINGS">FIG. 7</figref> typically corresponds to instructions stored in a computer memory or non-transitory computer readable storage medium.
p-0059The visual query server system receives a visual query from a client system (<b>702</b>). The client system, for example, may be a desktop computing device, a mobile device, or another similar device as explained with reference to <figref idrefs="DRAWINGS">FIG. 1</figref>. An example visual query on an example client system is shown in <figref idrefs="DRAWINGS">FIG. 8</figref>.
p-0060The visual query is an image document of any suitable format. For example, the visual query can be a photograph, a screen shot, a scanned image, or a frame or a sequence of multiple frames of a video. In some embodiments, the visual query is a drawing produced by a content authoring program (<b>236</b>, <figref idrefs="DRAWINGS">FIG. 2</figref>). As such, in some embodiments, the user “draws” the visual query, while in other embodiments the user scans or photographs the visual query. Some visual queries are created using an image generation application such as ADOBE ACROBAT, a photograph editing program, a drawing program, or an image editing program. For example, a visual query could come from a user taking a photograph of his friend on his mobile phone and then submitting the photograph as the visual query to the server system. The visual query could also come from a user scanning a page of a magazine, or taking a screen shot of a webpage on a desktop computer and then submitting the scan or screen shot as the visual query to the server system. In some embodiments, the visual query is submitted to the server system <b>106</b> through a search engine extension of a browser application, through a plug-in for a browser application, or by a search application executed by the client system <b>102</b>. Visual queries may also be submitted by other application programs (executed by a client system) that support or generate images which can be transmitted to a remotely located server by the client system.
p-0061The visual query can be a combination of text and non-text elements. For example, a query could be a scan of a magazine page containing images and text, such as a person standing next to a road sign. A visual query can include an image of a person's face, whether taken by a camera embedded in the client system or a document scanned by or otherwise received by the client system. A visual query can also be a scan of a document containing only text. The visual query can also be an image of numerous distinct subjects, such as several birds in a forest, a person and an object (e.g., car, park bench, etc.), a person and an animal (e.g., pet, farm animal, butterfly, etc.). Visual queries may have two or more distinct elements. For example, a visual query could include a barcode and an image of a product or product name on a product package. For example, the visual query could be a picture of a book cover that includes the title of the book, cover art, and a bar code. In some instances, one visual query will produce two or more distinct search results corresponding to different portions of the visual query, as discussed in more detail below.
p-0062The visual query server system responds to the visual query by generating a set of image feature values for the visual query (<b>704</b>). The visual query server system identifies a set of image features in the visual query and generates a set of values for the image features in the visual query. Each image feature value represents a distinct image characteristic of the visual query. Examples of the generation image feature values are described in U.S. patent application Ser. No. 12/505,287, titled “Image Relevance Model,” filed Jul. 17, 2009, now U.S. Pat. No. 8,515,212, which is incorporated by reference above. In some embodiments, the set of image feature values includes color histogram values, intensity values, and an edge statistic (<b>706</b>). Other examples of image feature values include texture and other characteristics of a portion of an image. In some embodiments, the set of image feature values includes more feature values or less feature values than as described above.
p-0063The visual query server system maps the set of image feature values to a plurality of textual terms, including a weight for each of the textual terms in the plurality of textual terms (<b>708</b>). In some embodiments, the plurality of textual terms is the top N query terms or top N image queries described above with reference to <figref idrefs="DRAWINGS">FIG. 5</figref>. A respective textual term is a phrase, multiple words, or a single word. The mapping yields a weight or score for each of the plurality of textual terms with respect to the visual query. The weight or score is a relevance measure of the visual query to a respective textual term.
p-0064In some embodiments, the mapping utilizes a set of image relevance models, each model corresponding to a predefined textual term (<b>710</b>). The image relevance model for a textual term is a vector of weights representing the relative importance of a corresponding image feature used in determining whether an image is relevant to the textual term. In some embodiments, the predefined textual terms are the top N query terms, and each model in the set of image relevance models correspond to a respective top N query term.
p-0065In some embodiments, the set of image feature values for the visual query comprises an image features vector of the image feature values; and the mapping includes multiplying the image features vector by a matrix of image relevance models, each row of the matrix corresponding to a predefined textual term (<b>712</b>). Stated another way, the set of image feature values is represented by a vector of the values, and the image feature values vector is multiplied with a matrix of image relevance models, where each row in the matrix is a image relevance model vector corresponding to a query term, an example of which is described above with reference to <figref idrefs="DRAWINGS">FIGS. 5-6</figref>. The resulting product is a set of weights or scores for each of the plurality of textual terms with respect to the visual query.
p-0066The visual query server system ranks the textual terms in accordance with the weights of the textual terms (<b>714</b>). For example, the textual terms are ordered by their weights.
p-0067The visual query server system sends one or more of the ranked textual terms to the client system in accordance with the ranking the textual terms (<b>716</b>). In some embodiments, the textual terms that are weighted or scored the highest with respect to the visual query, in accordance with the weights or scores calculated from the mapping described above, are sent to the client system for display to the user, an example of which is described below.
p-0068In some embodiments, the visual query server system sends to the client system one or more images associated with the ranked textual terms (<b>718</b>) that are sent to the client system. Stated another way, the visual query server system sends, along with the ranked terms, images associated with the ranked terms to the client system. In some implementations, at the client system, a textual term is displayed with an associated image received from the visual query server system. An example of the resulting display at the client system is described below with reference to <figref idrefs="DRAWINGS">FIG. 10</figref>.
p-0069In some cases, one or more of the images associated with the ranked textual terms have image feature values similar to the image feature values identified for the visual query (<b>720</b>). For example, images associated with a ranked textual term are identified from a search for images using the ranked textual term (e.g., using terms-to-image search application <b>425</b>). A set of best images associated with the ranked textual terms are selected by the visual query server system in accordance with a metric of similarity between their image feature values and the image feature values of the visual query. One example of such a metric of similarity is a dot product of the image feature values of candidate images with the image feature values of the visual query. For each top ranked textual term, one or more images having the highest metric of similarity (e.g., dot product) is selected.
p-0070In some embodiments, in response to user selection of a term of the ranked textual terms, a textual query search on the selected term is performed (<b>722</b>). For example, a user may click on one of the displayed ranked textual terms, and in response a textual search using the selected textual term as the query term is performed (e.g., by term query server system <b>118</b>). The returned search results may include web pages, videos, news articles, etc. that satisfy (e.g., that match, or best match) the textual term query.
p-0071In some embodiments, the visual query server system sends to the client system an interactive results document that includes one or more visual identifiers of respective sub-portions of the visual query, and also includes, for each visual identifier in at least a subset of the visual identifiers, at least one user selectable link comprising a respective textual term of the ranked textual terms (<b>724</b>). For example, the visual query server system sends to the client the visual query image with visual identifiers of particular sub-regions overlaid on the visual query image. In some implementations, one or more of the visual identifiers is a user selectable link that is displayed as the corresponding textual term. When the user selectable link is selected by the user, a textual search using the selected textual term as the query term is performed in response. An example of an interactive results document with visual identifiers of respective sub-portions of the visual query is described below with reference to <figref idrefs="DRAWINGS">FIG. 11</figref>.
p-0072<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates a client system <b>102</b> with a screen shot of an exemplary visual query <b>802</b>, in accordance with some embodiments. The client system <b>102</b> shown in <figref idrefs="DRAWINGS">FIG. 8</figref> is a mobile device such as a cellular telephone, portable music player, or portable emailing device. The client system <b>102</b> includes a display <b>206</b> and one or more input means <b>208</b> such the buttons shown in this figure. In some embodiments, the display <b>206</b> is a touch sensitive display <b>209</b>. In embodiments having a touch sensitive display <b>209</b>, soft buttons displayed on the display <b>209</b> may optionally replace some or all of the electromechanical buttons <b>208</b>. Touch sensitive displays are also helpful in interacting with the visual query results as explained in more detail below. The client system <b>102</b> also includes an image capture mechanism such as a camera <b>210</b>.
p-0073<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates a visual query <b>802</b> which is a photograph or video frame of a package on a shelf of a store. In the embodiments described here, the visual query is a two dimensional image having a resolution corresponding to the size of the visual query in pixels in each of two dimensions. The visual query <b>802</b> in this example is a two dimensional image of three dimensional objects. The visual query <b>802</b> includes background elements, a product package <b>804</b>, and a variety of types of entities on the package including an image of a person <b>806</b>, an image of a trademark <b>808</b>, an image of a product <b>810</b>, and a variety of textual elements <b>812</b>.
p-0074As explained with reference to <figref idrefs="DRAWINGS">FIG. 7</figref>, the visual query <b>802</b> is sent to the front end server <b>110</b>, which sends the visual query <b>802</b> to a plurality of parallel search systems (<b>112</b>A-N), receives the results, and creates an interactive results document.
p-0075<figref idrefs="DRAWINGS">FIG. 9</figref> illustrates a screen shot of an interactive results document and visual query displayed concurrently with a list of textual terms, in accordance with some embodiments. The screen shot in <figref idrefs="DRAWINGS">FIG. 9</figref> shows an interactive results document <b>900</b> and the original visual query <b>802</b> displayed concurrently with a visual query results list <b>902</b>. In some embodiments, the interactive results document <b>900</b> is displayed by itself. In some other embodiments, the interactive results document <b>900</b> is displayed concurrently with the original visual query as shown in <figref idrefs="DRAWINGS">FIG. 9</figref>. In some embodiments, the list of visual query results <b>902</b> is concurrently displayed along with the original visual query <b>802</b> and/or the interactive results document <b>900</b>. The type of client system and the amount of room on the display <b>206</b> may determine whether the list of results <b>902</b> is displayed concurrently with the interactive results document <b>900</b>. In some embodiments, the client system <b>102</b> receives (in response to a visual query submitted to the visual query server system) both the list of results <b>902</b> and the interactive results document <b>900</b>, but only displays the list of results <b>902</b> when the user scrolls below the interactive results document <b>900</b>.
p-0076In <figref idrefs="DRAWINGS">FIG. 9</figref>, the list of results <b>902</b> includes a list of textual terms <b>903</b>. The list of textual terms <b>903</b> includes one or more textual term results <b>905</b>. The textual terms <b>905</b> are terms that were identified for the visual query <b>802</b> in accordance with the process described above with reference to <figref idrefs="DRAWINGS">FIGS. 7A-7B</figref>. Selection of a textual term <b>905</b> by the user (e.g., by clicking on the term) activates a textual search using the selected textual term <b>905</b> as the query.
p-0077In some embodiments, the list of results <b>902</b> also includes other search results found in response to the visual query. Examples of search results displayed in response to a visual query are disclosed in U.S. patent application Ser. No. 12/852,189, filed Aug. 6, 2010, entitled “Identifying Matching Canonical Documents in Response to a Visual Query,” which is incorporated by reference in its entirety.
p-0078In some embodiments, one or more of the textual terms <b>905</b> in textual terms list <b>903</b> are displayed with one or more accompanying images <b>1002</b>, as shown in <figref idrefs="DRAWINGS">FIG. 10</figref>. In some implementations, image <b>1002</b> is the most relevant image corresponding to textual term <b>905</b>, based on an image search using the textual term as the query. The images <b>1002</b> are images associated with the visual query <b>802</b> as a whole or with sub-portions of the visual query <b>802</b>. The pairing of textual terms <b>905</b> and accompanying images <b>1002</b> provide further context to the user as to how the textual terms <b>905</b> relate to the visual query <b>802</b> and sub-portions of the visual query <b>802</b>.
p-0079<figref idrefs="DRAWINGS">FIG. 11</figref> illustrates a client device <b>102</b> with a screen shot of an interactive results document <b>1100</b> with labels <b>1102</b> being the visual identifiers of respective sub-portions of the visual query <b>802</b> of <figref idrefs="DRAWINGS">FIG. 8</figref>, in accordance with some embodiments. The label visual identifiers <b>1102</b> each include a textual term associated with the sub-portion. The label visual identifier <b>1102</b> also includes a user selectable link (with the textual term as the anchor text) to textual search results using the textual term as the query.
p-0080In <figref idrefs="DRAWINGS">FIG. 11</figref>, the labels <b>1102</b> are displayed as partially transparent areas with text that are located over their respective sub-portions of the interactive results document. In some other embodiments, a respective label is positioned near but not located over its respective sub-portion of the interactive results document. In some embodiments, the user activates the display of the textual search results corresponding to a label <b>1102</b> by tapping on the activation region inside the space outlined by the edges or periphery of the label <b>1102</b>.
p-0081The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.
Contents5
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9824078B2 | Cited by | United States of America | Search report |
| US9910839B1 | Cited by | United States of America | Applicant |
| US2017083496A1 | Cited by | United States of America | Pre-grant |
| US11645323B2 | Cited by | United States of America | Applicant |
| US2014328536A1 | Cited by | United States of America | Pre-grant |
| US10503819B2 | Cited by | United States of America | Applicant |
| US10176198B1 | Cited by | United States of America | Search report |
| US9990346B1 | Cited by | United States of America | Applicant |
| US12147652B1 | Cited by | United States of America | Applicant |
| US11907739B1 | Cited by | United States of America | Search report |
| US10007679B2 | Cited by | United States of America | Applicant |
| US9104905B2 | Cited by | United States of America | Search report |
| US9372920B2 | Cited by | United States of America | Applicant |
| WO0049526A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0217166A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0242864A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| EP0942389A2 | Cites | European Patent Office (EPO) | Applicant |
| CN101375281A | Cites | China | Applicant |
| DE10245900A1 | Cites | Germany | Applicant |
| EP1769019A1 | Cites | European Patent Office (EPO) | Applicant |
| US2003065779A1 | Cites | United States of America | Applicant |
| US2005083413A1 | Cites | United States of America | Applicant |
| US2005086224A1 | Cites | United States of America | Applicant |
| US2005097131A1 | Cites | United States of America | Applicant |
| WO2005114476A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2005162523A1 | Cites | United States of America | Applicant |
| US2006020630A1 | Cites | United States of America | Applicant |
| US2006041543A1 | Cites | United States of America | Applicant |
| US2006048059A1 | Cites | United States of America | Applicant |
| WO2006070047A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2006085477A1 | Cites | United States of America | Applicant |
| WO2006137667A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2006150119A1 | Cites | United States of America | Applicant |
| US2006193502A1 | Cites | United States of America | Applicant |
| US2006253491A1 | Cites | United States of America | Applicant |
| US2007011149A1 | Cites | United States of America | Applicant |
| US2007086669A1 | Cites | United States of America | Applicant |
| US2007106721A1 | Cites | United States of America | Applicant |
| US2007143312A1 | Cites | United States of America | Applicant |
| US2007201749A1 | Cites | United States of America | Applicant |
| US2007245245A1 | Cites | United States of America | Applicant |
| US2007268392A1 | Cites | United States of America | Applicant |
| US2008031506A1 | Cites | United States of America | Applicant |
| US2008080745A1 | Cites | United States of America | Applicant |
| WO2008097051A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2008226119A1 | Cites | United States of America | Applicant |
| US2008267504A1 | Cites | United States of America | Applicant |
| US2008317339A1 | Cites | United States of America | Applicant |
| KR20090073294A | Cites | Republic of Korea | Applicant |
| US2009031244A1 | Cites | United States of America | Applicant |
| US2009060289A1 | Cites | United States of America | Applicant |
| US2009097748A1 | Cites | United States of America | Applicant |
| US2009100048A1 | Cites | United States of America | Applicant |
| US2009129571A1 | Cites | United States of America | Applicant |
| US2009237546A1 | Cites | United States of America | Applicant |
| US2009254539A1 | Cites | United States of America | Applicant |
| US2010046842A1 | Cites | United States of America | Applicant |
| US2010169770A1 | Cites | United States of America | Applicant |
| US2010205202A1 | Cites | United States of America | Search report |
| WO2011017557A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2011035406A1 | Cites | United States of America | Search report |
| US2011085057A1 | Cites | United States of America | Applicant |
| US2011131235A1 | Cites | United States of America | Search report |
| US2011282906A1 | Cites | United States of America | Search report |
| US2012093371A1 | Cites | United States of America | Search report |
| US2012134590A1 | Cites | United States of America | Search report |
| US5615384A | Cites | United States of America | Applicant |
| US5724571A | Cites | United States of America | Applicant |
| US5764799A | Cites | United States of America | Applicant |
| US5983237A | Cites | United States of America | Search report |
| US6137907A | Cites | United States of America | Applicant |
| US6182063B1 | Cites | United States of America | Applicant |
| US6363179B1 | Cites | United States of America | Applicant |
| US6408293B1 | Cites | United States of America | Applicant |
| US6594658B2 | Cites | United States of America | Applicant |
| US7113944B2 | Cites | United States of America | Applicant |
| US7421155B2 | Cites | United States of America | Applicant |
| US7668405B2 | Cites | United States of America | Applicant |
| US7917514B2 | Cites | United States of America | Applicant |
| US7934156B2 | Cites | United States of America | Applicant |
| US8452794B2 | Cites | United States of America | Search report |
| US8489589B2 | Cites | United States of America | Search report |
| Samy Bengio. "Large Scale Visual Semantic Extraction." 2011. Frontiers of Engineering Workshop. pp. 1-18. | Non-patent | – | Search report |
| Google Inc., Notice of Acceptance, AU 2010279333, Feb. 8, 2013, 3 pgs. | Non-patent | – | Applicant |
| Google Inc., Office Action, AU 2010279248, Oct. 4, 2012, 3 pgs. | Non-patent | – | Applicant |
| Google Inc., Office Action, AU 2010279248, Feb. 5, 2013, 3 pgs. | Non-patent | – | Applicant |
| Google Inc., Office Action, AU 2010279334, Jan. 31, 2013, 3 pgs. | Non-patent | – | Applicant |
| Google Inc., Office Action, AU 2010326655, Nov. 23, 2012, 3 pgs. | Non-patent | – | Applicant |
| Google Inc., Office Action, CN 201080045164.6, Feb. 8, 2013, 15 pgs. | Non-patent | – | Applicant |
| Google Inc., Office Action, EP 10742974.8, Dec. 3, 2012, 7 pgs. | Non-patent | – | Applicant |
| Petrou, Office Action, U.S. Appl. No. 12/850,483, Mar. 26, 2013, 11 pgs. | Non-patent | – | Applicant |
| Petrou, Office Action, U.S. Appl. No. 12/850,513, Jan. 25, 2013, 22 pgs. | Non-patent | – | Applicant |
| Petrou, Office Action, U.S. Appl. No. 12/851,473, Mar. 29, 2013, 34 pgs. | Non-patent | – | Applicant |
| Petrou, Office Action, U.S. Appl. No. 12/852,189, Apr. 1, 2013, 11 pgs. | Non-patent | – | Applicant |
| Petrou, Office Action, U.S. Appl. No. 12/853,188, May 8, 2013, 21 pgs. | Non-patent | – | Applicant |
| Anagnostopoulos, Information fusion meta-search interface for precise photo acquisition on the web, 25th Int. Conf. Information Technology Interfaces ITI 2003, Jun. 16-19, 2003, pp. 375-381. | Non-patent | – | Applicant |
| Anonymous, GPS Enabled Dating??, Nov. 30, 2006, 21 pgs. | Non-patent | – | Applicant |
| Anonymous, Wie erstelle ich bei StudiVZ elne Bilder-Verlinkung? (How do I create an image with StudiVZ-linking?, Aug. 20, 2008, 5 pgs. | Non-patent | – | Applicant |
| Castro, iPhoto's new Faces feature really does work!, www.pigsgourdsandwikis.com, Feb. 17, 2009, 8 pgs. | Non-patent | – | Applicant |
| Frucci, Half-Amazing, Half-Terrifying Concept App Combines Facial Recognition with Augmented Reality, Jul. 22, 2009, 2 pgs. | Non-patent | – | Applicant |
13 members in 5 offices; this record represents the family
Members13
| Document | Office | Kind | |
|---|---|---|---|
| US2014046935A1 | United States of America | A1 | |
| WO2014025592A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US8935246B2This record | United States of America | B2 | |
| CN104685501A | China | A | |
| EP2883158A1 | European Patent Office (EPO) | A1 | |
| US2015193528A1 | United States of America | A1 | |
| JP2015529908A | Japan | A | |
| US9372920B2 | United States of America | B2 | |
| JP6240916B2 | Japan | B2 | |
| CN104685501B | China | B | |
| CN108959586A | China | A | |
| EP2883158B1 | European Patent Office (EPO) | B1 | |
| CN108959586B | China | B |
92 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Response to Reasons for AllowanceREAS | REAS | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| PG-Pub RequestPG-RQST | PG-RQST | |
| Rescind Nonpublication Request for Pre Grant PublicationRESC | RESC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| Cleared by OIPE CSRL194 | L194 | |
| PGPubs nonPub RequestNPRQ | NPRQ | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 08935246
- Application
- 13570162
Titles
- English
- Identifying textual terms in response to a visual query
Patent term adjustment
- A delay
- +15 daysthe office missed an examination deadline
- Net adjustment
- 15 days
Classification
- CPC, 5
- G06F16/532
- G06F16/338
- G06F16/3334
- G06F16/5866
- G06F16/587
- IPC, 2
- G06F7 00
- G06F17 30
- USPC, 2
- 707736000
- 707758000