The present application relates to digital imaging and, more particularly, to a method for performing segmentation in 2D or 3D digital images.
One of the most important problems in segmentation is related to the difficulty in perceiving frontier or boundary (blurry, as in
Active contours are deformable shapes that can move under the action of forces called speed term. The evolution of an active contour generally allows bidirectional propagation (toward the inside or the outside).
Some methods, like the deformable model known as “Snake” (Kass, M., Witkin, A., Terzololous, D., “Snakes: Active Contour Models,” International Journal of Computer Vision, 1(4), 321-331, 1987), rely on the movement of markers represented by connected points, moving together according to the speed term F in the direction of the normal to the contour as represented in
To overcome this kind of problem, the Level Set method by Osher et al. is commonly used (Osher, S., Sethian, J. A., “Fronts propagating with curvature dependent speed: algorithms based on the Hamilton-Jacobi formalism,” J. Computational Physics, 79:12{43, 1988) as shown in
This method is based on an implicit representation of an active contour generally initialised by the end user. Instead of following the evolution of the active contour, the evolution of a signed distance function is followed, which function includes the active contour generally represented by the zero of that function as shown in
Recently, Shi et al. (Shi, Y., Karl, W. C., “A fast implementation of the level set method without solving partial differential equations,” Technical Report ECE-2005-02, ECE Department, Boston University, January 2005) have proposed a new technique for the segmentation of images. It maintains some features of the Level Set method, such as the topology flexibility (split and merge) of the active contour during its evolution, and facilitates the adaptation of the model to superior dimensions without having to solve the PDE, unlike in the Level Set method. To make it possible, the segmentation is done by management of points lists that permit knowing exactly the position of the active contour for a given iteration.
The method set forth by Shi et al. involves two steps. The first step consists in evolving the active contour forward or backward by one pixel per iteration by transferring a point from one list to the other. The second step consists in controlling the curvature of the active contour by a Gaussian filter applied on the active contour. The second step is used when the active contour is too sensitive to the noise, and to keep the active contour smooth. Like the step of evolution, the curvature control step cannot move the active contour more than one pixel per iteration because it is limited by the list management of the active contour. Moreover, when the goal of the algorithm is to prevent leakage, a filter of big size is necessary and numerous iterations of curvature control are needed.
It is therefore a feature of the present application to provide a segmentation method that addresses issues associated with the prior art.
According to the above features of the present application, there is provided a method for segmenting elements on an image, comprising: i) creating an active contour from at least one identified point on the image; ii) defining a reference intensity value from the pixels of the active contour; iii) simplifying the image by comparing the pixels of the image to the reference intensity value to give a propagation value to the pixels of the image; and iv) propagating the active contour in a selected one of an expansion/contraction direction as a function of the propagation value of the pixels adjacent to the active contour in the image; wherein ii), iii) and iv) are repeated in the selected direction whereby the active contour finally represents the element segmented in the image.
Further in accordance with the present application, there is provided a method for segmenting elements on an image, comprising: i) creating an active contour from at least one identified point on the image, points of the active contour having a binary value; ii) defining a reference intensity value from the pixels of the active contour; iii) comparing the pixels of the image to the reference intensity value to give a propagation value to the pixels of the image; and iv) propagating the active contour in a selected one of an expansion/contraction direction as a function of the propagation value of the pixels adjacent to the active contour in the image, whereby points of the propagating active contour has a binary value; wherein ii), iii) and iv) are repeated in the selected direction whereby the active contour finally represents the element segmented in the image.
a is an image illustrating a blurry boundary;
b is an image illustrating a noisy boundary;
c is an image illustrating partially missing boundaries;
a is an image of a propagation of a “snake” deformable model;
b is an image of a crossover in the propagation of the “snake” deformable model;
c is an image of merging “snake” deformable models;
a to 5c are respectively blurry, noisy and missing-boundary images being segmented using the method of the present application; and
a and 6b are respectively brain and aorta images sequentially during a segmentation with the method of the present application.
Referring to
According to step 12, an active contour is initialized on the image. According to one embodiment, the active contour is initialized by a user identifying some markers on the image, which markers are related to an element or structure to be segmented. It is preferred that the markers be defined in proximity to the boundary of an element to be segmented. The markers may be outside of the element or inside of the element. According to a preferred embodiment, the active contour initialized in step 12 has a binary value.
It is also considered to automatically set the markers. As an example, in an industrial inspection application, the image represents a piece pictured by inspection cameras, and the marker is automatically set in the center of the image as the piece is typically centered in the image.
According to step 14, a direction for the active contour is initialized in the image. Therefore, according to the initialization of the active contour in step 12, a direction is given to the active contour for the subsequent propagation of the active contour. If the markers have been provided outside the element to segment, the direction given to the active contour will be a contraction direction, and vice versa. It is pointed out that the direction is preferably identified by a binary value. In the event that the active contour is automatically set, the direction may be a default direction (e.g., expansion).
In step 16, a reference intensity value is defined for the pixels within the propagating active contour. More specifically, statistical data for the pixels delimited by the active contour is calculated to define the reference intensity value. Numerous calculations can be performed to establish the reference intensity value.
As an example, an average intensity or median intensity is established with the pixels, so as to subsequently define thresholds with the average or median intensity and a standard deviation. Alternatively, other calculations or criteria such as intensity interpolation and texture analysis may be used as well.
According to step 18, a simplified representation of the image is produce using the reference intensity value so as to obtain a simplified image consisting of a propagation value for each pixel. According to a preferred embodiment, the propagation value is a binary value determining whether the boundary of the active contour is to be pulled or pushed. The simplified representation of the image is commonly known as a speed term image, and will be used by the active contour during propagation.
According to step 20, the active contour propagates using the simplified representation of the image (i.e., the speed term image). The use of a simplified image for the propagation simplifies the computation time required during propagation, thereby accelerating the segmentation of the digital image.
Steps 16, 18 and 20 represent an iteration allowing the incremental propagation of the active contour. In an embodiment, the incremental propagation, is performed for several pixels at a time, typically in areas of uniform intensity on the speed image. The incremental propagation is preferably one pixel level at a time near the boundary of elements. As the active contour propagates, the reference intensity value changes as additional pixels are captured in the propagating active contour. This will result in an increased accuracy in the propagation of the active contour in step 20.
The iteration by steps 16, 18 and 20 is cycled repeatedly, with intervening steps to filter the pixels of the active contour to remove noise and to control the curvature of the active contour to avoid leakage. More specifically, after a given number of iterations have been performed, the step 24 of regularization filtering, or the step 26 of curvature control, is performed, as set forth in decision 22.
According to step 24, the regularization filtering within the active contour involves a filter that compares concurrently a plurality of pixels within a predetermined filter size. The regularization filtering allows the conversion of pixels to a corrected intensity value for the pixel. The step of regularization filtering 24 is used to remove noise and other abnormalities from the elements being segmented. For instance, a Gaussian filter is used but other types of filters are considered as well.
Once the regularization filtering is completed, the reference intensity value redefined in step 16 will take into account the regularization filtering. This will result in an increased accuracy in the propagation of the active contour in step 20.
According to step 26, the curvature is controlled for the active contour. In step 26, a filter of a predetermined size filters the boundary curvatures of the active contour. The filter size in the curvature control is typically greater than the filter used in the regularization filtering. The boundary of the active contour is typically smoothened when leakage would otherwise occur. Optionally, the user may modify the filter size in the curvature control filtering in order to manually select a segmented image in which the segmented element matches an expected shape.
It is pointed out that the curvature control filtering also optionally performs a regularization filtering of noise within elements segmented by the propagating active contour. A similar filter is used in steps 24 and 26, but with the filter used in step 26 typically greater in dimension as leakage between neighboring structures usually involves a greater amount of pixels.
Once the curvature control is completed, the reference intensity value redefined in step 16 will take into account the curvature filtering. This will result in an increased accuracy in the propagation of the active contour in step 20.
Once the active contour has propagated through the image, the segmentation is completed, as set forth in step 28.
The proposed method offers many advantages in relation to existing methods. Firstly, the method of the present application avoids a major problem found in Level Set method, that is, computing time to solve PDE equations to assure the propagation of the active contour. Moreover, the method of the present application does not involve list management, as is the case with the method of Shi et al. The use of lists to follow the evolution of the active contour limits the propagation to only one pixel per iteration. Also, using the Shi et al. method, considerable size of smoothing filter has to be used iteratively to avoid leaks of the active contour in neighbouring structures.
With the method of the present application, implicit representation is used. Only one iteration of smoothing is needed to control the curvature of the active contour, irrespective of the size of the smoothing filter.
Depending on the filtering step (i.e., step 24 or 26), the size of the filter can vary. To avoid sensibility of the active contour to the noise, a small size approximately 3 to 5 pixels can be used. When used to smooth the active contour, the size of the filter is dependent on the size of the active contour. To prevent leaks in a neighbouring region, a size equivalent to the diameter of the leak can generally be used.
A first optimisation for the present method is to use a dynamic bounding box that contains the active contour, with the outside being an inactive zone. During the evolution of the active contour, this bounding box is automatically modified to always contain the active contour inside the bounding box. Reducing the region to a region of interest reduces considerably the number of operations.
A second possible optimisation has been done to significantly reduce the computation time. During the propagation of the active contour, some parts can reach their final state before others. Calculations on these regions of the active contour are then not necessary when they reach their final position for the segmentation. Therefore, according to this option, the propagation is locally stopped when the element has been locally segmented. Therefore, considering this can accelerate the speed of segmentation as the active contour approaches the final segmentation.
Such an approach is similar to the one proposed by Deschamps (Deschamps, T., “Curve and Shape Extraction with Minimal Paths and Level-Sets Techniques. Applications to 3D Medical Imaging,” Ph.D. thesis, Université Paris-IX, Dauphine, 2001) for the segmentation of the aorta.
This second optional optimisation relies on the characteristic proposed in multi-resolution to reduce the computation time. First, the image is subdivided into zones such that each zone contains a determined number of pixels. Pixels that were on the border of the active contour will be called active pixels. Therefore, zones containing active pixels are activated. Only active zones will be used in the next iteration.
In another representation of the method 10, the steps involve:
The initialization of the binary implicit active contour Phi (φ): one inside, zero outside.
The creation of the speed term (g) to provide a propagation direction: one to push, zero to pull the active contour.
The creation of the zone image(f), the simplified representation: one for active zone, zero for inactive zones.
The evolution (propagation) of the active contour for active zones.
The expansion of the active contour: φ=E(φ)×g; or
The contraction of the active contour: φ=C(φ)×
The simplified representation f is updated: for each zone, if the active contour did not move, the zone (set the zone is frozen to −1).
The curvature control step for the active contour for the active zone.
The curvature control by a smoothing function.
If the stopping criterion is not reached: return to Step 2.
Else: end of the algorithm.
It is considered to use the method 10 in different applications, medical imaging, industrial inspection surveillance, amongst other numerous possibilities. Moreover, it is considered to use the method 10 for 2D and 3D images, as well as for segmenting elements in videos. In such a case, it is suggested to use the segmented image as the initial active contour in segmenting the following image in the video. Accordingly, the computing time is reduced by such a step.
As an example, various images are provided to illustrate the segmentation of images with the method 10.
This patent application claims priority on U.S. Provisional Patent Applications No. 60/867,941, filed Nov. 30, 2006, and No. 60/912,040, filed Apr. 16, 2007.
Number | Date | Country | |
---|---|---|---|
60867941 | Nov 2006 | US | |
60912040 | Apr 2007 | US |