Many search engine services, such as Google and Overture, provide for searching for information that is accessible via the Internet. These search engine services allow users to search for display pages, such as web pages, that may be of interest to users. After a user submits a search request (i.e., a query) that includes search terms, the search engine service identifies web pages that may be related to those search terms. To quickly identify related web pages, the search engine services may maintain a mapping of keywords to web pages. This mapping may be generated by “crawling” the web (i.e., the World Wide Web) to identify the keywords of each web page. To crawl the web, a search engine service may use a list of root web pages to identify all web pages that are accessible through those root web pages. The keywords of any particular web page can be identified using various well-known information retrieval techniques, such as identifying the words of a headline, the words supplied in the metadata of the web page, the words that are highlighted, and so on. The search engine service identifies web pages that may be related to the search request based on how well the keywords of a web page match the words of the query. The search engine service then displays to the user links to the identified web pages in an order that is based on a ranking that may be determined by their relevance to the query, popularity, importance, and/or some other measure.
The Internet is being increasingly used to search for and view images (e.g., photographs). To support this use, commercial search engine services have located and indexed over 1 billion images since 2005. The indexing techniques for images of web pages typically work in a similar manner to the indexing of web pages. Once a search engine service identifies an image, it attempts to identify keywords related to that image from text surrounding the image on the web page that contains the image or from text surrounding links on other web pages that reference the web page that contains the image. The search engine service then creates a mapping from those keywords to the image. A user can then submit a textual query when searching for an image. For example, a user who is interested in locating images relating to a tiger may submit the query “tiger animal.” The search engine service may then search the keyword indexes for the keywords “tiger” and “animal” to locate the related images. The search engine service displays a thumbnail of each related image as the search result.
To help improve searching for images, content-based image retrieval techniques have been used. Some content-based image retrieval techniques use low-level features such as color, texture, and sharpness to represent the images. Such low-level features, however, do not effectively represent the semantics of images. Some content-based image retrieval techniques use mid-level features such as dominant color and type of image (e.g., photograph or graphic) to represent images. Theses mid-level features tend to provide more semantic information than the low-level features and are thus more useful when searching for images.
The dominant colors of images can be used by search engine services in different ways to improve the search experience. For example, a search engine service may allow a user to input the dominant color as a visual feature of desired images along with keywords expressing the semantics of desired images. Thus, a query might consist of the keywords “Tiger Woods” and the dominant color of “green.” As another example, a search engine service may identify images that match keywords of a query and then cluster the identified images based on their dominant colors. To facilitate the use of dominant color, a search engine service may index its images based on the dominant color of the images.
The dominant color of images can also be used in applications outside of searching. Systems that display images on a computer display or television may automatically generate a matte that surrounds each image. Such systems may select a color for the matte based on the dominant color. For example, the color selected for the matte may be a color that is complementary to the dominant color of the image. Other systems generate ambient light while an image or a video is being displayed. Such systems may select a color for the ambient light that is based on the dominant color of the image or the frame of video currently being displayed.
Current techniques for identifying the dominant color of an image typically select the color that appears most frequently in an image or apply some statistical algorithm. The current techniques, however, do not always identify the appropriate color as the dominant color. For example, if an image has 25 percent of its pixels in one color and 75 percent in very similar colors (that are very different from the first color), but has no more than 5 percent in any one similar color, current techniques may incorrectly select the color of the 25 percent of the pixels as the dominant color.