Abstract:
A method and system for automatically summarizing a video document. The video document is decomposed into scenes, shots and frames, and an importance value is assigned to each scene, shot and frame. Keyframes are allocated among the shots based on the importance value of each shot. The allocated number of keyframes are then selected from each shot. The number of keyframes may be altered for greater or lesser detail in response to user input.

Description:
THE FIELD OF THE INVENTION  
         [0001]    The present invention generally relates to summarizing and browsing of video material, and more particularly to automating and customizing the summarizing and browsing process.  
         BACKGROUND OF THE INVENTION  
         [0002]    Digital video is a rapidly growing element of the computer and telecommunication industries. Many companies, universities and even families already have large repositories of videos both in analog and digital formats. Examples include video used in broadcast news, training and education videos, security monitoring videos, and home videos. The fast evolution of digital video is changing the way many people capture and interact with multimedia, and in the process, it has brought about many new needs and applications.  
           [0003]    Consequently, research and development of new technologies that lower the costs of video archiving, cataloging and indexing, as well as improve the efficiency, usability and accessibility of stored videos are greatly needed. One important topic is how to enable a user to quickly browse a large collection of video data, and how to achieve efficient access and representation of the video content while enabling quick browsing of the video data. To address these issues, video abstraction techniques have emerged and have been attracting more research interest in recent years.  
           [0004]    Video abstraction, as the name implies, is a short summary of the content of a longer video document which provides users concise information about the content of the video document, while the essential message of the original is well preserved. Theoretically, a video abstract can be generated manually or automatically. However, due to the huge volumes of video data already in existence and the ever increasing amount of new video data being created, it is increasingly difficult to generate video abstracts manually. Thus, it is becoming more and more important to develop fully automated video analysis and processing tools so as to reduce the human involvement in the video abstraction process.  
           [0005]    There are two fundamentally different kinds of video abstracts: still-image abstracts and moving-image abstracts. The still-image abstract, also called a video summary, is a small collection of salient images (known as keyframes) extracted or generated from the underlying video source. The moving-image abstract, also called video skimming, consists of a collection of image sequences, as well as the corresponding audio abstract extracted from the original sequence and is thus itself a video clip but of considerably shorter length. Generally, a video summary can be built much faster than the skimming, since only visual information will be utilized and no handling of audio or textual information is necessary. Consequently, a video summary can be displayed more easily since there are no timing or synchronization issues. Furthermore, the temporal order of all extracted representative frames can be displayed in a spatial order so that the users are able to grasp the video content more quickly. Finally, when needed, all extracted still images in a video summary may be printed out very easily  
           [0006]    As a general approach to video summarization, the entire video sequence is often first segmented into a series of shots; then one or more keyframes are extracted from each shot by either uniform sampling or adaptive schemes that depend on the underlying video content complexity based on a variety of features, including color and motion. A typical output of these systems is a static storyboard with all extracted keyframes displayed in their temporal order. There are two major drawbacks in these approaches. First, while these efforts attempt to reduce the amount of data, they often only present the video content “as is” rather than summarizing it. Since different shots may be of different importance to users, it is preferably to assign more keyframes to important shots than to the less important ones. Second, a static storyboard cannot provide users the ability to obtain a scalable video summary, which is a useful feature in a practical summarization system. For example, sometimes the user may want to take a detailed look at certain scenes or shots which requires more keyframes, and sometimes the user may only need a very coarse summarization which requires fewer keyframes.  
           [0007]    What is needed is a system and method to automatically and intelligently generate a scalable video summary of a video document that offers users the flexibility to summarize and navigate the video content to their own desired level of detail.  
         SUMMARY OF THE INVENTION  
         [0008]    The invention described herein provides a system and method for automatically summarizing a video document. The video document is decomposed into scenes, shots and frames, and an importance value is assigned to each scene, shot and frame. A number of keyframes are allocated among the shots based on the importance value of each shot. The allocated number of keyframes are then selected from each shot. The number of keyframes may be altered for greater or lesser detail in response to user input. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]    [0009]FIG. 1 a  is a schematic illustration of a hierarchical video structure.  
         [0010]    [0010]FIG. 1 b  is a flowchart illustrating one process for creating a video summary according to the invention.  
         [0011]    [0011]FIG. 1 c  is a flowchart illustrating one embodiment of the computation of importance values according to the invention.  
         [0012]    [0012]FIG. 1 d  is a flowchart illustrating one embodiment of the removal of keyframes according to the invention.  
         [0013]    [0013]FIG. 2 illustrates the optical flow fields for camera panning, tilting and zooming.  
         [0014]    [0014]FIG. 3 illustrates the eight directions into which camera motion is quantized.  
         [0015]    [0015]FIG. 4 illustrates an example of an MPEG Group of Picture structure.  
         [0016]    [0016]FIGS. 5 a  and  5   b  are examples of histograms showing camera right panning and zooming, respectively.  
         [0017]    [0017]FIGS. 6 a  and  6   b  are graphs of the statistics r and AvgMag, showing a video shot containing a camera panning sequence and a shot without camera motion, respectively.  
         [0018]    [0018]FIGS. 7 a  and  7   b  show the region occupied by skin colors in CbCr color space.  
         [0019]    [0019]FIG. 8 shows an example where skin color detection recognizes one face while another face is neglected.  
         [0020]    [0020]FIGS. 9 a  and  9   b  show an example where face recognition algorithms fail to detect a face in one frame, and while detecting a face in another frame.  
         [0021]    [0021]FIGS. 10 a - 10   d  show examples of applying a vertical edge operator to select a well focused keyframe.  
         [0022]    [0022]FIG. 11 is a graph of the computed standard deviation of edge energies for an example video shot.  
         [0023]    [0023]FIG. 12 shows importance curve for an example video shot.  
         [0024]    [0024]FIGS. 13 a  and  13   b  illustrate keyframe selection with and without consideration of the frame edge-energy.  
         [0025]    [0025]FIGS. 14 a  and  14   b  show an example of the scalable video summary described herein.  
         [0026]    [0026]FIG. 15 is a schematic representation of a computer system usable to create a video summary according to the invention. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0027]    In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.  
         [0028]    According to the present invention, a video sequence  20  is first represented as a hierarchical tree based on the detected scene  22  and shot  24  structure as shown in FIG. 1 a . As used herein, a shot  24  is defined as a video segment captured during a continuous shooting period and a scene  22  is composed of a set of semantically related shots  24 . A shot  24  is composed of a series of individual frames  26 . A variety of algorithms exist for shot and scene detection, any one of which may be suitable for use in decomposing a video sequence  20  into its scene  22 , shot  24  and frame  26  structure. Depending upon the type of video sequence  20  being analyzed, one algorithm may be preferred over another. For example, an approach particularly suitable for use with home video is presented in U.S. patent application Ser. No. 10/020,255, filed Dec. 14, 2001 and commonly assigned herewith, and incorporated herein by reference.  
         [0029]    One process for creating a video summary  80  according to the invention is illustrated in FIG. 1 b . After decomposing the video sequence  20  into scenes  22 , shots  24  and frames  26 , each component scene  22 , shot  24  and frame  26  is assigned an importance value based on measurements which are explained in greater detail below. One process for creating importance values according to the invention is illustrated in FIG. 1 c . Next, given a desired number of keyframes N, keyframes are distributed among the underlying scenes  22  based on the importance value of the scenes  22 , where the more important the scene  22 , the more keyframes it is assigned. Then, within each scene  22 , the assigned number of keyframes are further distributed among the scene&#39;s component shots  24 , based on the importance value of the shots  24 . Finally, the designated number of keyframes are selected from the underlying video frames  26  of each shot  24  according to the importance value of the frames  26 . Using this process, a scalable video summarization  80  which assigns more keyframes to important scenes, shots and frames is achieved. Moreover, to meet the users&#39; needs for flexible video content browsing, the specified number of keyframes may be allowed to grow and shrink as a user navigates the video content.  
         [0030]    It becomes readily apparent that the performance of the invention described herein depends heavily on the definition and computation of the three categories of importance measurement with respect to the scenes  22 , shots  24  and frames  26 , respectively. The computation of the importance values is described in greater detail below.  
         [0031]    Scene Importance Computation  
         [0032]    Three factors are considered in determining the importance of a scene  22  according to one embodiment of the invention: 1) the scene length in terms of the number of frames in the scene; 2) the activity level of the scene; and 3) the number of component shots contained in the scene. The underlying rationale for the above considerations is that longer scenes, higher activity, and more shots are all indicative of an important scene. For example, if an interesting subject attracts the videographer&#39;s attention, more time will usually be spent capturing video than if the subject is uninteresting. Also, when the underlying video content of a scene  22  is highly dynamic (usually characterized by lots of camera motion, many object activities and a large number of contained shots), the scene  22  has complex contents, and thus deserves more keyframes.  
         [0033]    Determination of scene length and the number of component shots  24  contained in a scene  22  is a straightforward process requiring little other than counting the number of frames  26  and shots  24  in a scene  22 . Any suitable method of counting frames  26  and shots  24  may be employed to that end. The more difficult aspect is quantifying the activity level of a scene  22 .  
         [0034]    To quantify the activity level for a scene  22 , the frame-to-frame color histogram difference for each consecutive frame pair within the scene is computed and their average is used as the scene&#39;s activity level indicator. Although the histogram difference is not a very accurate motion indicator, it is fast to compute and the results are sufficient for the scene level. More accurate, but also more time-consuming motion vector computation could also be used, as is described below with respect to computing the importance values of individual shots  24 . Assuming the video sequence  20  being analyzed contains a total of SN scenes, and denoting scene i&#39;s importance by IM i , the scene importance is computed as:  
         IM   i     =       α                 1   ×       l   i         ∑     i   =   1     SN          l   i           +     β                 1   ×     HD       ∑     i   =   1     SN          HD   i           +     γ                 1   ×       SH   i         ∑     i   =   1     SN          SH   i                                   
 
         [0035]    where α1, β1, and γ1 are weighting coefficients that sum to 1, l i  is scene i&#39;s length, HD i  is its average histogram difference, and SH i  is the number of its contained shots. If the total number of desired keyframes is N, then the number of keyframes N i  assigned to scene i is N i =IM i ×N.  
         [0036]    The values of α1, β1, and γ1 are empirically determined. According to one embodiment of the invention, the value of α1 may range from 0.10 to 0.20, the value of β1 may range from 0.30 to 0.50, and the value of γ1 may range from 0.40 to 0.60.  
         [0037]    Shot Importance Computation  
         [0038]    Three factors are considered in determining the importance of a shot  24  according to one embodiment of the invention: 1) the shot length in terms of the number of frames in the shot; 2) the activity level of the shot; and 3) the detected camera motion, where camera panning is primarily considered. The rationale for considering shot length and activity level is similar to that described above with respect to determining the importance of a scene  22 . The reason for including camera motion detection is that shot content tends to be more complex when certain camera motion exists and thus the shot  24  deserves more keyframes.  
         [0039]    As with determining the importance of a scene  22 , shot length may be determined by counting the number of frames  26  in a shot  24  using any suitable counting method.  
         [0040]    To compute the activity level of a shot  24 , the amount of motion between every referenced frame pair within the shot is computed, and their average is used to indicate the activity level of the shot  24 . Since many video sequences  20  (especially home videos) are digitized and compressed into H.26X or MPEG-X format, motion vector information may be directly obtained from the original bit stream which includes predictively coded frames  26 . In particular, given a predictively coded frame, say, a P-frame, the magnitude of the motion vector mv for every macroblock is first computed, then the average magnitude of all motion vectors mv in the P-frame is used to indicate the activity level. If the video data does not include predictively coded frames  26 , the video sequence  20  may either be translated to a format which does include predictively coded frames  26 , or other methods known in the art may be used to determine and quantify motion vector mv information.  
         [0041]    Camera motion detection has been explored in the prior art, and most existing methods are based on analyzing the optical flow computed between consecutive images. Basically, all camera motion analysis work can be categorized into two classes: 1) algorithms that define an affine model for representing camera motion and estimate model parameters from the computed optical flow; and 2) algorithms that directly analyze the observed optical flow pattern without any motion models by using the angular distribution or the power of optical flow vectors. (See, for example, J. Kim, H. S. Chang, J. Kim and H. M. Kim, “Efficient camera motion characterization for MPEG video indexing”, ICME2000, New York, 2000). Although either class of algorithms may be used, the first class of algorithms is sensitive to camera shaking and jerky motion, so for some applications, such as home video, the second class of algorithms are preferred. FIG. 2 shows the ideal optical flow patterns for three typical types of camera motion including camera panning, tilting and zooming.  
         [0042]    Since estimation of the optical flow is usually based on gradient methods or block matching methods using raw video data, it can be very computationally expensive. According to one embodiment of the present invention, it is contemplated that ready-to-use motion vector mv information is embedded in the video data bit stream (as in MPEG-X or H.26X formats). This information may be used as an alternative to estimation of the optical flow to reduce the computational load. Camera motion may be detected by analyzing the layout pattern of the extracted motion vectors mv. As stated above with respect to determining the shot  24  activity level, if the video data does not include predictively coded frames  26  containing motion vector mv information, the video may either be translated to a format which does include predictively coded frames, or other methods known in the art may be used to determine and quantify motion vector information.  
         [0043]    As shown in FIG. 3, camera motion is quantized into eight directions. Each direction includes the nearest sub-region along the counter-clockwise direction. For example, if the motion vector mv sits in the region of 0-45 degrees, it is indexed as direction  1 . The discussion below focuses on the detection of camera panning, as this is the major camera motion observed in a home video. Ideally, during a camera panning, all motion vectors mv should unanimously point in direction  1  or  5 , as shown in FIG. 3. However, due to camera shake, there will also be motion vectors sitting mv in the regions of directions  1  and  8 , or directions  4  and  5 .  
         [0044]    In a typical MPEG video sequence, there are three frame types: I, P and B frames. All I-frames are intra-coded without motion estimation and compensation, while P-frames are predictively coded from either a previous I-frame or P-frame. Each macroblock within a P-frame could be intra-coded, forward-predicted or simply skipped. To further improve the compression ratio, a B-frame is defined which could be bi-directionally predictively coded from previous and future I- and P-frames. FIG. 4 shows a typical MPEG GOP (Group Of Picture) structure  30  which contains fifteen frames with a pattern of IBBPBBPBB . . . . Since a B-frame may contain both forward- and backward-predicted motion vectors mv which will likely confuse camera motion detection, all B-frames are discarded, and only P-frames are used. This is acceptable since with a typical 29.97 frame per second rate, there may be eight P-frames within a second, and a typical camera motion will usually last longer than one second.  
         [0045]    Three major steps are involved in the method described herein for detecting camera motion. In step  1 , the motion vectors mv of each P-frame are categorized into the above described eight directions, and a direction histogram  32  is computed. If a frame  26  does belong to a camera motion sequence, say, a right camera panning, then it should have a majority number of motion vectors mv in directions  1  and  8 , otherwise the motion vectors mv may be scattered without a major direction represented. Moreover, a continuous series of P-frames are required to present a similar motion pattern before declaring that a camera motion is detected. This is illustrated in FIGS. 5 a  and  5   b . FIG. 5 a  shows a histogram  32  of 8 P-frames within a right panning sequence, and FIG. 5 b  shows a histogram  32 ′ of 8 P-frames within a camera zooming sequence. It is very apparent that almost all P-frames in FIG. 5 a  present a similar pattern with the major direction pointing to right. In FIG. 5 b , the motion vectors mv are almost equally distributed along each direction which characterizes a zooming sequence.  
         [0046]    In step  2  of the method for detecting camera motion, the directional motion ratio r and the average magnitude of the directional motion vectors (AvgMag) of the P-frame are computed. In case of a right camera panning, r is the ratio of the amount of motion vectors mv along directions  1  and  8  over the total number of motion vectors mv contained in the frame  26 . If r is larger than a certain threshold, say, 0.6, the frame  26  is indexed as a candidate. The value of r is selected empirically, and in one embodiment of the invention may have a value in the range of 0.5 to 0.7. AvgMag is simply the average of the magnitudes of all motion vectors mv in directions  1  and  8 .  
         [0047]    In step  3  of the method for detecting camera motion, the above calculations are repeated for every P-frame within a given shot. If a sequence  40  of candidates with sufficient length is observed and its average AvgMag is larger than a preset threshold, a camera panning sequence is declared to be detected; otherwise, no camera motion exists. FIGS. 6 a  and  6   b  each show graphs of the statistics r and AvgMag, where FIG. 6 a  is a shot containing a camera panning sequence and FIG. 6 b  is a shot without camera motion. By observing them carefully, one can see that only considering r without taking into account the AvgMag, may lead to incorrect detection of camera motion. For example, considering only r would likely lead to a wrong motion detection decision on the shot sequence of FIG. 6 b  since there is also a long candidate sequence caused by a minor shaky motion of the camera. Finally, if more accurate detection results are desired, the standard deviation of the directional motion vectors&#39; magnitude StdMag may also be considered. For example, if there is a continuous camera panning sequence, the StdMag value should be quite small due to the motion consistency.  
         [0048]    Now, assume there are a total of SH shots within scene i. Then shot i&#39;s importance IMS i  could be computed as  
         IMS   i     =       α                 2   ×       ls   i         ∑     i   =   1     SH          ls   i           +     β                 2   ×       Act   i         ∑     i   =   1     SH          Act   i           +     γ                 2   ×       Cam   i         ∑     i   =   1     SH          Cam   i                                   
 
         [0049]    where α2, β2, and γ2 are weighting coefficients that sum to 1, ls i  is shot i&#39;s length, Act i  is its average motion vector magnitude, and Cam i  is a binary camera motion detection result. Now, given scene i&#39;s assigned keyframes N i , the number of keyframes NS i  assigned to shot i is NS i =IMS i ×N i . If NS i  is less than 1, the value of NS i  may be set to 1 if it is desired that at least one keyframe be extracted from each shot. Alternately, the value of NS i  may be set to 0 if it is not preferred that at least one keyframe be extracted from each shot.  
         [0050]    The values of α2, β2, and γ2 are empirically determined. According to one embodiment of the invention, the value of α2 may range from 0.3 to 0.5, the value of β2 may range from 0.4 to 0.6, and the value of γ2 may range from 0.0 to 0.2.  
         [0051]    Frame Importance Computation  
         [0052]    Four factors are considered in determining the importance of a frame  26  according to one embodiment of the invention: 1) the percentage of skin-colored pixels in the frame; 2) the number of detected human faces in the frame; 3) the distribution of the frame&#39;s edge energy; and 4) the amount of motion activity contained in the frame. The reason for including the first two factors is that, generally speaking, a frame  26  that contains a human face will be more informative than, for example, a landscape frame. In case a face is missed by the face detection algorithm, the skin-color detection could compensate for the missed face detection. The last two factors are used to make sure that the extracted keyframe is a well-focused clear image and not a blurry image, such as is caused by a fast camera motion, fast object movement or a bad camera focus. For example, the still image taken after a camera panning is preferred over the image taken during the panning which may be blurred or unstable. Thus, in the case of frame importance, frames  26  which contain less activity are preferred.  
         [0053]    Skin-color detection has been explored extensively in both face detection and face recognition areas. Primarily two models have been evaluated and used. The YCbCr model is naturally related to MPEG and JPEG coding, and the HSV (Hue, Saturation, Value) model is mainly used in computer graphics. To approximate the skin color subspaces, skin-color patches have been used to define skin tone regions in both models. Also, since the intensity value Y is observed to have little influence on the distribution of skin color, some work has directly performed the skin color classification in the chrominance plane (CbCr) without taking Y into account. (See, for example, H. Wang and S.-F. Chang, “A highly efficient system for automatic face region detection in MPEG video”, IEEE Transaction on Circuit System and Video Technology, vol. 7, no. 4, pp. 615-628, 1997). FIG. 7 a  shows the hues in CbCr color space, while FIG. 7 b  shows the corresponding region occupied by the skin color, which is obtained from data consisting of various still images that cover a large range of skin color appearance (different races, different lighting conditions, etc.). It can be seen that the skin color samples actually form a single and quite compact cluster in the CbCr color space. Derived from this observation, the following rule in terms of RGB is used to classify a color as skin-color:  
         [0054]    If (Y&gt;=32) and (G&lt;0.8*R) and (B&lt;G) and (B&gt;0.7*G),  
         [0055]    then it is a skin-color.  
         [0056]    The reason to include the Y criterion is to exclude regions that are too dark. FIG. 8 a  (showing a video frame  26 ) and FIG. 8 b  (a skin color reduction of the video frame in FIG. 8 a ) show an example where skin color detection allows the man&#39;s face to be well recognized, while the woman&#39;s face in the back is neglected since it is in shadow.  
         [0057]    Face detection and recognition algorithms are known in the art. Any suitable algorithm may be used in the implementation of the invention described herein. Consideration may be given to the sensitivity of an algorithm and the computational load required by a particular algorithm. FIGS. 9 a  and  9   b  show instances where a face is not detected (FIG. 9 a ) and where a face is detected (FIG. 9 b ).  
         [0058]    Due to the casual photography nature of most home video, one can easily find many blurry and badly-focused video frames  26 . Generally speaking, preferred keyframes will be well-focused clear images with distinct edges. This preference is applied to help identify appropriate keyframe candidates. Specifically, for a given frame, an edge operator is used to find all the edges of the frame. Then, the standard deviation of edge energy is computed. If the standard deviation of edge energy is larger than a preset value, the frame is declared to be well focused and is qualified to be a keyframe; otherwise, the frame is discarded as a keyframe candidate. FIGS. 10 a  through  10   d  show examples of applying a vertical edge operator on two images where one is blurry (FIG. 10 a ) and the other one clear (FIG. 10 c ). It can easily be seen that the clear image of FIG. 10 c  has very distinct edges (FIG. 10 d ), while the blurry image of FIG. 10 a  has edges which are barely discernable, if at all (FIG. 10 b ).  
         [0059]    Edges may be detected in several suitable manners. One suitable manner to detect the edge is the use of a “Prewitt” edge operator, where the following two gradients are used:  
           G   R     =           1   3          [         1       0         -   1             1       0         -   1             1       0         -   1           ]                     and                   G   c       =       1   3          [           -   1           -   1           -   1             0       0       0           1       1       1         ]                                            
 
         [0060]    where G R  and G C  are the row and column gradients, respectively. FIG. 11 shows the computed standard deviations  60  of the edge energies for all frames  26  within one particular shot  24 . As can be seen, most of the frames  26  in the shot  24  have small values except a couple of frames  26  with larger numbers. As a matter of fact, this shot  24  contains many blurry portions and only a few well-focused frames  26 .  
         [0061]    Keyframe Selection  
         [0062]    Assume there are a total of F frames within shot i. Then frame i&#39;s importance IMF i  could be computed as  
         IMF   i     =       α3   ×     PS       ∑     i   =   1     F          PS   i           +     β                 3   ×       NF   i         ∑     i   =   1     F          NF   i           +     r3   ×       EStd   i         ∑     i   =   1     F          EStd   i           +     δ   ×     (     1   -       FAct   i         ∑     i   =   1     F          FAct   i           )                               
 
         [0063]    where α3, β3, γ3, and δ are weighting coefficients that sum to 1, PS i  is the percentage of skin-colored pixels, NF i  is the number of detected faces, EStd i  is the standard deviation of computed edge energy, and FAct i  is the contained motion activity in frame i. It should be noted that since the face and edge detections are both very time-consuming, it is unnecessary to repeat them for every single frame. Instead, a small set of neighboring frames can usually share the same face and edge detection result due to continuity of the video content.  
         [0064]    The values of α3, β3, γ3 and δ are empirically determined. According to one embodiment of the invention, the value of α3 may range from 0.1 to 0.3, the value of β3 may range from 0.1 to 0.3, the value of γ3 may range from 0.1 to 0.3, and the value of δ may range from 0.3 to 0.5.  
         [0065]    After frame importance has been determined, the number of keyframes NS i  assigned to each shot must be selected from all F frames in the shot. If all F frames are sorted in the descending order based on their importance values, theoretically the top NS i  frames should be chosen as the keyframes since those frames are the most important ones. However, if one frame has a large importance value, many of its neighboring frames will also have large importance values due to the visual and motion continuities of the video content. Thus, all or many of the allocated keyframes may be taken from the same temporal region of the shot, and may not provide a good representation of the video content.  
         [0066]    To provide a better representation of the video content of a shot, either time-constrained keyframe selection or importance adapted keyframe selection may be used. In time-constrained keyframe selection, two additional rules are enforced. First, keyframes should be visually different from each other. Specifically, the newly extracted keyframe should be visually different from all pre-extracted keyframes. Color histogram comparisons are one method which may be used for this purpose. Second, keyframes should be temporally separated from each other. Specifically, all extracted keyframes should be distributed as uniformly as possible among the shot so as to cover the entire video content. A set of well-spread keyframes will usually represent the underlying video content better than a set of temporally clustered keyframes.  
         [0067]    In importance-adapted keyframe selection, keyframes are selected by adapting to the underlying importance curve. In particular, the importance values of all frames within the shot are first normalized to form a curve with the underlying area equals to one. FIG. 12 shows the importance curve  70  of one particular shot where the lower (normalized) curve  70 ′ is obtained from the upper raw curve by using a 3×1 mean filter. Next, the entire temporal axis of the shot is partitioned into NS i  segments  72  (only one segment  72  is shown in the figure) in a way such that the sum of the importance values inside each segment  72  (i.e. the area under the curve) equals 1/NS i . The frame  26  having the highest importance within each segment  72  is then chosen as the representative frame  26 . To ensure that all extracted keyframes are well spread out in the timeline, a time restriction rule like that used in time-constrained keyframe selection may be used.  
         [0068]    Based on experimental results, time-constrained keyframe selection generates slightly better results than importance-adapted keyframe selection, yet at the cost of lower speed due to the color histogram computation and comparison. Finally, in time-constrained keyframe selection, the number of extracted keyframes may be less than NS i  if the underlying shot has a flat content.  
         [0069]    Experimental results verify the effectiveness of the factors used to determine a frame&#39;s importance. FIGS. 9 a  and  9   b  show two frames where FIG. 9 b  is the keyframe extracted after including face detection and FIG. 9 a  is the original candidate. The image of FIG. 9 b  is clearly the better choice, as it allows easier identification of the person in the image. FIGS. 13 a  and  13   b  show another two frames where the initially selected keyframe shown in FIG. 13 a  is replaced by the frame shown in FIG. 13 b  when the edge-energy restriction factor is enforced. The image of FIG. 13 b  is more clearly focused and visually more pleasant than the fuzzy image of FIG. 13 a.    
         [0070]    After generating the initial keyframe set N, as described above, a new keyframe set N′ may be constructed based on the shot-and-scene structure. A new keyframe set N′ may be desired if the user wants either more keyframes and greater detail (N′&gt;N) or fewer keyframes and less detail (N′&lt;N) in the video summary.  
         [0071]    When more keyframes are needed, the additional number of keyframes must be extracted from the underlying video content. Given ND (ND=N′−N) more keyframes that we need to extract, the extra keyframes are assigned to all underlying scenes  22  and shots  24  based on their respective importance values, in a manner like that described above when generating the initial keyframe set N. The basic assignment rule is that more important scenes  22  and shots  24  get more keyframes. A keyframe extraction process similar to that described above may be applied after each shot  24  gets the new designated number of keyframes.  
         [0072]    When fewer keyframes are needed, the excess keyframes are removed from the initial keyframe set N. As illustrated in FIG. 1 d , given ND (ND=N−N′) keyframes that must be removed from the original set N, the ND keyframes are distributed among the underlying scenes  22 , where the number of keyframes to be removed from a scene  22  is inversely proportional to the scene  22  importance. Assuming R frames need to be removed from scene j&#39;s keyframe set, the procedure is as follows: Starting from the least important shot  24  within the scene  22 , check each shot  24 . If it contains more than one keyframe, remove the least important keyframe, and decrease R by 1. If R equals 0, stop; otherwise, continue with the next shot  24 . If the last shot  24  is reached, start over again with the least important shot  24 . In case there is only one keyframe left for every shot  24 , and R is still greater than 0, then, starting from the least important shot  24 , remove its last keyframe.  
         [0073]    Thus, a scalable video summary  80  based on user&#39;s preference may be achieved. Moreover, a real-time video summarization may be achieved if the initial keyframe set N is generated offline. The value of a scaleable video summary can be seen in the example where a user wants to navigate along the hierarchical (scene-shot-frame) video tree. For instance, if the user wants a detailed summary of certain scenes  22  or shots  24  while only wanting a brief review of others, the invention as described herein can easily achieve this by using a predefined but tunable scale factor. Specifically, based on the initial keyframe assignment quota, the scale factor may be used to calculate the currently desired number of keyframes for the desired shot, scene, or even the whole sequence. Then the keyframes will be extracted or removed using the scheme discussed above. If the user is unhappy with the default navigation scale, he can easily tune it to his own satisfaction.  
         [0074]    The video summarization and navigation system described herein may be implemented on a variety of platforms, such as a home computer  100 , so long as the chosen platform possesses a processor  102  with sufficient computing power, a data storage system  104  for storing the video summary, and an interface  106  for allowing the user to alter the level of detail of the video summary  80 . The data storage system  104  may be a hard disk drive or other persistent storage device, or the random access memory of the chosen platform. The video summary  80  may be displayed on a display device  108 , for example, on a video monitor, or on a hard copy generated by a printer.  
         [0075]    Experimental Results  
         [0076]    [0076]FIGS. 14 a  and  14   b  show an example of the scalable video summary  80  described herein, where FIG. 14 a  shows three initially generated keyframes for a particular shot, and FIG. 14 b  shows two more extracted keyframes when the user requires a more detailed look at the underlying content. This shot actually contains a long sequence of camera panning to introduce all present guests, and it can be seen that the two additional keyframes give the user a better understanding of the shot.  
         [0077]    Although specific embodiments have been illustrated and described herein for purposes of description of the preferred embodiment, it will be appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. Those with skill in the computer and electrical arts will readily appreciate that the present invention may be implemented in a very wide variety of embodiments. This application is intended to cover any adaptations or variations of the preferred embodiments discussed herein. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.