Patent Publication Number: US-8111877-B2

Title: Image processing device and storage medium storing image processing program

Description:
TECHNICAL FIELD OF THE INVENTION 
     This invention relates to an image processing device and an image processing program which perform registration processing between a plurality of images, and more particularly to registration processing that is used when images are superimposed during image blur correction and the like. 
     BACKGROUND OF THE INVENTION 
     A block matching method or a correlation method based on a correlation calculation is known as a conventional method of detecting a motion vector of an image during image blur correction and the like. 
     In the block matching method, an input image signal is divided into a plurality of blocks of an appropriate size (for example, 8 pixels×8 lines), and a difference in pixel value between a current field (or frame) and a previous field is calculated in block units. Further, on the basis of this difference, a block of the previous field that has a high correlation to a certain block of the current field is searched for. A relative displacement between the two blocks is then set as the motion vector of the certain block. 
     In a method of searching for a block having a high correlation during block matching, the correlation is evaluated using a sum of squared difference SSD, which is the sum of squares of the pixel value difference, or a sum of absolute difference SAD, which is the absolute value sum of the pixel value difference. As SSD and SAD decrease, the correlation is evaluated to be higher. When a pixel position within a matching reference block region I of the current field is represented by p, a pixel position (a position corresponding to the pixel position p) within a subject block region I′ of the previous field is represented by q, and the pixel values of the pixel positions p, q are represented by Lp, Lq, respectively, SSD and SAD are respectively expressed by the following Equations (1) and (2). 
     
       
         
           
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     
                       SSD 
                       ⁡ 
                       
                         ( 
                         
                           I 
                           , 
                           
                             I 
                             ′ 
                           
                         
                         ) 
                       
                     
                     = 
                     
                       
                         ∑ 
                         
                           
                             p 
                             ∈ 
                             I 
                           
                           , 
                           
                             q 
                             ∈ 
                             
                               I 
                               ′ 
                             
                           
                         
                         
                             
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             Lp 
                             - 
                             Lq 
                           
                           ) 
                         
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
             
               
                 
                   
                     SAD 
                     ⁡ 
                     
                       ( 
                       
                         I 
                         , 
                         
                           I 
                           ′ 
                         
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         
                           p 
                           ∈ 
                           I 
                         
                         , 
                         
                           q 
                           ∈ 
                           
                             I 
                             ′ 
                           
                         
                       
                       
                           
                       
                     
                     ⁢ 
                     
                        
                       
                         Lp 
                         - 
                         Lq 
                       
                        
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     Here, p and q are quantities having two-dimensional values. I and I′ represent two-dimensional regions of the current field and the previous field, respectively. The term pεI indicates that the coordinate p is included in the region I, and the term qεI′ indicates that the coordinate q is included in the region I′. 
     On the other hand, in the correlation method based on a correlation calculation, average values Ave (Lp), Ave (Lq) of the pixels pεI and qεI′ respectively included in the matching reference block region I and the subject block region I′ are calculated. A difference between the pixel value included in each block and the average value is then calculated using the following Equation (3). 
     
       
         
           
             
               
                 
                   
                     
                       
                           
                       
                       ⁢ 
                       
                         
                           Lp 
                           ′ 
                         
                         = 
                         
                           
                             Lp 
                             - 
                             
                               Ave 
                               ⁡ 
                               
                                 ( 
                                 Lp 
                                 ) 
                               
                             
                           
                           
                             
                               
                                 1 
                                 n 
                               
                               ⁢ 
                               
                                 
                                   ∑ 
                                   
                                     p 
                                     ∈ 
                                     I 
                                   
                                   
                                       
                                   
                                 
                                 ⁢ 
                                 
                                   
                                     ( 
                                     
                                       Lp 
                                       - 
                                       
                                         Ave 
                                         ⁡ 
                                         
                                           ( 
                                           Lp 
                                           ) 
                                         
                                       
                                     
                                     ) 
                                   
                                   2 
                                 
                               
                             
                           
                         
                       
                        
                     
                     
                       p 
                       ∈ 
                       I 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       Lq 
                       ′ 
                     
                     = 
                     
                       
                         
                           Lq 
                           - 
                           
                             Ave 
                             ⁡ 
                             
                               ( 
                               Lq 
                               ) 
                             
                           
                         
                         
                           
                             
                               1 
                               n 
                             
                             ⁢ 
                             
                               
                                 ∑ 
                                 
                                   q 
                                   ∈ 
                                   I 
                                 
                                 
                                     
                                 
                               
                               ⁢ 
                               
                                 
                                   ( 
                                   
                                     Lq 
                                     - 
                                     
                                       Ave 
                                       ⁡ 
                                       
                                         ( 
                                         Lq 
                                         ) 
                                       
                                     
                                   
                                   ) 
                                 
                                 2 
                               
                             
                           
                         
                       
                       ⁢ 
                       
                         ❘ 
                         
                           q 
                           ∈ 
                           
                             I 
                             ′ 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     Next, a normalization cross-correlation NCC is calculated using Equation (4).
 
NCC=ΣLp′Lq′  (4)
 
     A block having a large normalization cross-correlation NCC is evaluated as having a high correlation, and the displacement between the blocks I′ and I having the highest correlation is set as the motion vector. 
     When an object or an image pickup subject included in an image is stationary, the motion within individual regions and the motion of the entire image match, and therefore the motion vector may be calculated by disposing the block in which the correlation calculation is to be performed in an arbitrary fixed position. 
     It should be noted that in certain cases, it may be impossible to obtain a highly reliable motion vector due to the effects of noise or when the block is applied to a flat portion or an edge portion having a larger structure than the block. To prevent such cases from arising, a technique for performing a reliability determination during calculation of the motion vector is disclosed in JP8-163573A and JP3164121B, for example. 
     Further, when the object or image pickup subject included in the image includes a plurality of motions, it is a subject to calculate the motion vector of the entire image in order to correct blur, for example In JP8-251474A, the object is divided into a plurality of regions, and an important region is selected from the plurality of regions in accordance with the magnitude of the motion vector, the size of the region, and so on. The motion vector of the selected region is then set as the motion of the entire image. 
     In this case, region selecting means (i) select the region having the largest area from the plurality of regions, (ii) select the region having the smallest motion vector from the plurality of regions, (iii) select the region having the largest range of overlap with a previously selected region from the plurality of regions, and (iv) select one of the region having the largest range, the region having the smallest motion vector, and the region having the largest range of overlap with the previously selected region. 
     SUMMARY OF THE INVENTION 
     An aspect of this invention provides an image processing device for performing image registration processing between a plurality of images using a motion vector calculation. The image processing device comprises: a motion vector measurement region setting unit for setting a plurality of motion vector measurement regions for which a motion vector is measured; a motion vector calculation unit for calculating the motion vectors of the plurality of motion vector measurement regions; a motion vector reliability calculation unit for calculating a reliability of the respective motion vectors; a main region setting unit for setting a main region in relation to at least one image of the plurality of images; and a motion vector integration processing unit for calculating an inter-image correction vector by integrating the motion vectors of the plurality of motion vector measurement regions, taking into account the reliability. The motion vector integration processing unit includes a contribution calculation unit for calculating a contribution of the respective motion vectors from a positional relationship between the respective motion vector measurement regions and the main region, and integrates the motion vectors of the plurality of motion vector measurement regions in accordance with the reliability and the contribution. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram showing an example of the constitution of an image processing device according to a first embodiment. 
         FIG. 2  is a block diagram showing another example of the constitution of an image processing device according to the first embodiment. 
         FIG. 3  is a block diagram showing the constitution of a motion vector integration processing unit. 
         FIG. 4  is a flowchart showing an example of contribution calculation processing. 
         FIG. 5  is a flowchart showing another example of contribution calculation processing. 
         FIG. 6  is a flowchart showing an example of processing (correction vector calculation) performed by an integration calculation processing unit of the motion vector integration processing unit. 
         FIG. 7  is a block diagram showing another constitution of the motion vector integration processing unit. 
         FIG. 8  is a flowchart showing another example of processing (correction vector calculation) performed by the integration calculation processing unit of the motion vector integration processing unit. 
         FIG. 9  is a view showing creation of a motion vector histogram according to a second embodiment. 
         FIG. 10  is a flowchart showing an example of processing (correction vector calculation) performed by a motion vector integration processing unit according to the second embodiment. 
         FIG. 11  is a flowchart showing another example of processing (correction vector calculation) performed by the motion vector integration processing unit according to the second embodiment. 
         FIG. 12  is a block diagram showing the constitution of an image processing device according to a third embodiment. 
         FIGS. 13A to 13C  are views showing main region setting according to the third embodiment. 
         FIG. 14  is a block diagram showing the constitution of an image processing device according to a fourth embodiment. 
         FIGS. 15A to 15C  are views showing main region setting according to the fourth embodiment. 
         FIG. 16  is a block diagram showing the constitution of an image processing device according to a fifth embodiment. 
         FIGS. 17A to 17C  are views showing main region setting according to the fifth embodiment. 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to  FIGS. 1 to 8 , a first embodiment will be described.  FIG. 1  shows an image processing device that performs image registration and addition processing by calculating inter-frame motion. 
     A main controller  100  performs overall operation control, and includes a CPU such as a DSP (Digital Signal Processor), for example. In  FIG. 1 , dotted lines denote control signals, thin lines denote the flow of data such as motion vectors and reliability values, and thick lines denote the flow of image data. The respective parts (or the whole) of the image processing device, to be described below, may be constituted by a logic circuit. Alternatively, the respective parts (or the whole) of the image processing device, to be described below, may be constituted by a memory that stores data, a memory that stores a calculation program, a CPU (Central Processing Unit) that executes the calculation program, an input/output interface, and so on. 
     An image input from an image input unit  101  is temporarily stored in a frame memory  102 . A region setting unit  103  sets predetermined motion vector measurement regions for a reference frame (reference image) stored in the frame memory as a reference in order to calculate motion between the reference frame and a subject frame (subject image). The region setting unit  103  sets block regions (motion vector measurement blocks) in the reference image in lattice form as the motion vector measurement regions. A motion vector calculation unit  104  uses the image data of the reference frame and the subject frame stored in the frame memory and data relating to the block regions set by the region setting unit  103 . Thus, the motion vector calculation unit  104  calculates a block region position of the subject frame having a high correlation with a block region of the reference frame using a correlation calculation of a sum of squared difference SSD, a sum of absolute difference SAD, a normalization cross-correlation NCC, and so on. A relative displacement between the block region of the reference frame and the block region of the subject frame is then calculated as a motion vector. 
     A motion vector reliability calculation unit  105  calculates a reliability of the motion vector. A main region setting unit  108  sets position information (coordinate of centroid, dimensions, etc.) of a main region (for example, the region of a main object). A motion vector integration processing unit  106  calculates a representative value (correction vector) of an inter-frame motion vector by integrating motion vector data in accordance with a positional relationship between the block regions and the main region of the reference frame. A frame addition unit  109  performs frame addition using the image data of the reference frame and the subject frame stored in the frame memory and data relating to the correction vector. 
     It should be noted that in  FIG. 1 , an example of frame addition is shown, whereas in  FIG. 2 , an example of moving image blur correction, in which the subject frame is positioned relative to the reference frame using the correction vector, is shown.  FIG. 2  is a constitutional diagram of an image processing device that performs blur correction on a moving image through frame position correction. A frame motion correction unit  110  corrects the subject frame to reduce blur relative to the reference frame, and transfers data to a display device not shown in the drawing or a storage device not shown in the drawing. 
     Next, an outline of an operation for calculating the reliability of the motion vector, which is performed by the motion vector reliability calculation unit  105 , will be described. 
     A method of determining the reliability of the motion vector on the basis of the statistical property of an inter-frame (inter-image) correlation value in block units and a method of determining the reliability of the motion vector on the basis of the statistical property of a correlation value within a frame are known. 
     When the reliability is determined on the basis of the statistical property of an inter-frame (inter-image) correlation value, a sum of squares SSD (expressed by the following Equation (5)) of a difference between pixel values included in a block Ii of the reference frame and a block Ij of the subject frame is used as a correlation value between the motion vector measurement region of the reference frame and a corresponding image region of the subject frame, for example. 
     
       
         
           
             
               
                 
                   
                     
                       SSD 
                       ⁡ 
                       
                         ( 
                         
                           i 
                           , 
                           j 
                         
                         ) 
                       
                     
                     = 
                     
                       
                         ∑ 
                         
                           
                             p 
                             ∈ 
                             Ii 
                           
                           , 
                           
                             q 
                             ∈ 
                             Ij 
                           
                         
                         
                             
                         
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             Lp 
                             - 
                             Lq 
                           
                           ) 
                         
                         2 
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     Ii 
                     = 
                     
                       { 
                       
                         
                           
                             
                               
                                 
                                   x 
                                   ∈ 
                                   
                                     ( 
                                     
                                       
                                         bxi 
                                         - 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           h 
                                         
                                       
                                       , 
                                       
                                         bxi 
                                         + 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           h 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   y 
                                   ∈ 
                                   
                                     ( 
                                     
                                       
                                         byi 
                                         - 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           v 
                                         
                                       
                                       , 
                                       
                                         byi 
                                         + 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           v 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                           ⁢ 
                           
                             
 
                           
                           ⁢ 
                           Ij 
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   x 
                                   ∈ 
                                   
                                     ( 
                                     
                                       
                                         bxi 
                                         + 
                                         bxj 
                                         - 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           h 
                                         
                                       
                                       , 
                                       
                                         bxi 
                                         + 
                                         bxj 
                                         + 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           h 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   y 
                                   ∈ 
                                   
                                     ( 
                                     
                                       
                                         byi 
                                         + 
                                         byj 
                                         - 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           v 
                                         
                                       
                                       , 
                                       
                                         byi 
                                         + 
                                         byj 
                                         + 
                                         
                                           
                                             1 
                                             2 
                                           
                                           ⁢ 
                                           v 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     Here, coordinates (bxi, byi) denote a centroid position (or a central coordinate) of an ith block set by the region setting unit  103 , and are prepared in a number corresponding to the number of blocks Ii. The symbols “h”, “v” represent the dimension of the block in a horizontal direction and a vertical direction, respectively. Coordinates (bxj, byj) denote a centroid position of a jth subject block Ij, and are prepared in accordance with a block matching search range. 
     The SSD (i, j) of the ith block takes various values depending on the number j of the subject block, whereas a reliability Si of the ith block is determined on the basis of a difference between a minimum value and an average value of the SSD (i, j). The reliability Si may simply be considered as the difference between the minimum value and the average value of the SSD (i, j). 
     The reliability based on the statistical property of the correlation value SSD corresponds to the structural features of the region through the following concepts. (i) In a region having a sharp edge structure, the reliability of the motion vector is high, and as a result, few errors occur in the subject block position exhibiting the minimum value of the SSD. When a histogram of the SSD is created, small SSD values are concentrated in the vicinity of the position exhibiting the minimum value. Accordingly, the difference between the minimum value and average value of the SSD is large. (ii) In the case of a textured or flat structure, the SSD histogram is flat, and as a result, the difference between the minimum value and average value of the SSD is small. Hence, the reliability is low. (iii) In the case of a repeating structure, the positions exhibiting the minimum value and a maximum value of the SSD are close, and positions exhibiting a small SSD value are dispersed. As a result, the difference between the minimum value and the average value is small, and the reliability is low. Thus, a highly reliable motion vector for the ith block is selected on the basis of the difference between the minimum value and the average value of the SSD (i, j). 
     When the reliability is determined on the basis of the statistical property of a correlation value within a frame, a correlation value between one motion vector measurement region of the reference image and another motion vector measurement region of the reference image is calculated, and the reliability Si is calculated on the basis of a minimum value of the correlation value (see JP2005-26048 IA). 
     It should be noted that the reliability may also be determined in accordance with an edge quantity of each block, as described in JP3164121B. 
       FIG. 3  shows in detail the constitution of the motion vector integration processing unit  106 . A positional relationship calculation unit  1061  calculates a positional relationship using position information (centroid coordinates (bx 0 , by 0 ) and the region dimensions h 0 , v 0 ) relating to the main region and position information (centroid coordinates (bxi, byi) and the region magnitude h, v) relating to the motion vector measurement regions. A contribution calculation unit  1062  calculates a contribution of the motion vector of the respective motion vector measurement regions using the positional relationship information. 
       FIG. 4  shows a flowchart for calculating the contribution using an inclusion relationship between the motion vector measurement regions and the main region. First, a determination is made as to whether or not the centroid coordinates (bxi, byi) of the ith motion vector measurement region (motion vector measurement block) are included in the main region using the following Equation (6) (S 11 ). 
     
       
         
           
             
               
                 
                   
                     bxi 
                     ∈ 
                     
                       ( 
                       
                         
                           
                             bx 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                           - 
                           
                             
                               1 
                               2 
                             
                             ⁢ 
                             h 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                         
                         , 
                         
                           
                             bx 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                           + 
                           
                             
                               1 
                               2 
                             
                             ⁢ 
                             h 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                         
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   and 
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     byi 
                     ∈ 
                     
                       ( 
                       
                         
                           
                             by 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                           - 
                           
                             
                               1 
                               2 
                             
                             ⁢ 
                             v 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                         
                         , 
                         
                           
                             by 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                           + 
                           
                             
                               1 
                               2 
                             
                             ⁢ 
                             v 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             0 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     When an affirmative result is obtained, 1 is set as a contribution Ki (Ki=1) (S 12 ), and when a negative result is obtained, 0 is set as the contribution Ki (Ki=0) (S 13 ). 
     Further, as a modified example of the contribution calculation described above, threshold processing may be performed in accordance with an area of overlap between the main region and the ith motion vector measurement region. More specifically, if the area of overlap between the main region and the ith motion vector measurement block is equal to or greater than a predetermined value, Ki=1 is set, and if not, Ki=0 is set. 
       FIG. 5  shows a flowchart for calculating the contribution using another method. A distance between the main region and the respective motion vector measurement regions (a distance between the centroid coordinates thereof is calculated using the following Equation (7) (S 21 ). The contribution is then calculated in accordance with a function (Equation (8)) whereby the contribution decreases as the square of the distance increases (S 22 )
 
 Rxi=bxi−bx 0
 
 Ryi=byi−by 0  (7)
 
 Ki =exp(− C ( Rxi   2   +Ryi   2 ))  (8)
 
       FIG. 6  shows a flowchart of processing performed by an integration calculation processing unit  1063 . In a step S 31 , threshold processing is performed in relation to the reliability Si to determine whether or not the reliability Si is greater than a threshold S_Thr. A final reliability STi used to calculate a correction vector V frame  is determined by leaving the contribution of a block in which the reliability Si is greater than the threshold as is (S 32 ) and setting the contribution of a block in which the reliability Si is equal to or smaller than the threshold at 0 (S 33 ). As a result, the integration result of the motion vector is stabilized. 
     A frame correction vector V Frame  is calculated by performing weighted addition on (or calculating a weighted average of) the motion vectors of the plurality of motion vector measurement regions using the final reliability STi, the contribution Ki, and a measurement result Vi of the motion vector of the ith motion vector measurement region in accordance with Equation (9) (S 34 ). 
     
       
         
           
             
               
                 
                   
                     V 
                     Frame 
                   
                   = 
                   
                     
                       1 
                       
                         Σ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         STiKi 
                       
                     
                     ⁢ 
                     Σ 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       STi 
                       · 
                       Ki 
                       · 
                       Vi 
                     
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     Here, the denominator on the right side is a normalization coefficient. A weighting coefficient STi Ki is set in accordance with the product of the reliability STi and the contribution Ki. 
     As shown in  FIG. 7 , a contribution modification determination processing unit  1064  may be provided in the integration calculation processing unit  1063  of the motion vector integration processing unit  106 .  FIG. 8  shows a calculation flowchart of the integration calculation processing unit  1063  having the contribution modification determination processing unit  1064 . The contribution modification determination processing unit  1064  modifies the contribution when a predetermined condition is satisfied in relation to the reliability and the contribution. Steps S 41  to S 43  are identical to S 31  to S 33  in  FIG. 6 . In S 44 , a reliability index ST′ taking the contribution into account is calculated using Equation (10). 
     
       
         
           
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     
                       ST 
                       ′ 
                     
                     = 
                     
                       
                         1 
                         
                           Σ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           Ki 
                         
                       
                       ⁢ 
                       Σ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         STi 
                         · 
                         Ki 
                       
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     Next, a determination is made as to whether or not ST′ is greater than a threshold ST_Thr (S 45 ). When ST′ is greater than the threshold ST_Thr, the frame correction vector (Equation (11)) that takes the contribution into account is employed (S 46 ). 
     
       
         
           
             
                 
             
             ⁢ 
             
               
                 
                   
                     
                       V 
                       Frame 
                     
                     = 
                     
                       
                         1 
                         
                           Σ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           STiKi 
                         
                       
                       ⁢ 
                       Σ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         STi 
                         · 
                         Ki 
                         · 
                         Vi 
                       
                     
                   
                 
                 
                   
                     ( 
                     11 
                     ) 
                   
                 
               
             
           
         
       
     
     When ST′ is smaller than the threshold ST_Thr, the correction vector is calculated from Equation (12) on the basis of the reliability alone, without taking the contribution Ki into account (S 47 ). In other words, all of the contributions Ki are modified to a predetermined fixed value such that the contributions Ki of all blocks are identical, and the correction vector is determined on the basis of the reliability alone. 
     
       
         
           
             
                 
             
             ⁢ 
             
               
                 
                   
                     
                       V 
                       Frame 
                     
                     = 
                     
                       
                         1 
                         
                           Σ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           STi 
                         
                       
                       ⁢ 
                       Σ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         STi 
                         · 
                         Vi 
                       
                     
                   
                 
                 
                   
                     ( 
                     12 
                     ) 
                   
                 
               
             
           
         
       
     
     When the correction vector is determined by calculating Equation (11), in which the position information relating to the main region is prioritized, the stability of the correction vector may be low, and therefore an error may occur when a plurality of images are superimposed. Accordingly, when ST′ is smaller than the threshold, it is difficult to estimate the motion of the main region with a stability that satisfies a predetermined criterion, and therefore the correction vector is calculated taking into account the reliability of the motion vector alone (Equation (12)). 
     The main region setting unit  108  sets a main region for limiting the block position in which the motion vector is calculated, using position information relating to a main object, which is obtained through object recognition, information relating to contrast intensity, information relating to a focus position of a multi-point automatic focus (multi-point AF), and so on. 
     Next, a second embodiment will be described with reference to  FIGS. 9-11 . In the first embodiment described above, the correction vector is determined by weighted addition (Equation (9)), but in the second embodiment, a different method is employed. In the second embodiment, histogram processing is performed in relation to a motion vector Vi (Equation (13)) in which the reliability Si is equal to or greater than the threshold S_Thr and the contribution Ki is equal to or greater than a predetermined value K_Thr, whereupon vector quantities (orientation and magnitude) are divided into appropriate bins and a vector having a high frequency is employed as the correction vector. 
     
       
         
           
             
               
                 
                   Vi 
                   = 
                   
                     
                       ( 
                       
                         
                           x 
                           i 
                         
                         , 
                         
                           y 
                           i 
                         
                       
                       ) 
                     
                     ❘ 
                     
                       
                         
                           
                             Si 
                             &gt; 
                             S_Thr 
                           
                         
                       
                       
                         
                           
                             Ki 
                             &gt; 
                             K_Thr 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
           
         
       
     
     Here, a bin is a dividing region or class in the histogram (or frequency distribution). A width of the bin in an x axis direction is bin_x, and a width of the bin in a y axis direction is bin_y. 
     As shown in  FIG. 9 , when the horizontal/vertical direction coordinates of the motion vector are set as x, y and x, y enter an sth (s=0 . . . N|(N=1×m)) bin, the frequency of the bin is increased by 1. It should be noted that the bin number s is obtained from the position on the coordinates using Equation (14)
 
 x ′=floor( x/bin   —   x )
 
 y ′=floor( y/bin   —   y )
 
 s=x′+y′·l   (14)
 
     Here, floor is a floor function. Further, “l” denotes a horizontal direction range in which the histogram is created, and “m” denotes a vertical direction range in which the histogram is created. 
     The bin frequency is counted by increasing a frequency Hist(s) of the sth bin every time the motion vector Vi enters the sth bin, as shown in Equation (15).
 
 Hist ( s )= Hist ( s )+1  (15)
 
     This count is performed in relation to all of the motion vectors Vi for which Si is equal to or greater than S_Thr and Ki is equal to or greater than K_Thr. 
       FIG. 9  shows a bin arrangement for determining a vector histogram and the manner in which the number Hist(s) of vectors entering the bin is counted using the processing of Equation (14). 
     The inter-frame correction vector V frame  is set as a representative vector (for example, a centroid vector of a bin) representing the bin s having the highest frequency, as shown in Equation (16).
 
 V   frame   =V   bin     —     s   |s=sup   s ( Hist ( s ))  (16)
 
     Here, V bin     —     s  is a vector representing the respective bins, and s=sup s  (Hist(s)) is the number s of the bin having the highest frequency. 
       FIG. 10  is a flowchart of correction vector calculation processing for integrating a plurality of motion vectors through histogram processing. Here, histogram processing is only performed for a block i having a reliability that is equal to or greater than the threshold S_Thr and a contribution that is equal to or greater than the threshold K_Thr. Therefore, a determination is made in a step S 51  as to whether or not the reliability Si is equal to or greater than the threshold S_Thr, and a determination is made in a step S 52  as to whether or not the contribution Ki is equal to or greater than the threshold K_Thr. Motion vectors Vi in which the reliability Si is smaller than the threshold S_Thr or the contribution Ki is smaller than the threshold K_Thr are excluded from the histogram processing. In a step S 53 , the histogram processing described above is performed such that the motion vectors Vi are allocated to the bins. By repeating the steps S 51  to S 53 , a histogram is created. In a step S 54 , the representative vector representing the bin having the highest frequency is set as the inter-image correction vector, as described above. 
     As regards resetting of the contribution corresponding to S 47  of  FIG. 8 , when a maximum frequency value sup (Hist(s)) of the histogram does not equal or exceed a predetermined value, histogram processing is performed such that motion vectors are not selected in accordance with the Ki&gt;K_Thr condition (S 67  in  FIG. 11 ). In other words, histogram processing is performed on all of the motion vectors Vi that satisfy the Si&gt;S_Thr condition, irrespective of Ki. Here, the result of the histogram processing performed on Ki&lt;K_Thr motion vectors (histogram processing  2 ) is added to the result of the histogram processing performed by selecting motion vectors that satisfy the Ki&gt;K_Thr condition (histogram processing  1 ). 
     As shown in  FIG. 11 , in a step S 63 , histogram processing  1  is performed on the blocks in which Si and Ki are both greater than their respective thresholds. When Ki&lt;K_Thr, data relating to the motion vectors with Ki&lt;K_Thr are stored in a step S 64 . When the maximum frequency value sup(Hist(s)) is equal to or greater than a threshold H_Thr in a step S 65 , the representative vector of the bin having the highest frequency is set as the correction vector from the result of histogram processing  1  (S 66 ). When the maximum frequency value is smaller than the threshold, histogram processing  2  is performed (S 67 ). In histogram processing  2 , the result of separating all of the Ki&lt;K_Thr motion vectors Vi into the bins is added to the histogram obtained in histogram processing  1 . Thus, a histogram is determined in relation to all of the motion vectors Vi that satisfy the Si&gt;S_Thr condition, irrespective of Ki, and the representative vector of the bin having the highest frequency is set as the correction vector (S 68 ). 
     Next, referring to  FIG. 12 , a third embodiment will be described. In the third embodiment, the main region is the region of a human face. A face detection unit (face detecting means)  908  for detecting a human face is used as the main region setting unit. The face detection unit  908  calculates the position and size of the region of the human face included in the input image. A method and an application thereof described in  Paul Viola, Michael Jones: Robust Realtime Object Detection, Second International Workshop on Statistical and Computational Theories of Vision - Modeling, Learning, Computing and Sampling  2001, for example, are used as the face detection method. Using the algorithm of this method, the position and size of the face can be calculated. It should be noted that face detection may be performed using another method. 
       FIG. 13A  shows a motion vector measurement regions  1001  set by the region setting unit  103 .  FIG. 13B  shows a region  1002  detected through face detection. As shown in  FIG. 13C , by integrating two sets of information relating to motion vector measurement and face detection, a correction vector is calculated. Motion vector data in the region  1003  in which the face is positioned are taken into account particularly preferentially. To calculate the contribution, the method shown in  FIGS. 4 and 5  or a method taking into account the area of overlap in the regions may be used. The integration calculation shown in  FIG. 6  is performed taking into consideration the reliability of the motion vector and the contribution, which is calculated from the positional relationship between the face region and the motion vector measurement region, and thus the inter-frame correction vector is calculated (Equation 11). 
     Contribution modification determination processing such as that shown in  FIG. 8  is also performed. When the reliability ST′ of the motion vector is lower than a certain threshold if the contribution is taken into account, the correction vector is calculated without taking the contribution into account. The correction vector is then calculated from the reliability in all of the motion vector measurement regions (all of the blocks) set by the region setting unit  103  (Equation (12)). 
     Next, referring to  FIG. 14 , a fourth embodiment will be described. In the fourth embodiment, the main region is a region having a high degree of sharpness, and therefore a sharpness detection unit (contrast detection unit)  1108  employed in Imager AF is used as the main region setting unit. Filtering means (a differential filter or the like) for detecting an edge feature quantity (for example, a difference between pixel values of adjacent pixels) are used to detect the sharpness. The sharpness may correspond to a contrast value (for example, a total sum of the absolute value of a difference between pixel values of the adjacent pixels of the same color). A region in which the sharpness is equal to or greater than a predetermined value may be set as the main region. 
       FIG. 15A  shows the motion vector measurement regions  1001  set by the region setting unit  103 .  FIG. 15B  shows a plurality of regions  1202  in which sharpness detection is performed. As shown in  FIG. 15C , by integrating two sets of information relating to motion vector measurement and sharpness measurement, a correction vector is calculated. Motion vector data in the regions  1203  in which the sharpness is high are taken into account particularly preferentially. To calculate the contribution the method shown in  FIGS. 4 and 5  or a method taking into account the area of overlap in the regions may be used. The integration calculation shown in  FIG. 6  is performed taking into consideration the contribution, which is calculated from the positional relationship between the regions having high contrast and the motion vector measurement region, and thus the inter-frame correction vector is calculated (Equation 11). 
     Contribution modification determination processing such as that shown in  FIG. 8  is also performed. When the reliability ST′ of the motion vector is lower than a certain threshold if the contribution is taken into account, the correction vector is calculated without taking the contribution into account. The correction vector is then calculated from the reliability in all of the motion vector measurement regions (all of the blocks) set by the region setting unit  103  (Equation (12)). 
     Next, referring to  FIG. 16 , a fifth embodiment will be described. In the fifth embodiment,  FIG. 16  shows an image pickup device comprising the image processing device and an image pickup unit  1306 . A focus detection unit  1308  employed in an AF mechanism (automatic focus adjustment mechanism) is used as the main region setting unit. Focus detection is performed by means of phase difference detection. More specifically, an evaluation as to whether or not an object is in focus is made in accordance with a phase difference between two corresponding images formed in a separator optical system by performing pupil splitting in an image pickup optical system. 
     In an image pickup device such as a digital camera, in-focus points can be set on a main object to be photographed by a photographer, and the position of the main object to be photographed by the photographer can be detected according to the in-focus points.  FIG. 17A  shows the motion vector measurement regions  1001  set by the region setting unit  103 . A “+” symbol  1402  in  FIG. 17B  shows a focus detection position. The in-focus points (indicated by dotted lines) can be detected by detecting the above-described phase difference in the focus detection position. As shown in  FIG. 17C , by integrating information relating to the in-focus points and the motion vector measurement position, a correction vector is calculated. Motion vector data in a region  1403  in which the object is in focus are taken into account particularly preferentially. To calculate the contribution, the method shown in  FIGS. 4 and 5  or a method taking into account the area of region overlap may be used. The integration calculation shown in  FIG. 6  is performed taking into consideration the reliability of the motion vector and the contribution, which is calculated from the positional relationship between the in-focus points and the motion vector measurement region, and thus the inter-frame correction vector is calculated (Equation 11). 
     Contribution modification determination processing such as that shown in  FIG. 8  is also performed. When the reliability ST′ of the motion vector is lower than a certain threshold if the contribution is taken into account, the correction vector is calculated without taking the contribution into account. The correction vector is then calculated from the reliability in all of the motion vector measurement regions (all of the blocks) set by the region setting unit  103  (Equation (12)). 
     In each of the embodiments described above, it is assumed that the processing performed by the image processing device is hardware processing, but this invention need not be limited to such a constitution. For example, a constitution in which the processing is performed by separate software may be employed. The software is stored on a computer-readable storage medium as a program. The program is encoded and stored in a computer-readable format. The computer includes a microprocessor and a memory, for example. The program includes a program code (command) for causing the computer to execute the processing of the respective units described above. 
     This invention is not limited to the embodiments described above, and may of course be subjected to various modifications within the scope of the technical spirit thereof. 
     The entire contents of JP2008-28035A, filed on Feb. 7, 2008, are incorporated into this specification by reference.