US20100036883A1 - Advertising using image comparison - Google Patents
Advertising using image comparison Download PDFInfo
- Publication number
- US20100036883A1 US20100036883A1 US12/535,669 US53566909A US2010036883A1 US 20100036883 A1 US20100036883 A1 US 20100036883A1 US 53566909 A US53566909 A US 53566909A US 2010036883 A1 US2010036883 A1 US 2010036883A1
- Authority
- US
- United States
- Prior art keywords
- image
- computer
- digital
- implemented method
- metrics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 136
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 59
- 238000004422 calculation algorithm Methods 0.000 description 28
- 230000009193 crawling Effects 0.000 description 22
- 230000015654 memory Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000008685 targeting Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010845 search algorithm Methods 0.000 description 4
- 230000002068 genetic effect Effects 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000010422 painting Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000721 bacterilogical effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 235000021443 coca cola Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
- G06F16/5838—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2111—Selection of the most significant subset of features by using evolutionary computational techniques, e.g. genetic algorithms
Definitions
- the subject invention relates to advertising systems and methods of advertising using images and image-to-image comparison.
- Content-based image retrieval i.e., image-to-image comparisons
- problems with the content-based image retrieval methods include the amount of time required to process the data and the accuracy of the comparison results.
- Some of the existing methods analyze the media content files (e.g., images, videos, etc.) for metadata to identify certain media patterns identical to those defined in preliminary descriptions, templates or objects (symbols, keywords, graphic patterns, audio phonemes).
- Some of these methods also recognize objects based on forms, contours, silhouettes, background, colors and other characteristics, or use graphical templates, such as “step”, “edge”, “roof”, “mountain range” or “lawn,” to recognize appropriate parts of the image.
- Another method for identifying similar images develops a template based on a group of original images, using mathematical descriptors of forms and areas of the images in the group that are significant for search.
- the mathematical descriptors are developed based on parameters of the original image, which are compared with those in the database.
- a result is given as a number which is then compared with source parameters to determine the similarity of images.
- This method still does not provide the speed of search necessary to conduct such searches in real time, because the descriptors for each group of initial images need to be changed every time a search is done, and the descriptor is then compared to all images in the database (i.e., calculate similarity parameters in the database and comparison of the source descriptor with them).
- a method includes maintaining an index of image index files, each image index file representative of a digital image of an advertisement; receiving an image query, the image query comprising a digital image; calculating an image index file representative of the digital image; comparing the image index file of the digital image with the image index files representative of the advertisements; transmitting at least one advertisement based on the comparison.
- Comparing the image index file of the digital image with the index files representative of the advertisements may include generating a similarity score for each advertisement.
- the method may further include creating a list of advertisements based on the comparison.
- the method may further include transmitting the list of advertisements to a third party server, the third party server providing the digital images of the advertisements.
- the method may further include transmitting a request for the at least one advertisement to a third party server, the third part server providing the digital image of the at least one advertisement.
- the index may further include a representation of the digital image of the advertisement.
- the digital image of the image query may be submitted by a user, and transmitting may include transmitting the at least one advertisement to the user.
- the index may further include a monosemantic descriptor for each image index file and the method may further include calculating a monosemantic descriptor for the digital image and comparing the monosemantic descriptor for the digital image with the monosemantic descriptor for each image index file before comparing the image index files.
- Calculating the monosemantic descriptor may include dividing the digital image into a plurality of cells; calculating an image descriptor for each of the plurality of cells; and aligning the image descriptor for each of the plurality of cells to calculate the monosemantic descriptor.
- the image index file may include a plurality of metrics.
- the plurality of metrics may be clustered according to a color palette of the digital image, changes in image composition of the digital image and generic representation of the digital image.
- the plurality of metrics may include color metrics, texture metrics, intensity metrics and morphology metrics.
- the plurality of metrics may include a 2D color histogram and a 4D color vector field.
- Comparing may include calculating the similarity for each of the image metrics and summing the similarity to generate a similarity score.
- Comparing may include calculating the similarity for each of the image metrics, multiplying each of the similarities by a weighting factor, and summing the weighted similarities to generate an image similarity score.
- a method includes maintaining an index of image descriptors, each image descriptor representative of a digital advertisement; receiving a user selection of a digital image; calculating an image descriptor representative of the digital image; comparing the image descriptor of the digital image with the image descriptors representative of the digital advertisements; transmitting at least a link to a webpage based on the comparison.
- the user selection may include a request to access a web page on which the digital image is located.
- the user selection may be a mouse-over of the digital image.
- the user selection may be a click-through of the digital image.
- Comparing may include generating a similarity score and wherein the link transmitted is based on the similarity score.
- the index may further include a monosemantic descriptor for each image index file and the method may further include calculating a monosemantic descriptor for the digital image and comparing the monosemantic descriptor for the digital image with the monosemantic descriptor for each image index file before comparing the image index files.
- Calculating the monosemantic descriptor may include dividing the digital image into a plurality of cells; calculating an image descriptor for each of the plurality of cells; and aligning the image descriptor for each of the plurality of cells to calculate the monosemantic descriptor.
- the image index file may include a plurality of metrics.
- the plurality of metrics may be clustered according to a color palette of the digital image, changes in image composition of the digital image and generic representation of the digital image.
- the plurality of metrics may include color metrics, texture metrics, intensity metrics and morphology metrics.
- the plurality of metrics may include a 2D color histogram and a 4D color vector field.
- the method may further include in response to the user selection of the digital image, present the user with one or more referrals selected from the group consisting of purchasing the camera that took the digital image, buying a product or service from the source of the image, buying something related to the image, and getting more information about the image or the source of the image; receiving a user selection of one of the referrals; and transmitting at least the link to the webpage based on the similarity score and based on the selected referral type.
- Transmitting at least a link to a webpage based on the similarity score may further include transmitting the digital advertisement.
- the method may further include transmitting a request for the digital advertisement to a third party server, the third part server providing the digital image of the advertisement.
- a computer system includes an index data store comprising a plurality of image index files representative of digital advertisements; a search portal to receive a digital image; and an indexing engine to calculate the image index files for each digital advertisement, calculate an image index file for the digital image and compare the image index file for the digital image with the plurality of image index files representative of digital advertisements.
- the computer system may further include an advertisement data store to store the digital advertisements corresponding to the image index files in the index data store.
- the search portal may be configured to transmit at least one of the digital advertisements in the advertisement data store based on the comparison by the indexing engine.
- the search portal may further include a user interface.
- FIG. 1 is a block diagram of a image searching system in accordance with one embodiment of the invention.
- FIG. 2 is a block diagram of an image search system in accordance with one embodiment of the invention.
- FIG. 3 is a detailed block and flow diagram of the image search system in accordance with one embodiment of the invention.
- FIG. 4 is a schematic view of indexing an image in accordance with one embodiment of the invention.
- FIG. 5 is a schematic view of generating an index file in accordance with one embodiment of the invention.
- FIG. 6 is a schematic view of image searching in accordance with one embodiment of the invention.
- FIG. 7 is a flow diagram of a process for indexing images in accordance with one embodiment of the invention.
- FIG. 8 is a detailed flow diagram of a process for indexing images in accordance with one embodiment of the invention.
- FIG. 9 is a flow diagram of a process for image searching in accordance with one embodiment of the invention.
- FIG. 10 is a detailed flow diagram of a process for image searching in accordance with one embodiment of the invention.
- FIG. 11 is a block diagram of a search and advertisement system in accordance with one embodiment of the invention.
- FIG. 12 is a flow diagram of a method for advertising using image comparison in accordance with one embodiment of the invention.
- FIG. 13 is a flow diagram of a method for advertising using image comparison in accordance with one embodiment of the invention.
- FIG. 14 is a flow diagram of a method for advertising using image comparison in accordance with one embodiment of the invention.
- FIG. 15 is a block diagram of a computer in accordance with one embodiment of the invention.
- Embodiments of the invention relate to systems and methods for indexing, registration, classification and search of non-textual information, such as digital images and video (hereinafter “images”).
- images are indexed (i.e., each image is assigned a unique numerical parameter) to identify and characterize the content of the image.
- the resulting index files are stored in a database and can be quickly searched because the index files are universal numerical files that are significantly smaller in size than their source images.
- the index files may also include link(s) to the original image.
- Embodiments of the invention also relate to systems and methods for comparison, searching and ranking of images.
- An image query is first indexed as described above to generate an image query index file.
- the image query index file is then compared with the index files stored in a database.
- a similarity score is calculated using the comparison of the index files and is used to rank the similar images.
- Advantages of the above systems and methods include universality (i.e., classification of arbitrary images as well as objects that they contain); mathematical unambiguity (i.e., creates a monosemantic descriptor, index file, for further search of similar images); location of similar images and definition of the level of similarity among the images; and, scalability and high speed of search (e.g., the algorithm can be used to build an index of all available images on large networks such as the Internet and search for similar images in real time).
- the algorithm is not affected by modifications to the image, such as a change of color, contrast, small shifts and turns of the image, distortion to image, certain changes to perspective, etc.
- FIG. 1 illustrates an exemplary system 100 for image recognition, classification, comparison and searching.
- the system 100 includes a server 104 that may communicate with computers 112 through a network 108 ( 108 a, 108 b ).
- the server 104 is configured to receive requests from computers 112 , process the requests and provide responses to the computers 112 . In addition, the server 104 is configured to send requests to the computers 112 .
- the server 104 may include one or more server computers networked to one another.
- An exemplary server is the Apache server.
- the server 104 includes a processor 116 to execute instructions, which is connected to memory 120 that stores data.
- the processor 116 executes instructions and accesses data in the memory 120 to, for example, index the images and search for similar images using the index files.
- the server 104 may be implemented with any type of hardware and software, and that the server 104 may have a different configuration than shown in FIG. 1 .
- the server 104 may include several server computers connected together.
- the network 108 may be any type of communications channel, a local area network (LAN), a wide area network (WAN), such as the Internet, direct computer connections, and the like.
- the connection may be accomplished in a wireless manner using radio frequency, infrared, or other technologies, using any type of communication hardware and protocols, through other communication mediums, such as electric cable, fiber optic cable, and/or through other technologies.
- the computers 112 access the server 104 through the network 108 a.
- the computers 112 may also communicate with one another over the network 108 b.
- the computer 112 may be a server, a personal computer, a portable computer, a hand held device, a wireless device, and the like.
- the computer may be a single device at a single location or multiple devices at a single or multiple locations that are connected together using an appropriate communication protocol over any communication medium.
- the server 104 identifies an image search result in response to image input received from any of the computers 112 and shares the search result with users located at that computer 112 over the network 108 a.
- the server 104 may include a website that is accessible by the computer 112 through a web browser located at the computer 112 over the network 108 a. The website allows the user to enter an image query at the computer 112 .
- FIG. 2 illustrates a search system 200 according to an embodiment of the invention.
- the search system 200 includes a search server 204 , a crawling data store 208 and an indexing data store 212 .
- the search system 200 accesses websites with images 216 .
- the search system 200 is also connected to a search engine user interface 220 .
- the search server 204 includes a crawler 224 , an indexing engine 228 and a search engine 232 .
- the crawling data store 208 and indexing data store 212 are storage media, e.g., storage area network (SAN), network attached storage (NAS) that may utilize volatile or non-volatile memory that includes, for example, read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices and zip drives.
- SAN storage area network
- NAS network attached storage
- volatile or non-volatile memory includes, for example, read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices and zip drives.
- the crawler 224 is a software program or software robot, which is typically used to build lists of the information found on Web sites. Another common term for the crawler 224 is a spider.
- the crawler 224 typically keeps track of the information located in its search and where the information is found.
- the crawler 224 is configured to extract the images from websites 216 .
- the crawler 224 is a universal crawler that is a program working on one or several servers of the system and going through hyperlinks of files in documents, published on the internet, searching for required information (for example, images or other media files). Examples of crawlers include Googlebot, Yahoo! Slurp, MSN Crawler and others.
- the crawler 224 forms an array of links to images for subsequent indexing and builds links for further crawling.
- the images located by the crawler 224 are stored temporarily in the crawling data store 208 . For example, the images may be stored in the crawling data store 208 until the indexing process is completed.
- the indexing engine 228 is typically a software program which is used to create an index, which is then stored in the indexing data store 212 .
- the index is typically a table of alphanumeric terms that define the images located by the crawler 224 and the location of documents corresponding to the alphanumeric terms (e.g., a link).
- the link may be a Uniform Resource Locator (URL).
- the indexing engine 228 may build a hash table, in which numerical values are attached to the images.
- the indexing engine 228 is configured to analyze the images in the crawling data store 208 to generate an index file which is stored in the indexing data store 212 .
- the indexing engine 228 may be configured to generate an index file as described below with reference to FIGS. 3-7 .
- the indexing engine 228 may also be configured to cluster the image index files that are representative of similar images as described below with reference to FIGS. 3-7 .
- the indexing engine 228 is also configured to receive an image query, index the image query and compare the index file of the image query with the index files stored in the indexing data store 212 .
- the indexing engine 228 may also be configured to determine a level of similarity between the image query and the images having index files in the indexing data store 212 .
- the search engine 232 is configured to receive image queries from the search engine user interface 220 and transmit search results from the indexing engine 228 to the user interface 220 .
- the search engine 232 provides the image query to the indexing engine 228 for indexing and comparison; in another embodiment, the search engine 232 performs the indexing and comparison; and, in other embodiments, the indexing engine 228 performs the indexing and the search engine 232 performs the comparison.
- the search engine 232 may also be configured to generate a web page with a list of images ranked according to the calculated level of similarity.
- FIG. 3 illustrates the search system and a process for crawling, indexing and searching using the search system 300 .
- the system 300 includes a crawler 304 (e.g., a general search crawler and/or specialized crawlers that may be dedicated to a specific type of data, portal, source of data, etc), a crawling database 308 , an indexing sub-system 312 , an indexing database 316 and a search portal 320 .
- a crawler 304 e.g., a general search crawler and/or specialized crawlers that may be dedicated to a specific type of data, portal, source of data, etc
- a crawling database 308 e.g., a general search crawler and/or specialized crawlers that may be dedicated to a specific type of data, portal, source of data, etc
- an indexing database 308 e.g., a general search crawler and/or specialized crawlers that may be dedicated to a specific type of data, portal, source of data, etc
- the method includes using the crawler 304 to collect images from the web pages 324 .
- the crawler 304 is configured to download the image from its host server and save the image, the image metadata and a thumbnail of the image in the crawling database.
- the crawler may be, for example, a universal data crawler, a specialized software program-agent for performing a certain defined search algorithm, etc. Specialized crawlers use specific characteristics of application interfaces of various portals, photo banks, and other data sources to locate the images.
- the crawler 304 may be scalable and may have a distributed architecture.
- the crawler 304 may include a planner 328 , page analyzer 332 and download agents 336 .
- the crawler 304 may include multiple download agents 336 that are launched and working at the same time; typically, only one instance of planner 328 is working at a given time, however, additional copies may be provided.
- the planner 328 defines strategies for site visits and includes a planner database that contains information about tasks for crawling and their status, and a queue for crawling the tasks defined by the planner 328 .
- the page analyzer 332 selects links of downloaded pages, and stores data about each site, the images on the site and their status in the crawling database 308 .
- the download agents 336 take tasks from the planner queue and download the images from the web pages.
- the download agents 336 use an application programming interface (API) provided by an existing large media archive or specialized online service to download the images.
- API application programming interface
- the download agents 336 typically save additional meta-data about the images, such as the URL of the file, the URL of the containing page, the date/time created, the date/time downloaded, etc.
- the download agents 336 may also create and save a thumbnail of the image (e.g., about 128 ⁇ 128 pixels in size).
- the indexing sub-system 312 builds an index from the images in the crawling database 308 .
- the indexing sub-system may be scalable (e.g., by adding additional servers) and may have a distributed architecture.
- the indexing sub-system 312 stores the indexed image files and may also include image thumbnails and search indexes.
- the indexing sub-system 312 includes an indexing engine 344 that selects images from the crawling database 308 , saves the metadata and thumbnail of the image in an indexing database 316 , indexes the image, optionally analyzes the image and deletes the original image from the crawling database 308 .
- the indexing engine 344 may include a representation builder 352 , a primary metric builder 356 and a clustering engine 360 .
- the representation builder 352 normalizes the original image, scales the image and transforms the image into a generic image format.
- the representation of the original image is typically about 128 ⁇ 128 pixels in size; it will be appreciated, however, that the representation may be less than or greater than 128 ⁇ 128 pixels in size.
- the primary metric builder 356 indexes the original image by analyzing the image in accordance with one or more mathematical models.
- the analysis with the mathematical model(s) calculates several metrics that numerically define various aspects of the image, such as, for example, color, intensity, texture, shapes and the like.
- the metrics may be calculated using both the original image and the representation of the image, only the original image or only the representation of the image. Examples of the types of metrics that may define the image include morphology, graininess, vertical lines, horizontal lines, curves, color, intensity and the like.
- the algorithms for calculating the metrics include, for example, 2D color histogram algorithms, 4D color vector field algorithms, and so on.
- the index file includes a plurality of metrics that define aspects of the image.
- the index file includes any value or range of values between about 129 and 135 metrics.
- the index file may include about 132 different metrics. It will be appreciated that the index file may include less than 129 metrics or more than 135 metrics.
- the size of the metrics may be any value or range of values between about 1 and 128 bits. It will be appreciated, however, that the size of the metrics may be larger than 128 bits.
- the calculated metrics are stored in an index file, which is stored in the indexing database.
- the index file is about 1.3 kb in size. It will be appreciated that the index file may be less than 1.3 kb in size or greater than 1.3 kb.
- the index file together with metadata and the representation of the image may be about 8-50 kb in size. Searching of the index files is significantly faster than existing image comparison algorithms.
- the index file that includes the plurality of metrics can be clustered based on the type of clusters.
- the index file may include a cluster of metrics that define the texture of the image, a cluster of metrics that define the intensity of the image; a cluster of metrics that define the color of the image; a cluster of metrics that define shapes in the image; a cluster of metrics that register a changed color palette (e.g., change from color image to black and white, or negative image); a cluster of metrics that register minor changes to image composition (e.g., change of point of view for same object or landscape, cropped images, etc); clusters of metrics that register a more generic image (e.g., if the original picture is a photo of a person standing in front of a landscape, a more generic image is the landscape without the person).
- the images may also be analyzed to account for changes to the original image (e.g., flipping or rotating image).
- a metric for the changes to the original image may also be stored in the index file.
- the indexing subsystem may calculate the metrics for the image without the changes.
- the indexing engine 344 may also recursively decompose the image into its components. Each of the components may then be analyzed and indexed in the same way as the image as whole (e.g., 132 metrics are calculated for each component of the image).
- the index file for the image components may be stored as part of the index file as the image (e.g., a cluster of metrics for each component of the image) or may be stored as separate image files.
- the indexing subsystem may analyze each frame of the video; however, it will be appreciated that selecting one or some of frames of the video for indexing may be sufficient for comparison. For example, the indexing engine 344 may select one out of every 50 frames to index or one out of every 100 frames, and so on.
- the index files in the indexing database 316 may also be clustered by the clustering engine 360 .
- the clustering engine 360 identifies image index files that are representative of similar images and clusters those index files together.
- a formula is applied to the index files in the indexing database 316 that calculates a similarity score. Images that satisfy a threshold level of similarity are added to the same cluster. An exemplary formula for calculating similarity is described below with reference to FIG. 10 . It will be appreciated that other methods for clustering the images may be used as known in the art.
- the clustered index files may be stored in separate databases or in the same database. Each cluster is identified by a cluster value.
- the cluster value may be an index file representative of the cluster, a unique numerical cluster identifier, a range of index file values in the cluster, etc.
- the search portal 320 receives search queries from users and provides search results to the users.
- the search portal 320 includes a search engine 364 that analyzes the input image, compares the input image to the images indexed in the indexing database 316 , ranks the images and provides an output. In one embodiment, the output is a ranked sequence of similar images.
- a user can provide the input image by, for example, uploading the image through a web form; providing a URL where the image is located; using a browser plug-in or widget that provides the user with an option to select any image in the browser and select a “Find Similar” function; using a system agent or computer widget that looks for specific images online (e.g., a widget that controls the use of intellectual property rights for a user-specified image); using a dedicated function on a third-party portal or online service that provides access to the search functionality of the system based on user-selected images on that portal, and the like.
- the user may also specify additional characteristics for search, such as color, image histogram, level of similarity, meta-tags, number of resulting images, and the like.
- the query image is then analyzed to generate an index file for the query image using the indexing process described above.
- the search portal 320 transmits the query image to the indexing engine 312 to generate the query image index file.
- the search portal 320 may generate the query image index file for the query image using the same analysis as the indexing engine 312 .
- the query image index file is then compared with the index files stored in the indexing database 316 .
- the indexing engine 312 or the search engine 364 may generate an SQL request of the indexing database 316 .
- a cluster to search is first identified and then the query image index file is compared only to the images in that cluster.
- the query image index file is compared to all of the index files in the indexing database 316 .
- the query image index file is then compared with the index files using one or more mathematical models that generate a scalar value defining the level of similarity between the images, as described below with reference to FIG. 10 .
- the images can then be sorted and/or ranked using this value.
- the search portal 320 automatically generates a web page that lists the images by providing the thumbnail of the images, ranked according to the score that defines the level of similarity. For example, the image that has the highest level of similarity is presented at the top of the web page, followed by other similar images in descending order based on the score.
- the web page is then provided to the user as search result.
- Users can select a thumbnail from the web page to link to the original source page of the image, or may continue searching to find images similar to those found in the search results.
- the search portal 320 may provide the search results in a variety of different manners. For example, the search portal 320 may link the user directly to the source page of the image that has the highest similarity score.
- FIG. 4 illustrates a process for generating the index file 400 in further detail, according to one embodiment of the invention. It will be appreciated that the process 400 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- an image 404 is converted into an index image file 408 , which is stored in the indexing database 412 .
- the index image file 408 includes a plurality of image metrics 416 .
- the number of image metrics 416 in the image index file 408 may be any value or range of values between about 129 and 135 metrics. It will be appreciated that the number of metrics may be less than 129 metrics or greater than 135 metrics.
- the image metrics 416 define various aspects of the image numerically, such as, for example, color, intensity, texture, shapes and the like.
- the index image file 408 is a hash table.
- the image metrics 416 may be calculated from the original image or the representation of the image.
- the image metrics 416 in the index image file 408 may be clustered based on the type of metric. For example, the color metrics may be grouped together, the texture metrics may be grouped together and so on.
- the image index file 408 may also include or may be stored with tags 418 , a URL 420 , metadata 424 , a thumbnail 428 and the representation of the original image 432 .
- the tags 418 are user-defined metadata that typically identify the subject of the image 404 . For example, if the image is a photograph of a beach in Costa Rica, the tags may include one or more of beach, Costa Rica, vacation, Pacific Ocean, rainforest, and so on.
- the URL 420 identifies the webpage where the original image is located.
- the URL 420 may include two URLs, one identifying the webpage where the original image is located and another to the image itself.
- the metadata 424 includes additional information about the image 404 , such as, for example, the camera used to take the picture, the date the picture, and the like.
- the thumbnail 428 is a smaller version of the image 404 and the representation of the original image 432 is a smaller version of the image 404 that has been adjusted to scale, image file type, and the like.
- the thumbnail 428 and representation of the original image 432 are typically both about 128 ⁇ 128 pixels in size.
- the resulting image index file 408 is about 1.3 kb in size in one particular embodiment. It will be appreciated that the image index file 408 may be smaller than 1.3 kb or greater than 1.3 kb. For example, the image index file 408 may be about 1 kb-50 kb. Because the image index file 408 is small, the time to perform image search and comparison algorithms is significantly faster than existing image search algorithms.
- FIG. 5 illustrates a process for calculating each image metric and/or calculating a clustering metric 500 in further detail, according to one embodiment of the invention. It will be appreciated that the process 500 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- An image 502 to be indexed is first divided into a plurality of cells 504 .
- the image 502 is divided into sixteen (16) cells, as shown in FIG. 5 . It will be appreciated that the image may be divided into fewer than sixteen or more than sixteen cells.
- a cellular image metric 508 is then calculated for each cell 504 .
- each image metric described above with reference to FIG. 6 is calculated for each cell 504 (e.g., each of the color metrics, each of the intensity metrics, each of the texture metrics, each of the shape metrics, etc.).
- FIG. 5 illustrates a simplified example of calculating the image metric for each cell 504 for a shape metric.
- a scalar value is assigned to each cell 504 .
- the scalar value defines numerically the amount of space that includes a shape, such as an image object (e.g., 0 for cells with no image object, 1 for cells that includes an image objects, or a fraction corresponding to the fraction of the cell that contains an image object that have a portion of an image object).
- an image object e.g., 0 for cells with no image object, 1 for cells that includes an image objects, or a fraction corresponding to the fraction of the cell that contains an image object that have a portion of an image object.
- the metric values will vary from that shown for each metric type and for each non-identical image.
- the cellular image metrics 508 for each of the cells are then aligned into the overall image metric 512 .
- the image metric 512 includes sixteen cellular image metrics 508 that are aligned with one another.
- the overall image metric 512 may then be converted into a binary number. For example, all of the numerical values in 512 may be aligned together to generate a single binary number.
- each of the metrics in the image index file e.g., 132 metrics. It will be appreciated that in some embodiments, some of the metrics may be calculated for the image as a whole (as opposed to calculating cellular image metrics 508 and then generating the image metric 512 ).
- the process shown in FIG. 5 may also or alternatively be used to calculate a clustering metric.
- the clustering metric of each image would then be compared to identify similar images for clustering.
- FIG. 6 illustrates a process 600 for calculating the similarity of images according to one embodiment of the invention.
- the process 600 shown in FIG. 6 may be used to identify a cluster for further searching and/or to identify the similarity of images. It will be appreciated that the process 600 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- each image metric 512 relates to a certain property of the images.
- each metric 512 is assigned a weighting factor ( ⁇ ) relating to its importance.
- the assignment may be static of dynamic. It may done by a user (e.g., an administrator), or calculated automatically using various functions. In the following description, an automatic function is provided to dynamically assign the weighting factor.
- a genetic algorithm (GA) 604 is applied to a standard database (StDB) 608 to generate a weighting factor ( ⁇ ) 612 for each metric.
- the weighting factor ( ⁇ ) 612 is then used to calculate the similarity of the image using the following function 616 :
- ⁇ i is the weighting factor for each metric in the index file
- D i is the difference between each metric value in the image query index file and the index file in the database.
- the image metric 512 that includes the scalar values of each cell of the image query index file may be subtracted from the image metric 512 that includes the scalar values of each cell of the image index file in the database to generate the difference D i ; in another example, the single number binary conversions of the image metrics 512 are subtracted to generate the difference D i .
- the function 616 applies each weighting factor 612 to the difference D i between the image query and the indexed image for each metric, and then adds each of those values together.
- the function 616 results in a normalized scalar value that is between 0 and 1 for each image.
- the function 616 calculates the similarity between the input image 620 to each image in the indexing database 624 to calculate a value 620 .
- At least the image 628 corresponding to the highest value 620 is presented to the user.
- a list of images ranked according to the value 620 is presented to the user.
- FIG. 7 illustrates the process for indexing images 700 in further detail, according to one embodiment of the invention. It will be appreciated that the process 700 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- the process 700 begins by crawling websites to locate images (block 704 ).
- the crawler 224 of FIG. 2 may scan websites 216 for images, download the images and store the images and optionally metadata associated with the image in the crawling data store 208 .
- the process 700 continues by calculating image metrics for located images (block 708 ) and storing the metrics with links to the images on websites (block 712 ).
- image metrics for located images
- metrics For example, several metrics that define various aspects of the image, such as the color, intensity, texture, shapes and the like may be calculated and stored with a link (e.g., URL) to the webpage where the original image is located in a indexing data store (e.g., indexing data store 212 of FIG. 2 ).
- the process 700 continues by deleting the located images from the data store (block 716 ). For example, the images stored in the crawling data store 208 are deleted.
- the process 700 continues by calculating a clustering metric using the image metrics (block 720 ) and clustering the images according to the calculated metric (block 724 ).
- the clustering metric is a scalar value that defines a similarity of the images within the cluster. For example, the similarity formula described above may be used to identify images that satisfy a threshold similarity level for that cluster.
- the clustering metric is a range of values that correspond to the index files in the cluster, which are identified based on a similarity function.
- the clustering metric is a representative index file for the index files in the cluster, which is identified based on a similarity function.
- a unique clustering value is calculated using one or more (or all) of the metrics in the index file for each image.
- FIG. 8 illustrates a process for indexing images 800 in further detail, according to another embodiment of the invention. It will be appreciated that the process 800 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- the process 800 begins by locating a plurality of websites to locate digital images (block 804 ). The process continues by storing the digital images in a database with a link to the website on which the digital image was located (block 808 ).
- the crawler 224 of FIG. 2 may scan websites 216 for images, download the images and store the images and optionally metadata associated with the image in the crawling data store 208 .
- the process 800 continues by calculating an image index file for each of the located images, the image index file representative of the located images (block 812 ) and storing the image index file in the database (block 816 ).
- the process 800 continues by deleting the digital images from the database when the image index file of that image is stored in the database (block 820 ). For example, several metrics that define various aspects of the image, such as the color, intensity, texture, shapes and the like may be calculated and stored with a link (e.g., URL) to the webpage where the original image is located in a indexing data store (e.g., indexing data store 212 of FIG. 2 ), and the original image is deleted from the crawling data store 208 .
- a link e.g., URL
- FIG. 9 illustrates a search process 900 according to one embodiment of the invention. It will be appreciated that the process 900 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- the search process 900 begins by receiving input (block 904 ).
- a user uploads the image through a web form. For example, if a user sees a painting that they like in a restaurant, the user can take a photo of the painting using their mobile phone, and upload the image to their computer and to the web form or directly to the web form to search for the painting.
- the user can enter the URL where the image is located.
- the user can use a browser plug-in or widget that allows the user to use a “Find Similar” function of the plug-in or widget to implement a search.
- Users can also use a system agent or computer widget that looks for specific images online (e.g., a widget that controls the use of intellectual property rights for a user-specified image).
- a third-party portal or online service can provides access to the search functionality of the system for images on that portal.
- the user may also specify additional characteristics for search, such as color, image histogram, level of similarity, meta-tags, number of resulting images, and the like.
- the process 900 continues by calculating a metric for the input (block 908 ).
- the input image can be analyzed to generate a query image index file and a cluster identifier as described above.
- the process 900 continues by comparing the input metric with stored cluster metrics (block 912 ) and identifying a cluster that matches the image (block 916 ).
- the image index file or cluster identifier may be compared with the cluster identifier for each cluster using a mathematical formula, such as described above with reference to FIG. 6 .
- the cluster that most closely corresponds to the image index file is selected for additional comparison.
- the process 900 continues by comparing the input metric with the stored image metrics in the matching cluster (block 920 ).
- the index file of the input image is then compared with the index files of each image in the index data store.
- a similarity score may be generated for each image using, for example, the formula described above with reference to FIG. 6 .
- the process 900 continues by ranking stored metrics and generating search results (block 924 ). For example, a web page that includes a list of images with thumbnails of the images may be generated that lists the images with the image corresponding to the highest similarity score at the top and lists additional images in descending order corresponding to the similarity score.
- the process 900 continues by transmitting search results corresponding to the receive input (block 928 ). For example, the web page may be presented to the user.
- FIG. 10 illustrates a search process 1000 according to another embodiment of the invention. It will be appreciated that the process 1000 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- the search process 1000 begins by providing a structured database having a plurality of clusters, each cluster having a plurality of image index files representative of digital images, and each cluster having a cluster identifier (block 1004 ).
- a structured database having a plurality of clusters, each cluster having a plurality of image index files representative of digital images, and each cluster having a cluster identifier.
- the indexing data store 212 of FIG. 2 and indexing database 316 of FIG. 3 that is generated according to the processes of FIG. 7 or 8 is provided for searching.
- the process 1000 continues by receiving a search query, the search query being a digital image (block 1008 ).
- the process 1000 continues by calculating the image index file of the search query (block 1012 ).
- the input image can be analyzed to generate a query image index file and a cluster identifier as described above.
- the process 1000 continues by comparing the image index file of the search query with each cluster identifier to identify a cluster to search (block 1016 ) and comparing the image index file of the search query with each of the plurality of image index files in the cluster identified to search (block 1020 ). A similarity score may be generated for each cluster using, for example, the formula described above with reference to FIG. 6 .
- the process 1000 continues by determining a similarity of the search query with the images in the cluster (block 1024 ). A similarity score may generated for each image using, for example, the formula described above with reference to FIG. 6 .
- Embodiments of the invention can be used to deliver advertisements by comparing advertisement images with other images accessed or searched by a user. This allows advertisers the ability to show their marketing message on a user's search result page that is relevant to content of that the user was searching.
- media assets that are similar to one provided by user can be located, and concepts that describe the located media assets can be determined.
- advertising that is the most relevant to the media asset provided by user can be identified.
- the advertisements for Coca-cola may be delivered to the user.
- FIG. 11 illustrates an advertising image search system 1100 .
- the advertising image search system 1100 is similar to the search system 200 and includes the search server 204 , the crawling data store 208 and the indexing data store 212 .
- the search system 200 accesses the websites with images 216 , and is connected to the search engine user interface 220 .
- the search server 204 includes the crawler 224 , the indexing engine 228 and the search engine 232 , and also includes an advertisement targeting module 1104 .
- the advertisement targeting module 1104 is in communication with an advertiser 1108 and an advertisement data store 1112 .
- the advertiser 1108 and the advertisement data store 1112 are also in communication with one another.
- Advertisers upload their media files to the dedicated advertisement data store 1112 .
- the system 1100 compares user images with those in the advertisement data store 1112 and builds a list of most relevant offerings. This list is submitted to the third party advertisement management system 1108 for processing in real time to deliver targeted advertising to the user.
- advertisers can provide concepts for their marketing message, which are stored in the advertisement data store 1112 .
- the system 1100 can then find concepts based on the user media assets in the advertisement database 1112 and build a list of the most relevant offerings. The list is submitted to the advertisement management system 1108 for processing in real time to deliver targeted advertising.
- FIG. 12 illustrates the advertisement system and a process for delivering targeted advertisements using the advertisement system 1200 .
- the system 1200 includes a search engine 1204 , an indexing database 1216 , a search portal 1220 , an ad targeting module 1224 , a visual advertisement database 1228 , and a third party advertisement management system 1232 .
- the method includes the user providing am image as a query to the search engine 1204 from the search portal 1220 .
- the search engine 1204 analyzes the input, compares and ranks the input and provides output as described above using the indexing database 1216 .
- the advertisement targeting module 1224 also finds similar advertisements using the visual advertisements database 1228 and the same methods described above and builds a list of advertisements.
- the advertisement targeting module 1224 provides the list of advertisements to the third party advertisement management system 1232 which delivers an appropriate targeted advertisement message for the search result page 1326 .
- the search result page 1236 includes the search results identified by the search engine 1204 and the advertisements provided by the third party advertisement management system 1232 .
- FIG. 13 illustrates an advertising process 1300 according to one embodiment of the invention. It will be appreciated that the process 1300 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- the advertising process 1300 begins by maintaining an index of image index files, each image index file representative of a digital image of an advertisement (block 1304 ).
- the advertising process 1300 continues by receiving an image query, the image query comprising a digital image (block 1308 ) and calculating an image index file representative of the digital image (block 1312 ).
- the advertising process 1300 continues by comparing the image index file of the digital image with the image index files representative of the advertisements (block 1316 ) and transmitting at least one advertisement based on the comparison (block 1320 ).
- FIG. 14 illustrates an advertising process 1400 according to another embodiment of the invention. It will be appreciated that the process 1400 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below.
- the advertising process 1400 begins by maintaining an index of image descriptors, each image descriptor representative of a digital image of an advertisement (block 1304 ).
- the advertising process 1400 continues by receiving user selection of a digital image (block 1408 ) and calculating an image descriptor representative of the digital image (block 1412 ).
- the advertising process 1400 continues by comparing the image descriptor representative of the digital image with the image descriptors representative of the digital advertisements (block 1416 ) and transmitting at least a link to a webpage based on the comparison (block 1420 ).
- FIG. 15 shows a diagrammatic representation of a machine in the exemplary form of a computer system 1500 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
- the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
- the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine may be a server, personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a game console, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- PDA Personal Digital Assistant
- STB set-top box
- a cellular telephone a web appliance
- game console a game console
- network router switch or bridge
- the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
- the computer system 1500 of FIG. 15 is representative of the server 104 and/or computers 152 shown in FIG. 1 .
- the exemplary computer system 1500 includes a processor 1502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1504 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.) and a static memory 1506 (e.g., flash memory, static random access memory (SRAM), etc.), which communicate with each other via a bus 1508 .
- a processor 1502 e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both
- main memory 1504 e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- RDRAM Rambus DRAM
- static memory 1506 e.g., flash memory, static
- the computer system 1500 may further include a video display unit 1510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)).
- the computer system 1500 also includes an alphanumeric input device 1512 (e.g., a keyboard), a cursor control device 1514 (e.g., a mouse), a disk drive unit 1516 , a signal generation device 1520 (e.g., a speaker) and a network interface device 1522 .
- a video display unit 1510 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
- the computer system 1500 also includes an alphanumeric input device 1512 (e.g., a keyboard), a cursor control device 1514 (e.g., a mouse), a disk drive unit 1516 , a signal generation device 1520 (e.g., a speaker) and a network interface device 1522 .
- the disk drive unit 1516 includes a machine-readable medium 1524 on which is stored one or more sets of instructions (e.g., software 1526 ) embodying any one or more of the methodologies or functions described herein.
- the software 1526 may also reside, completely or at least partially, within the main memory 1504 and/or within the processor 1502 during execution of the software 1526 by the computer system 1500 .
- the software 1526 may further be transmitted or received over a network 1528 via the network interface device 1522 .
- machine-readable medium 1524 is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
- the term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention.
- the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
- optimization methods include hill climbing algorithms, maximizing mean fitness algorithms, ant algorithms, bacteriologic algorithms, cross-entropy algorithms, cultural algorithms, evolution algorithms, grouping genetic algorithms, harmony search algorithms, memetic algorithms, simulated annealing algorithms, stochastic algorithms and the like.
- the present invention also relates to an apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, compact disc read only memories (CD-ROMs), and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), Erasable Programmable Read-Only Memories (EPROMs), Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- ROMs read-only memories
- RAMs random access memories
- EPROMs Erasable Programmable Read-Only Memories
- EEPROMs Electrically Erasable Programmable Read-Only Memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Physiology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
- The present application claims priority to U.S. Provisional Application No. 61/086,760, filed Aug. 6, 2008, and entitled “METHOD FOR REGISTRATION AND SEARCH OF NON-TEXTUAL INFORMATION,” and U.S. Provisional Application No. 61/086,759, filed Aug. 6, 2008, and entitled “METHOD FOR TARGETING ONLINE ADS IN THE CONTEXT OF VISUAL SEARCH RESULTS BY USER,” the entireties of which are hereby incorporated by reference.
- 1. Field
- The subject invention relates to advertising systems and methods of advertising using images and image-to-image comparison.
- 2. Related Art
- Most websites today include digital images, such as digital photographs and videos. Most search engines include a feature that allows for searching of these digital images; however, these image search features use textual search queries that are compared with metadata for the digital images. Because some of the metadata is user generated, the metadata is sometimes inaccurate. Furthermore, some images have no metadata. Thus, the search results for the image search features tend to be unsatisfactory. In addition, the images are not ranked according to their level of similarity to the original query.
- Content-based image retrieval (i.e., image-to-image comparisons) has been developed but has not been implemented in an online environment. Problems with the content-based image retrieval methods include the amount of time required to process the data and the accuracy of the comparison results. Some of the existing methods analyze the media content files (e.g., images, videos, etc.) for metadata to identify certain media patterns identical to those defined in preliminary descriptions, templates or objects (symbols, keywords, graphic patterns, audio phonemes). Some of these methods also recognize objects based on forms, contours, silhouettes, background, colors and other characteristics, or use graphical templates, such as “step”, “edge”, “roof”, “mountain range” or “lawn,” to recognize appropriate parts of the image. Other methods divide the image into logical units, apportion text and non-text areas, recognize objects, preliminarily allocate at least one graphical construction among smallest units as typical element for object recognition, and build object models as an aggregate of such typical elements with their spatial ratio. These methods, however, are limited to narrow domains (i.e., only recognition of text or simple geometric shapes). These methods also do not allow for classification, search and comparison of unknown objects, because the methods only work with the preliminarily defined types of objects and are limited to the components of the preliminary defined templates (e.g., phonemes for audio files, key frames for video files, graphical primitives for image files).
- Other content-based image retrieval methods use file comparison algorithms. These methods find identical media-files, but do not analyze the content of these files. For example, some of these methods use fuzzy logic instruments that require significant computer resources and time and do not allow image searching of large arrays of data in real time. These methods are also limited in scalability because the time for search is linearly dependent on the number of files in the database.
- Another method for identifying similar images develops a template based on a group of original images, using mathematical descriptors of forms and areas of the images in the group that are significant for search. The mathematical descriptors are developed based on parameters of the original image, which are compared with those in the database. A result is given as a number which is then compared with source parameters to determine the similarity of images. This method, however, still does not provide the speed of search necessary to conduct such searches in real time, because the descriptors for each group of initial images need to be changed every time a search is done, and the descriptor is then compared to all images in the database (i.e., calculate similarity parameters in the database and comparison of the source descriptor with them).
- The most common method for indexing images is based on Fourier analysis. Fourier analysis gives quality results only based on contours of images. Attempts exist to improve search results using the results of Fourier analysis as input data for a neural network or by improving histograms of images by quantization based on frequency of color change. These attempts, however, have only been done for research purposes and only provide good search results in particular cases. The main problem with these approaches is the narrow domain of their potential use. For example, searches based on control points are used in face recognition systems to analyze images of human faces that have sufficient resolution and are in a particular perspective.
- Other recognition methods separate images by their domain; then, different algorithms for mathematical descriptor calculation (index files) for the different domains are applied to the images to analyze the images. In other embodiments, a wide range of graphical primitives (knowledge base) are developed, and correlations between objects contained in a media file with the primitives in the database are determined. These methods, however, still do not identify the similarity of one media file to another because the methods can only be used with those media objects for which there are defined and reliable search algorithms and detailed databases of primitives. For example, because there are no reliable algorithms to search for trees, a search system using the known algorithms may identify a “tree” in the image, but cannot determine the similarity of the tree in the image to another tree. In addition, these methods have a high demand for processing computer resources to calculate the indexes of images.
- The following summary of the invention is included in order to provide a basic understanding of some aspects and features of the invention. This summary is not an extensive overview of the invention and as such it is not intended to particularly identify key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented below.
- According to an aspect of the invention, a method is provided that includes maintaining an index of image index files, each image index file representative of a digital image of an advertisement; receiving an image query, the image query comprising a digital image; calculating an image index file representative of the digital image; comparing the image index file of the digital image with the image index files representative of the advertisements; transmitting at least one advertisement based on the comparison.
- Comparing the image index file of the digital image with the index files representative of the advertisements may include generating a similarity score for each advertisement.
- The method may further include creating a list of advertisements based on the comparison.
- The method may further include transmitting the list of advertisements to a third party server, the third party server providing the digital images of the advertisements.
- The method may further include transmitting a request for the at least one advertisement to a third party server, the third part server providing the digital image of the at least one advertisement.
- The index may further include a representation of the digital image of the advertisement.
- The digital image of the image query may be submitted by a user, and transmitting may include transmitting the at least one advertisement to the user.
- The index may further include a monosemantic descriptor for each image index file and the method may further include calculating a monosemantic descriptor for the digital image and comparing the monosemantic descriptor for the digital image with the monosemantic descriptor for each image index file before comparing the image index files.
- Calculating the monosemantic descriptor may include dividing the digital image into a plurality of cells; calculating an image descriptor for each of the plurality of cells; and aligning the image descriptor for each of the plurality of cells to calculate the monosemantic descriptor.
- The image index file may include a plurality of metrics.
- The plurality of metrics may be clustered according to a color palette of the digital image, changes in image composition of the digital image and generic representation of the digital image.
- The plurality of metrics may include color metrics, texture metrics, intensity metrics and morphology metrics.
- The plurality of metrics may include a 2D color histogram and a 4D color vector field.
- Comparing may include calculating the similarity for each of the image metrics and summing the similarity to generate a similarity score.
- Comparing may include calculating the similarity for each of the image metrics, multiplying each of the similarities by a weighting factor, and summing the weighted similarities to generate an image similarity score.
- According to another aspect of the invention, a method is provided that includes maintaining an index of image descriptors, each image descriptor representative of a digital advertisement; receiving a user selection of a digital image; calculating an image descriptor representative of the digital image; comparing the image descriptor of the digital image with the image descriptors representative of the digital advertisements; transmitting at least a link to a webpage based on the comparison.
- The user selection may include a request to access a web page on which the digital image is located.
- The user selection may be a mouse-over of the digital image.
- The user selection may be a click-through of the digital image.
- Comparing may include generating a similarity score and wherein the link transmitted is based on the similarity score.
- The index may further include a monosemantic descriptor for each image index file and the method may further include calculating a monosemantic descriptor for the digital image and comparing the monosemantic descriptor for the digital image with the monosemantic descriptor for each image index file before comparing the image index files.
- Calculating the monosemantic descriptor may include dividing the digital image into a plurality of cells; calculating an image descriptor for each of the plurality of cells; and aligning the image descriptor for each of the plurality of cells to calculate the monosemantic descriptor.
- The image index file may include a plurality of metrics.
- The plurality of metrics may be clustered according to a color palette of the digital image, changes in image composition of the digital image and generic representation of the digital image.
- The plurality of metrics may include color metrics, texture metrics, intensity metrics and morphology metrics.
- The plurality of metrics may include a 2D color histogram and a 4D color vector field.
- The method may further include in response to the user selection of the digital image, present the user with one or more referrals selected from the group consisting of purchasing the camera that took the digital image, buying a product or service from the source of the image, buying something related to the image, and getting more information about the image or the source of the image; receiving a user selection of one of the referrals; and transmitting at least the link to the webpage based on the similarity score and based on the selected referral type.
- Transmitting at least a link to a webpage based on the similarity score may further include transmitting the digital advertisement.
- The method may further include transmitting a request for the digital advertisement to a third party server, the third part server providing the digital image of the advertisement.
- According to a further aspect of the invention, a computer system is provided that includes an index data store comprising a plurality of image index files representative of digital advertisements; a search portal to receive a digital image; and an indexing engine to calculate the image index files for each digital advertisement, calculate an image index file for the digital image and compare the image index file for the digital image with the plurality of image index files representative of digital advertisements.
- The computer system may further include an advertisement data store to store the digital advertisements corresponding to the image index files in the index data store.
- The search portal may be configured to transmit at least one of the digital advertisements in the advertisement data store based on the comparison by the indexing engine.
- The search portal may further include a user interface.
- The accompanying drawings, which are incorporated in and constitute a part of this specification, exemplify the embodiments of the present invention and, together with the description, serve to explain and illustrate principles of the invention. The drawings are intended to illustrate major features of the exemplary embodiments in a diagrammatic manner. The drawings are not intended to depict every feature of actual embodiments nor relative dimensions of the depicted elements, and are not drawn to scale.
-
FIG. 1 is a block diagram of a image searching system in accordance with one embodiment of the invention; -
FIG. 2 is a block diagram of an image search system in accordance with one embodiment of the invention; -
FIG. 3 is a detailed block and flow diagram of the image search system in accordance with one embodiment of the invention; -
FIG. 4 is a schematic view of indexing an image in accordance with one embodiment of the invention; -
FIG. 5 is a schematic view of generating an index file in accordance with one embodiment of the invention; -
FIG. 6 is a schematic view of image searching in accordance with one embodiment of the invention; -
FIG. 7 is a flow diagram of a process for indexing images in accordance with one embodiment of the invention; -
FIG. 8 is a detailed flow diagram of a process for indexing images in accordance with one embodiment of the invention; -
FIG. 9 is a flow diagram of a process for image searching in accordance with one embodiment of the invention; -
FIG. 10 is a detailed flow diagram of a process for image searching in accordance with one embodiment of the invention; -
FIG. 11 is a block diagram of a search and advertisement system in accordance with one embodiment of the invention; -
FIG. 12 is a flow diagram of a method for advertising using image comparison in accordance with one embodiment of the invention; -
FIG. 13 is a flow diagram of a method for advertising using image comparison in accordance with one embodiment of the invention; -
FIG. 14 is a flow diagram of a method for advertising using image comparison in accordance with one embodiment of the invention; and -
FIG. 15 is a block diagram of a computer in accordance with one embodiment of the invention. - Embodiments of the invention relate to systems and methods for indexing, registration, classification and search of non-textual information, such as digital images and video (hereinafter “images”). The digital images are indexed (i.e., each image is assigned a unique numerical parameter) to identify and characterize the content of the image. The resulting index files are stored in a database and can be quickly searched because the index files are universal numerical files that are significantly smaller in size than their source images. The index files may also include link(s) to the original image.
- Embodiments of the invention also relate to systems and methods for comparison, searching and ranking of images. An image query is first indexed as described above to generate an image query index file. The image query index file is then compared with the index files stored in a database. A similarity score is calculated using the comparison of the index files and is used to rank the similar images.
- Advantages of the above systems and methods include universality (i.e., classification of arbitrary images as well as objects that they contain); mathematical unambiguity (i.e., creates a monosemantic descriptor, index file, for further search of similar images); location of similar images and definition of the level of similarity among the images; and, scalability and high speed of search (e.g., the algorithm can be used to build an index of all available images on large networks such as the Internet and search for similar images in real time). In addition, the algorithm is not affected by modifications to the image, such as a change of color, contrast, small shifts and turns of the image, distortion to image, certain changes to perspective, etc.
- An embodiment of the invention will now be described in detail with reference to
FIG. 1 .FIG. 1 illustrates anexemplary system 100 for image recognition, classification, comparison and searching. Thesystem 100 includes aserver 104 that may communicate withcomputers 112 through a network 108 (108 a, 108 b). - The
server 104 is configured to receive requests fromcomputers 112, process the requests and provide responses to thecomputers 112. In addition, theserver 104 is configured to send requests to thecomputers 112. Theserver 104 may include one or more server computers networked to one another. An exemplary server is the Apache server. Theserver 104 includes a processor 116 to execute instructions, which is connected tomemory 120 that stores data. The processor 116 executes instructions and accesses data in thememory 120 to, for example, index the images and search for similar images using the index files. It will be appreciated that theserver 104 may be implemented with any type of hardware and software, and that theserver 104 may have a different configuration than shown inFIG. 1 . In addition, it will be appreciated that theserver 104 may include several server computers connected together. - The network 108 may be any type of communications channel, a local area network (LAN), a wide area network (WAN), such as the Internet, direct computer connections, and the like. The connection may be accomplished in a wireless manner using radio frequency, infrared, or other technologies, using any type of communication hardware and protocols, through other communication mediums, such as electric cable, fiber optic cable, and/or through other technologies.
- The
computers 112 access theserver 104 through thenetwork 108 a. Thecomputers 112 may also communicate with one another over thenetwork 108 b. Thecomputer 112 may be a server, a personal computer, a portable computer, a hand held device, a wireless device, and the like. The computer may be a single device at a single location or multiple devices at a single or multiple locations that are connected together using an appropriate communication protocol over any communication medium. - In one embodiment, the
server 104 identifies an image search result in response to image input received from any of thecomputers 112 and shares the search result with users located at thatcomputer 112 over thenetwork 108 a. For example, theserver 104 may include a website that is accessible by thecomputer 112 through a web browser located at thecomputer 112 over thenetwork 108 a. The website allows the user to enter an image query at thecomputer 112. -
FIG. 2 illustrates asearch system 200 according to an embodiment of the invention. Thesearch system 200 includes a search server 204, a crawlingdata store 208 and anindexing data store 212. Thesearch system 200 accesses websites withimages 216. Thesearch system 200 is also connected to a search engine user interface 220. The search server 204 includes acrawler 224, anindexing engine 228 and asearch engine 232. - The crawling
data store 208 andindexing data store 212 are storage media, e.g., storage area network (SAN), network attached storage (NAS) that may utilize volatile or non-volatile memory that includes, for example, read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices and zip drives. - The
crawler 224 is a software program or software robot, which is typically used to build lists of the information found on Web sites. Another common term for thecrawler 224 is a spider. Thecrawler 224 typically keeps track of the information located in its search and where the information is found. In particular, thecrawler 224 is configured to extract the images fromwebsites 216. In one embodiment, thecrawler 224 is a universal crawler that is a program working on one or several servers of the system and going through hyperlinks of files in documents, published on the internet, searching for required information (for example, images or other media files). Examples of crawlers include Googlebot, Yahoo! Slurp, MSN Crawler and others. Thecrawler 224 forms an array of links to images for subsequent indexing and builds links for further crawling. The images located by thecrawler 224 are stored temporarily in the crawlingdata store 208. For example, the images may be stored in the crawlingdata store 208 until the indexing process is completed. - The
indexing engine 228 is typically a software program which is used to create an index, which is then stored in theindexing data store 212. The index is typically a table of alphanumeric terms that define the images located by thecrawler 224 and the location of documents corresponding to the alphanumeric terms (e.g., a link). The link may be a Uniform Resource Locator (URL). Theindexing engine 228 may build a hash table, in which numerical values are attached to the images. In particular, theindexing engine 228 is configured to analyze the images in the crawlingdata store 208 to generate an index file which is stored in theindexing data store 212. For example, theindexing engine 228 may be configured to generate an index file as described below with reference toFIGS. 3-7 . Theindexing engine 228 may also be configured to cluster the image index files that are representative of similar images as described below with reference toFIGS. 3-7 . - In one embodiment, the
indexing engine 228 is also configured to receive an image query, index the image query and compare the index file of the image query with the index files stored in theindexing data store 212. Theindexing engine 228 may also be configured to determine a level of similarity between the image query and the images having index files in theindexing data store 212. - The
search engine 232 is configured to receive image queries from the search engine user interface 220 and transmit search results from theindexing engine 228 to the user interface 220. In one embodiment, thesearch engine 232 provides the image query to theindexing engine 228 for indexing and comparison; in another embodiment, thesearch engine 232 performs the indexing and comparison; and, in other embodiments, theindexing engine 228 performs the indexing and thesearch engine 232 performs the comparison. Thesearch engine 232 may also be configured to generate a web page with a list of images ranked according to the calculated level of similarity. -
FIG. 3 illustrates the search system and a process for crawling, indexing and searching using thesearch system 300. Thesystem 300 includes a crawler 304 (e.g., a general search crawler and/or specialized crawlers that may be dedicated to a specific type of data, portal, source of data, etc), acrawling database 308, anindexing sub-system 312, an indexing database 316 and asearch portal 320. - As shown in
FIG. 3 , the method includes using thecrawler 304 to collect images from theweb pages 324. Thecrawler 304 is configured to download the image from its host server and save the image, the image metadata and a thumbnail of the image in the crawling database. The crawler may be, for example, a universal data crawler, a specialized software program-agent for performing a certain defined search algorithm, etc. Specialized crawlers use specific characteristics of application interfaces of various portals, photo banks, and other data sources to locate the images. Thecrawler 304 may be scalable and may have a distributed architecture. - The
crawler 304 may include aplanner 328,page analyzer 332 anddownload agents 336. Thecrawler 304 may includemultiple download agents 336 that are launched and working at the same time; typically, only one instance ofplanner 328 is working at a given time, however, additional copies may be provided. Theplanner 328 defines strategies for site visits and includes a planner database that contains information about tasks for crawling and their status, and a queue for crawling the tasks defined by theplanner 328. Thepage analyzer 332 selects links of downloaded pages, and stores data about each site, the images on the site and their status in thecrawling database 308. - The
download agents 336 take tasks from the planner queue and download the images from the web pages. In one embodiment, thedownload agents 336 use an application programming interface (API) provided by an existing large media archive or specialized online service to download the images. Thedownload agents 336 typically save additional meta-data about the images, such as the URL of the file, the URL of the containing page, the date/time created, the date/time downloaded, etc. Thedownload agents 336 may also create and save a thumbnail of the image (e.g., about 128×128 pixels in size). After theindexing subsystem 312 completes processing of the images, the source files in thecrawling database 308 are deleted 340. - The
indexing sub-system 312 builds an index from the images in thecrawling database 308. The indexing sub-system may be scalable (e.g., by adding additional servers) and may have a distributed architecture. Theindexing sub-system 312 stores the indexed image files and may also include image thumbnails and search indexes. Theindexing sub-system 312 includes anindexing engine 344 that selects images from thecrawling database 308, saves the metadata and thumbnail of the image in an indexing database 316, indexes the image, optionally analyzes the image and deletes the original image from thecrawling database 308. - The
indexing engine 344 may include a representation builder 352, a primary metric builder 356 and aclustering engine 360. The representation builder 352 normalizes the original image, scales the image and transforms the image into a generic image format. The representation of the original image is typically about 128×128 pixels in size; it will be appreciated, however, that the representation may be less than or greater than 128×128 pixels in size. - The primary metric builder 356 indexes the original image by analyzing the image in accordance with one or more mathematical models. The analysis with the mathematical model(s) calculates several metrics that numerically define various aspects of the image, such as, for example, color, intensity, texture, shapes and the like. The metrics may be calculated using both the original image and the representation of the image, only the original image or only the representation of the image. Examples of the types of metrics that may define the image include morphology, graininess, vertical lines, horizontal lines, curves, color, intensity and the like. The algorithms for calculating the metrics include, for example, 2D color histogram algorithms, 4D color vector field algorithms, and so on.
- The index file includes a plurality of metrics that define aspects of the image. In one embodiment, the index file includes any value or range of values between about 129 and 135 metrics. For example, the index file may include about 132 different metrics. It will be appreciated that the index file may include less than 129 metrics or more than 135 metrics.
- Depending on the desired accuracy of the algorithm, the size of the metrics may be any value or range of values between about 1 and 128 bits. It will be appreciated, however, that the size of the metrics may be larger than 128 bits.
- The calculated metrics are stored in an index file, which is stored in the indexing database. In one embodiment, the index file is about 1.3 kb in size. It will be appreciated that the index file may be less than 1.3 kb in size or greater than 1.3 kb. For example, the index file together with metadata and the representation of the image may be about 8-50 kb in size. Searching of the index files is significantly faster than existing image comparison algorithms.
- The index file that includes the plurality of metrics can be clustered based on the type of clusters. For example, the index file may include a cluster of metrics that define the texture of the image, a cluster of metrics that define the intensity of the image; a cluster of metrics that define the color of the image; a cluster of metrics that define shapes in the image; a cluster of metrics that register a changed color palette (e.g., change from color image to black and white, or negative image); a cluster of metrics that register minor changes to image composition (e.g., change of point of view for same object or landscape, cropped images, etc); clusters of metrics that register a more generic image (e.g., if the original picture is a photo of a person standing in front of a landscape, a more generic image is the landscape without the person).
- The images may also be analyzed to account for changes to the original image (e.g., flipping or rotating image). A metric for the changes to the original image may also be stored in the index file. Alternatively, the indexing subsystem may calculate the metrics for the image without the changes.
- The
indexing engine 344 may also recursively decompose the image into its components. Each of the components may then be analyzed and indexed in the same way as the image as whole (e.g., 132 metrics are calculated for each component of the image). The index file for the image components may be stored as part of the index file as the image (e.g., a cluster of metrics for each component of the image) or may be stored as separate image files. - When the
indexing engine 344 analyzes digital videos, the indexing subsystem may analyze each frame of the video; however, it will be appreciated that selecting one or some of frames of the video for indexing may be sufficient for comparison. For example, theindexing engine 344 may select one out of every 50 frames to index or one out of every 100 frames, and so on. - The index files in the indexing database 316 may also be clustered by the
clustering engine 360. Theclustering engine 360 identifies image index files that are representative of similar images and clusters those index files together. In one embodiment, a formula is applied to the index files in the indexing database 316 that calculates a similarity score. Images that satisfy a threshold level of similarity are added to the same cluster. An exemplary formula for calculating similarity is described below with reference toFIG. 10 . It will be appreciated that other methods for clustering the images may be used as known in the art. - The clustered index files may be stored in separate databases or in the same database. Each cluster is identified by a cluster value. The cluster value may be an index file representative of the cluster, a unique numerical cluster identifier, a range of index file values in the cluster, etc.
- The
search portal 320 receives search queries from users and provides search results to the users. Thesearch portal 320 includes asearch engine 364 that analyzes the input image, compares the input image to the images indexed in the indexing database 316, ranks the images and provides an output. In one embodiment, the output is a ranked sequence of similar images. - A user can provide the input image by, for example, uploading the image through a web form; providing a URL where the image is located; using a browser plug-in or widget that provides the user with an option to select any image in the browser and select a “Find Similar” function; using a system agent or computer widget that looks for specific images online (e.g., a widget that controls the use of intellectual property rights for a user-specified image); using a dedicated function on a third-party portal or online service that provides access to the search functionality of the system based on user-selected images on that portal, and the like. The user may also specify additional characteristics for search, such as color, image histogram, level of similarity, meta-tags, number of resulting images, and the like.
- The query image is then analyzed to generate an index file for the query image using the indexing process described above. In one embodiment, the
search portal 320 transmits the query image to theindexing engine 312 to generate the query image index file. Alternatively, thesearch portal 320 may generate the query image index file for the query image using the same analysis as theindexing engine 312. - The query image index file is then compared with the index files stored in the indexing database 316. For example, the
indexing engine 312 or thesearch engine 364 may generate an SQL request of the indexing database 316. In embodiments in which the index files are clustered, a cluster to search is first identified and then the query image index file is compared only to the images in that cluster. In embodiments in which the index files are not clustered, the query image index file is compared to all of the index files in the indexing database 316. The query image index file is then compared with the index files using one or more mathematical models that generate a scalar value defining the level of similarity between the images, as described below with reference toFIG. 10 . The images can then be sorted and/or ranked using this value. - In one embodiment, the
search portal 320 automatically generates a web page that lists the images by providing the thumbnail of the images, ranked according to the score that defines the level of similarity. For example, the image that has the highest level of similarity is presented at the top of the web page, followed by other similar images in descending order based on the score. - The web page is then provided to the user as search result. Users can select a thumbnail from the web page to link to the original source page of the image, or may continue searching to find images similar to those found in the search results. It will be appreciated that the
search portal 320 may provide the search results in a variety of different manners. For example, thesearch portal 320 may link the user directly to the source page of the image that has the highest similarity score. -
FIG. 4 illustrates a process for generating theindex file 400 in further detail, according to one embodiment of the invention. It will be appreciated that theprocess 400 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - As described above, an
image 404 is converted into anindex image file 408, which is stored in theindexing database 412. Theindex image file 408 includes a plurality ofimage metrics 416. For example, the number ofimage metrics 416 in theimage index file 408 may be any value or range of values between about 129 and 135 metrics. It will be appreciated that the number of metrics may be less than 129 metrics or greater than 135 metrics. Theimage metrics 416 define various aspects of the image numerically, such as, for example, color, intensity, texture, shapes and the like. - In one embodiment, the
index image file 408 is a hash table. Theimage metrics 416 may be calculated from the original image or the representation of the image. Theimage metrics 416 in theindex image file 408 may be clustered based on the type of metric. For example, the color metrics may be grouped together, the texture metrics may be grouped together and so on. - The
image index file 408 may also include or may be stored withtags 418, aURL 420,metadata 424, athumbnail 428 and the representation of theoriginal image 432. Thetags 418 are user-defined metadata that typically identify the subject of theimage 404. For example, if the image is a photograph of a beach in Costa Rica, the tags may include one or more of beach, Costa Rica, vacation, Pacific Ocean, rainforest, and so on. TheURL 420 identifies the webpage where the original image is located. TheURL 420 may include two URLs, one identifying the webpage where the original image is located and another to the image itself. Themetadata 424 includes additional information about theimage 404, such as, for example, the camera used to take the picture, the date the picture, and the like. Thethumbnail 428 is a smaller version of theimage 404 and the representation of theoriginal image 432 is a smaller version of theimage 404 that has been adjusted to scale, image file type, and the like. Thethumbnail 428 and representation of theoriginal image 432 are typically both about 128×128 pixels in size. - The resulting
image index file 408 is about 1.3 kb in size in one particular embodiment. It will be appreciated that theimage index file 408 may be smaller than 1.3 kb or greater than 1.3 kb. For example, theimage index file 408 may be about 1 kb-50 kb. Because theimage index file 408 is small, the time to perform image search and comparison algorithms is significantly faster than existing image search algorithms. -
FIG. 5 illustrates a process for calculating each image metric and/or calculating aclustering metric 500 in further detail, according to one embodiment of the invention. It will be appreciated that theprocess 500 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - An
image 502 to be indexed is first divided into a plurality ofcells 504. For example, theimage 502 is divided into sixteen (16) cells, as shown inFIG. 5 . It will be appreciated that the image may be divided into fewer than sixteen or more than sixteen cells. - A cellular image metric 508 is then calculated for each
cell 504. For example, each image metric described above with reference toFIG. 6 is calculated for each cell 504 (e.g., each of the color metrics, each of the intensity metrics, each of the texture metrics, each of the shape metrics, etc.). -
FIG. 5 illustrates a simplified example of calculating the image metric for eachcell 504 for a shape metric. As shown inFIG. 5 , a scalar value is assigned to eachcell 504. The scalar value defines numerically the amount of space that includes a shape, such as an image object (e.g., 0 for cells with no image object, 1 for cells that includes an image objects, or a fraction corresponding to the fraction of the cell that contains an image object that have a portion of an image object). It will be appreciated that the metric values will vary from that shown for each metric type and for each non-identical image. - The
cellular image metrics 508 for each of the cells are then aligned into theoverall image metric 512. For example, for theimage 502 that is divided into sixteencells 504, theimage metric 512 includes sixteencellular image metrics 508 that are aligned with one another. - The overall image metric 512 may then be converted into a binary number. For example, all of the numerical values in 512 may be aligned together to generate a single binary number.
- The process described above and shown in
FIG. 5 is then repeated to generate each of the metrics in the image index file (e.g., 132 metrics). It will be appreciated that in some embodiments, some of the metrics may be calculated for the image as a whole (as opposed to calculatingcellular image metrics 508 and then generating the image metric 512). - The process shown in
FIG. 5 may also or alternatively be used to calculate a clustering metric. The clustering metric of each image would then be compared to identify similar images for clustering. -
FIG. 6 illustrates a process 600 for calculating the similarity of images according to one embodiment of the invention. The process 600 shown inFIG. 6 may be used to identify a cluster for further searching and/or to identify the similarity of images. It will be appreciated that the process 600 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - Calculating similarity of images is generally done by comparing all of the image metrics for both pictures. Two images having identical metrics are said to be identical. When the metrics differ, the amount of variance indicates the degree of difference between the images. As noted above, each
image metric 512 relates to a certain property of the images. According to an embodiment of the invention, each metric 512 is assigned a weighting factor (α) relating to its importance. The assignment may be static of dynamic. It may done by a user (e.g., an administrator), or calculated automatically using various functions. In the following description, an automatic function is provided to dynamically assign the weighting factor. - A genetic algorithm (GA) 604 is applied to a standard database (StDB) 608 to generate a weighting factor (α) 612 for each metric. The weighting factor (α) 612 is then used to calculate the similarity of the image using the following function 616:
-
- wherein αi is the weighting factor for each metric in the index file and Di is the difference between each metric value in the image query index file and the index file in the database. For example, the image metric 512 that includes the scalar values of each cell of the image query index file may be subtracted from the image metric 512 that includes the scalar values of each cell of the image index file in the database to generate the difference Di; in another example, the single number binary conversions of the
image metrics 512 are subtracted to generate the difference Di. Thefunction 616 applies eachweighting factor 612 to the difference Di between the image query and the indexed image for each metric, and then adds each of those values together. - In one embodiment, the
function 616 results in a normalized scalar value that is between 0 and 1 for each image. Thus, for eachinput image 620, thefunction 616 calculates the similarity between theinput image 620 to each image in theindexing database 624 to calculate avalue 620. At least theimage 628 corresponding to thehighest value 620 is presented to the user. Typically, however, a list of images ranked according to thevalue 620 is presented to the user. -
FIG. 7 illustrates the process for indexingimages 700 in further detail, according to one embodiment of the invention. It will be appreciated that theprocess 700 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - The
process 700 begins by crawling websites to locate images (block 704). For example, thecrawler 224 ofFIG. 2 may scanwebsites 216 for images, download the images and store the images and optionally metadata associated with the image in the crawlingdata store 208. - With reference back to
FIG. 7 , theprocess 700 continues by calculating image metrics for located images (block 708) and storing the metrics with links to the images on websites (block 712). For example, several metrics that define various aspects of the image, such as the color, intensity, texture, shapes and the like may be calculated and stored with a link (e.g., URL) to the webpage where the original image is located in a indexing data store (e.g.,indexing data store 212 ofFIG. 2 ). - The
process 700 continues by deleting the located images from the data store (block 716). For example, the images stored in the crawlingdata store 208 are deleted. - Referring again to
FIG. 7 , theprocess 700 continues by calculating a clustering metric using the image metrics (block 720) and clustering the images according to the calculated metric (block 724). In one embodiment, the clustering metric is a scalar value that defines a similarity of the images within the cluster. For example, the similarity formula described above may be used to identify images that satisfy a threshold similarity level for that cluster. In another embodiment, the clustering metric is a range of values that correspond to the index files in the cluster, which are identified based on a similarity function. In another embodiment, the clustering metric is a representative index file for the index files in the cluster, which is identified based on a similarity function. In another embodiment, a unique clustering value is calculated using one or more (or all) of the metrics in the index file for each image. -
FIG. 8 illustrates a process for indexingimages 800 in further detail, according to another embodiment of the invention. It will be appreciated that theprocess 800 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - The
process 800 begins by locating a plurality of websites to locate digital images (block 804). The process continues by storing the digital images in a database with a link to the website on which the digital image was located (block 808). For example, thecrawler 224 ofFIG. 2 may scanwebsites 216 for images, download the images and store the images and optionally metadata associated with the image in the crawlingdata store 208. - The
process 800 continues by calculating an image index file for each of the located images, the image index file representative of the located images (block 812) and storing the image index file in the database (block 816). Theprocess 800 continues by deleting the digital images from the database when the image index file of that image is stored in the database (block 820). For example, several metrics that define various aspects of the image, such as the color, intensity, texture, shapes and the like may be calculated and stored with a link (e.g., URL) to the webpage where the original image is located in a indexing data store (e.g.,indexing data store 212 ofFIG. 2 ), and the original image is deleted from the crawlingdata store 208. -
FIG. 9 illustrates asearch process 900 according to one embodiment of the invention. It will be appreciated that theprocess 900 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - The
search process 900 begins by receiving input (block 904). In one embodiment, a user uploads the image through a web form. For example, if a user sees a painting that they like in a restaurant, the user can take a photo of the painting using their mobile phone, and upload the image to their computer and to the web form or directly to the web form to search for the painting. In another embodiment, the user can enter the URL where the image is located. In yet another embodiment, the user can use a browser plug-in or widget that allows the user to use a “Find Similar” function of the plug-in or widget to implement a search. Users can also use a system agent or computer widget that looks for specific images online (e.g., a widget that controls the use of intellectual property rights for a user-specified image). In addition, a third-party portal or online service can provides access to the search functionality of the system for images on that portal. The user may also specify additional characteristics for search, such as color, image histogram, level of similarity, meta-tags, number of resulting images, and the like. - The
process 900 continues by calculating a metric for the input (block 908). For example, the input image can be analyzed to generate a query image index file and a cluster identifier as described above. Theprocess 900 continues by comparing the input metric with stored cluster metrics (block 912) and identifying a cluster that matches the image (block 916). For example, the image index file or cluster identifier may be compared with the cluster identifier for each cluster using a mathematical formula, such as described above with reference toFIG. 6 . The cluster that most closely corresponds to the image index file is selected for additional comparison. - The
process 900 continues by comparing the input metric with the stored image metrics in the matching cluster (block 920). The index file of the input image is then compared with the index files of each image in the index data store. A similarity score may be generated for each image using, for example, the formula described above with reference toFIG. 6 . Theprocess 900 continues by ranking stored metrics and generating search results (block 924). For example, a web page that includes a list of images with thumbnails of the images may be generated that lists the images with the image corresponding to the highest similarity score at the top and lists additional images in descending order corresponding to the similarity score. Theprocess 900 continues by transmitting search results corresponding to the receive input (block 928). For example, the web page may be presented to the user. -
FIG. 10 illustrates asearch process 1000 according to another embodiment of the invention. It will be appreciated that theprocess 1000 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - The
search process 1000 begins by providing a structured database having a plurality of clusters, each cluster having a plurality of image index files representative of digital images, and each cluster having a cluster identifier (block 1004). For example, theindexing data store 212 ofFIG. 2 and indexing database 316 ofFIG. 3 that is generated according to the processes ofFIG. 7 or 8 is provided for searching. - The
process 1000 continues by receiving a search query, the search query being a digital image (block 1008). Theprocess 1000 continues by calculating the image index file of the search query (block 1012). For example, the input image can be analyzed to generate a query image index file and a cluster identifier as described above. - The
process 1000 continues by comparing the image index file of the search query with each cluster identifier to identify a cluster to search (block 1016) and comparing the image index file of the search query with each of the plurality of image index files in the cluster identified to search (block 1020). A similarity score may be generated for each cluster using, for example, the formula described above with reference toFIG. 6 . Theprocess 1000 continues by determining a similarity of the search query with the images in the cluster (block 1024). A similarity score may generated for each image using, for example, the formula described above with reference toFIG. 6 . - Embodiments of the invention can be used to deliver advertisements by comparing advertisement images with other images accessed or searched by a user. This allows advertisers the ability to show their marketing message on a user's search result page that is relevant to content of that the user was searching. In addition, media assets that are similar to one provided by user can be located, and concepts that describe the located media assets can be determined. As a result, advertising that is the most relevant to the media asset provided by user can be identified. This allows advertisers the ability to show their marketing message on the page shown to user that is relevant to the content of the media asset that user is looking for. For example, if the user searched for an image of a place of interest, a travel offer for that destination or a destination having similar characteristics can be offered to the user. In another example, if the user is searching sites or information that has a “Christmas” theme, the advertisements for Coca-cola may be delivered to the user.
-
FIG. 11 illustrates an advertisingimage search system 1100. As shown inFIG. 11 , the advertisingimage search system 1100 is similar to thesearch system 200 and includes the search server 204, the crawlingdata store 208 and theindexing data store 212. Thesearch system 200 accesses the websites withimages 216, and is connected to the search engine user interface 220. As shown inFIG. 11 , the search server 204 includes thecrawler 224, theindexing engine 228 and thesearch engine 232, and also includes anadvertisement targeting module 1104. Theadvertisement targeting module 1104 is in communication with anadvertiser 1108 and an advertisement data store 1112. Theadvertiser 1108 and the advertisement data store 1112 are also in communication with one another. - Advertisers upload their media files to the dedicated advertisement data store 1112. The
system 1100 compares user images with those in the advertisement data store 1112 and builds a list of most relevant offerings. This list is submitted to the third partyadvertisement management system 1108 for processing in real time to deliver targeted advertising to the user. - In another embodiment, advertisers can provide concepts for their marketing message, which are stored in the advertisement data store 1112. The
system 1100 can then find concepts based on the user media assets in the advertisement database 1112 and build a list of the most relevant offerings. The list is submitted to theadvertisement management system 1108 for processing in real time to deliver targeted advertising. -
FIG. 12 illustrates the advertisement system and a process for delivering targeted advertisements using theadvertisement system 1200. Thesystem 1200 includes asearch engine 1204, anindexing database 1216, asearch portal 1220, anad targeting module 1224, avisual advertisement database 1228, and a third partyadvertisement management system 1232. - As shown in
FIG. 12 , the method includes the user providing am image as a query to thesearch engine 1204 from thesearch portal 1220. Thesearch engine 1204 analyzes the input, compares and ranks the input and provides output as described above using theindexing database 1216. Theadvertisement targeting module 1224 also finds similar advertisements using thevisual advertisements database 1228 and the same methods described above and builds a list of advertisements. Theadvertisement targeting module 1224 provides the list of advertisements to the third partyadvertisement management system 1232 which delivers an appropriate targeted advertisement message for the search result page 1326. Thesearch result page 1236 includes the search results identified by thesearch engine 1204 and the advertisements provided by the third partyadvertisement management system 1232. -
FIG. 13 illustrates anadvertising process 1300 according to one embodiment of the invention. It will be appreciated that theprocess 1300 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - The
advertising process 1300 begins by maintaining an index of image index files, each image index file representative of a digital image of an advertisement (block 1304). - The
advertising process 1300 continues by receiving an image query, the image query comprising a digital image (block 1308) and calculating an image index file representative of the digital image (block 1312). - The
advertising process 1300 continues by comparing the image index file of the digital image with the image index files representative of the advertisements (block 1316) and transmitting at least one advertisement based on the comparison (block 1320). -
FIG. 14 illustrates anadvertising process 1400 according to another embodiment of the invention. It will be appreciated that theprocess 1400 described below is merely exemplary and may include a fewer or greater number of steps, and that the order of at least some of the steps may vary from that described below. - The
advertising process 1400 begins by maintaining an index of image descriptors, each image descriptor representative of a digital image of an advertisement (block 1304). - The
advertising process 1400 continues by receiving user selection of a digital image (block 1408) and calculating an image descriptor representative of the digital image (block 1412). - The
advertising process 1400 continues by comparing the image descriptor representative of the digital image with the image descriptors representative of the digital advertisements (block 1416) and transmitting at least a link to a webpage based on the comparison (block 1420). -
FIG. 15 shows a diagrammatic representation of a machine in the exemplary form of acomputer system 1500 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a server, personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a game console, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. In one embodiment, thecomputer system 1500 ofFIG. 15 is representative of theserver 104 and/or computers 152 shown inFIG. 1 . - The
exemplary computer system 1500 includes a processor 1502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1504 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.) and a static memory 1506 (e.g., flash memory, static random access memory (SRAM), etc.), which communicate with each other via abus 1508. - The
computer system 1500 may further include a video display unit 1510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). Thecomputer system 1500 also includes an alphanumeric input device 1512 (e.g., a keyboard), a cursor control device 1514 (e.g., a mouse), adisk drive unit 1516, a signal generation device 1520 (e.g., a speaker) and anetwork interface device 1522. - The
disk drive unit 1516 includes a machine-readable medium 1524 on which is stored one or more sets of instructions (e.g., software 1526) embodying any one or more of the methodologies or functions described herein. Thesoftware 1526 may also reside, completely or at least partially, within themain memory 1504 and/or within theprocessor 1502 during execution of thesoftware 1526 by thecomputer system 1500. - The
software 1526 may further be transmitted or received over anetwork 1528 via thenetwork interface device 1522. - While the machine-
readable medium 1524 is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals. - Although the above process has been described with respect to a genetic algorithm, it will be appreciated that other optimization methods or combinations of optimization methods may be used to define the similarity between images and/or cluster images. Other exemplary optimization methods include hill climbing algorithms, maximizing mean fitness algorithms, ant algorithms, bacteriologic algorithms, cross-entropy algorithms, cultural algorithms, evolution algorithms, grouping genetic algorithms, harmony search algorithms, memetic algorithms, simulated annealing algorithms, stochastic algorithms and the like.
- In the detailed description above numerous specific details were set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices were shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
- Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
- The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, compact disc read only memories (CD-ROMs), and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), Erasable Programmable Read-Only Memories (EPROMs), Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. The instructions of the programming language(s) may be executed by one or more processing devices (e.g., processors, controllers, control processing units (CPUs).
- The present invention has been described in relation to particular examples, which are intended in all respects to be illustrative rather than restrictive. Those skilled in the art will appreciate that many different combinations of hardware, software, and firmware will be suitable for practicing the present invention. Moreover, other implementations of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. Various aspects and/or components of the described embodiments may be used singly or in any combination. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.
Claims (33)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/535,669 US8374914B2 (en) | 2008-08-06 | 2009-08-04 | Advertising using image comparison |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8676008P | 2008-08-06 | 2008-08-06 | |
US8675908P | 2008-08-06 | 2008-08-06 | |
US12/535,669 US8374914B2 (en) | 2008-08-06 | 2009-08-04 | Advertising using image comparison |
Publications (2)
Publication Number | Publication Date |
---|---|
US20100036883A1 true US20100036883A1 (en) | 2010-02-11 |
US8374914B2 US8374914B2 (en) | 2013-02-12 |
Family
ID=41653033
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/535,669 Expired - Fee Related US8374914B2 (en) | 2008-08-06 | 2009-08-04 | Advertising using image comparison |
US12/535,636 Expired - Fee Related US8718383B2 (en) | 2008-08-06 | 2009-08-04 | Image and website filter using image comparison |
US12/535,626 Expired - Fee Related US8762383B2 (en) | 2008-08-06 | 2009-08-04 | Search engine and method for image searching |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/535,636 Expired - Fee Related US8718383B2 (en) | 2008-08-06 | 2009-08-04 | Image and website filter using image comparison |
US12/535,626 Expired - Fee Related US8762383B2 (en) | 2008-08-06 | 2009-08-04 | Search engine and method for image searching |
Country Status (1)
Country | Link |
---|---|
US (3) | US8374914B2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100034470A1 (en) * | 2008-08-06 | 2010-02-11 | Alexander Valencia-Campo | Image and website filter using image comparison |
US20100169178A1 (en) * | 2008-12-26 | 2010-07-01 | Microsoft Corporation | Advertising Method for Image Search |
US20110238534A1 (en) * | 2010-03-29 | 2011-09-29 | Ramanjaneyulu Yakkala | Methods and systems for improving the categorization of items for which item listings are made by a user of an ecommerce system |
US20120224768A1 (en) * | 2011-03-04 | 2012-09-06 | Olive Root, LLC | System and method for visual search |
US20130332484A1 (en) * | 2012-06-06 | 2013-12-12 | Rackspace Us, Inc. | Data Management and Indexing Across a Distributed Database |
US20140016822A1 (en) * | 2012-07-10 | 2014-01-16 | Yahoo Japan Corporation | Information providing device and information providing method |
US20140122259A1 (en) * | 2012-05-14 | 2014-05-01 | Google Inc. | Selection of images to display next to textual content |
US8898139B1 (en) * | 2011-06-24 | 2014-11-25 | Google Inc. | Systems and methods for dynamic visual search engine |
US20140358882A1 (en) * | 2013-05-28 | 2014-12-04 | Broadcom Corporation | Device content used to bias a search infrastructure |
US20150161120A1 (en) * | 2012-06-05 | 2015-06-11 | Google Inc. | Identifying landing pages for images |
US9058611B2 (en) | 2011-03-17 | 2015-06-16 | Xerox Corporation | System and method for advertising using image search and classification |
US20150287076A1 (en) * | 2014-04-02 | 2015-10-08 | Patrick Soon-Shiong | Augmented Pre-Paid Cards, Systems and Methods |
US20160026866A1 (en) * | 2014-07-23 | 2016-01-28 | Neelakantan Sundaresan | Use of camera metadata for recommendations |
US9298982B2 (en) | 2011-07-26 | 2016-03-29 | Xerox Corporation | System and method for computing the visual profile of a place |
WO2016106256A1 (en) * | 2014-12-22 | 2016-06-30 | Microsoft Technology Licensing, Llc | Method and user interface for presenting auxiliary content together with image search results |
US9727648B2 (en) | 2014-12-19 | 2017-08-08 | Quixey, Inc. | Time-box constrained searching in a distributed search system |
US9792638B2 (en) | 2010-03-29 | 2017-10-17 | Ebay Inc. | Using silhouette images to reduce product selection error in an e-commerce environment |
US9846903B2 (en) | 2010-08-28 | 2017-12-19 | Ebay Inc. | Multilevel silhouettes in an online shopping environment |
US20180144376A1 (en) * | 2015-07-29 | 2018-05-24 | Sung Wan Kim | On-line advertisement method using advertisement website |
US11367274B2 (en) * | 2017-09-13 | 2022-06-21 | Ebay Inc. | Nuanced-color search and recommendation system |
US20230162242A1 (en) * | 2009-10-01 | 2023-05-25 | 2Kdirect, Inc. | Automatic generation of electronic advertising messages containing one or more automatically selected stock photography images |
US20240004916A1 (en) * | 2022-03-31 | 2024-01-04 | Dropbox, Inc. | Generating and utilizing digital media clips based on contextual metadata from digital environments |
US12136110B2 (en) * | 2023-01-11 | 2024-11-05 | 2Kdirect, Inc. | Automatic generation of electronic advertising messages containing one or more automatically selected stock photography images |
Families Citing this family (135)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590310B2 (en) * | 2004-05-05 | 2009-09-15 | Facet Technology Corp. | Methods and apparatus for automated true object-based image analysis and retrieval |
US10719855B1 (en) * | 2007-06-18 | 2020-07-21 | Taboola.Com Ltd. | Internet content commercialization |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8156243B2 (en) | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US8520979B2 (en) * | 2008-08-19 | 2013-08-27 | Digimarc Corporation | Methods and systems for content processing |
US8286176B1 (en) | 2008-09-29 | 2012-10-09 | Amazon Technologies, Inc. | Optimizing resource configurations |
US8316124B1 (en) | 2008-09-29 | 2012-11-20 | Amazon Technologies, Inc. | Managing network data display |
US8051166B1 (en) | 2008-09-29 | 2011-11-01 | Amazon Technologies, Inc. | Service provider optimization of content management |
US7865594B1 (en) | 2008-09-29 | 2011-01-04 | Amazon Technologies, Inc. | Managing resources consolidation configurations |
US8122124B1 (en) | 2008-09-29 | 2012-02-21 | Amazon Technologies, Inc. | Monitoring performance and operation of data exchanges |
US7930393B1 (en) | 2008-09-29 | 2011-04-19 | Amazon Technologies, Inc. | Monitoring domain allocation performance |
US8117306B1 (en) | 2008-09-29 | 2012-02-14 | Amazon Technologies, Inc. | Optimizing content management |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US7917618B1 (en) * | 2009-03-24 | 2011-03-29 | Amazon Technologies, Inc. | Monitoring web site content |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US8761512B1 (en) * | 2009-12-03 | 2014-06-24 | Google Inc. | Query by image |
US8331370B2 (en) | 2009-12-17 | 2012-12-11 | Amazon Technologies, Inc. | Distributed routing architecture |
US8331371B2 (en) | 2009-12-17 | 2012-12-11 | Amazon Technologies, Inc. | Distributed routing architecture |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US20110196642A1 (en) * | 2010-02-11 | 2011-08-11 | Jesse Newcomb | Subgraph searching |
US8359642B1 (en) * | 2010-06-25 | 2013-01-22 | Sprint Communications Company L.P. | Restricting mature content |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US8938526B1 (en) | 2010-09-28 | 2015-01-20 | Amazon Technologies, Inc. | Request routing management based on network components |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8930513B1 (en) | 2010-09-28 | 2015-01-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8924528B1 (en) | 2010-09-28 | 2014-12-30 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
US8438163B1 (en) * | 2010-12-07 | 2013-05-07 | Google Inc. | Automatic learning of logos for visual recognition |
KR101029160B1 (en) * | 2011-02-07 | 2011-04-13 | (주)올라웍스 | Method, system and computer-readable recording medium for writing new image and its information onto image database |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US9552376B2 (en) | 2011-06-09 | 2017-01-24 | MemoryWeb, LLC | Method and apparatus for managing digital files |
JP2013068981A (en) * | 2011-09-20 | 2013-04-18 | Fujitsu Ltd | Electronic computer and image retrieval method |
US9412020B2 (en) | 2011-11-09 | 2016-08-09 | Board Of Regents Of The University Of Texas System | Geometric coding for billion-scale partial-duplicate image search |
US9026540B1 (en) * | 2012-01-31 | 2015-05-05 | Google Inc. | Systems and methods for information match scoring |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US8799257B1 (en) * | 2012-03-19 | 2014-08-05 | Google Inc. | Searching based on audio and/or visual features of documents |
US9083743B1 (en) | 2012-03-21 | 2015-07-14 | Amazon Technologies, Inc. | Managing request routing information utilizing performance information |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US20130304738A1 (en) * | 2012-05-11 | 2013-11-14 | International Business Machines Corporation | Managing multimedia information using dynamic semantic tables |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9135048B2 (en) | 2012-09-20 | 2015-09-15 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
WO2014056112A1 (en) * | 2012-10-10 | 2014-04-17 | Broadbandtv, Corp. | Intelligent video thumbnail selection and generation |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9519355B2 (en) * | 2013-03-15 | 2016-12-13 | Derek A Devries | Mobile device event control with digital images |
US20160132569A1 (en) * | 2013-05-16 | 2016-05-12 | Yandex Europe Ag | Method and system for presenting image information to a user of a client device |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US9529824B2 (en) * | 2013-06-05 | 2016-12-27 | Digitalglobe, Inc. | System and method for multi resolution and multi temporal image search |
WO2015008798A1 (en) * | 2013-07-18 | 2015-01-22 | 三菱電機株式会社 | Target type identification device |
US10013639B1 (en) | 2013-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Analyzing digital images based on criteria |
US10318543B1 (en) | 2014-03-20 | 2019-06-11 | Google Llc | Obtaining and enhancing metadata for content items |
US9769248B1 (en) | 2014-12-16 | 2017-09-19 | Amazon Technologies, Inc. | Performance-based content delivery |
US10027739B1 (en) | 2014-12-16 | 2018-07-17 | Amazon Technologies, Inc. | Performance-based content delivery |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225365B1 (en) | 2014-12-19 | 2019-03-05 | Amazon Technologies, Inc. | Machine learning based content delivery |
US10311371B1 (en) | 2014-12-19 | 2019-06-04 | Amazon Technologies, Inc. | Machine learning based content delivery |
US10311372B1 (en) | 2014-12-19 | 2019-06-04 | Amazon Technologies, Inc. | Machine learning based content delivery |
US10311329B2 (en) * | 2015-01-30 | 2019-06-04 | International Business Machines Corporation | Social connection via real-time image comparison |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
CN106156063B (en) * | 2015-03-30 | 2019-10-01 | 阿里巴巴集团控股有限公司 | Correlation technique and device for object picture search results ranking |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US10853406B2 (en) | 2015-09-18 | 2020-12-01 | Commvault Systems, Inc. | Data storage management operations in a secondary storage subsystem using image recognition and image-based criteria |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
CN106557527A (en) * | 2015-09-30 | 2017-04-05 | 中兴通讯股份有限公司 | A kind of pornographic image detection and system |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US11741522B2 (en) * | 2015-12-31 | 2023-08-29 | Kodak Alaris, Inc. | Method for image product recommendation |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
CN106228510B (en) * | 2016-08-11 | 2019-01-29 | 中国电子科技集团公司第三十八研究所 | UAV system REAL TIME SAR IMAGES method for registering based on distortion degree segmentation |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US11042586B2 (en) * | 2016-12-29 | 2021-06-22 | Shutterstock, Inc. | Clustering search results based on image composition |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10956372B2 (en) * | 2017-08-23 | 2021-03-23 | Bank Of America Corporation | Image capturing and processing for legacy format integration |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US11853713B2 (en) | 2018-04-17 | 2023-12-26 | International Business Machines Corporation | Graph similarity analytics |
CN108733807A (en) * | 2018-05-18 | 2018-11-02 | 北京小米移动软件有限公司 | Search the method and device of photo |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
CN111899097B (en) | 2018-12-28 | 2023-10-27 | 创新先进技术有限公司 | Method and system for accepting blockchain certification transaction |
WO2021079386A1 (en) * | 2019-10-23 | 2021-04-29 | Yakkyo S.R.L. | Method and system for searching a digital image in an online database |
JP7363382B2 (en) * | 2019-11-05 | 2023-10-18 | 富士通株式会社 | Analysis equipment, analysis program and analysis method |
KR102114223B1 (en) | 2019-12-10 | 2020-05-22 | 셀렉트스타 주식회사 | Method for filtering a similar image based on deep learning and apparatus using the same |
US11715151B2 (en) | 2020-01-31 | 2023-08-01 | Walmart Apollo, Llc | Systems and methods for retraining of machine learned systems |
US11665273B2 (en) * | 2020-03-03 | 2023-05-30 | Samsung Electronics Co., Ltd. | System and method for image color management |
US11972525B2 (en) | 2022-02-21 | 2024-04-30 | International Business Machines Corporation | Generating training data through image augmentation |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465308A (en) * | 1990-06-04 | 1995-11-07 | Datron/Transoc, Inc. | Pattern recognition system |
US5911139A (en) * | 1996-03-29 | 1999-06-08 | Virage, Inc. | Visual image database search engine which allows for different schema |
US6122628A (en) * | 1997-10-31 | 2000-09-19 | International Business Machines Corporation | Multidimensional data clustering and dimension reduction for indexing and searching |
US6249607B1 (en) * | 1997-09-19 | 2001-06-19 | Minolta Co., Ltd. | Similar-image retrieving apparatus, similar-image retrieving method and program storage medium |
US6256409B1 (en) * | 1998-10-19 | 2001-07-03 | Sony Corporation | Method for determining a correlation between images using multi-element image descriptors |
US20020042707A1 (en) * | 2000-06-19 | 2002-04-11 | Gang Zhao | Grammar-packaged parsing |
US6445818B1 (en) * | 1998-05-28 | 2002-09-03 | Lg Electronics Inc. | Automatically determining an optimal content image search algorithm by choosing the algorithm based on color |
US6519360B1 (en) * | 1997-09-17 | 2003-02-11 | Minolta Co., Ltd. | Image processing apparatus for comparing images based on color feature information and computer program product in a memory |
US6556710B2 (en) * | 2000-12-15 | 2003-04-29 | America Online, Inc. | Image searching techniques |
US6563959B1 (en) * | 1999-07-30 | 2003-05-13 | Pixlogic Llc | Perceptual similarity image retrieval method |
US6673148B2 (en) * | 2000-12-29 | 2004-01-06 | Ebara Solar, Inc. | Method of using a magnetic field furnace to manufacture semiconductor substrates |
US20040047498A1 (en) * | 2000-11-22 | 2004-03-11 | Miguel Mulet-Parada | Detection of features in images |
US6721449B1 (en) * | 1998-07-06 | 2004-04-13 | Koninklijke Philips Electronics N.V. | Color quantization and similarity measure for content based image retrieval |
US6826316B2 (en) * | 2001-01-24 | 2004-11-30 | Eastman Kodak Company | System and method for determining image similarity |
US20050041863A1 (en) * | 2003-08-19 | 2005-02-24 | Ray Ajoy K. | Enabling content-based search of objects in an image database with reduced matching |
US6865302B2 (en) * | 2000-03-16 | 2005-03-08 | The Regents Of The University Of California | Perception-based image retrieval |
US6952495B1 (en) * | 1999-11-19 | 2005-10-04 | Lg Electronics Inc. | Method for quantization of histogram bin value of image |
US20060015492A1 (en) * | 2003-11-26 | 2006-01-19 | Yesvideo, Inc. | Use of image similarity in annotating groups of visual images in a collection of visual images |
US20070010990A1 (en) * | 2003-04-24 | 2007-01-11 | Soon-Jo Woo | Method for sentence structure analysis based on mobile configuration concept and method for natural language search using of it |
US20070078846A1 (en) * | 2005-09-30 | 2007-04-05 | Antonino Gulli | Similarity detection and clustering of images |
US20070092142A1 (en) * | 2005-10-25 | 2007-04-26 | General Electric Company | Automatic significant image generation based on image characteristics |
US20070183633A1 (en) * | 2004-03-24 | 2007-08-09 | Andre Hoffmann | Identification, verification, and recognition method and system |
US20070192292A1 (en) * | 2006-02-02 | 2007-08-16 | Tomasz Imielinski | Searching for services in natural language |
US20080177640A1 (en) * | 2005-05-09 | 2008-07-24 | Salih Burak Gokturk | System and method for using image analysis and search in e-commerce |
US20080221869A1 (en) * | 2007-03-07 | 2008-09-11 | Microsoft Corporation | Converting dependency grammars to efficiently parsable context-free grammars |
US20090171766A1 (en) * | 2007-12-27 | 2009-07-02 | Jeremy Schiff | System and method for providing advertisement optimization services |
US20100278439A1 (en) * | 2000-11-13 | 2010-11-04 | Lennington John W | Digital Media Recognition Apparatus and Methods |
US20100329547A1 (en) * | 2007-04-13 | 2010-12-30 | Ipharro Media Gmbh | Video detection system and methods |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2004A (en) * | 1841-03-12 | Improvement in the manner of constructing and propelling steam-vessels | ||
US2008A (en) * | 1841-03-18 | Gas-lamp eok conducting gas pkom ah elevated buhner to one below it | ||
US2007A (en) * | 1841-03-16 | Improvement in the mode of harvesting grain | ||
US2002A (en) * | 1841-03-12 | Tor and planter for plowing | ||
US2005A (en) * | 1841-03-16 | Improvement in the manner of constructing molds for casting butt-hinges | ||
US6084595A (en) * | 1998-02-24 | 2000-07-04 | Virage, Inc. | Indexing method for image search engine |
US6411953B1 (en) * | 1999-01-25 | 2002-06-25 | Lucent Technologies Inc. | Retrieval and matching of color patterns based on a predetermined vocabulary and grammar |
US7027644B1 (en) * | 1999-02-01 | 2006-04-11 | Lg Electronics Inc. | Multilevel image grid data structure and image search method using the same |
US6286001B1 (en) * | 1999-02-24 | 2001-09-04 | Doodlebug Online, Inc. | System and method for authorizing access to data on content servers in a distributed network |
US6606659B1 (en) * | 2000-01-28 | 2003-08-12 | Websense, Inc. | System and method for controlling access to internet sites |
RU2175148C1 (en) | 2000-04-04 | 2001-10-20 | Свириденко Андрей Владимирович | Method for recognizing person identity |
RU2259592C2 (en) | 2003-06-24 | 2005-08-27 | "Аби Софтвер Лтд." | Method for recognizing graphic objects using integrity principle |
RU2256224C1 (en) | 2003-11-14 | 2005-07-10 | Общество с ограниченной ответственностью "Информационные исследования" ("Изучение, Оценивание, Распознавание") | Database for processing, analyzing and recognizing images |
US20060020714A1 (en) * | 2004-07-22 | 2006-01-26 | International Business Machines Corporation | System, apparatus and method of displaying images based on image content |
US20070022202A1 (en) * | 2005-07-22 | 2007-01-25 | Finkle Karyn S | System and method for deactivating web pages |
US7627166B2 (en) * | 2005-09-28 | 2009-12-01 | Yahoo! Inc. | Method and mechanism for processing image data |
US20070133947A1 (en) * | 2005-10-28 | 2007-06-14 | William Armitage | Systems and methods for image search |
US7583839B2 (en) * | 2005-10-31 | 2009-09-01 | Yahoo! Inc. | Method and mechanism for analyzing the texture of a digital image |
US7831111B2 (en) * | 2005-10-31 | 2010-11-09 | Yahoo! Inc. | Method and mechanism for retrieving images |
RU2304307C1 (en) | 2006-03-29 | 2007-08-10 | Юрий Витальевич Морзеев | Method for identification of a person by his face image |
US7917514B2 (en) * | 2006-06-28 | 2011-03-29 | Microsoft Corporation | Visual and multi-dimensional search |
US20080065606A1 (en) * | 2006-09-08 | 2008-03-13 | Donald Robert Martin Boys | Method and Apparatus for Searching Images through a Search Engine Interface Using Image Data and Constraints as Input |
US7885482B2 (en) * | 2006-10-26 | 2011-02-08 | Microsoft Corporation | Coverage-based image relevance ranking |
US20080140706A1 (en) * | 2006-11-27 | 2008-06-12 | Charles Kahn | Image retrieval system |
WO2008091768A2 (en) * | 2007-01-22 | 2008-07-31 | Global Crypto Systems | Methods and systems for digital authentication using digitally signed images |
US8934717B2 (en) * | 2007-06-05 | 2015-01-13 | Intellectual Ventures Fund 83 Llc | Automatic story creation using semantic classifiers for digital assets and associated metadata |
US8374914B2 (en) * | 2008-08-06 | 2013-02-12 | Obschestvo S Ogranichennoi Otvetstvennostiu “Kuznetch” | Advertising using image comparison |
-
2009
- 2009-08-04 US US12/535,669 patent/US8374914B2/en not_active Expired - Fee Related
- 2009-08-04 US US12/535,636 patent/US8718383B2/en not_active Expired - Fee Related
- 2009-08-04 US US12/535,626 patent/US8762383B2/en not_active Expired - Fee Related
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465308A (en) * | 1990-06-04 | 1995-11-07 | Datron/Transoc, Inc. | Pattern recognition system |
US5911139A (en) * | 1996-03-29 | 1999-06-08 | Virage, Inc. | Visual image database search engine which allows for different schema |
US6519360B1 (en) * | 1997-09-17 | 2003-02-11 | Minolta Co., Ltd. | Image processing apparatus for comparing images based on color feature information and computer program product in a memory |
US6249607B1 (en) * | 1997-09-19 | 2001-06-19 | Minolta Co., Ltd. | Similar-image retrieving apparatus, similar-image retrieving method and program storage medium |
US6122628A (en) * | 1997-10-31 | 2000-09-19 | International Business Machines Corporation | Multidimensional data clustering and dimension reduction for indexing and searching |
US6445818B1 (en) * | 1998-05-28 | 2002-09-03 | Lg Electronics Inc. | Automatically determining an optimal content image search algorithm by choosing the algorithm based on color |
US6721449B1 (en) * | 1998-07-06 | 2004-04-13 | Koninklijke Philips Electronics N.V. | Color quantization and similarity measure for content based image retrieval |
US6256409B1 (en) * | 1998-10-19 | 2001-07-03 | Sony Corporation | Method for determining a correlation between images using multi-element image descriptors |
US6563959B1 (en) * | 1999-07-30 | 2003-05-13 | Pixlogic Llc | Perceptual similarity image retrieval method |
US6952495B1 (en) * | 1999-11-19 | 2005-10-04 | Lg Electronics Inc. | Method for quantization of histogram bin value of image |
US6865302B2 (en) * | 2000-03-16 | 2005-03-08 | The Regents Of The University Of California | Perception-based image retrieval |
US20020042707A1 (en) * | 2000-06-19 | 2002-04-11 | Gang Zhao | Grammar-packaged parsing |
US20100278439A1 (en) * | 2000-11-13 | 2010-11-04 | Lennington John W | Digital Media Recognition Apparatus and Methods |
US20040047498A1 (en) * | 2000-11-22 | 2004-03-11 | Miguel Mulet-Parada | Detection of features in images |
US6556710B2 (en) * | 2000-12-15 | 2003-04-29 | America Online, Inc. | Image searching techniques |
US6673148B2 (en) * | 2000-12-29 | 2004-01-06 | Ebara Solar, Inc. | Method of using a magnetic field furnace to manufacture semiconductor substrates |
US6826316B2 (en) * | 2001-01-24 | 2004-11-30 | Eastman Kodak Company | System and method for determining image similarity |
US20070010990A1 (en) * | 2003-04-24 | 2007-01-11 | Soon-Jo Woo | Method for sentence structure analysis based on mobile configuration concept and method for natural language search using of it |
US20050041863A1 (en) * | 2003-08-19 | 2005-02-24 | Ray Ajoy K. | Enabling content-based search of objects in an image database with reduced matching |
US20060015492A1 (en) * | 2003-11-26 | 2006-01-19 | Yesvideo, Inc. | Use of image similarity in annotating groups of visual images in a collection of visual images |
US20070183633A1 (en) * | 2004-03-24 | 2007-08-09 | Andre Hoffmann | Identification, verification, and recognition method and system |
US20080177640A1 (en) * | 2005-05-09 | 2008-07-24 | Salih Burak Gokturk | System and method for using image analysis and search in e-commerce |
US20070078846A1 (en) * | 2005-09-30 | 2007-04-05 | Antonino Gulli | Similarity detection and clustering of images |
US20070092142A1 (en) * | 2005-10-25 | 2007-04-26 | General Electric Company | Automatic significant image generation based on image characteristics |
US20070192292A1 (en) * | 2006-02-02 | 2007-08-16 | Tomasz Imielinski | Searching for services in natural language |
US20080221869A1 (en) * | 2007-03-07 | 2008-09-11 | Microsoft Corporation | Converting dependency grammars to efficiently parsable context-free grammars |
US20100329547A1 (en) * | 2007-04-13 | 2010-12-30 | Ipharro Media Gmbh | Video detection system and methods |
US20090171766A1 (en) * | 2007-12-27 | 2009-07-02 | Jeremy Schiff | System and method for providing advertisement optimization services |
US20090172730A1 (en) * | 2007-12-27 | 2009-07-02 | Jeremy Schiff | System and method for advertisement delivery optimization |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100034470A1 (en) * | 2008-08-06 | 2010-02-11 | Alexander Valencia-Campo | Image and website filter using image comparison |
US8718383B2 (en) * | 2008-08-06 | 2014-05-06 | Obschestvo s ogranischennoi otvetstvennostiu “KUZNETCH” | Image and website filter using image comparison |
US20100169178A1 (en) * | 2008-12-26 | 2010-07-01 | Microsoft Corporation | Advertising Method for Image Search |
US20230162242A1 (en) * | 2009-10-01 | 2023-05-25 | 2Kdirect, Inc. | Automatic generation of electronic advertising messages containing one or more automatically selected stock photography images |
US9792638B2 (en) | 2010-03-29 | 2017-10-17 | Ebay Inc. | Using silhouette images to reduce product selection error in an e-commerce environment |
US11935103B2 (en) | 2010-03-29 | 2024-03-19 | Ebay Inc. | Methods and systems for reducing item selection error in an e-commerce environment |
US20110238534A1 (en) * | 2010-03-29 | 2011-09-29 | Ramanjaneyulu Yakkala | Methods and systems for improving the categorization of items for which item listings are made by a user of an ecommerce system |
US11605116B2 (en) | 2010-03-29 | 2023-03-14 | Ebay Inc. | Methods and systems for reducing item selection error in an e-commerce environment |
US11295374B2 (en) | 2010-08-28 | 2022-04-05 | Ebay Inc. | Multilevel silhouettes in an online shopping environment |
US9846903B2 (en) | 2010-08-28 | 2017-12-19 | Ebay Inc. | Multilevel silhouettes in an online shopping environment |
US20120224768A1 (en) * | 2011-03-04 | 2012-09-06 | Olive Root, LLC | System and method for visual search |
US9058611B2 (en) | 2011-03-17 | 2015-06-16 | Xerox Corporation | System and method for advertising using image search and classification |
US8898139B1 (en) * | 2011-06-24 | 2014-11-25 | Google Inc. | Systems and methods for dynamic visual search engine |
US9442950B2 (en) | 2011-06-24 | 2016-09-13 | Google Inc. | Systems and methods for dynamic visual search engine |
US9298982B2 (en) | 2011-07-26 | 2016-03-29 | Xerox Corporation | System and method for computing the visual profile of a place |
US9183577B2 (en) * | 2012-05-14 | 2015-11-10 | Google Inc. | Selection of images to display next to textual content |
US20140122259A1 (en) * | 2012-05-14 | 2014-05-01 | Google Inc. | Selection of images to display next to textual content |
US9158857B2 (en) * | 2012-06-05 | 2015-10-13 | Google Inc. | Identifying landing pages for images |
US20150161120A1 (en) * | 2012-06-05 | 2015-06-11 | Google Inc. | Identifying landing pages for images |
US9727590B2 (en) | 2012-06-06 | 2017-08-08 | Rackspace Us, Inc. | Data management and indexing across a distributed database |
US8965921B2 (en) * | 2012-06-06 | 2015-02-24 | Rackspace Us, Inc. | Data management and indexing across a distributed database |
US20130332484A1 (en) * | 2012-06-06 | 2013-12-12 | Rackspace Us, Inc. | Data Management and Indexing Across a Distributed Database |
US9495592B2 (en) * | 2012-07-10 | 2016-11-15 | Yahoo Japan Corporation | Image-based information providing device and method using object recognition |
US20140016822A1 (en) * | 2012-07-10 | 2014-01-16 | Yahoo Japan Corporation | Information providing device and information providing method |
US20140358882A1 (en) * | 2013-05-28 | 2014-12-04 | Broadcom Corporation | Device content used to bias a search infrastructure |
US20150287076A1 (en) * | 2014-04-02 | 2015-10-08 | Patrick Soon-Shiong | Augmented Pre-Paid Cards, Systems and Methods |
US10521817B2 (en) * | 2014-04-02 | 2019-12-31 | Nant Holdings Ip, Llc | Augmented pre-paid cards, systems and methods |
US12002264B2 (en) | 2014-07-23 | 2024-06-04 | Ebay Inc. | Use of camera metadata for recommendations |
US20160026866A1 (en) * | 2014-07-23 | 2016-01-28 | Neelakantan Sundaresan | Use of camera metadata for recommendations |
US10248862B2 (en) * | 2014-07-23 | 2019-04-02 | Ebay Inc. | Use of camera metadata for recommendations |
US11704905B2 (en) | 2014-07-23 | 2023-07-18 | Ebay Inc. | Use of camera metadata for recommendations |
US10423677B2 (en) | 2014-12-19 | 2019-09-24 | Samsung Electronics Co., Ltd. | Time-box constrained searching in a distributed search system |
US9727648B2 (en) | 2014-12-19 | 2017-08-08 | Quixey, Inc. | Time-box constrained searching in a distributed search system |
WO2016106256A1 (en) * | 2014-12-22 | 2016-06-30 | Microsoft Technology Licensing, Llc | Method and user interface for presenting auxiliary content together with image search results |
US9652543B2 (en) | 2014-12-22 | 2017-05-16 | Microsoft Technology Licensing, Llc | Task-oriented presentation of auxiliary content to increase user interaction performance |
CN107111640A (en) * | 2014-12-22 | 2017-08-29 | 微软技术许可有限责任公司 | Method and user interface for auxiliary content to be presented together with image search result |
US20180144376A1 (en) * | 2015-07-29 | 2018-05-24 | Sung Wan Kim | On-line advertisement method using advertisement website |
US12079843B2 (en) | 2015-07-29 | 2024-09-03 | Sung Wan Kim | On-line advertisement method using advertisement website |
US11295348B2 (en) * | 2015-07-29 | 2022-04-05 | Sung Wan Kim | On-line advertisement method using advertisement website |
US11367274B2 (en) * | 2017-09-13 | 2022-06-21 | Ebay Inc. | Nuanced-color search and recommendation system |
US11789996B2 (en) | 2017-09-13 | 2023-10-17 | Ebay Inc. | Nuanced-color search and recommendation system |
US20240004916A1 (en) * | 2022-03-31 | 2024-01-04 | Dropbox, Inc. | Generating and utilizing digital media clips based on contextual metadata from digital environments |
US12136110B2 (en) * | 2023-01-11 | 2024-11-05 | 2Kdirect, Inc. | Automatic generation of electronic advertising messages containing one or more automatically selected stock photography images |
Also Published As
Publication number | Publication date |
---|---|
US20100034470A1 (en) | 2010-02-11 |
US8762383B2 (en) | 2014-06-24 |
US8718383B2 (en) | 2014-05-06 |
US8374914B2 (en) | 2013-02-12 |
US20100036818A1 (en) | 2010-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8374914B2 (en) | Advertising using image comparison | |
US20220284234A1 (en) | Systems and methods for identifying semantically and visually related content | |
US10902077B2 (en) | Search result aggregation method and apparatus based on artificial intelligence and search engine | |
US9870388B2 (en) | Analyzing usage of visual content to determine relationships indicating unsuccessful attempts to retrieve the visual content | |
US11755676B2 (en) | Systems and methods for generating real-time recommendations | |
US9087104B2 (en) | Dynamic presentation of targeted information in a mixed media reality recognition system | |
CN114238573B (en) | Text countercheck sample-based information pushing method and device | |
US20200250538A1 (en) | Training image and text embedding models | |
US10210179B2 (en) | Dynamic feature weighting | |
US12062018B2 (en) | Methods and apparatus for assessing candidates for visual roles | |
CN107862553A (en) | Advertisement real-time recommendation method, device, terminal device and storage medium | |
US10482091B2 (en) | Computerized system and method for high-quality and high-ranking digital content discovery | |
US20240330361A1 (en) | Training Image and Text Embedding Models | |
US20210056458A1 (en) | Predicting a persona class based on overlap-agnostic machine learning models for distributing persona-based digital content | |
US20110131093A1 (en) | System and method for optimizing selection of online advertisements | |
Cheng et al. | The effects of multiple query evidences on social image retrieval | |
CN112989169A (en) | Target object identification method, information recommendation method, device, equipment and medium | |
CN115222433A (en) | Information recommendation method and device and storage medium | |
US20240248944A1 (en) | Systems and methods for implementing session cookies for content selection | |
US20130332440A1 (en) | Refinements in Document Analysis | |
CN113806638B (en) | Personalized recommendation method based on user portrait and related equipment | |
US20140207791A1 (en) | Information network framework for feature selection field | |
WO2018002664A1 (en) | Data aggregation and performance assessment | |
CN113360734B (en) | Webpage classification method and device, storage medium and electronic equipment | |
CN114491294B (en) | Data recommendation method and device based on graphic neural network and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: OBSCHESTVO S OGRANICHENNOI OTVETSTVENNOSTIU "KUZNE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VALENCIA-CAMPO, ALEXANDER;MAKALKIN, MIKHAIL;CHERKASHIN, PAVEL;REEL/FRAME:026618/0006 Effective date: 20110629 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20210212 |