# Patent

## Title
Method and apparatus for optimally matching data sets

## Abstract

A method for matching grayvalued first elements of a first data set with grayvalued second elements of a second data set so that a first distribution of the first elements optimally matches a second distribution of the second elements, said method being characterized by the following steps: mapping said first elements on said second elements and evaluating a local grayvalue distribution difference between any mapped first element and its associated second element; from said local grayvalue distribution difference deriving for each said first element a force vector of a force field, said force vector indicating a preferred motion size and direction; combining said separate force vectors into a single force and a single torque value acting on said first elements collectively, for iteratively moving said first elements collectively to an amended mapping that improves a match between said first and second distributions.

## Background
BACKGROUND OF THE INVENTION
The invention relates to a method for matching grayvalued first elements of a first data set with grayvalued second elements of a second data set so that a first distribution of the first elements optimally matches a second distribution of the second elements, as being furthermore recited in the preamble of claim 1.
Various prior methods have been applied for matching such 2D- or 3D-grayvalue distributions. The elements may be pixels in a spatial 2D or 3D configuration, voxels in 3D, or other. The grayvalue is used for short for a respective single-valued parameter of each such element, such as the grayness of a spatial pixel, but other such variables have been used. A well-known field of application is medical graphical data processing. Such methods examine a plurality of alternative relative locations and orientations, through techniques like correlation or pixel similarity. The actual matching will be decided as based on the highest response for the criterion applied. Next, a transformation matrix will describe the transform from one distribution to the other for the matching position and orientation.
Generally, transformations in medical applications have been limited to rigid or affine transforms, sometimes in a combination wherein selected bone parts of the distribution undergo rigid transformations only, whilst surrounding tissue is transformed by an affine transform.
Another method uses active 2D-contours or active 3D-objects, that may be used to detect edges or sides of anatomical objects in scanned body data. Such contours/objects are in fact virtual objects, that allow finding features in the image data that represent edges of anatomical objects. Such technique will actively find translations, rotations, and deformations of the objects, which will then make them better fit, and which technique may be used to detect edges or sides of anatomical objects in scanned body data. Such techniques will actively find translations, rotations, and deformations of objects, to make them better fit to features in the image data. The best match is one wherein the object has moved around to a stable position that gives the strongest response. Such can either be a local best fit or rather, a global one.
The present inventor has recognized that current procedures are computationally expensive, because the choosing of the best matching transform needs inspecting multiple locations and orientations, and each thereof requires calculating the matching criterion. Moreover, the present inventor has recognized the benefit of iterating procedures.
On the other hand, current methods based on active contours or objects base on interpreting local image features, and in particular, “thin” features. In 2D, such could be a one-dimensional contour or centerline, and in 3D, a curved 2D surface. These methods are therefore typically edge-based, and grayvalue distributions inside a region or object are left out of consideration. On the other hand, a non-uniform grayvalue distribution inside could suggest a false edge, thereby positioning the active contour or object at an erroneous location.
SUMMARY TO THE INVENTION
In consequence, amongst other things, it is an object of the present invention to use both local processing for calculating a match or mismatch, and use the result thereof for controlling an iterative step that implements a relative motion between the first and second distributions. Now therefore, according to one of its aspects, the invention is characterized according to the characterizing part of Claim 1.
In particular, the article by Xavier Pennec, Pascal Cachier, and Nicholas Ayache, “Understanding the “Demon's Algorithm”: 3D Non-rigid Registration by Gradient Descent”, 2nd Int. Conf. On Medical Image Computing and Computer-Assisted Intervention, pp. 597-605, Cambridge, UK, Sep. 19-22, 1999 discloses an algorithm to represent an approximately second-order descent on the sum of the square of intensity differences criterion. Essentially however, the present invention uses an iterative approach, thereby avoiding various levels of high complexity; in particular, the complexity thereof for relatively simple configurations is negligible.
The invention also relates to a system being arranged for implementing the method as claimed in Claim 1 and to a computer program as claimed in Claim 14. The computer program of the invention can be provided on a data carrier, such as a CD-ROM, or can be downloaded from a data network such as the worldwide web. Further advantageous aspects of the invention are recited in dependent Claims.



BRIEF DESCRIPTION OF THE DRAWING
These and further features, aspects and advantages of the invention will be discussed more in detail hereinafter with reference to the disclosure of preferred embodiments of the invention, and in particular with reference to the appended Figures that illustrate:
FIGS. 1a, 1b, the matching of grayvalue distribution A, B, by stepwise repositioning;
FIG. 2, two one-dimensional grayvalue transitions A(i), B(i) and their Grayvalue Weighted Difference Gradient F(i);
FIG. 3, the value of F(i) used as the strength of a force acting on A(i);
FIGS. 4a, 4b, a symmetrical calculated exemplary force {right arrow over (F)}t(n) for n=2 and n=−2;
FIG. 5, the invariance of {right arrow over (F)}t for various shapes to be matched;
FIGS. 6a through 6g, the two-dimensional calculated force {right arrow over (F)}(i,j) split up in components Fx(i,j) and Fy(i,j);
FIGS. 7a through 7d, force field components Fx(i,j)(a) and Fy(i,j)(b), and force field {right arrow over (F)}(i,j) overlaid on difference D(i,j)(c) and A(i,j)(d);
FIGS. 8a, 8b, combining the forces on separate elements to result in one force and one torque on the center of gravity (COG) for the ensemble;
FIGS. 9a through 9c, the non-rigid deformation of a 2D active object with fitting of linear deformation curves;
FIGS. 10a, 10b, translating a force {right arrow over (F)} into a force and a torque acting on point P;
FIG. 11, a procedural block diagram of a preferred embodiment.
FIG. 12, a flow diagram of an iterative procedure according to the invention.



VARIOUS ELEMENTARY CONSIDERATIONS
The iterative step that imparts a relative motion between the first and second distributions can be interpreted as an energy-optimizing step as is being applied in Active Object approaches. The actual match between the grayvalue distributions is optimized by applying this step iteratively. One grayvalue distribution plays the role of an Active Object, and will automatically execute a number of steps to find its way to a location and orientation that would represent a minimum difference between the two grayvalue distributions, after which the process will stop automatically.
A particular aspect of the present invention is that only local calculations are required, in number substantially equal to the number of image elements involved. State of the art is considered to need a number of calculations that is substantially proportional to at least the square of such number.
Another advantageous aspect of the present invention is that the calculated grayvalue differences will directly lead to a force field that gives directions for relatively repositioning the two grayvalue distributions. No complex evaluation of an energy functional is required.
The proposed Active Object may consist of an arbitrary 2D- or 3D-shape and may contain quite a large number of elements in the form of pixels or voxels. To reduce the number of involved elements that describe a grayvalue distribution, other reduced configurations can be used, like for instance only elements in characteristic sub-areas of the grayvalue distribution. Another possibility of such reducing is downsampling. The latter allows in particular scale-space approaches. Based on an elementary and element-to-element evaluation of the difference between two grayvalue distributions, one force vector is produced for each element of a particular distribution.
The vectors so found can be combined in multiple ways. A straightforward manner is to not allow the elements to move with respect to each other and to combine all force vectors into one single force and one single torque for the whole collection of elements. The first grayvalue distribution win then be made to act as a Rigid Object, that is capable of translation and rotation with respect to the second grayvalue distribution. Relocation (translation and rotation) of the active object is implemented as a number of discrete steps in time, according to the physical model of force that leads to acceleration, acceleration leading to velocity, and velocity leading to displacement. Similarly, torque leads to angular acceleration, which leads to angular velocity, which in turn leads to rotation. The method of the invention can be easily extended with scaling, which is commonly included in what is called rigid deformation.
Another way to combine force vectors is to allow a certain amount of controlled movement between the pixels or voxels of the first grayvalue distribution, for instance to allow an affine deformation of the active object. Higher order deformation of the first grayvalue distribution (the active object) with respect to the second grayvalue distribution is of course also possible.
Various details of the evaluating of the difference between the two grayvalue distributions, the calculation of the forces resulting therefrom, and the translating, rotating, and deformation of the first grayvalue distribution with respect to the second grayvalue distribution will be discussed hereinafter.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
FIGS. 1a, 1b illustrate the matching of grayvalue distribution A, B, by stepwise repositioning. In FIG. 1a, the first distribution indicated by A should be optimally matched to the second distribution indicated by B. By itself, item B is a well-known test pattern, that has both a large-scale grayvalue distribution, and superposed thereon a smaller-scale noise distribution in the grayvalues. The intended match should be both large-scale and small-scale. Now, from the first matching at left, a force will be developed on the first distribution to move it in the direction of the arrow. The intensity of the force and the value of a virtual mass of the first distribution give an acceleration that within a virtual time will produce a translation and/or rotation. The selection of the mass and time units will determine the characteristics of the motion. An underdamped motion will often produce unwanted oscillations. On the other hand, an overdamped motion will take many calculatory cycles. Moreover, it may tend to steer the optimum matching to some local optimum only. For brevity, no dynamic behavior has been considered with respect to this Figure. As shown in FIG. 1b, the optimum attitude has been attained through minimum moving distance. In fact, other positions, each with an associated angle of rotation could with this particular second distribution B produce matchings with respect to the large-scale grayvalue distribution, but not with the superposed noise. These would then result in local optimum positions only. In practice therefore, only a single optimum will prevail. Furthermore, the present invention allows to assign various subsets of the distribution different weights, such as a high weight to parts of the distribution that are considered to have extra relevance over other parts.
Grayvalue Weighted Difference Gradient (GWDG)
The proposed method will be explained in a one-dimensional and in a two-dimensional context. Extension to three dimensions or more is straightforward.
One-Dimensional Explanation
FIG. 2 shows a one-dimensional example, which explains the principle of the GWDG, and how it can be used to match one grayvalue distribution to a second-similar-grayvalue distribution. The curves A(i) and B(i) in this figure represent a one-dimensional grayvalue transition. B(i) is a translated copy of A(i), and the goal is to move A(i) to the position that best matches B(i).
First, the gradient (in the discrete case for instance the central difference) of the difference B(i)−A(i) is calculated:

G(i)=∇(A(i)−B(i))  (1)

Next, the grayvalue gradient G(i) is multiplied with the grayvalue A(i):

F(i)=A(i)·G(i)  (2)

The value of G(i) weighted by A(i) proves to be a very suitable quantity for use as the strength of a force field {right arrow over (F)}(i), which will drive A(i) to a position where it fits best to B(i), in the sense that the difference between A(i) and B(i) is minimized.

{right arrow over (F)}(i)=F(i)·î  (3)

It can be noted that the value of F(i) has mostly positive values (in this case) and that A(i) should be shifted to the right, so in positive i-direction. If a positive value of F(i) at a particular pixel position i is interpreted as the strength of a force {right arrow over (F)}(i) acting on the pixel A(i) at that location, A(i) will be driven in the positive direction, so in the direction of B(i). See FIG. 3.
The total force {right arrow over (F)}t following from the force field {right arrow over (F)}(i) and acting on the complete curve A(i) is the sum of all separate forces and represents the surface under the curve {right arrow over (F)}(i):




  
    
      
        
          
            
              (
              4
              )
            
          
          
            
              
                
                  F
                  →
                
                t
              
              =
              
                
                  ∑
                  i
                
                ⁢
                
                  
                    F
                    →
                  
                  ⁡
                  
                    (
                    i
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




As the differentiation in equation (1) is followed by the summation in (4), {right arrow over (F)}t can be calculated very efficiently.
{right arrow over (F)}t appears to be a very suitable quantity to serve as a force field because it is symmetrical with respect to the direction of the translation. In FIG. 3, B(i) is translated in positive direction with respect to A(i), so B(i)=A(i−n), which leads to a particular value {right arrow over (F)}t(−n) for the total force. Translation of B(i) in the opposite direction, so B(i)=A(i+n) leads to a force {right arrow over (F)}t(n)=−{right arrow over (F)}t(−n). See FIG. 4.
The shapes, which need to be matched, do not have to be the same. Even a large difference between the two, for instance when matching a stylized model to an actual shape, will still result in a very usable value for {right arrow over (F)}t, as illustrated in FIG. 5, where a step function is matched to the smooth transition, with the same relative translation as used in FIG. 4.
Two-Dimensional Explanation
Next, a two-dimensional example will be discussed, see FIG. 6. The top row of FIG. 6 shows in 6a and 6b two simple discrete grayvalue distributions A(i,j) and B(i,j) which are to be matched, such that A(i,j) fits optimally to B(i,j), which is, in this example, again simply a horizontally shifted version of A(i,j).
a) first grayvalue distribution A(i,j)
b) second grayvalue distribution B(i,j)
c) difference D(i,j)=A(i,j)−B(i,j)
d) gradient Gx(i,j)=∇xD(i,j) in X-direction
e) Fx(i,j)=A(i,j)·Gx(i,j)
f) gradient Gy(i,j)=∇yD(i,j) in Y-direction
g) Fy(i,j)=A(i,j)·Gy(i,j)
First step in the evaluation is to calculate the point-to-point difference D(i,j) between the two grayvalue distributions B(i,j) and A(i,j):

D(i,j)=B(i,j)−A(i,j)  (5)

The values in D(i,j) are non-zero where A(i,j) and B(i,j) are not equal, and as can be seen from FIG. 6c, the grayvalues in D(i,j) clearly show a structured pattern which is related to the direction in which B(i,j) is translated with respect to A(i,j).
For reasons of efficiency and speed, the force field which is to be calculated will be split up in horizontal and vertical components, and the next step is to calculate the grayvalue gradients of D(i,j) in x- and y-directions as shown in FIGS. 6d and 6f. The central difference is for instance used as approximation of the gradient:

Gx(i,j)=∇xD(i,j)=D(i+1,j)−D(i−1,j)  (6)

Gy(i,j)=∇yD(i,j)=D(i,j+1)−D(i,j−1)  (7)

The horizontal and vertical components Fx(i,j) and Fy(i,j) of the force field {right arrow over (F)}(i,j) are calculated by weighting the gradient values with A(i,j):

Fx(i,j)=A(i,j)·Gx(i,j)  (8)

Fy(i,j)=A(i,j)·Gy(i,j)  (9)

{right arrow over (F)}(i,j)=(Fx(i,j),Fy(i,j))  (10)

FIG. 7 shows—for a limited number of locations—the horizontal and vertical force field components overlaid as arrows on the grayvalue weighted gradient images Fx(i,j) and Fy(i,j), in FIGS. 7a and 7b, and the combined force field on the difference image D(i,j) and the image A(i,j) in FIGS. 7c and 7d, respectively.
From FIGS. 7a and 7b, it can be seen that there will be a resulting total force in the horizontal direction, while the forces in the vertical direction will cancel each other out. In the following sections, it will be explained how grayvalue distribution A(i,j) can be made to act like an Active Object, and how the calculated forces can be applied to move this Active Object to the location that best matches grayvalue distribution B(i,j).
Active Object: a Collection of Active Pixels/Voxels
Grayvalue distribution A(i,j) can be seen as an Active Object consisting of a collection of elements: the pixels or voxels of A(i,j). Each of these elements is subjected to a force {right arrow over (F)}(i,j), which is calculated as explained in the preceding sections. There are various possibilities to apply these forces to the collection as a whole depending on the requirements of the application at hand.
Rigid Deformation
In many cases, rigid deformation of the Active Object will be sufficient, which means that the relative positions of the elements with respect to each other does not change. This leaves the freedom of translation and rotation of the collection as whole. Scaling is commonly also included in rigid deformation. In the one-dimensional case, as shown above (FIG. 3 and equation 4), the separate forces can simply be added together. In the two-dimensional case, things get slightly more complicated, as a combination of separate forces will generally result in one force and one torque acting on the center of gravity (COG) of the whole collection. See FIG. 8.
Non-Rigid Deformation
In the case that non-rigid deformation is required, forces cannot simply be combined into one force and one torque for the Active Object as a whole, as described above. The elements can neither be allowed to move freely with respect to each other, as this would probably lead to complete chaos. Some freedom, however, can be allowed, so that the Active Object can modify its shape in a controlled way.
Now the proposed approach is to subdivide the Active Object in a number of parts, for each of which a force and torque are calculated. After calculating the translation, rotation and scaling for each of these parts, displacement curves can be fitted through the centers of gravity of these parts and the position of each separate element can be adjusted in relation to these curves. This approach is illustrated in FIG. 9, where linear displacement curves are fitted.
If required, higher order curves, and/or further subdivision can be applied to allow for more freedom in reshaping, taking also into account the rotation of the parts.
The smaller the size of the parts into which the Active Object is divided, and the larger their number, the more freedom is allowed for non-rigid deformation.
Combination of Forces
All forces, which act on the elements, must be translated into one force and one torque acting on the COG of the whole Active Object (or a part of it, in the case of non-rigid deformation). Now, a force acting along a line not passing through a point results in a force on this point combined with a torque, as shown in FIG. 10.
The components Fxtot and Fytot of the total force {right arrow over (F)}tot on the COG of the whole object are determined by summing all x- and y-components of the forces, which act on the separate elements of the Active Object.




  
    
      
        
          
            
              (
              11
              )
            
          
          
            
              
                F
                tot
                x
              
              =
              
                
                  ∑
                  
                    i
                    ,
                    j
                  
                
                ⁢
                
                  
                    F
                    x
                  
                  ⁡
                  
                    (
                    
                      i
                      ,
                      j
                    
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        11
        )
      
    
  
  
    
      
        
          
            
              (
              12
              )
            
          
          
            
              
                F
                tot
                y
              
              =
              
                
                  ∑
                  
                    i
                    ,
                    j
                  
                
                ⁢
                
                  
                    F
                    y
                  
                  ⁡
                  
                    (
                    
                      i
                      ,
                      j
                    
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        12
        )
      
    
  
  
    
      
        
          
            
              (
              13
              )
            
          
          
            
              
                
                  F
                  →
                
                tot
              
              =
              
                (
                
                  
                    F
                    tot
                    x
                  
                  ,
                  
                    F
                    tot
                    y
                  
                
                )
              
            
          
        
      
    
    
      
        (
        13
        )
      
    
  




The total torque Ttot on the whole object is determined by summing all separate x- and y-components, taking into account to their distances from C(xC, yC), the COG:




  
    
      
        
          
            
              (
              14
              )
            
          
          
            
              
                T
                tot
              
              =
              
                
                  
                    ∑
                    
                      i
                      ,
                      j
                    
                  
                  ⁢
                  
                    
                      
                        F
                        x
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          j
                        
                        )
                      
                    
                    ·
                    
                      (
                      
                        j
                        -
                        
                          y
                          C
                        
                      
                      )
                    
                  
                
                -
                
                  
                    ∑
                    
                      i
                      ,
                      j
                    
                  
                  ⁢
                  
                    
                      
                        F
                        y
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          j
                        
                        )
                      
                    
                    ·
                    
                      (
                      
                        i
                        -
                        
                          x
                          C
                        
                      
                      )
                    
                  
                
              
            
          
        
      
    
    
      
        (
        14
        )
      
    
  




Because the Active Objects considered here are grayvalue distributions consisting of a collection of pixels or voxels that are neatly arranged in a grid, the combination of the separate forces into one force and torque for the whole object, can be implemented very efficiently according to equations (13) and (14).
Implementation of Translation, Rotation, Scaling
Translation
The process of repositioning the first grayvalue distribution (the Active Object) with respect to the second are is implemented as an iterative discrete time stepping process, which means that the dynamic process is evaluated at equally spaced discrete points in time t=kΔt, and that the situation is assumed not to change in between successive evaluation points. This approach was described earlier and successfully applied to 2D Active Contours. It mimics the basic physics of force leading to acceleration, acceleration leading to velocity, and velocity leading to displacement.
The force that acts in this case on the Active Object at time t is the total force {right arrow over (F)}tot(t), as derived in the previous chapter. The iterative discrete time stepping process is implemented as the following loop:




  
    
      
        
          
            
              
            
          
          
            
              calculate
              ⁢
              
                
              
              ⁢
              
                
                  
                    F
                    →
                  
                  tot
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  a
                  →
                
                ⁡
                
                  (
                  t
                  )
                
              
              =
              
                
                  1
                  m
                
                ⁢
                
                  
                    
                      F
                      →
                    
                    tot
                  
                  ⁡
                  
                    (
                    t
                    )
                  
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  v
                  →
                
                ⁡
                
                  (
                  t
                  )
                
              
              =
              
                
                  
                    v
                    →
                  
                  ⁡
                  
                    (
                    
                      t
                      -
                      
                        Δ
                        ⁢
                        
                          
                        
                        ⁢
                        t
                      
                    
                    )
                  
                
                +
                
                  
                    
                      
                        a
                        →
                      
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                    ·
                    Δ
                  
                  ⁢
                  
                    
                  
                  ⁢
                  t
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  p
                  →
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                    ,
                    t
                  
                  )
                
              
              =
              
                
                  
                    p
                    →
                  
                  ⁡
                  
                    (
                    
                      i
                      ,
                      j
                      ,
                      
                        t
                        -
                        
                          Δ
                          ⁢
                          
                            
                          
                          ⁢
                          t
                        
                      
                    
                    )
                  
                
                +
                
                  
                    
                      
                        v
                        →
                      
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                    ·
                    Δ
                  
                  ⁢
                  
                    
                  
                  ⁢
                  t
                
              
            
          
        
        
          
            
              
            
          
          
            
              t
              =
              
                t
                +
                
                  Δ
                  ⁢
                  
                    
                  
                  ⁢
                  t
                
              
            
          
        
      
    
    
      
        (
        15
        )
      
    
  




In these equations, the vector {right arrow over (a)}(t) denotes the acceleration of the Active Object at time t, the variable m stands for the mass of the object which can for instance be set to 1 for simplicity or derived from the grayvalue distribution, {right arrow over (ν)}(t) is the velocity, and {right arrow over (p)}(i,j,t) the position of element (i,j) at time t. Efficiency can be further improved by setting Δt=1.
To ensure stability, a damping force must be added, changing the calculation of {right arrow over (F)}tot(t) and {right arrow over (a)}(t) in equation (15) to:




  
    
      
        
          
            
              (
              16
              )
            
          
          
            
              calculate
              ⁢
              
                
              
              ⁢
              
                
                  
                    F
                    →
                  
                  tot
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  damping
                  ⁢
                  
                    :
                  
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      
                        F
                        →
                      
                      damp
                    
                    ⁡
                    
                      (
                      t
                      )
                    
                  
                
                =
                
                  
                    -
                    α
                  
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      v
                      →
                    
                    ⁡
                    
                      (
                      
                        t
                        -
                        
                          Δ
                          ⁢
                          
                            
                          
                          ⁢
                          t
                        
                      
                      )
                    
                  
                
              
              ,
              
                0
                <
                α
                <
                1
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  a
                  →
                
                ⁡
                
                  (
                  t
                  )
                
              
              =
              
                
                  1
                  m
                
                ⁢
                
                  (
                  
                    
                      
                        
                          F
                          →
                        
                        tot
                      
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                    +
                    
                      
                        
                          F
                          →
                        
                        damp
                      
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                  
                  )
                
              
            
          
        
      
    
    
      
        (
        16
        )
      
    
  




This iterative process is stopped automatically when both {right arrow over (a)}(t) and {right arrow over (ν)}(t) are smaller than a user definable (very) small value. As this process represents a translation, the same displacement {right arrow over (ν)}(t) is applied to all elements of the Active Object.
Rotation
Rotation is implemented very similarly to translation. In this case, however the variables are Ttot(t) which represents the torque on the Active Object at time t, the angular acceleration b(t), the angular velocity w(t), and the vector {right arrow over (q)}(i,j,t), which stands for the position of element (i,j) relative to the COG at time t.




  
    
      
        
          
            
              (
              17
              )
            
          
          
            
              calculate
              ⁢
              
                
              
              ⁢
              
                
                  T
                  tot
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  damping
                  ⁢
                  
                    :
                  
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      T
                      damp
                    
                    ⁡
                    
                      (
                      t
                      )
                    
                  
                
                =
                
                  
                    -
                    β
                  
                  ⁢
                  
                    
                  
                  ⁢
                  
                    w
                    ⁡
                    
                      (
                      
                        t
                        -
                        
                          Δ
                          ⁢
                          
                            
                          
                          ⁢
                          t
                        
                      
                      )
                    
                  
                
              
              ,
              
                0
                <
                β
                <
                1
              
            
          
        
        
          
            
              
            
          
          
            
              
                b
                ⁡
                
                  (
                  t
                  )
                
              
              =
              
                
                  1
                  m
                
                ⁢
                
                  (
                  
                    
                      
                        T
                        tot
                      
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                    +
                    
                      
                        T
                        damp
                      
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                  
                  )
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                w
                ⁡
                
                  (
                  t
                  )
                
              
              =
              
                
                  w
                  ⁡
                  
                    (
                    
                      t
                      -
                      
                        Δ
                        ⁢
                        
                          
                        
                        ⁢
                        t
                      
                    
                    )
                  
                
                +
                
                  b
                  ⁡
                  
                    (
                    t
                    )
                  
                
              
            
          
        
        
          
            
              
            
          
          
            
              
                
                  q
                  →
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                    ,
                    t
                  
                  )
                
              
              =
              
                Rotation
                ⁡
                
                  (
                  
                    
                      
                        q
                        →
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          j
                          ,
                          
                            t
                            -
                            
                              Δ
                              ⁢
                              
                                
                              
                              ⁢
                              t
                            
                          
                        
                        )
                      
                    
                    ,
                    
                      w
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                  
                  )
                
              
            
          
        
        
          
            
              
            
          
          
            
              t
              =
              
                t
                +
                
                  Δ
                  ⁢
                  
                    
                  
                  ⁢
                  t
                
              
            
          
        
      
    
    
      
        (
        17
        )
      
    
  




The rotation of {right arrow over (q)}(i,j,t) is over an angle {right arrow over (w)}(t) around the COG. A similar stopping criterion can be used as for translation.
Scaling
To include enlargement or shrinking of the Active Object, we need to know whether the forces {right arrow over (F)}(i,j) which act on the individual elements give a positive or negative result after projecting these forces on the position vector {right arrow over (q)}(i,j) which points from the COG to the element, and summing these projections over all elements. A more practical implementation is to accumulate all x- and y-components Fx(i,j) and Fy(i,j) of {right arrow over (F)}(i,j) in the following way.




  
    
      
        
          
            
              (
              18
              )
            
          
          
            
              
                S
                tot
              
              =
              
                
                  
                    ∑
                    
                      i
                      ,
                      j
                    
                  
                  ⁢
                  
                    
                      
                        F
                        x
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          j
                        
                        )
                      
                    
                    ·
                    
                      sign
                      (
                      
                        i
                        -
                        
                          x
                          C
                        
                      
                      )
                    
                  
                
                +
                
                  
                    ∑
                    
                      i
                      ,
                      j
                    
                  
                  ⁢
                  
                    
                      
                        F
                        y
                      
                      ⁡
                      
                        (
                        
                          i
                          ,
                          j
                        
                        )
                      
                    
                    ·
                    
                      sign
                      (
                      
                        j
                        -
                        
                          y
                          C
                        
                      
                      )
                    
                  
                
              
            
          
        
      
    
    
      
        (
        18
        )
      
    
  




Experiments have shown that a simple growing or shrinking process gives satisfactory results. The scaling is therefore not implemented as a dynamic force-driven process like the translation and rotation. Instead, a simple enlargement factor is introduced which is applied to the vectors {right arrow over (q)}(i,j):




  
    
      
        
          
            
              (
              19
              )
            
          
          
            
              
                
                  q
                  →
                
                ⁡
                
                  (
                  
                    i
                    ,
                    j
                    ,
                    t
                  
                  )
                
              
              =
              
                
                  (
                  
                    1
                    +
                    
                      
                        S
                        tot
                      
                      s
                    
                  
                  )
                
                ·
                
                  
                    q
                    →
                  
                  ⁡
                  
                    (
                    
                      i
                      ,
                      j
                      ,
                      
                        t
                        -
                        
                          Δ
                          ⁢
                          
                            
                          
                          ⁢
                          t
                        
                      
                    
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        19
        )
      
    
  




where s is a user definable constant to control the effect of scaling.

Translation, rotation and scaling can all be combined in one iterative process, performing all three actions in the same iteration. Another approach is to apply these three operations in an alternating pattern, for instance after every fifth translation step, do one rotation step and one scaling step.
If desired, weight factors can be added to balance of influence the effects of the three operations with respect to each other.
APPLICATIONS
An obvious application in medical imaging is landmark matching, where it is required to fit the grayvalue distribution around characteristic locations (landmarks) in one dataset, to the grayvalue distribution in a second dataset, with the purpose of locating the corresponding characteristic locations in this second dataset, which can be used for registration of the two datasets. Landmarks can be selected (semi-)automatically, or indicated by a user. Related to the above is the automated location of landmarks by fitting landmark models to a dataset.
Some examples of other application areas are satellite images, astronomy, temporal processing of video frames, identification, and pattern recognition for security and surveillance.
The described method can also be used to provide computer assistance to users who need to interactively position graphics objects or the like to image data. Stylized grayvalue distributions can be assigned to such graphics objects, which can then be matched to the grayvalues in the image.
Matching of grayvalue distributions (1D, 2D or 3D) as described here, can also be an alternative for current grayvalue profile matching applications or Appearance Modeling approaches.
FIG. 11 illustrates a procedural block diagram of a preferred embodiment, the Figure by itself having been taken from earlier U.S. Pat. No. 5,633,951 to the same assignee. Here, two images generated by respective imaging systems 12 (magnetic resonance) and 14 (computer tomography) will have to be combined in an optimum match. However, the procedure can be effected likewise with MR versus MR images, or with any usable source for such images. Now first, in processor 16, the two volume distributions are registrated for generating the optimum match, through correcting volume 2, such as by translating, rotating, or by still more complicated procedures as have been considered supra. Next, in processor 18, the two distributions so registrated are actually combined for imaging on display 20 at right.
FIG. 12 illustrates a flow diagram of an interactive procedure according to the invention. In block 30, the system is started, and the relevant hardware and software facilities are assigned. Next, in block 32, the two distributions are received, such as from background storage. Next, in block 34, the non-rigidity and other procedures for amending the procedure from straightaway uniform matching, are appropriately assigned to one of the distributions, if necessary. In block 36, the two distributions are matched element-by-element, and the element-wise forces are derived. Next, in block 38 the forces are accumulated or combined, such as to one force and one torque, or rather, to a more complicated set of forces/torques. In block 40, the motion caused by the force(s)/torque(s) is calculated: determined displacement or reposition. In block 42, the overall match is found, and checked for sufficiency. If no, the system reverts to block 36. If yes, the match is outputted in block 44. Alternatively, block 42 could also sit at the output of block 36.
Now, the present invention has hereabove been disclosed with reference to preferred embodiments thereof. Persons skilled in the art will recognize that numerous modifications and changes may be made thereto without exceeding the scope of the appended Claims. In consequence, the embodiments should be considered as being illustrative, and no restriction should be construed from those embodiments, other than as have been recited in the Claims.

## Claims

1. A method for matching grayvalued first elements of a first data set with grayvalued second elements of a second data set so that a first distribution of the first elements optimally matches a second distribution of the second elements,
said method comprising the steps of:
mapping said first elements on said second elements and evaluating a local grayvalue distribution difference between any mapped first element and its associated second element;
from said local grayvalue distribution difference deriving for each said first element a force vector of a force field, said force vector indicating a preferred motion size and direction; and
combining said separate force vectors into a single force and a single torque value acting on said first elements collectively, for iteratively moving said first elements collectively to an amended mapping that improves a match between said first and second distributions.

2. A method as claimed in claim 1, whilst executing said iteratively moving until a sufficient match is attained.

3. A method as claimed in claim 1, wherein for each said deriving the number of calculations is substantially linear in the number of said first elements.

4. A method as claimed in claim 1, wherein said first and second elements form respective subsets of respective supersets of elements.

5. A method as claimed in claim 4, wherein said subsets are selected on the basis of representing characteristic features of said supersets.

6. A method as claimed in claim 4, wherein said subsets are selected through down-sampling.

7. A method as claimed in claim 1, wherein said combining combines all said vectors into a single force and into a single torque value by preventing said first elements to move with respect to each other.

8. A method as claimed in claim 1, whilst allowing a predetermined amount of motion between the elements of the first distribution.

9. A method as claimed in claim 8, wherein said allowing subjects to an affine transform or a higher order deformation.

10. A method as claimed in claim 1, for medical imaging landmark matching.

11. A method as claimed in claim 1, and applied for one of satellite images, astronomy images, temporal processing of video frames, identification of human or artifact images, and pattern recognition for security, surveillance or reconnaissance.

12. A method as claimed in claim 1, wherein said motion is subjected to a damping restraint.

13. A system being arranged for matching grayvalued first elements of a first data set with grayvalued second elements of a second data set so that a first distribution of the first elements optimally matches a second distribution of the second elements, said system comprising:
a reception facility for receiving said first and second data sets;
a mapping facility fed by said reception facility for mapping said first elements on said second elements and evaluating a local grayvalue distribution difference between any mapped first element and its associated second element;
a force deriving facility fed by said mapping facility for said local grayvalue distribution difference deriving for each said first element a force vector of a force field, said force vector indicating a preferred motion size and direction;
a combining facility fed by said force deriving facility for combining said separate force vectors into a single force and a single torque value acting on said first elements collectively, for iteratively moving said first elements collectively to an amended mapping that improves a match between said first and second distributions, and
a loop facility for retrocoupling said amended mapping to said mapping facility and/or to said force deriving facility.

14. A computer readable medium including code for matching grayvalued first elements of a first data set with grayvalued second elements of a second data set so that a first distribution of the first elements optimally matches a second distribution of the second elements, said medium comprising:
code for mapping said first elements on said second elements and evaluating a local grayvalue distribution difference between any mapped first element and its associated second element;
code for deriving, from said local grayvalue distribution difference, each said first element a force vector of a force field, said force vector indicating a preferred motion size and direction;
code for combining said separate force vectors into a single force and a single torque value acting on said first elements collectively, for iteratively moving said first elements collectively to an amended mapping that improves a match between said first and second distributions.