Technical field
[0001] The present disclosure relates generally to level set function based image processing.
Technical background
[0002] Object segmentation is often needed in medical image analysis, e.g., for surgery
planning or for quantitative measurements of vessel stenosis. Although there are many
segmentation methods in the literature, many of them fail to give satisfactory result
when the image resolution is limited or has relatively high noise content. These difficulties
can sometimes be overcome by user intervention, but this often results in complicated
workflows and long analysis time. The level-set method, invented in the 1980s, is
for example known for use as an image segmentation tool, due to its ability to automatically
handle complicated topological changes of the targeted object, keep the contour smooth
on a noisy background and generate segmentation results with sub-voxel accuracy. For
an introduction see e.g.
Osher, S., and Fedkiw, R.P., "Level set methods and dynamic implicit surfaces", Springer
(2003). Many studies have shown that the level-set technique improves the segmentation accuracy
and reduces the need for user supervision, such as
Yushkevich, P.A., Piven, J., Hazlett, H. C., Smith, R.G., Ho, S., Gee, J.C., and Gerig,
G., "User-guided 3D active contour segmentation of anatomical structures: significantly
improved efficiency and reliability," Neuroimage 31(3), 1116-1128 (2006), and
Manniesing, R., Velthuis, B. K., Van Leeuwen, M.S., Van der Schaaf, I.C., Van Laar,
P.J., and Niessen, W.J., "Level set based cerebral vasculature segmentation and diameter
quantification in CT angiography," Medical Image Analysis 10(2), 200-214 (2006). Despite the success and robustness achieved in various experimental environments,
its application in clinical practice is still rather limited, mainly due to the long
computation time. Several methods have been proposed to accelerate the level-set method;
for example Sethian et al invented the narrow-band method, in which the computation
of the level-set function is limited to a band a few pixels wide instead of the whole
image, see
Adalsteinsson, D., Adalsteinsson, D., Sethian, J.A., and Sethian, J.A., "A Fast Level
Set Method for Propagating Interfaces," JOURNAL OF COMPUTATIONAL PHYSICS 118, 269--277
(1994). Whitaker later extended narrow-band level set to the sparse field level set, where
the narrow band is only one pixel wide and the level set function is recalculated
with a distance transform in each iteration, see
Whitaker, R.T., "A level-set approach to 3d reconstruction from range data," INTERNATIONAL
JOURNAL OF COMPUTER VISION 29, 203--231 (1998).
[0004] However, in many applications these methods do not give satisfactory performance,
as segmentation takes too long. Hence it would be desirable with a level set based
image segmentation method that allows for faster segmentation. In general it would
be desirable with a level set based image processing method that would allow for faster
execution, that is, not only in the case of image segmentation but also in other situations
where level set methods can be employed in image processing, for example when used
for noise reduction.
Summary of the invention
[0005] In view of the above, an object of this disclosure is to present a solution overcoming
or at least alleviating problems in the prior art, or to at least present an alternative
solution. A more specific object is to present a level set function based image processing
method that enables faster execution than conventional level set function based image
processing methods. The invention is defined by the appended independent claims.
[0006] Hence, according to a first aspect there is provided a method of processing input
digital image data representing an image into output digital image data, comprising
the following steps: providing input image data; providing and initializing a level
set function representation for approximating the output digital image data; providing
a speed function; determining a propagation direction trend map relating to image
points of the level set function, said map comprising one or more trend directions
associated with said image points so that each one of said image points has an associated
trend direction; updating the level set function using the speed function and the
propagation direction trend map, so that the speed function is excluded from contributing
in the updating of the level set function in image points for which the speed of the
speed function is not in the associated trend direction; and providing the output
digital image data. The output digital image data being based on the level set function
after it has been updated. By the exclusion, propagation in a coherent manner is enabled
and speed penalty owing to local wiggling as observed in conventional methods can
be avoided.
[0007] By trend direction is here meant a direction towards which the speed function is
predicted to contribute.
[0008] By image points of the level set function is here meant image points for which the
level set function is defined, which e.g. can be over the whole image or partially,
such as in a narrow band.
[0009] It should be understood that the propagation direction trend map may comprise one
trend direction associated with all of said image points, trend directions where each
one is associated with a respective group of said image points, and/or trend directions
where each one is associated with a respective individual of said image points. It
should further be understood that the steps of the method are not limited to be carried
out according to the order of presentation herein.
[0010] The step of updating the level set function may be repeated at least once and/or
until a propagation criterion is fulfilled.
[0011] The propagation criterion is typically application specific and chosen so that the
repeating will stop after the level set function has been sufficiently updated in
view of the application and requirements connected to it. A period in the method starts
by determining the propagation trend map and ends when the step of updating the level
set function has been repeated until the propagation criterion is fulfilled. Hence,
during updates in one and the same period, the propagation direction trend map may
be the same. When the propagation criterion is fulfilled, that is, when propagation
under influence of the current propagation direction trend map is considered sufficient,
the period ends.
[0012] The propagation criterion may be based on how many image points are being excluded
in the step of updating the level set function and/or the number of iterations being
performed in the step of updating the level set function. Fulfilling the propagation
criterion may comprise that a predetermined or user input determined amount of image
points is excluded in the step of updating the level set function and/or that a predetermined
or user input determined number of iterations is performed in the step of updating
the level set function. The step of updating the level set function may further comprise
that image points for which the speed of the speed function is not in the associated
trend direction are being excluded in the updating of the level set function. By the
exclusion in the updating of the level set function using the propagation direction
trend map, unnecessary calculations can be avoided.
[0013] In some embodiments the step of updating the level set function comprises that the
level set function of an image point that would be excluded is still updated using
the speed function if such image point is located in a local neighborhood of an image
point that was updated, preferably by having speed in its associated trend direction.
By local neighborhood of an image point is meant all image points within a determined
distance from said image point, which distance may be predetermined or user input
determined.
[0014] The propagation direction trend map may be at least initially determined through
user input or may initially be predetermined.
[0015] The one or more trend directions of the propagation direction trend map may be determined
by calculation based on values of the speed function, and/or be calculated using the
sign of speed determined by the speed function. The one or more trend directions of
the propagation direction trend map may be calculated based on values of the speed
function in associated image points and/or in a local neighborhood thereof. Note that
local neighborhood here has the same base definition as the local neighborhood discussed
above, but that these local neighborhoods are not the same and may thus be of different
size. Here it may involve points within a 1-point radius up to every point of the
level set function. In the latter case there will be a unified propagation direction
trend map.
[0016] The propagation direction trend map may comprise one trend direction associated with
all or a group of said image points. Such trend direction is thus a trend direction
that is common for multiple image points, and hence fewer directions have to be separately
stored and handled in an implementation, which in turn enable speed-improvements.
[0017] The method may comprise a further step of: repeating the step of determining the
propagation direction trend map and the step of updating the level set function at
least once. It is understood that this step should be performed before providing the
output digital data image in the step of repeating the step of determining the propagation
direction trend map and the step of updating the level set function. By the repeating
a next period start by (re)determining the propagation direction trend map. This way
there may be coherent propagation in a first trend direction within first period and
coherent propagation in a second trend direction within a second period, e.g. so that
a whole, or segments, of a contour, expand in one period and shrink in the next.
[0018] The (re)determining of the propagation direction trend map following the repeating
in the step of repeating the step of determining the propagation direction trend map
and the step of updating the level set function , may comprise changing at least one
of the one or more trend directions and the changing may involve switching to opposite
direction, such as by switching sign of values representing the one or more trend
directions.
[0019] The repeating in the step of repeating the step of determining the propagation direction
trend map and the step of updating the level set function may involve that image points
fulfilling an image point convergence criterion are being excluded from the updating.
The use of the propagation trend makes it possible to determine convergence of individual
points and thus the steps of (re)determining the propagation direction trend map and
updating of the level set function etc, can be (re)performed excluding points considered
to already have converged, which contributes to faster execution.
[0020] The image point convergence criterion may be fulfilled when the level set function
has changed less than a threshold value, preferably being predetermined or user input
determined, during one or more previous updates.
[0021] In some embodiments, the step of repeating the step of determining the propagation
direction trend map and the step of updating the level set function further comprises
setting the level set function for all image points of the level set function or image
points fulfilling the image point convergence criterion to a value based on recent
level set function values, such as an average of a present and a preceding level set
function value.
[0022] The step of repeating the steps of determining the propagation direction trend map
and the step of updating the level set function may be repeated at least once or until
a level set function convergence criterion is fulfilled.
[0023] The level set function convergence criterion may be fulfilled based on how many,
preferably that substantially all, image points of the level set function are fulfilling
the image point convergence criterion and/or the number of iterations performed in
the step of repeating the step of determining the propagation direction trend map
and the step of updating the level set function.
[0024] Fulfilling the level set function convergence criterion may comprises that a predetermined
or user input determined amount of image points of the level set function are fulfilling
the image point convergence criterion and/or that a predetermined or user input determined
number of iterations have been performed in the step of repeating the step of determining
the propagation direction trend map and the step of updating the level set function.
[0025] The method of processing input digital image data representing an image into output
digital image data may be an image segmentation method, wherein the output digital
image data may represent a boundary of an object in the image represented by the input
digital image data. The level set function may be updated only in a subset of image
points, such as in a in a narrow band, comprising the 0-level.
[0026] The step of updating the level set function may further comprise detecting new image
points added to the subset, updating the propagation direction trend map in regard
of the new points and inheriting one or more trend directions to be associated with
the new image points from neighboring image points for which the level set function
were updated and thereby caused the new image points to be added to the subset. This
way the entire propagation direction trend map need not be updated, yet allowing any
new point added to the narrow band to get an associated trend direction and be updated
in any subsequent iteration involving the step of updating the level set function.
[0027] The propagation criterion may be considered fulfilled when new image points have
been added to the subset by the updating in the step of updating the level set function.
By this there will be (re)determination of the propagation direction trend map such
that any new point added to the subset will get an associated trend direction and
can be updated in any subsequent iteration involving the step of updating the level
set function.
[0028] The method may further comprise a step of providing a shape prior; and the step of
updating the level set function may further comprise computing a transformed shape
based on the shape prior and using the transformed shape in the updating of the level
set function. The method is advantageously used in shaped based image segmentation,
which conventionally is comparatively slow, and is therefore of particular interest
to speed up using the present method. The step of updating the level set function
may further comprise computing the transformed shape in image points for which the
speed of the speed function is not in the associated trend direction. This utilizes
the fact that image points having speed that is not in the trend direction are potentially
such that may be closer to convergence, that is, closer to the border in case of segmentation,
and it has greater effect and makes more sense to calculate transformed shape for
such points. Image points farther away, i.e. typically such that have speed in the
trend direction and/or for such which the level set function is being updated, may
be omitted when computing the transformed shape.
[0029] In the step of updating the level set function, a decision to start computing the
transformed shape may be based on whether there has been any change, or any substantial
change, in the speed of image points in relation to their associated trend directions,
compared to a previous iteration. No change means that there is no or very small effect
in computing a transformed shape (again) and calculations in this regard can be omitted.
By substantial change is meant that calculations also can be omitted if there is only
one or a few points that have changed, or any other small amount of changed points
that anyhow would have small shape changing effect. What is substantial in a specific
case can be determined by the skilled person.
[0030] The method of processing input digital image data representing an image into output
digital image data may be an image noise reduction method, wherein the output digital
image data may represent a smoothed, noise reduced, image of the image represented
by the input digital image data.
[0031] According to a second aspect there is provided a computer program product, loadable
into the internal memory of a computer, comprising software for controlling steps
of the method discussed above when said computer program product is run on the computer.
According to a third aspect there is provided a computer readable medium having a
program recorded thereon, where the program is arranged to make a computer control
steps of the method discussed above when the program is loaded into the computer.
According to a fourth aspect there is provided a computer configured to execute steps
of the method discussed above. According to a fifth aspect there is provided a medical
imaging system, such as magnetic resonance imaging system or a computerized tomography
imaging system, having integrated the computer according to the fourth aspect.
[0032] According to a sixth aspect there is provided a computer for processing input digital
image data representing an image into output digital image data, wherein the computer
is configured to: Provide input image data. Provide and initialize a level set function
representation for approximating the output digital image data. Provide a speed function.
Determine a propagation direction trend map relating to image points of the level
set function, said map comprising one or more trend directions associated with said
image points so that each one of said image points has an associated trend direction.
Update the level set function using the speed function and the propagation direction
trend map, so that the speed function is excluded from contributing in the updating
of the level set function in image points for which the speed of the speed function
is not in the associated trend direction.
[0033] The computer may be further configured to provide the output digital image data image
based on the level set function.
Brief description of the drawings
[0034] The above, as well as other aspects, objects and advantages of the present invention,
will be better understood through the following illustrative and non-limited detailed
description, with reference to the appended schematic drawings.
Fig. 1 a schematically shows wiggling behavior of neighboring image point in a conventional
method.
Fig. 1b schematically shows corresponding situation as in Fig. 1 a when a method according
to embodiments herein is used.
Fig.2 shows number of iterations and actually computed voxels in each iteration and
comparison between a conventional method and a method according to embodiments herein.
Figs. 3a-c show pseudo-code describing one embodiment.
Fig. 4a is a block diagram schematically showing a level set based image processing
method according to embodiments herein.
Fig. 4b is a block diagram schematically showing a conventional level set based image
processing method for comparison with Fig. 4a.
Figs.5a-d schematically show results from level-set based image segmentation employing
a shape model.
Fig. 6a is a block diagram schematically showing a conventional level set based image
processing method that is shaped based.
Fig. 6b is a block diagram schematically showing an embodiment that is shape based.
Fig. 7 schematically shows examples that relate to a computer program implementation.
Fig. 8 schematically shows a computer and medical imaging system.
[0035] In the drawings the same reference numerals may be used for same, similar or corresponding
features, even when the reference numerals refer to features in different embodiments.
Detailed description
[0036] Although the present solution, as will be recognized by the skilled person, can be
used with in principle any kind of image processing method where the level based method
can be applied, it may be particularly advantageous to use in the case of shape recognition/recovery
in images, in particular image segmentation, and preferably in combination with a
narrow band approach.
[0037] An embodiment related to segmentation will first be discussed in some detail, including
details from implementation and verification:
[0038] The inventors noticed that when certain points during propagating move faster than
their neighbors, the curvature force will move them backwards to keep the contour
(not necessarily but often the contour of 0-level set) smooth, even though the whole
neighborhood will eventually move forwards. Such kind of local wiggling behavior slows
down the propagation considerably as it repeats. Based on this finding the inventors
propose a modified sparse field level set method, which uses a periodic monotonic
speed function, resulting in coherent propagation of the boundary. In the level-set
method, a dynamic implicit function Φ, a signed distance function, represents the
object's contour. By iteratively moving this function according to external and internal
forces according to a speed function
vt, the 0-level set can be deformed to the shape of the interesting object. In most level-set
based segmentation applications, the curvature force (intrinsic factor/internal force)
is used to keep the contour smooth, whereas the intensity, gradient and texture of
the image (extrinsic factors/external force) are used to attract the contour into
the border of object. Equation 1 gives a typical example
[0039] In Eq. 1,
C(
x,
t) is the local curvature,
D(
x) is an intensity-based external force. Due to noise and numerical errors, the neighbor
points on the 0-level set (the contour) will not propagate at the same pace. Very
soon they will form a zigzag shape, even if they start from the same line. See Fig.
1 a (a-c). The faster points (point 2 and 4 in Fig. 1 a) in the neighborhood will
be "pushed" back by the curvature force in the next iteration, while the trend of
the local segment is to move forward. This phenomenon is repeated during the level
set function's evolution and this "local wiggling" significantly slows down the propagation
speed. In the present embodiment it is proposed to replace the conventional speed
function with a periodic monotonic function, see Equation 2.
[0040] In Eq. 2, "trend" represent whether the local contour is expanding or shrinking.
In the present embodiment the value can only be 1 or -1; the speed function
vt is a scalar. The "trend" for each pixel/voxel is here initialized at the first time
when it is added into the narrow band, using
sign(vr) or , where
Nr is the neighborhood around the point within distance r. In practice, after the first
iteration, the "trend" of any new point added into the narrow band need not be calculated.
It can instead e.g. inherit the "trend" from the neighbor that caused the value changing.
The values of the "trend" need not be the same (although it is preferred) across the
image, but they will in the present embodiment change sign at the same time and "trend"
will change sign at the end of a period when
w(vt) is 0 (i.e.
vt ×
trend ≤
0) for every point on the narrow band. As shown in Fig. 1b (d-f), for comparison with
Fig. 1a, using this periodic monotonic speed function, the faster points (point 2
and 4) will not move back due to slower neighbors (because
vt ×
trend <
0), but stay in place and wait for the neighbors to catch up. Then, as the contour
becomes flat again (Fig. 1 b(f)),
vt at point 2 and 4 will have the same sign as trend, and all points can move forward
together. The initialization of the trend is not crucial. Even if one point's trend
is opposite to the neighbors due to noise, the contour can still propagate around
the point and merge again after the point, owing to the level set method's ability
to automatically handle topology changes. The left-behind noise island will be eliminated
in the next period due to the high curvature. Hence, in this way, the expanding parts
of the contour can keep expanding, and the shrinking parts keep shrinking in a coherent
manner, until they reach the boundary of the segmented object. As the force related
to extrinsic factors will change sign when the contour has crossed the boundary, these
parts of the contour can then no longer expand or shrink. At the same time, the curvature
force will prevent the contour from growing into corners by changing their sign and
never changing back. Then
w(vt) becomes 0 everywhere on the contour. After
trend of each point has changed sign, different parts of the contour will change their
propagation direction to compensate for the error caused by their crossing the border
in the preceding period. As
trend will periodically change its sign, the contour will converge on the border of the
object.
[0041] Based on the coherent propagation discussed above, the inventors further propose
a lazy narrow band level set algorithm which prevents unnecessary/endless computation
in points that have reached the border. As the expanding/shrinking trend at these
points changes just after several iterations, the computation in the remaining iterations
of one period can focus on the actually growing parts. Solving Eq.1 for every pixel/voxel
in the image would be comparatively time consuming. The sparse field level-set algorithm
calculates/updates Φ only for the pixels/voxels where the 0-level set passes by, and
updates their neighbors' level set function (2-3 pixels/voxels away) via a distance
transform. This reduces the computation by one order of magnitude. However, in the
conventional implementation, all the points on the one pixel wide narrow band need
to be updated during each iteration, even if many parts of the contour have converged
on the border of the object. With the coherent propagation discussed above, in a single
period, if the contour reaches the border,
w(vt) of that part of contour will become 0. If no neighbor changes it value,
w(vt) will always return 0 in the remaining iterations in that period. These points can
thus be set to "sleep" and stop updating the level set function here. However, as
these points may be just in a temporal "equilibrium"
(w(vt) =
0), a wakeup mechanism may be implemented to allow all changed points
(w(vt) ≠
0) to wake up sleeping points, e.g. in a 1-2 pixel/voxel wide neighborhood. Moreover,
the changed points preferably only wake up neighbor points with the same trend, as
it means that the neighbors are catching up. Otherwise they are following further
behind, and w(vt) remains 0. At the end of a period, all the sleeping points may be
waked up again. When most points are close to the border, they will typically be put
to sleep just after a few, such as 1-2, iterations.
[0042] The inventors additionally propose a convergence detection method designed to stop
updating the local level-set function when the zero 0-level set is considered stationary
in a voxel for several periods, and so that the segmentation will stop naturally when
all points on the contour are considered stationary. In most sparse field level-set
implementations, numerical errors from reinitializing the level-set function (signed
distance computation) and from solving the partial differential equation cause the
speed
vt to hardly ever converge to 0; instead it keeps jumping around 0 in small steps (mostly
less than 1 pixel). When a periodic monotonic speed function is used, the contour
will, in most cases, still converge in the same manner, but at certain locations,
especially at sharp corners where
vt is dominated by the curvature force, the contour can jump in larger steps. This is
caused by the small step jumping of the joint points will allow the elastic region
between them to change dramatically. One solution is to switch to a conventional speed
function after several periods. However, a more efficient method is to force the elastic
region to converge by stopping the update of the level set function permanently on
those points where the change in Φ has been sufficiently small for several periods.
A wiggling counter may be used to track how many periods the change in Φ has been
below a given threshold (such as 1.0) in each pixel/voxel. At the end of each period,
this counter is increased by 1 for each point on the one pixel wide narrow band (0-level
set) when the change in Φ has been sufficiently small compared to the value at the
end of the last period. When the wiggling counter for a point passes a threshold value
(such as 10) the, it is set to permanent sleep, that is, is stopped. The value at
that point may then be calculated as the mean of the current value and the value at
the end of last period.
[0043] The above discussed method can be understood to achieve speed-up by skipping unnecessary
computation of certain and by speeding up the convergence. For example, the coherent
propagation makes the 0-level set approach the border of the object faster. Not only
can the faster points avoid moving backwards to wait for their slower neighbors, but
also the step length for all points is increased in each iteration by allowing Δt
to be somewhat bigger. In all level set algorithms, to ensure the stability of the
level set function, it is typically required that Δ
t ×
vt is less than one pixel/voxel unit for all the points on the 0-level set (otherwise
the connectivity of the 0-level set can break). When Δ
t is unified for all points, the algorithm may thus choose the maximum
vt among all the points in the narrow band in each iteration, which limits the Δ
t to be less than
1/ |
vt-max|. However, often the points moving backward will have the highest velocity and Δ
t may therefore be limited by these points. However, by setting
vt to zero in these points, the absolute value, |
vt-max| can be smaller, which makes the remaining points require fewer iterations to move
one pixel unit. Additionally, unlike the conventional narrow band or sparse field
level set methods, the above discussed lazy narrow band level set algorithm with a
new convergence detection method allows to avoid not only computing points that are
far away from the 0-level set, but also repeating useless computation on the converged
segments of the contour, and instead focus on the actively changing parts.
[0044] Fig. 2 gives a comparison overview of how many points are computed in each iteration,
where 2 indicates the situation for the present method and 1 the situation for a sparse
field level set algorithm running on the same data with same parameter settings. The
segmentation accuracy of the present method appears not sensitive to the threshold
set on the wiggling counter, however, in experiments the threshold was typically set
to 10 in 2D cases and 5 in 3D cases.
[0045] Both 2D and 3D versions of the method discussed above have been implemented as a
single-thread application on a Mac Pro with a 2.93GHz Intel Xeon CPU. The
D(
x) term in the speed function
vt (Eq. 1) was set to a threshold-based function:
D(x) = ε - (
I(
x) -
T), where
I(
x) is the intensity of input image,
T is the center of threshold window and ε is the width of the windo. 2D synthetic and
clinical images were tested and in general 5-15 times speedup was achieved compared
with the conventional sparse field level set method. Typical computation time for
a 512×512 image was 0.1-0.2 s. With the 3D version, 12 cases of abdominal aorta CTA
data were tested. A single seed region was provided for each case. About 10-20 times
speedup was achieved. Typical computation time for a 256×256×256 volume was 5-12 s.
The difference between our method and the conventional method was measured by comparing
the distance (given directly by the level set function) of the points on the one voxel
wide narrow band. As the conventional method tends to stop growing earlier than the
proposed method, only points around the abdominal aorta trunk were counted. In the
12 datasets from the testad cases, the distance between two 0-level sets varied from
-1.80 to 1.46 voxel units (a negative distance means that the contour point from proposed
method is outside the contour from conventional method), and the mean signed distance
was -0.12 with standard deviation 0.11. The mean unsigned distance (absolute value)
between two contours was 0.13 (with standard deviation 0.10, however it is not a normal
distribution).
[0046] As addition to the period monotonic level set method described above, several possible
variations in different steps may be considered. One is to take
trend(x,t) to a scale space, which means that
trend(x,t) for each pixel is calculated within an
r unit wide neighborhood rather than just in the pixel itself. Obviously, when
r = 1, this method will return the same result as described above. At the other end is
when r is defined infinite or at least so large that all pixels are included. This
will synchronize the expanding or shrinking for all the points in the narrow band,
which means that
trend(x,t) is the same for all points, thus eliminating the need to allocate extra memory. This
may be convenient for GPU programming, where memory resources are limited. It will
also simplify the lazy narrow band algorithm, since when the contour is allowed to
expand and shrink at the same time, special caution may be needed at the joint area
between expanding and shrinking segments, so that the update will not run into a dead
loop and never go to sleep. Experience has shown that such unified period monotonic
level set method may give almost the same result as the method discussed above.
[0047] In the lazy narrow band algorithm, the changing of
trend(x,t) for all pixels is synchronized. In other words, the periods of different pixels are
synchronized. However, it is not always necessary to let the pixels that reach the
object border wait for distant pixels that have not stopped the propagating yet. A
non-synchronized version is also possible where the sleeping pixel enter the next
period when all neighbor pixels within an s unit wide neighborhood want to enter next
period, even if some points further away than s units are actively propagating in
the last period. Such "local periodic monotonic level set" behaves more similar to
the conventional level set method than the periodic monotonic level set method discussed
above.
[0048] Another variation is to replace the binary wiggling counter with a damping factor,
so that the velocity gradually slows down instead of suddenly stopping after wiggling
a certain number of times. This can be achieved, for example, by limiting the Δ
t to be less than
spl|
vt-max|, where
sp is the maximum step length within period
p, and
sp decreases linearly or exponentially from period to period, and
s0 ≤
1.0. The computation may stop after a number of periods that may be predetermined or user
selected and/or when
sp goes below a threshold that may be predetermined or user selected. The skilled person
can, without undue effort, find and select a suitable number of periods and/or threshold
in view of the particulars and practical circumstances in each case of application.
Another application scenario of level set based image processing is to reduce noise.
Prior art methods in this regard is e.g. the "total variation method" (see
Osher, S., and Fedkiw, R.P., "Level set methods and dynamic implicit surfaces", Springer,
2003) and "anisotropic diffusion filtering" (see
G. Gerig, O. Kubler, R. Kikinis, and F. A. Jolesz, "Nonlinear anisotropic filtering
of MRI data," Medical Imagine, IEEE Transactions on 11, 221-232, 2002). For noise reduction, the input image is taken as an initial level set function, while
the speed function is designed to reduce the high curvature (noise) at any level set,
unlike in segmentation cases where typically only the 0-level set is relevant. The
input image also serves as an external force to prevent the original information being
smoothed out over time
t. For example, referring to Eq. 1 above, if
C(x,t) is the local curvature of
Φt, D(x,t) can be, for example, defined as
Φt- I, and Φ
0=
I, where
I is the input image, so not only the curvature is minimized over time but also the
difference between the input and output image is minimized. Using the present method
for noise reduction is rather straightforward. The difference compared with the above
image segmentation procedure is just all the steps of determining
"trend", updating the level set function and forcing the elastic region to converge have
to be done on all the image points instead of points on a narrow band.
[0049] It should be noted that the speed function in Eq. 1 is merely one example and in
a form applicable to both image segmentation and noise reduction, however, the present
method is not limited to such speed function. Other speed functions, e.g. such found
in related literature, can be used to replace
vt in Eq. 2. Examples of various speed function that may be used with the present method
can i.a. be found in the earlier mentioned
Osher, S., and Fedkiw, R.P., "Level set methods and dynamic implicit surfaces", Springer
(2003), chapter 11-12.
[0050] Another detailed embodiment, in large parts corresponding to the one described above,
is described by pseudo-code in Figs. 3a-b. The pseudo-code provides a comprehensive
and efficient description that should be appreciated by the skilled person. Fig. 3a
shows the main pseudo-code program, while Figs. 3b-c show functions being called by
the main pseudo-code program. The pseudo-code will not be explained in any further
detail here as the code should be sufficiently clear to the skilled person, especially
if read in view of what was discussed above and in the present disclosure as a whole.
[0051] Fig. 4a is a block diagram schematically showing a level set based image processing
method according to one embodiment of the present solution. In steps 100, 200 and
300, input image data, level set function Φ and speed function
vt are provided. These steps may correspond to what is performed first also in a conventional
level set based image processing method. The input image data is typically being input,
e.g. read from an image file, e.g. by user interaction, but in case the method is
part of an integrated system, it may e.g. be generated from an image acquired through
image capturing means. The level set function Φ and the speed function
vt are typically predefined or predetermined according to the type of image processing
to be performed, but it is also e.g. possible with one or both of the these functions
being input, e.g. through user selection or similar. In connection with step 200,
or at least before the level set function is updated, the level set function is initialized,
e.g. calculated to initial values or set to predetermined or user input based values.
[0052] In step 400 a propagation trend is determined for image points of the level set function.
This trend may e.g. involve all image points of the image input data, or subset where
the level set function is defined, e.g. in a narrow band. The
trend(x,t) discussed previously is one example of a propagation direction trend. The propagation
direction trend may comprise information on propagation direction trend for individual
image points and is preferably provided in the form of a propagation direction trend
map where each image point relevant for the propagation direction trend, typically
is represented by a value indicating the propagation direction trend for that image
point. In some embodiments the propagation direction trend may initially be determined
through user input or initially be predetermined. Often a user can determine a starting
position that is beneficial, whereby initial calculations can be avoided. The user
input can e.g. involve that a user indicates a seed point/region that for sure is
inside or outside an object to be segmented, whereby the initial trend is in an outward
(expanding) or inward (shrinking) direction. In case of segmentation the initial trend
can e.g. be predetermined inward if for example always starting at the edges of an
image. The propagation direction trend may be determined by calculation based on values
of the speed function. This may be the case also initially, or only after the propagation
direction trend has been determined initially. In some embodiments the propagation
direction trend is calculated using the sign of speed determined by the speed function,
which e.g. was the case in the detailed embodiment discussed above and also in the
embodiment according to the pseudo-code. The propagation direction trend of a respective
image point may be calculated based on values of the speed function in the respective
image point and/or in a local neighborhood thereof. In the latter case the propagation
direction trend of respective image point may be calculated based on a sum of speed
function values in a local neighborhood thereof, e.g. as was the case in the pseudo-code
embodiment discussed in the foregoing. The direction may be derived from the sign
of the resulting speed. By local neighborhood of an image point is typically meant
all image points within a determined distance from said image point. This may involve
points within a 1-point radius up to every point of the level set function. In the
latter case there will be a unified propagation direction trend. In some embodiments
the propagation direction trend may be unified. That is, the propagation direction
trend will be the same within a period for all image points of the level set function.
In some embodiments the propagation direction trend may be unified only locally, in
neighborhoods of image points. In cases unified propagation direction trend, one and
the same variable may be used to store the propagation direction trend for each unified
grouping. The propagation direction trend may provide information whether propagation
direction trend is in the trend direction or not, e.g. the propagation direction trend
may be binary represented, for example by 1 or -1 as was the case in the initially
discussed embodiment.
[0053] In step 500, the level set function is updated for non converged image points while
excluding from updating image points with speed not in trend direction. The updating,
when taking part, may be no different from updating of the level set function in conventional
methods, that is, involves updating using the speed function etc. In some embodiments,
the level set function may be updated also for converged points, and there may be
embodiments without exclusion (in some or all of subsequent iterations) in the updating
of image point with speed not in the propagation trend direction. For example, in
some embodiments the level set function is updated using the speed function and the
propagation direction trend, so that the speed function is excluded from contributing
in the updating of the level set function in image points where the speed of the speed
function is not in trend direction according to the propagation direction trend. One
example of this is the function
w(vt) described in Eq. 1, and an advantage is that the previously explained wiggling problem
can be avoided. However, it is typically more efficient, similar as in the embodiment
of Fig. 4a, to accomplish this simply by excluding from the updating image points
considered to have converged and/or image points with speed that is not in trend direction
according to the propagation direction trend. An additional advantage with this is
that also the number of computations can be reduced, further speeding up the method.
How to determine whether speed is in a trend direction according to the propagation
direction trend or not, can be accomplished in a number of ways as realized by the
skilled person. One efficient solution has been shown in the foregoing (see the first
discussed embodiment), where the trend direction were represented by -1 or 1 at each
image point, in turn representing the two possible directions (e.g. expanding or shrinking
trend). The trend may then be multiplied with the speed function value and since the
sign of the speed function determines the direction, result >0 means that the speed
is in the trend direction and the level set function is updated using the speed function
for such image point, and if the result is <= 0, the level set function is not updated.
Another option is shown in the pseudo-code embodiment where the propagation direction
trend is stored as a sign which then simply can be compared to the sign of the speed
function. In the previous embodiments discussed, image point not having a speed in
the trend direction was set to status
sleep. In some embodiments, in a step 500 corresponding to the one in Fig. 4a, the level
set function of an image point that would be excluded according to the previously
discussed criterion is still updated using the speed function if such image point
is located in a local neighborhood of an image point that was updated. In the previously
discussed embodiments, such image points were said to be wake up, and set to
active (again) after temporal
sleep.
[0054] Still referring to Fig. 4a, in a step 520, it is checked whether a propagation criterion
is fulfilled or not. If not, the level set function is continued to be updated in
line with was described above in connection with step 500.
[0055] The propagation criterion may e.g. be based on how many image points are being excluded
in the previous step 500 and/or based on the number of iterations that has been performed.
For example, in the pseudo-code example, the propagation criterion was that all image
points should have
sleep-status or
stopped-status. When the propagation criterion is fulfilled, this means that one update period
has ended and next step is 600.
[0056] In step 600 it is checked if a level set function convergence criterion is met. If
it is met, this means that the level set function as a whole is considered to have
converged. If not fulfilled, a new update period starts by (re)determining the propagation
direction trend in step 400, and step 500 is again performed, similarly as already
discussed but now in the new period and using the new determined propagation direction
trend. In some embodiments there may be only one period. The updating in the new period
may focus on non-converged image points, by excluding in a step 620 image points considered
to have converged. The image points may be considered to have converged when fulfilling
an image point convergence criterion. In other embodiments no such exclusion is made,
and only level set function convergence is checked. However, it may be efficient to
exclude individual image points considered to have converged since further calculations
in such image points typically is unnecessary. The image point convergence criterion
may be considered fulfilled when the level set function has changed less than a convergence
threshold value (typically small) during a number of previous update periods. Each
update period ends when the propagation criterion is fulfilled. The convergence threshold
value can be determined and tuned by the skilled person depending on the situation
where the method is to be applied. Also the number of previous update periods can
be determined and tuned by the skilled person depending on the situation where the
method is to be applied; however, typically the number of previous update periods
may be about 5-15. In the previously discussed embodiments, the so called wiggling
counter has been used for checking whether the image point convergence criterion is
considered fulfilled. For example, in the pseudo-code embodiment, if ΔΦ is less than
a convergence threshold value ε, the wiggling counter is increased by one, else set
to zero. When the wiggling counter reach above a number n, corresponding to the number
of previous update periods where the level set function has changed less than a convergence
threshold value, the level set function in the corresponding image point is considered
to have converged. The level set function of image points fulfilling the image point
convergence criterion may be set to a value based on recent level set function values,
such as an average of a present and a preceding level set function value. In the pseudo-code
embodiment, this is accomplished by setting the level set function value to an average
between the present and the directly preceding value.
[0057] The level set function may be thus be updated as described above in an iterative
manner by the steps indicated by reference numeral 900 in Fig. 4, until the level
set function convergence criterion is fulfilled. The level set function convergence
criterion may be based on how many, preferably that substantially all, image points
of the level set function are fulfilling the image point convergence criterion. In
the pseudo-code embodiment, the while-do loop in the main program corresponds to the
level set function convergence criterion; the loop continues until all points are
stationary (stationary points corresponds to such considered to have converged, that
is, such fulfilling the image point convergence criterion).
[0058] When the level set function convergence criterion is fulfilled, the level set function
is considered to have converged and the resulting level set function values are being
used in a step 700 to provide output image data. Exactly how this is accomplished
may differ depending on what kind of image processing the present method is being
used for. In general, step 700 may be in accordance with handling of converged level
set function values when a conventional method would be used. As should be recognized
by the skilled person, the present method mainly concerns what is being carried out
between input and output steps, for example, with reference to Fig. 4a, the present
method mainly concerns steps corresponding to those indicated by 900 in Fig. 4a, rather
than the preceding and subsequent steps. Fig. 4b is a block diagram schematically
showing a conventional level set based image processing method for comparison with
the embodiment shown in Fig. 4a. Steps in Fig. 4b that corresponds at least partly
to steps in Fig. 4a are: 10 and 100, 20 and 200, 30 and 300, 40 and 400, 60 and 600
and 70 and 700. Basically the inputs and the outputs may be the same, that is the
difference is rather in the kernel part, that is, blocks inside the braces numbered
90 and 900 in Figs.4a-b. However, as has been previously indicated, also the kernel
part is based and thus has many similarities with the conventional method, e.g. how
the level set function is updated using the speed function (inside steps 60 and 600),
although when and where this is to be done differs. It can be understood that the
present method can be viewed upon as being based on a conventional method in general,
adding features to it.
[0059] In general, in embodiments where the method is an image segmentation method, the
output digital image data represents a boundary of an object in the image represented
by the input digital image data and the level set function is preferably being updated
only in a narrow band comprising the 0-level, such as in conventional narrow-band
approaches. In embodiments, in particular such where the present method is used with
a narrow-band approach, the step of updating the level set function, such as described
above in connection with step 500 of Fig. 4a, may further comprise detecting new image
points added to the narrow band and updating the propagation direction trend in regard
of the new points, and inheriting the one or more trend directions associated with
the new image points from neighboring image points. The neighboring image points being
such updated by the level set function and thereby caused the new image points to
be added to the narrow band. In other embodiments, also in particular such where the
present method is used with a narrow-band approach, the propagation criterion, such
as described above in connection with step 520 of Fig. 4a, is considered fulfilled
when new image points has been added to the narrow band through updating of the level
set function, such as in step 500 of Fig. 4a. By the above discussed variants, there
will be (re)determination, i.e. an update, of the propagation direction trend so that
any new point added to the narrow band will be ensured to get a trend direction of
the propagation direction trend associated with it. Thereafter the level set function
can be updated in the new points using the propagation direction trend, such as in
step 500 of Fig. 4a. It can be understood that such handling may not be needed, even
in a narrow band approach, if the propagation direction trend already has been determined
for image points outside the narrow band.
[0060] In general, in embodiments where the method is an image noise reduction method, the
output digital image data represents a smoothed, noise reduced, image of the image
represented by the input digital image data.
[0061] One advantage with level-set based image segmentation methods in general is the ability
to prevent leaking to nearby objects via small gaps with the curvature force. However
in some cases, when two objects of similar intensity attach to each other, the gap
on the object border can be rather big. See example in Fig. 5a where a rectangle is
attached to a circle. Conventional level-set methods typically fail to distinguish
them no matter how the curvature factors are set. In
M. E. Leventon, W. E. Grimson, and O. Faugeras, "Statistical shape influence in geodesic
active contours," in Computer Vision and Pattern Recognition, 2000. Proceedings. IEEE
Conference on, vol. 1, pp. 316-323, 2002, this issue was solved by using a statistical shape model to constrain the level set
evolving. The statistical shape model, a so-called shape prior, is represented by
the mean of several known binary shapes (
u), and their principle components' variation (
a). In each iteration of the level set evolution, a transformed shape (
u*|
a, p;
p is the rigid transform parameters of transferring, rotating and scaling), that best
fit the current object is computed via a maximum a posteriori probability (MAP) estimate,
and the level set evolving is punished if the contour is too far away from
u*. Figs. 5a-d gives an illustrative example. Two objects, a rectangle and a circle
form a shape 3, however, it is desirable to be able to segment out the rectangle,
utilizing some prior knowledge of its shape. In Fig. 5b an initial level set function
seed region 4 and a shape prior 5 is shown. In Fig. 5c, the situation is shown after
a number of iterations, and in Fig. 5d, the final result, where the level set function
4 has been made to converge very close to the actual border of the rectangle by using
the shape prior 5.
[0062] Many variations of level-set based image segmentation methods that are shape-based
have been proposed, such as
Y. Chen et al., "Using prior shapes in geometric active contours in a variational
framework," International Journal of Computer Vision, vol. 50, no. 3, pp. 315-328,
2002, and
A. Tsai et al., "A shape-based approach to the segmentation of medical imagery using
level sets," IEEE Transactions on Medical Imaging, vol. 22, no. 2, pp. 137-154, 2003. Although they employ different shape prior generating methods, different rigid shape
registration (fitting/transforming) approach and different shape-prior-guided speed
function, their general workflows are the same.
[0063] Fig. 6a is a block diagram schematically showing a conventional level set based image
processing method, as was shown in Fig. 4b, modified into a shaped-based level set
based method, illustrating the general workflow. In the following only differences
following from the modification will be discussed. Hence, the general principle is
that shape prior is provided (in step 35). The shape prior is used in a step 45 together
with the input image data and the level set function to compute a transformed shape.
The transformed shape is, via the speed function, used in updating of the level set
method in step 50.
[0064] One problem with the shape-based image segmentation is that it is slow in general,
this since the shape registration steps are performed in each iteration. Even in a
narrow-band approach, where the matching is only done for the image points that are
in the narrow band, the performance is not satisfactory with 3D medical data. However,
the present method, as discussed in the foregoing, can be advantageously used as a
shape-based level-set based image segmentation method and combining the shape model
into the method is straightforward. As the present method converges much faster than
the conventional level set, it increases speed even without optimization. Hence, the
general principle is that a shape prior is provided (in step 35) and used in a step
45 together with the input image data and the level set function to compute a transformed
shape. The transformed shape is then, via the speed function, used in updating of
the level set method in step 50.
[0065] Fig. 6b is a is a block diagram schematically showing a shape-based level set based
image segmentation method according to one embodiment of the present solution. The
shown embodiment is based on the embodiment shown in Fig. 4a, modified to be shape
based. For convenience, the following will focus only on the differing parts. (It
can be noted that the modification to make the method shaped based resembles the modification
discussed above in connection with Fig. 6a.) In a step 350 a shape prior is provided,
which is used in a step 450 together with the input image data and the level set function
to compute a transformed shape. The transformed shape is, via the speed function,
used in updating of the level set method in step 500.
[0066] In context of the present method, shape-based segmentation may be further optimized.
In the conventional shape-based image segmentation methods, all points on the narrow
band are used for image registration, i.e. computing the transformed shape, and has
to be repeated in every iteration, see e.g. the loop in the workflow shown in Fig.
6a. However, the method according to the present disclosure allows, through the propagation
direction trend, detection of early converged points when they reach the boundary
(when their speed is no longer in the trend direction). Hence, the transformed shape
may be computed for image points having speed that is not in the trend direction and
can be skipped for the other. It not only reduces the computation by excluding actively
changing points, but also increases the stability of the registration as the active
part of the contour will continue to change in the next iteration.
[0067] Additional speed-up may be accomplished by taking a decision to start computing the
transformed shape based on whether there has been any change, or a substantial change,
in the speed of image points in relation to the trend direction compared to a previous
iteration of step 500. For example, only when there is at least a 10% change. As can
be expected, in the beginning, computations will be started very often, but the frequency
decreases as more and more points converge. This is in accordance with the fact that
the shape is almost perfectly registered near the end of the segmentation.
[0068] Refer now to Figure 7. The method according to embodiments herein as described above
may be implemented by a computer program product, loadable into the internal memory
of a computer, comprising software for executing steps of the method. For example
may the computer program product be executable file 1003 stored on a hard drive or
other storage means 1004 for example of a server, and may be retrievable therefrom
via a network 1005, such as the Internet, and downloaded to a computer 1006 which
may be the computer for the execution, or an intermediate computer for intermediate
storage and further distribution. The computer program product may also be stored
on a memory stick 1001 or a disc 1002, such as CD or DVD, just to mention some examples.
The memory stick 1001 and the disc 1002 are also examples of a computer readable medium,
which have a program recorded thereon, where the program is arranged to make the computer
execute steps of the method according to embodiments herein as discussed in the foregoing.
[0069] Figure 8 schematically depicts a computer 1101 and a medical imaging system 1102,
such as Magnetic Resonance (MR) imaging system or a Computerized Tomography (CT) imaging
system. As should be recognized, the method according to embodiments herein may be
implemented e.g. by configuring the computer 1101 to carry out the steps of the method.
The implementation may involve a computer program, such as discussed above, loadable
into the internal memory of the computer, the computer program comprising software
for controlling the steps of the method when the program is run on the computer. The
computer program may be recorded on a computer readable medium. The computer 1101
may be part of, such as integrated in, the medical imaging system 1102.
[0070] Any illustration and description in the drawings and in the foregoing description
are to be considered exemplary and not restrictive. The invention is not limited to
the disclosed embodiments. For example, further examples of speed functions can be
found in the prior art and speed functions from conventional level-set based image
processing methods may be used with the present invention.
[0071] The present invention is defined by the claims and variations to the disclosed embodiments
can be understood and effected by the person skilled in the art in practicing the
claimed invention, for example by studying the drawings, the disclosure, and the claims.
Use of the word "comprising" in the claims does not exclude other elements or steps,
and use of the article "a" or "an" does not exclude a plurality. Occurrence of features
in different dependent claims does not per se exclude a combination of these features.
Any method claim is not to be construed as limited merely because of the presentational
order of the steps. Any possible combination between independent steps of any method
claim shall be construed as being within scope, although the independent steps are,
and by necessity has to be, occurring in some order. Any limitation in regard of step
order should only follow from what may be required owing to feature dependencies between
the steps. Any reference signs in the claims are for increasing intelligibility and
shall not be construed as limiting the scope of the claims.
1. A method of processing input digital image data representing an image into output
digital image data, comprising the following steps:
providing (100) input image data;
providing and initializing (200) a level set function representation for approximating
the output digital image data;
providing (300) a speed function;
determining (400) a propagation direction trend map relating to image points of the
level set function, said map comprising one or more trend directions associated with
said image points so that each one of said image points has an associated trend direction;
updating (500, 520) the level set function using the speed function and the propagation
direction trend map, so that the speed function is excluded from contributing in the
updating of the level set function in image points for which the speed of the speed
function is not in the associated trend direction; and
providing (700) the output digital image data image based on the level set function.
2. The method as claimed in claim 1, wherein the step of updating the level set function
is repeated at least once.
3. The method as claimed in any one of claims 1-2, wherein the step of updating the level
set function is repeated until a propagation criterion is fulfilled.
4. The method as claimed in any one of claims 1-3, wherein the propagation direction
trend map is at least initially determined through user input or is at least initially
predetermined.
5. The method as claimed in any one of claims 1-4, wherein the one or more trend directions
of the propagation direction trend map are calculated based on values of the speed
function in associated image points and/or in a local neighborhood thereof.
6. The method as claimed in any one of claims 1-5, wherein the method further comprises
the step of:
repeating (600, 620) the step of determining the propagation direction trend map and
the step of updating the level set function at least once.
7. The method as claimed in claim 6, wherein the step of repeating the steps of determining
the propagation direction trend map and the step of updating the level set function
is repeated at least once or until a level set function convergence criterion is fulfilled.
8. The method as claimed in any one of claims 1-7, wherein the method of processing input
digital image data representing an image into output digital image data is an image
segmentation method, wherein the output digital image data represents a boundary of
an object in the image represented by the input digital image data.
9. The method as claimed in claim 8, wherein the level set function is being updated
only in a subset of image points, such as in a in a narrow band, comprising the 0-level.
10. The method as claimed in any one of claims 8-9, further comprising a step of providing
(350) a shape prior; and wherein the step of updating the level set function further
comprises computing (450) a transformed shape based on the shape prior and using the
transformed shape in the updating of the level set function.
11. The method as claimed in claim 10, wherein in the step of updating the level set function,
a decision to start computing the transformed shape is based on whether there has
been any change, or any substantial change, in the speed of image points in relation
to their associated trend directions, compared to a previous iteration.
12. The method as claimed in any one of claims 1-11, wherein the method of processing
input digital image data representing an image into output digital image data is an
image noise reduction method, wherein the output digital image data represents a smoothed,
noise reduced, image of the image represented by the input digital image data.
13. A computer program product (1003), loadable into the internal memory of a computer
(1006), comprising software for executing the steps of any one of the preceding claims
when said computer program product is run on the computer.
14. A computer (1101) configured to execute the steps of any one of claims 1-12.
15. A device for processing input digital image data representing an image into output
digital image data, wherein the device is configured to provide input image data,
provide and initialize a level set function representation for approximating the output
digital image data,
provide a speed function,
determine a propagation direction trend map relating to image points of the level
set function, said map comprising one or more trend directions associated with said
image points so that each one of said image points has an associated trend direction,
update the level set function using the speed function and the propagation direction
trend map, so that the speed function is excluded from contributing
in the updating of the level set function in image points for which the speed of the
speed function is not in the associated trend direction, and
provide the output digital image data image based on the level set function.
1. Verfahren zum Verarbeiten von digitalen Eingangsbilddaten, die ein Bild repräsentieren,
in digitale Ausgangsbilddaten, das die folgenden Schritte umfasst:
Bereitstellen (100) von Eingangsbilddaten;
Bereitstellen und Initialisieren (200) einer Pegeleinstellfunktionsdarstellung, um
die digitalen Ausgangsbilddaten zu approximieren;
Bereitstellen (300) einer Geschwindigkeitsfunktion;
Bestimmen (400) einer Ausbreitungsrichtungstrendkarte, die sich auf Bildpunkte der
Pegeleinstellfunktion bezieht, wobei die Karte eine oder mehrere Trendrichtungen umfasst,
die den Bildpunkten zugeordnet sind, so dass jeder der Bildpunkte eine zugeordnete
Trendrichtung hat;
Aktualisieren (500, 520) der Pegeleinstellfunktion unter Verwendung der Geschwindigkeitsfunktion
und der Ausbreitungsrichtungstrendkarte, so dass die Geschwindigkeitsfunktion davon
ausgeschlossen ist, zu dem Aktualisieren der Pegeleinstellfunktion in Bildpunkten,
für die die Geschwindigkeit der Geschwindigkeitsfunktion nicht in der zugeordneten
Trendrichtung ist, beizutragen; und
Bereitstellen (700) der digitalen Ausgangsbilddaten basierend auf der Pegeleinstellfunktxnn.
2. Verfahren nach Anspruch 1, wobei der Schritt des Aktualisierens der Pegeleinstellfunktion
mindestens ein Mal wiederholt wird.
3. Verfahren nach einem der Ansprüche 1-2, wobei der Schritt des Aktualisierens der Pegeleinstellfunktion
wiederholt wird, bis ein Ausbreitungskriterium erfüllt ist.
4. Verfahren nach einem der Ansprüche 1-3, wobei die Ausbreitungsrichtungstrendkarte
zumindest anfänglich durch eine Anwendereingabe definiert wird oder zumindest anfänglich
vorbestimmt ist.
5. Verfahren nach einem der Ansprüche 1-4, wobei die eine oder die mehreren Trendrichtungen
der Ausbreitungsrichtungstrendkarte basierend auf Werten der Geschwindigkeitsfunktion
in zugeordneten Bildpunkten und/oder in ihrer lokalen Nachbarschaft berechnet werden.
6. Verfahren nach einem der Ansprüche 1-5, wobei das Verfahren ferner den Schritt umfasst:
Wiederholen (600, 620) des Schrittes des Bestimmens der Ausbreitungsrichtungstrendkarte
und des Schrittes des Aktualisierens der Pegeleinstellfunktion mindestens ein Mal.
7. Verfahren nach Anspruch 6, wobei der Schritt des Wiederholens der Schritte des Bestimmens
der Ausbreitungsrichtungstrendkarte und der Schritt des Aktualisierens der Pegeleinstellfunktion
mindestens ein Mal oder bis ein Pegeleinstellfunktionskonvergenzkriterium erfüllt
ist, wiederholt werden.
8. Verfahren nach einem der Anspruche 1-7, wobei das Verfahren zum Verarbeiten der digitalen
Eingangsbilddaten, die ein Bild repräsentieren, in digitale Ausgangsbilddaten ein
Bildsegmentierungsverfahren ist, wobei die digitalen Ausgangsbilddaten eine Grenze
eines Objektes in dem durch die digitalen Eingangsbilddaten repräsentierten Bild repräsentieren.
9. Verfahren nach Anspruch 8, wobei die Pegeleinstellfunktion nur in einer Untergruppe
der Bildpunkte, wie etwa in einem schmalen Band, das den 0-Pegel umfasst, aktualisiert
wird.
10. Verfahren nach einem der Ansprüche 8-9, das ferner einen Schritt des Bereitstellens
(350) einer Vorform umfasst; und wobei der Schritt des Aktualisierens der Pegeleinstellfunktion
ferner umfasst, eine transformierte Form basierend auf der Vorform zu berechnen (450)
und die transformierte Form in der Aktualisierung der Pegeleinstellfunktion zu verwenden.
11. Verfahren nach Anspruch 10, wobei in dem Schritt des Aktualisierens der Pegeleinstellfunktion
eine Entscheidung, das Berechnen der transformierten Form zu starten, darauf beruht,
ob es verglichen mit einer vorherigen Iteration eine Änderung oder eine wesentliche
Änderung, in der Geschwindigkeit der Bildpunkte in Beziehung zu ihren zugeordneten
Trendrichtungen gibt.
12. Verfahren nach einem der Ansprüche 1-11, wobei das Verfahren zum Verarbeiten der digitalen
Eingangsbilddaten, die ein Bild repräsentieren, in digitale Ausgangsbilddaten ein
Bildrauschreduzierungsverfahren ist, wobei die digitalen Ausgangsbilddaten ein geglättetes,
rauschreduziertes Bild des durch die digitalen Eingangsbilddaten repräsentierten Bildes
repräsentieren.
13. Computerprogrammprodukt (1003), das in den internen Speicher eines Computers (1006)
ladbar ist und das Software umfasst, um die Schritte nach einem der vorhergehenden
Ansprüche auszuführen, wenn das Computerprogrammprodukt auf dem Computer läuft.
14. Computer (1101), der konfiguriert ist, die Schritte nach einem der Ansprüche 1-12
auszuführen.
15. Vorrichtung zum Verarbeiten von digitalen Eingangsbilddaten, die ein Bild repräsentieren,
in digitale Ausgangsbilddaten, wobei die Vorrichtung konfiguriert ist,
Eingangsbilddaten bereitzustellen,
eine Pegeleinstellfunktionsdarstellung zum Approximieren der digitalen Ausgangsbilddaten
bereitzustellen und zu initialisieren,
eine Geschwindigkeitsfunktion bereitzustellen,
eine Ausbreitungsrichtungstrendkarte, die sich auf die Bildpunkte der Pegeleinstellfunktion
bezieht, zu bestimmen, wobei die Karte eine oder mehrere Trendrichtungen umfasst,
die den Bildpunkten zugeordnet sind, so dass jeder der Bildpunkte eine zugeordnete
Trendrichtung hat,
die Pegeleinstellfunktion unter Verwendung der Geschwindigkeitsfunktion und der Ausbreitungsrichtungstrendkarte
zu aktualisieren, so dass die Geschwindigkeitsfunktion davon ausgeschlossen ist, zu
dem Aktualisieren der Pegeleinstellfunktion in Bildpunkten, für die die Geschwindigkeit
der Geschwindigkeitsfunktion nicht in der zugeordneten Trendrichtung ist, beizutragen,
und die digitalen Ausgangsbilddaten basierend auf der Pegeleinstellfunktion bereitzustellen.
1. Procédé de traitement de données d'image numérique d'entrée représentant une image
en données d'image numérique de sortie, comprenant les étapes suivantes :
fourniture (100) de données d'image d'entrée ;
fourniture et initialisation (200) d'une représentation de fonction de réglage de
niveau pour se rapprocher des données d'image numérique de sortie ;
fourniture (300) d'une fonction de vitesse ;
détermination (400) d'une carte des tendances de direction de propagation se rapportant
à des points d'image de la fonction de réglage de niveau, ladite carte comprenant
une ou plusieurs directions de tendance associées auxdits points d'image de sorte
que chacun desdits points d'image a une direction de tendance qui lui est associée
;
mise à jour (500, 520) de la fonction de réglage de niveau en utilisant la fonction
de vitesse et la carte des tendances de direction de propagation, de sorte que la
fonction de vitesse soit exclue de la contribution à la mise à jour de la fonction
de réglage de niveau dans des points d'image pour lesquels la vitesse de la fonction
de vitesse n'est pas dans la direction de tendance associée ; et
fourniture (700) de l'image de données d'image numérique de sortie basée sur la fonction
de réglage de niveau.
2. Procédé selon la revendication 1, dans lequel l'étape de mise à jour de la fonction
de réglage de niveau est répétée au moins une fois.
3. Procédé selon l'une quelconque des revendications 1 à 2, dans lequel l'étape de mise
à jour de la fonction de réglage de niveau est répétée jusqu'à ce qu'un critère de
propagation soit rempli.
4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la carte des
tendances de direction de propagation est au moins initialement déterminée par l'intermédiaire
d'une entrée utilisateur ou est au moins initialement prédéterminée.
5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel les une ou plusieurs
directions de tendance de la carte des tendances de direction de propagation sont
calculées en se basant sur des valeurs de la fonction de vitesse dans les points d'image
associés et/ou dans un voisinage local de ceux-ci.
6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel le procédé comprend
en outre les étapes de :
répétition (600, 620) de l'étape de détermination de la carte des tendances de direction
de propagation et de l'étape de mise à jour de la fonction de réglage de niveau au
moins une fois.
7. Procédé selon la revendication 6, dans lequel l'étape de répétition des étapes de
détermination de la carte des tendances de direction de propagation et de l'étape
de mise à jour de la fonction de réglage de niveau est répétée au moins une fois ou
jusqu'à ce qu'un critère de convergence de fonction de réglage de niveau soit rempli.
8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel le procédé de
traitement de données d'image numérique d'entrée représentant une image en données
d'image numérique de sortie est un procédé de segmentation d'image, dans lequel les
données d'image numérique de sortie représentent une limite d'un objet dans l'image
représentée par les données d'image numérique d'entrée.
9. Procédé selon la revendication 8, dans lequel la fonction de réglage de niveau est
mise à jour uniquement dans un sous-ensemble de points d'image, tel que dans une bande
étroite, comprenant le niveau 0.
10. Procédé selon l'une quelconque des revendications 8 à 9, comprenant en outre une étape
de fourniture (350) d'un a priori de forme ; et dans lequel l'étape de mise à jour
de la fonction de réglage de niveau comprend en outre le calcul (450) d'une forme
transformée en se basant sur l'a priori de forme et en utilisant la forme transformée
dans la mise à jour de la fonction de réglage de niveau.
11. Procédé selon la revendication 10, dans lequel dans l'étape de mise à jour de la fonction
de réglage de niveau, une décision de commencer le calcul de la forme transformée
est basée sur le fait qu'il y ait ou non un changement quelconque, ou un changement
important quelconque, dans la vitesse de points d'image en relation avec leurs directions
de tendance associées, comparées à une itération précédente.
12. Procédé selon l'une quelconque des revendications 1 à 11, dans lequel le procédé de
traitement de données d'image numérique d'entrée représentant une image en données
d'image numérique de sortie est un procédé de réduction de bruit d'une image, dans
lequel les données d'image numérique de sortie représentent une image dont le bruit
a été réduit et lissé de l'image représentée par les données d'image numérique d'entrée.
13. Produit de programme informatique (1003), pouvant être chargé dans la mémoire interne
d'un ordinateur (1006), comprenant un logiciel pour exécuter les étapes de l'une quelconque
des revendications précédentes lorsque ledit produit de programme informatique est
exécuté sur l'ordinateur.
14. Ordinateur (1101) configuré pour exécuter les étapes de l'une quelconque des revendications
1 à 12.
15. Dispositif de traitement de données d'image numérique d'entrée représentant une image
en données d'image numérique de sortie, dans lequel le dispositif est configuré pour
fournir les données d'image d'entrée,
fournir et initialiser une représentation de fonction de réglage de niveau pour se
rapprocher des données d'image numérique de sortie,
fournir une fonction de vitesse,
déterminer une carte des tendances de direction de propagation se rapportant à des
points d'image de la fonction de réglage de niveau, ladite carte comprenant une ou
plusieurs directions de tendance associées auxdits points d'image de sorte que chacun
desdits points d'image a une direction de tendance qui lui est associée,
mise à jour de la fonction de réglage de niveau en utilisant la fonction de vitesse
et la carte des tendances de direction de propagation, de sorte que la fonction de
vitesse est exclue de la contribution à la mise à jour de la fonction de réglage de
niveau dans des points d'image pour lesquels la vitesse de la fonction de vitesse
n'est pas dans la direction de tendance associée, et
fourniture de l'image de données d'image numérique de sortie basée sur la fonction
de réglage de niveau.