We turn now to the particular problem of ultrasound image segmentation. Compared with other medical imaging modalities (eg. CT and MRI) ultrasound is particularly difficult to segment since the quality of the images is relatively low. In particular, organ boundaries are not always prominent -- see Figure 2. Fully automatic techniques for ultrasound image segmentation are not likely to be robust. Instead we make sensible use of operator assistance, through snakes, to produce fast and reliable segmentations with the minimal amount of manual intervention.
Figure 2: Organ boundaries in ultrasound images. The gall blagger
(a) is a fluid filled cavity which is fairly difficult to segment.
Note how the boundary is not characterised by a high gradient
everywhere: the boundary properties are not stationary. The kidney (b)
is even more challenging to segment since tissue-tissue boundaries are
relatively difficult to localise in ultrasound images.
To guide the snakes, we need to define potential functions based on image properties. In addition to the intensity gradient, which will be of limited use, it is reasonable to attempt some sort of texture segmentation [9, 13], though the noise properties of the ultrasound images suggest that looking at anything beyond second order grey level statistics is pointless. We therefore attempt segmentation based on two properties:
The texture segmentation is performed as follows. Given an initial
segmentation, we gather texture statistics from both sides of the
boundary and derive an optimal discriminator between inside and
outside (or equivalently, for open splines, left and right) -- see
Figure 3. We represent the texture statistics of a
patch centered on (x,y) as the vector
, where
is the mean of the intensities in the
patch and
is their variance. We then calculate the mean
of the x's sampled from the ``inside'' class
,
and also their covariance matrix
. Likewise, we calculate
the corresponding quantities
and
for
samples taken from the ``outside'' class
. Assuming the
class-conditional density functions
are
independent normal distributions, the optimal discriminator
is [2]:
where
Since the texture statistics are generally not
stationary around the boundary, we compute
,
,
and
locally for each of the spline
segments
.
Figure 3: Texture classification. A texture classifier is trained
for each spline segment by sampling the mean and variance of
patches within the search window and finding the optimal
discriminant between ``in'' and ``out'' patches.
We can now define potential functions for both intensity and
texture-based segmentation. The potential functions are calculated
along each of the B-spline snake's search lines and local minima
provide the target points
:
where
is a unit vector along the search line. It is
not immediately apparent which potential function will perform best,
and indeed this will vary for different images, or even at different
portions of the boundary in a single image. We therefore propose to
use a linear combination of the two, with on-the-fly training to
adaptively select the appropriate weights.