# Patent

## Title
Searching for images by video

## Abstract

Techniques describe submitting a video clip as a query by a user. A process retrieves images and information associated with the images in response to the query. The process decomposes the video clip into a sequence of frames to extract the features in a frame and to quantize the extracted features into descriptive words. The process further tracks the extracted features as points in the frame, a first set of points to correspond to a second set of points in consecutive frames to construct a sequence of points. Then the process identifies the points that satisfy criteria of being stable points and being centrally located in the frame to represent the video clip as a bag of descriptive words for searching for images and information related to the video clip.

## Background
BACKGROUND
The increasing popularity of image recognition applications provides new mechanisms for users based on the ease of use with cameras in mobile devices. The image recognition application provides convenience as users easily capture images on their cameras to be submitted as queries. The image recognition application performs searches based on images as queries, such as photographs, barcodes, and the like. Typically, the image recognition application relies on the image submitted to retrieve related information from the World Wide Web. For example, the user may submit a photograph of a famous landmark. The image recognition application evaluates images that are similar from a database to retrieve the related information about the famous landmark, without having received a text-based query.
However, the image recognition application has drawbacks as it may not be able to identify a main object in the image or to decipher the image. Also, other problems in retrieving related information may occur when the image is blurred, occluded, small, or in a viewpoint different from the images to be retrieved from the database. Furthermore, the image recognition application may retrieve information that is not relevant, such as an entire image in the query rather than the main object in the image being submitted as the query. Also, the search results tend to be inconsistent as the image recognition application may not return the same information each time when the same image is submitted as a query. Thus, it becomes difficult to retrieve relevant information.
SUMMARY
This disclosure describes receiving a video clip submitted as a query and retrieving images or information associated with the images in response to the query. In an implementation, this process occurs when an image-retrieval application receives the video clip to be decomposed into frames. The image-retrieval application extracts scale-invariant feature transform (SIFT) features from a frame and then quantizes the SIFT features into descriptive words. The image-retrieval application further tracks the SIFT points in the frame, a first set of SIFT points to correspond to a second set of SIFT points in consecutive frames to construct a sequence of points. The image-retrieval application further computes values for the SIFT points based on a number of points in the sequence of points and center values of the SIFT points of the frame to identify the SIFT points representing the video clip as a bag of descriptive words, for searching for images or information in response to the video clip as the query.
In another implementation, a process creates an image-retrieval model to construct a representation of a video clip with an object of interest submitted as a query. The process retrieves images from a database in response to the representation of the video clip by computing a similarity score between the images from the video clip and the database to identify top candidate search images. The process re-ranks the top candidate search images based at least in part on combining (1) the calculated similarity score between the images in a top search result and the images in the frames of the video clip and (2) an average gradient function to reflect temporal consistency information of matching scores for adjacent frames.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.



BRIEF DESCRIPTION OF THE DRAWINGS
The Detailed Description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items.
FIG. 1 illustrates an example environment to support architecture for submitting a video clip as a query by a user and searching for images and information associated with the images in response to the query.
FIG. 2 illustrates example high-level functions for processing the video clip submitted as the query, identifying descriptive words to describe features in the video clip, creating a representation of an object of interest in the video clip, creating an image-retrieval model, and retrieving images and information associated with the images.
FIG. 3 illustrates an example process of processing the video clip submitted as the query.
FIG. 4 illustrates an example process of identifying descriptive words from an image corpus to describe features extracted from the video clip.
FIG. 5 illustrates an example process of creating a representation of the object of interest in the video clip.
FIG. 6 illustrates example diagrams of a frame in the video clip and the frame with identified points on features.
FIG. 7 illustrates an example process of creating an image-retrieval model.
FIG. 8 illustrates an example user interface of providing retrieved images and information associated with the images to the user.
FIG. 9 illustrates another example user interface of providing retrieved images and information associated with the images to the user.
FIG. 10 is a block diagram showing an example image server usable with the environment of FIG. 1.



DETAILED DESCRIPTION
Overview
This disclosure describes providing search results by identifying images to be retrieved or information associated with the images in response to a video clip submitted as a query by a user. Initially, the user records a video and submits the video clip including an object of interest, typically captured in a center of the object. The video clip submitted as the query offers multiple viewpoints of the object of interest taken from various angles. Specifically, the user records multiple images of the object of interest while moving relative to the object of interest. For instance, the user may move around, above, below, closer to or further from the object of interest. In addition, the video clip submitted as the query offers varying scales of the object of interest. For example, the user records the video of the object of interest using the zoom-in and zoom-out features of the camera. The user determines which portions of the video to submit that captures the object of interest where the video clip may range from a few seconds to several minutes. Furthermore, the video clip submitted as the query offers items surrounding the object of interest that remain constant in the frames of the video clip. For example, the items surrounding the object of interest may include but are not limited to, an adjacent building, a bridge, an island, and the like. The items tend to appear in a relationship in the frame that is constant relative to the object of interest. The items appear as background information that may further help identify the object of interest during the retrieval process.
An image-retrieval application provides the images or information associated with the images in response to the video clip submitted as the query. For instance, envision that a user from another country visiting the United States captures a video of the Statue of Liberty on Liberty Island in New York Harbor. The user submits the video clip of the Statute of Liberty as the query to the image-retrieval application. The image-retrieval application evaluates the multiple viewpoints and varying scales of images of the video clip to identify the object of interest as the Statue of Liberty. The image-retrieval application takes the object of interest, the Statue of Liberty, and items surrounding the Statue of Liberty into account when providing the search results for images and information to the user. The image-retrieval application provides the retrieved images and information as ranked items in a descending order, in some instances. The images retrieved and information may include the Statue of Liberty, other statues located in New York City or other cities, and the like. In an example, the information may include a description about the Statue of Liberty, such as “female statue carrying torch, symbol of freedom and of the United States, located on Liberty Island in NY Harbor.”
In another example, the image-retrieval application may provide top-related search results and then re-rank the images retrieved based on the temporal information, such as the items surrounding the object of interest that should remain constant in the frames of the video clip. Using the Statue of Liberty as an example, items surrounding it may include Fort Wood, which serves as a base for the Statue of Liberty with a star-shaped fortification and Liberty Island, which serves as the island location for the Statue of Liberty. The temporal information of Fort Wood and the background of Liberty Island may be captured in the video clip of the Statute of Liberty and available to further identify the object of interest, when re-ranking the top search results.
Initially, the image-retrieval application may receive or collect images from users who have given permission for their data to be collected in an image corpus, from other databases, or from World Wide Web. Using the images, the image-retrieval application extracts features from them to identify descriptive words to describe the features. This information may be referred to as an image database, which is a collection of images that have been submitted by the users along with the descriptive words to describe the features in the images.
The search results for the images and the information may be provided in search engines and websites. In some implementations, the images and/or the information may be presented in a drop-down list in an Internet browser, a website, local databases, or local operating systems.
While aspects of described techniques can be implemented in any number of different computing systems, environments, and/or configurations, implementations are described in the context of the following the example computing environment.
Illustrative Environment
FIG. 1 illustrates an example architectural environment 100, usable to retrieve images and information based on the video clip submitted as the query. The environment 100 includes an example mobile device 102, which is illustrated as a smart phone. The mobile device 102 is configured to connect via one or more networks 104 to access an image-retrieval service 106 for a user 108. The mobile device 102 may take a variety of forms, including, but not limited to, a portable handheld computing device (e.g., a personal digital assistant, a smart phone, a cellular phone), a personal navigation device, a laptop computer, a desktop computer, a portable media player, a camera, a video recorder, or any other device capable of connecting to one or more networks 104 to access the image-retrieval service 106 for the user 108. In some instances, the user 108 may record a video on a camera and transfer the video to the mobile device 102 or the camera may be capable of accessing the network 104.
The network 104 represents any type of communications networks, including wire-based networks (e.g., public switched telephone, cable, and data networks) and wireless networks (e.g., cellular, satellite, WiFi, and Bluetooth).
The image-retrieval service 106 represents an application service that may be operated as part of any number of online service providers, such as a web service, a search engine, map service, social networking website, or the like. Also, the image-retrieval service 106 may include additional modules or may work in conjunction with modules to perform the operations discussed below. In an implementation, the image-retrieval service 106 may be implemented at least in part by an image-retrieval application 110 executed by servers, or by a image-retrieval application stored in memory of the mobile device 102.
In the illustrated example, the mobile device 102 may include an image-retrieval user interface (UI) 112 that is presented on a display of the mobile device 102. The UI 112 facilitates access to the image-retrieval service 106 to submit the video clip. The UI 112 displays the retrieved images and information associated with the retrieved images in response to the video clip. The UI 112 may also display a ranking of the images retrieved.
FIG. 1 illustrates the user 108 employing the UI 112 when accessing the image-retrieval service 106. For example, the user 108 may access the image-retrieval service 106 or the image-retrieval application 110 to input the video clip of a landmark, Basilica of Sacre-Coeur located in Paris. The UI 112 illustrates the video clip taken from multiple viewpoints of the architecture of the Basilica of Sacre-Coeur and with the zoom-in and zoom-out features of the portico of the Basilica of Sacre-Coeur with its arches. An example of the video clip illustrates: an initial frame of the Basilica when the user 108 walks toward the building, another frame of the Basilica when the user 108 approaches the building, and another frame of the Basilica when the user 108 zooms in on the details of the building.
In the illustrated example, the image-retrieval service 106 and the image-retrieval application 110 are hosted on one or more servers, such as image server 114(1), 114(2), . . . , 114(S), accessible via the network 104. The image servers 114(1)-(S) may be configured as plural independent servers, or as a collection of servers that are configured to perform larger scale functions accessible by the network 104. The image servers 114 may be administered or hosted by a network service provider. The image-retrieval service 106 may be implemented by the image servers 114 and the image-retrieval application 110 to and from the mobile device 102.
The environment 100 includes an image corpus 116, which may be stored on a separate server or with the representative set of servers 114 that is accessible via the network 104. The image corpus 116 may store the images and descriptive words describing the features extracted from the images. The image-retrieval application 110 may then retrieve images and information from the image corpus 116, which may be updated on a predetermined time interval.
FIGS. 2-5 and 7 illustrate flowcharts showing example processes. The processes are illustrated as a collection of blocks in logical flowcharts, which represent a sequence of operations that can be implemented in hardware, software, or a combination. For discussion purposes, the processes are described with reference to the computing environment 100 shown in FIG. 1. However, the processes may be performed using different environments and devices. Moreover, the environments and devices described herein may be used to perform different processes.
For ease of understanding, the methods are delineated as separate steps represented as independent blocks in the figures. However, these separately delineated steps should not be construed as necessarily order dependent in their performance. The order in which the process is described is not intended to be construed as a limitation, and any number of the described process blocks maybe be combined in any order to implement the method, or an alternate method. Moreover, it is also possible for one or more of the provided steps to be omitted.
FIG. 2 illustrates a flowchart showing an example process 200 of high-level functions performed by the image-retrieval application 110. The process 200 may be divided into five phases, an initial phase 202 to process the video clip submitted as the query, a second phase 204 to identify descriptive words to describe SIFT features extracted from the video clip, a third phase 206 to create a representation of an object of interest in the video clip based on the extracted features, a fourth phase 208 to create an image-retrieval model, and a fifth phase 210 to provide retrieved images and information from the image corpus in response to the video clip. All of the phases may be used in the environment of FIG. 1, may be performed separately or in combination, and without any particular order.
The first phase 202 processes the video clip submitted as the query by decomposing the video clip into a frame sequence. Also, the image-retrieval application 110 extracts scale-invariant feature transform (SIFT) features from a frame in the sequence.
The second phase 204 identifies descriptive words to describe the SIFT features extracted from a frame. Initially, the image-retrieval application 110 extracts features from images collected in an image corpus to describe their extracted features. The image-retrieval application 110 applies the descriptive words and the extracted features to build a word codebook to help describe the SIFT features.
The third phase 206 creates a representation of the video clip based on the extracted SIFT features. The representation includes tracking SIFT points in multiple frames and computing values for the points for the object of interest by filtering out the points that do not satisfy a criteria.
The fourth phase 208 creates an image-retrieval model. The image-retrieval application 110 selects from points that satisfy the criteria that are larger than a threshold number.
The fifth phase 210 retrieves images and information from the image corpus in response to the video clip. The image-retrieval application 110 computes similarity scores between the images in the video clip and the images from the image corpus to identify top search results. Details of the phases are discussed with reference to FIGS. 3-10 below.
Processing a Video Clip
FIG. 3 illustrates an example process 202 of processing the video clip submitted as the query 204 (discussed at a high level above). The user 108 records the object of interest in the video and submits the video clip having the object of interest. This figure illustrates the image-retrieval application 110 receives the video clip as the query from the user 300.
The image-retrieval application 110 decomposes or divides the video clip into a frame sequence 302. The process splits the video clip into previous frames, adjacent frames, and subsequent frames, depending on where tracking of the points occurs. An example of the video clip split into a frame sequence illustrates: an initial frame of the Basilica when the user 108 walks toward the building, other adjacent frames as the user 108 walks closer (not shown), another frame of the Basilica when the user 108 approaches the building, other adjacent frames as the user 108 is in front of the building (not shown), and another frame of the Basilica when the user 108 zooms in on the details of the building. This is merely an example of a frame sequence that may occur, the frame sequence may be decomposed in any manner suitable for extracting features from the frames.
The image-retrieval application 110 extracts SIFT features from a frame in the sequence 304. The extracted SIFT features from the frame help further identify the object of interest with points (to be shown as circles) on the frames.
The image-retrieval application 110 quantizes the extracted features into descriptive words based on a word codebook 306. The descriptive words correlate to the extracted features when attempting to locate images that are similar from the image corpus 116. For instance, the descriptive words describing the extracted features with points shown as circles may include: “building, church, portico, arches, and dome.”
The image-retrieval application 110 mines the extracted features and items surrounding the object of interest 308. This information may be kept in the image corpus 116 to derive a representation of the object of interest.
Identify Descriptive Words to Describe SIFT Features from Video Clip
FIG. 4 illustrates an example process 204 of identifying descriptive words from the image corpus to describe features extracted from the video clip (discussed at a high level above).
The image-retrieval application 110 accesses the image corpus 400. As discussed earlier, the image corpus 116 includes a collection of images submitted by users, obtained from the World Wide Web, obtained from other databases, social networks, services on the web, or the like. This collection of images is based on the users giving permission to opt-in for their images to be included as a part of the data collection. The options are that the individual user may choose to opt-in to participate or to opt-out to not participate in their sharing of images. In another implementation, a database stores the images.
The image-retrieval application 110 extracts SIFT features for an image in the image corpus 402. The extracted SIFT features from the image help identify a main object in the image and to correlate descriptive words to the features.
The image-retrieval application 110 further builds a word codebook by correlating the extracted SIFT features with descriptive words 404. The descriptive words help identify the extracted features when attempting to locate images from the image corpus 116. The word codebook described here was used when quantizing the extracted features of the video clip into descriptive words as discussed in FIG. 3.
The image-retrieval application 110 maps the SIFT features to the descriptive words 406. The SIFT features may be organized and identified belonging to certain descriptive words.
The image-retrieval application 110 indexes the descriptive words based on an inverted file structure 408. The inverted file structure stores the mapping from the descriptive words to its location in the image corpus 116. The inverted file structure helps process the search in a more efficient way to take less time to find images in response to the video clip.
Create a Representation of an Object of Interest in the Video Clip
FIG. 5 illustrates an example process 206 of creating a representation of the object of interest in the video clip (discussed above). In an example, the process may be performed by the image-retrieval application 110.
The image-retrieval application 110 tracks the SIFT points in the frame to construct a sequence of points in multiple adjacent frames 500. A sequence of points may be defined as a sequence composed of the SIFT points in temporarily adjacent frames. The points in a current frame may correspond or match relative to of the points in the adjacent frames based on tracking the frames. The image-retrieval application 110 tracks the SIFT points detected in a previous frame and aligns the tracked positions in a subsequent frame to one of the SIFT points. This process 206 identifies the SIFT points which are not more than one pixel away from the tracked positions as candidates for a tracked SIFT point. Next, the image-retrieval application 110 selects a candidate that is most similar to a corresponding SIFT point in the previous frame as the tracked SIFT point. Then, the process 206 provides an estimate of a SIFT similarity based on a Euclidian distance between their descriptors. The process 206 provides estimates of the SIFT similarity for each pair of adjacent frames in the video clip to identify corresponding points that occur in sequence, based on tracking the SIFT points in the frames.
The sequence of points obtained may be represented by a set Sk as:

Sk={pij}

where kth represents the sequence of points including several SIFT points and pij represents a jth SIFT point in a ith frame.

At 502, the image-retrieval application 110 asks: do the points satisfy criteria based on being a stable point and located in a center of the frame? The image-retrieval application 110 evaluates whether the points may be tracked and may correspond in multiple adjacent frames to classify the points as stable points and clearly identifiable. Also, the image-retrieval application 110 further evaluates whether the points located in the center of the frames are more important than the other objects or items in the frames. This evaluation relies on users' intention to record the object of interest in the center of the frame when capturing the video.
The image-retrieval application 110 evaluates the criteria of the points based on a combination of a stableness term and a center-awareness term by using the following equation:




  
    G
    ⁡
    
      (
      
        p
        i
        j
      
      )
    
  
  =
  
    
      α
      ×
      
        
          Len
          ⁡
          
            (
            
              S
              ⁡
              
                (
                
                  p
                  i
                  j
                
                )
              
            
            )
          
        
        FrameCount
      
    
    +
    
      
        (
        
          1
          -
          α
        
        )
      
      ×
      
        Cent
        ⁡
        
          (
          
            p
            i
            j
          
          )
        
      
    
  




where G(pij) represents “good points” that satisfy the criteria, pij represents each point, S(pij) represents a corresponding sequence of points, a represents a parameter to control respective contributions from the stableness term and a center-awareness term, and Frame Count represents the number of frames in the video clip to be used for normalization. The equation also includes Len (S(pij)) denoting the number of points in the sequence of points S(pij) to represent the stableness of the point. The center-awareness term may be represented by Cent(S) to approximate a user's intention that the object located near or in the center of the frame is more important than the other objects or items in the frame.

Based on occasional departures of intended objects from the center area of the frame, the image-retrieval application 110 calculates an average distance of all of the points in the tracked sequence to represent the center-awareness term of each point in the sequence. The following equation identifies the center-awareness point Cent(pij):




  
    Cent
    ⁡
    
      (
      
        p
        i
        j
      
      )
    
  
  =
  
    -
    
      
        
          ∑
          
            p
            ∈
            
              s
              ⁡
              
                (
                
                  p
                  i
                  j
                
                )
              
            
          
        
        ⁢
        
          d
          ⁡
          
            (
            
              p
              ,
              c
            
            )
          
        
      
      
        
          Len
          ⁡
          
            (
            
              S
              ⁡
              
                (
                
                  p
                  i
                  j
                
                )
              
            
            )
          
        
        ×
        
          d
          ⁡
          
            (
            
              O
              ,
              c
            
            )
          
        
      
    
  




where d represents a distance from point p to the center of the frame c, and d(O,c) represents a distance from an origin of a frame to the center.

At 502, after computing the value of the points, if the points are not considered stable or not located in the center of the frame, the process proceeds to the left where the points are not selected based on the computation of the points 504.
Returning to 502, the computation may indicate the points satisfy the criteria of being stable and located in the center, the points are considered good points and proceed to 506.
At 506, the image-retrieval application 110 aggregates the good points selected to represent the video clip as a bag of descriptive words for retrieving images. The process 206 occurs by aggregating an occurrence of the descriptive words in all of the frames as an aggregated histogram 508. The aggregated histogram may be denoted as q, where each bin qi corresponds to the descriptive word wi in the vocabulary. Then, for each descriptive word, the image-retrieval application 110 aggregates the occurrence of the descriptive word in all of the frames, divided by the number of frames in the video clip, as a value in the corresponding bin of the query histogram.
The video clip includes a large amount of variations, such as different appearances of the object of interest taken from multiple viewpoints as recorded by the user 108, scaling of the object of interest, and illumination. This redundancy also provides useful information to understand a relationship between the features extracted in the frames and to achieve a comprehensive representation of the object of interest in the video clip.
The image-retrieval application 110 applies this information to construct synonymous relationships among all of the descriptive words 510. The image-retrieval application 110 constructs an affinity matrix M with an element mij defined as:




  
    M
    :
    
      m
      ij
    
  
  =
  
    
      
        ∑
        k
      
      ⁢
      
        min
        ⁡
        
          (
          
            
              
                tc
                i
              
              ⁡
              
                (
                
                  S
                  k
                
                )
              
            
            ,
            
              
                tc
                j
              
              ⁡
              
                (
                
                  S
                  k
                
                )
              
            
          
          )
        
      
    
    
      tc
      i
    
  




where the process 206 sets diagonal elements to zero. For each descriptive word wi, a term count of the descriptive word found in all of the frames in the video clip may be denoted as tci, and a number of points in a corresponding sequence of points Sk being quantized as wi may be denoted as tci(Sk).

The image-retrieval application 110 then generates a contextual histogram from the aggregated histogram to partially address imperfections due to descriptive word quantization. This generation of the contextual histogram enables the term counts of synonym to boost each other to alleviate a problem that the similar feature descriptors may be quantized into different descriptive words. This equation represents the contextual histogram as:

cq=M·q 

where cq represents the contextual histogram, M represents the affinity matrix, and q represents the aggregated query histogram. Next, the image-retrieval application 110 combines the above equation with the aggregated query histogram to represent the “new” query representation as:

qnew=βq+(1−⊕)M·q 

where β represents a trade-off between an original query histogram and the contextual histogram.

FIG. 6 illustrates example diagrams 600 of a frame in the video clip and identified points located in the frame. At 602, a frame in a video clip illustrates how the user 108 typically attempts to record the object of interest in the center of the video. For instance, the object of interest is the building. At 604, the frame in the video clip illustrates SIFT points identified in the frame. For instance, circles 606 represent the SIFT points on the building as being stable and located in the center of the frame. On the other hand, triangles 608 represent the points on the trees and picnic table that are not considered stable or located in the center of the frame. The process 206 filters out the points shown with triangles 608 as the points represent the background, which are not useful in retrieving images in response to the query.
Creating the Image-Retrieval Model
FIG. 7 illustrates an example process 208 of creating the image-retrieval model. The image-retrieval application 110 receives the good points computed 700 based on the stability of the points and the center location of the points. The process 208 determines whether the computed good points are greater than a threshold number 702. The process moves to the left side when the points are less than the threshold number, to filter the points 704, which are not used in creating the image-retrieval model. If the points are greater than the threshold number, the process 208 proceeds to 706. Here, the image-retrieval model process 208 identifies the points greater than the threshold number for creating the image-retrieval model 706.
Next, the image-retrieval model process 208 performs a series of processes to represent the object of interest 708, which follows some of the processes along the same lines as the representation process 206. The processes may include aggregating the visual words to represent the video clip as bag of visual words 506, aggregating the occurrence of the descriptive words in all of the frames 508, and constructing synonymous relationships among the descriptive words 510. These processes create the representation of the object of interest in the video clip.
Then, the image-retrieval model process 208 applies the representation of the object of interest to construct a vector space model 710. The vector space model is a type of an algebraic model for representing objects or text documents as vectors of identifiers for image retrieval or information retrieval.
The image-retrieval model process 208 follows the image retrieval or information retrieval by a term frequency-inverse document frequency (tf-idf) weight to compute a similarity between the video clip and images in the image corpus 712. The tf-idf weight is a way of statistically analyzing how important a descriptive word is to an image in the image corpus 116 or database. The tf-idf weight evaluates the importance of the descriptive word. The descriptive word may increase in proportion to a number of times the descriptive word appears in the image, while the frequency of the descriptive word in the collection offsets the increase. For example, the tf identifies an importance of the descriptive word and the idf identifies the importance of the descriptive word and the image.
The equation to construct a vector space model includes:

qv=qnew·*idf 

where ·* represents element-wise multiplication of vectors, idf represents a vector, idfi represents an inverted document frequency of the descriptive word wi. The image-retrieval application 110 retrieves top candidates based on the similarity scores of the images and all of the frames in the sequence based on the vector space model.

Re-Ranking Search Results

There may be false matches between the image from the video query in the frame sequence and the images retrieved from the corpus images 116. For instance, there may be a high similarity score on one frame due to the noisy information spread in the frames and a low score on the next frame causing the false matches. A solution to avoid the false matches includes analyzing the frames containing the items surrounding the object of interest that do not change much in their appearances, as the frame contains the items surrounding the object of interest that remains constant. For instance, the similarity scores computed between the video clip with the items surrounding the object of interest and an image from the database should not change. Thus, the image-retrieval application 110 re-ranks the search results based on the items surrounding the object of interest, also referred to as temporal consistency information.
The image-retrieval application 110 computes similarity scores of the image in the top results and all of the frames in the video clip based on the vector space model tf-idf weighting, denoted as v(I,Fi), where Fi represents the ith frame in the video clip. The image-retrieval application 110 regards v(I,Fi), as a function of i to compute a gradient of the function using the following equation:

gi=v(I,Fi+1)−v(I,Fi).

The image-retrieval application 110 averages the absolute values of the gradients to reflect the temporal consistency information of the matching scores for temporally adjacent frames. The average gradient may be calculated using the following equation:




  
    g
    i
    a
  
  =
  
    
      ∑
      
        
        
          g
          i
        
        
      
    
    FrameCount
  




where the average gradient is combined with the similarity score to compute a new re-ranking score for the top results using:

ri=−giα+γri 

where r represents an initial ranking score and γ shows the importance of the average gradient in the re-ranked scores.

In another implementation, the user 108 records the video, which may cause shaking of the camera. For the video clip submitted as a query with camera shake, the images in the image corpus 116 or the database may have a high average gradient, which implicitly increases the impact of temporal consistency in re-ranking. For the video clip with the camera shake, the mean of average gradients of the top images as the measure of the dynamic degree of the video clip, which is used to weight the average gradient term to achieve a new re-ranking function using the following equation:




  
    r
    i
  
  =
  
    
      -
      
        
          g
          i
          a
        
        
          
            1
            N
          
          ⁢
          
            
              ∑
              
                i
                =
                1
              
              N
            
            ⁢
            
              g
              i
              a
            
          
        
      
    
    +
    
      γ
      ⁢
      
        
      
      ⁢
      
        
          r
          _
        
        i
      
    
  




where N represents the number of top images to be considered in the re-ranking.

Providing Retrieved Images and Information

FIGS. 8 and 9 illustrate example user interfaces 800 and 900, respectively, of providing retrieved images and information associated with the images to the user 108. In implementations, the image-retrieval application 110 provides the images for browsing or as part of services for a search engine provider.
FIG. 8 illustrates the user interface 800 of the example process 210 of providing the retrieved images and information associated with the images to the user 108 (discussed at high level above). This is one illustration of presenting the images and information being retrieved, as there may be many other techniques of presenting the search results. The video clip submitted is the Basilica.
At 802, the row indicates the images or the information to be displayed. At 804, along the left side illustrate numbers that may be used to indicate the ranking of the images retrieved along with the image retrieved. For instance, a number 1 indicates the image has been computed to have a similarity close to the image in the video clip. In other implementations, there may not be any type of numerical order shown. The user interface 800 shows at least three or more images retrieved of the Basilica. At 806, the information may provide a description, historical information, location information, and the like associated with the images.
FIG. 9 illustrates another example user interface 900 of providing retrieved images and information associated with the images to the user 108. The image-retrieval application returns the ranked list at 902, shown with four top candidate activities for the location video clip submitted as the query. The user 108 may provide feedback about the search results by rating the images or information and their relevancy to the query. For instance, the user 108 may access “Submit Evaluation” 904 to rate the images or the information based on a scale of 1 to 5, with 5 being “a best” and 1 being “a worst” relevancy to the query. The user interface 900 may additionally or alternatively employ other feedback mechanisms, such as star ratings, facial characters, thumbs up or thumbs down, and the like.
Illustrative Server Implementation
FIG. 10 is a block diagram showing an example image server 114 usable with the environment of FIG. 1. The image server 114 may be configured as any suitable system capable of services, which includes, but is not limited to, implementing the image-retrieval service 106 for online services, such as accessing the image-retrieval application 110 to provide images and information in response to the video clip submitted as the query. In one example configuration, the image server 114 comprises at least one processor 1000, a memory 1002, and a communication connection(s) 1004.
The processor 1000 may be implemented as appropriate in hardware, software, firmware, or combinations thereof. Software or firmware implementations of the processor 1000 may include computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.
Memory 1002 may store program instructions that are loadable and executable on the processor 1000, as well as data generated during the execution of these programs. Depending on the configuration and type of computing device, memory 1002 may be volatile (such as random access memory (RAM)) and/or non-volatile (such as read-only memory (ROM), flash memory, etc.).
The communication connection(s) 1004 may include access to a wide area network (WAN) module, a local area network module (e.g., WiFi), a personal area network module (e.g., Bluetooth), and/or any other suitable communication modules to allow the image server 114 to communicate over the network(s) 104.
Turning to the contents of the memory 1002 in more detail, the memory 1002 may store an operating system 1006, a module for the image-retrieval application 110, an object representation module 1008, an image-retrieval model module 1010, a re-ranking search results module 1012, and a vector space model module 1014. Furthermore, there may be one or more applications (not shown) for implementing all or a part of applications and/or services using the image-retrieval service 106.
The image-retrieval service 106 provides access to the image-retrieval application module 110. The image-retrieval application module 110 receives the video clips submitted as queries, provides search results of images and information, and ranks top candidates as the list of images, interacts with the other modules to provide assistance to create the representation of the object of interest and to create the image-retrieval model.
The image-retrieval application module 110 further provides the display of the application on the user interface 112, extracting SIFT features from the frame of the video clip, quantizing the extracted SIFT features into descriptive words, and mining the extracted SIFT features and items surrounding the object of interest.
The object representation module 1008 identifies SIFT points that satisfy the criteria for stability and centrally located to create the representation of the object of interest. The object representation module 1008 identifies correlations between points in the frame to create the sequence of points to identify stable points.
The processes described above with references to FIGS. 1-9 may be performed by any of the modules or combination of the modules shown here. The image server 114 may include the image corpus 116 to store the collection of images, descriptive words, SIFT points, data for the matrices, representation of the object of interest, image-retrieval model, and the like. Alternatively, this information may be stored on a separate database.
The image server 114 may also include additional removable storage 1016 and/or non-removable storage 1018 including, but not limited to, magnetic storage, optical disks, and/or tape storage. The disk drives and their associated computer-readable media may provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for the computing devices. In some implementations, the memory 1002 may include multiple different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM.
Computer-readable media includes, at least, two types of computer-readable media, namely computer storage media and communications media.
Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device.
In contrast, communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer storage media does not include communication media.
The image server 114 as described above may be implemented in various types of systems or networks. For example, the server 114 may be a part of, including but is not limited to, a client-server system, a peer-to-peer computer network, a distributed network, an enterprise architecture, a local area network, a wide area network, a virtual private network, a storage area network, and the like.
Various instructions, methods, techniques, applications, and modules described herein may be implemented as computer-executable instructions that are executable by one or more computers, servers, or mobile devices. Generally, program modules include routines, programs, objects, components, data structures, etc. for performing particular tasks or implementing particular abstract data types. These program modules and the like may be executed as native code or may be downloaded and executed, such as in a virtual machine or other just-in-time compilation execution environment. The functionality of the program modules may be combined or distributed as desired in various implementations. An implementation of these modules and techniques may be stored on or transmitted across some form of computer-readable media.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.

## Claims

1. A method implemented at least partially by a processor, the method comprising:
receiving a video clip to be decomposed into a frame sequence;
extracting scale-invariant feature transform (SIFT) features in a frame to quantize the SIFT features into descriptive words;
tracking SIFT points of the extracted SIFT features in the frame, a first set of SIFT points corresponding to a second set of SIFT points in consecutive frames to construct a sequence of points;
calculating center-awareness values for each of the SIFT points based at least in part on the location of each of the SIFT points in the frame relative to a center of the frame;
computing values for the SIFT points based on a number of points in the sequence of points and the center-awareness values of the SIFT points of the frame;
identifying a subset of SIFT points based on the number of points in a tracking sequence and the center-awareness values of the SIFT points;
using the subset of SIFT points, representing the video clip as a bag of descriptive words;
retrieving candidate images from a database based at least in part on the bag of descriptive words;
computing a similarity score of the candidate images versus images in the video clip;
calculating gradients of functions of the candidate images and the images in the video clip;
combining the similarity scores with an average of the gradients being calculated; and
ranking the candidate images based at least in part on the combining.

2. The method of claim 1, wherein the tracking the SIFT points further comprises:
tracking the first set of SIFT points in a previous frame;
aligning tracked positions in a subsequent frame to one of the SIFT points in the first set;
identifying the SIFT points from the second set that are less than one pixel away from the tracked positions as candidates; and
selecting from the candidates in the second set that are similar to a corresponding SIFT point in the first set, as a tracked SIFT point.

3. The method of claim 1, further comprising identifying the SIFT points located in a center of the frame by:
calculating a first distance of a SIFT point to a center of the frame;
calculating a numerator by multiplying the first distance by a sum of the sequence of points;
calculating a second distance from an origin of the frame to the center of the frame;
calculating a denominator by multiplying the second distance by a number of points in the sequence of points; and
dividing the numerator by the denominator.

4. The method of claim 1, further comprising:
aggregating an occurrence of each descriptive word in the frame per number of frames; and
creating a histogram based at least in part on the aggregating for mining synonyms of the descriptive words.

5. The method of claim 1, further comprising aggregating an occurrence of each descriptive word in the frames to evaluate the video clip in different frames with variations of scales, viewpoints, and lighting.

6. The method of claim 1, further comprising:
constructing an affinity matrix to identify a count of each descriptive word in the frame, and the number of points in the tracking sequence of points; and
generating a contextual histogram from the video clip as a histogram based on the descriptive words identified for the SIFT points in the frames to address a synonymous relationship with the descriptive words.

7. The method of claim 1, further comprising:
extracting the SIFT features from images in a database;
building a codebook by correlating the SIFT features from the images with descriptive words; and
accessing the codebook for quantizing the SIFT features into descriptive words.

8. One or more computer-readable storage media encoded with instructions that, when executed by a processor, perform acts comprising:
receiving a query of a video clip with an object of interest, the video clip to be decomposed into a frame sequence;
extracting scale-invariant feature transform (SIFT) features from the object of interest in a frame to quantize the SIFT features into descriptive words;
identifying SIFT points of the extracted SIFT features based on the SIFT points being stable in adjacent frames and being centrally located in the frame;
creating a representation of the video clip;
retrieving images and information associated with the images in response to the query based at least on the representation of the video clip;
computing similarity scores of the images versus the representation of the video clip;
calculating gradients of functions of the images and the representation of the video clip;
combining the similarity scores with an average of the gradients being calculated; and
ranking the images based at least in part on the combining.

9. The computer-readable storage media of claim 8, wherein identifying the qualified SIFT points comprises:
constructing a sequence of the SIFT points in consecutive frames;
determining the SIFT points that are located in a center of the frame; and
identifying the qualified SIFT points based on a number of points in the sequence of the SIFT points and the SIFT points located in the center of the frame to filter out noisy SIFT points.

10. The computer-readable storage media of claim 8, further comprising aggregating an occurrence of each descriptive word in the frame to evaluate the video clip in different frames with variations of scales, viewpoints, and lighting.

11. The computer-readable storage media of claim 8, further comprising:
identifying a count of each descriptive word in the frame;
constructing a sequence of the SIFT points in consecutive frames to determine a number of points in the sequence; and
quantizing the SIFT points into the descriptive words and using synonyms to enrich the representation of the video clip.

12. The computer-readable storage media of claim 8, wherein the retrieving further comprises:
extracting SIFT features for an image in a database to describe the SIFT features by descriptive words;
mapping the SIFT features to the descriptive words in the database; and
indexing the descriptive words being generated based on an inverted file structure to locate the images and the information associated with the images.

13. The computer-readable storage media of claim 8, further comprising presenting search results of the images and the information associated with the images in a ranked list.

14. A system comprising:
a memory;
a processor coupled to the memory;
an image-retrieval application module operated by the processor and configured to:
receive a video clip submitted as a query;
extract features from a frame of the video clip;
track points of the extracted features to construct a sequence of points of the features in consecutive frames; and
determine the points that are located in a center of a frame; and

an image-retrieval model module operated by the processor and configured to:
construct a representation of the video clip with an object of interest submitted as the query; and
retrieve images from a database in response to the representation of the video clip;

the image-retrieval application module further configured to:
compute a similarity score between the images from the database and the representation of the video clip;
calculate gradients of functions of the images from the database and the representation of the video clip;
combine the similarly scores with an average of the gradients being calculated; and
rank the images from the database based at least in part on the combining.

15. The system of claim 14, wherein the image-retrieval application module is further configured to filter out noisy points by using the points based on a number of points in the sequence of the points and the points located in the center of the frame.

16. The system of claim 14, wherein the image-retrieval application module is further configured to:
map the features to the descriptive words; and
index the descriptive words being generated based on an inverted file structure to retrieve the images from the database.

17. The system of claim 14, wherein the similarity score between the images from the database and the video clip is based at least in part on the representation of the video clip and element-wise multiplication of vectors, a vector representing an inverted image frequency of a descriptive word used to define the images and video clip.

18. The system of claim 14, the image-retrieval model being further configured to rank the images being retrieved in a descending order based on the similarity score.