Subsections


Segmentation

Speckle is the most characteristic feature of SAR imagery, and the removal of speckle is an important step in the automatic interpretation of SAR images. Many techniques have been proposed for reducing the level of speckle. These include simple averaging and applying standard filters. However, these methods tend to blur edges and other small features, reducing the sharpness of the detail, and hence the usefulness of the processed image.

The algorithms provided in InfoPACK use the known statistical properties of SAR data derived from a theoretical analysis of the image formation process. By using a physically correct model they are able to preserve the detail and resolution of the original image while producing a smooth, real-valued output.

All the speckle-reduction algorithms in InfoPACK work in a similar way: they solve an optimisation problem to find the best fit of a given model to the image data. They differ in the kind of model which is fitted, or the kind of data (single or multi-dimensional images) accepted.

The most common need is not only to remove speckle; it is to remove it in order to split the image into homogeneous regions (segmentation) or classes (classification).

Segmentation yields a number of regions consistent with the statistical uncertainty, the constraint and the data model. Classification is a much simplified representation in terms of useful categories, such as field with crop. Segmentation can thus provide a wealth of information about how the measured parameter varies within a single class.

Here we describe how to use the main segmentation facilities provided.

The segment routine

The routine segment segments a single intensity, amplitude or complex image; or a complex polarised image; or a sequence (eg a multitemporal set) of images. Ideally a segmentation algorithm would divide up an image into regions, each of which represented a feature of interest (a wood, town or field, for example). In practice, they respond to qualities in the image, such as variations in intensity or texture, which may or may not correspond with your areas of interest.

The segment segmentation algorithm produces cartoon images: it looks for regions of constant underlying RCS (allowing for speckle) and produces an output image in which each region in the resulting segmentation is coloured with the mean of the data values in that region (or determinent values in the case of polarimetric images).

Although the data values in a cartoon form a discrete set, a segmentation is not the same as a classification: the number of regions may be in the thousands, but these regions could normally be classified into a small number of categories.

The segment algorithm accepts one or more images; multiple images are used together to produce a jointly optimal set of segments. The algorithm starts with a rectangular segmentation of the image(s). The initial size of the rectangles is determined by the user (setting the average region size in pixels).

Pixels located at the edges of regions are transferred from one to another. The likelihood that the image data fits a given segmentation can be calculated, so it is possible to judge whether the transfer of a pixel improves the segmentation. The calculation also takes into account the straightness of the region boundaries: the amount of crinkle allowed is set by the user.

This process of transferring pixels is governed by simulated annealing, and it will eventually find the global optimal solution for the segmentation of the image into a specified number of regions. An optional post-processing stage is available (routine merge) which merges regions which are statistically similar.

Full Python script and function syntaxes are given in section A.4.1.

An Example Segmentation

Figure 4.1: Simulated 3-look SAR data.
\includegraphics[width=0.6\textwidth]{figures/using/simdata.ps}

Figure 4.1 shows a simulated 3-look SAR image (this image is included with the InfoPACK distribution in the images directory). An important issue with applying segmentation is the selection of operating parameters. There are three main ones that control the process.

  1. The shape parameter attaches a penalty to excessive curvature in the reconstruction. Large values of the parameter allow many changes of direction of the edge. Small values bias the reconstruction towards smoother edges. Since speckle yields very crinkled edges to regions of similar intensity it is important to adopt a large enough curvature penalty, i.e. a small enough shape parameter.

  2. The optimisation method has two further parameters attached. The first is the stopping parameter to assess when the reconstruction is complete. For noisier data one would expect to need this parameter to be increased. Smoother data, such as that encountered on averaging speckle (eg via multi-looking), should allow a reduced value of the stopping parameter.

  3. The second parameter in the annealing method is the cooling parameter which controls the rate at which the optimisation converges on the final solution. If this is made too large the solution may freeze out away from the optimal result.

The shape parameter is most fundamentally related to the quality of the reconstruction, since it controls the smoothness of the segment boundaries, which affects the detail that can be retained in the reconstruction in the presence of speckle noise. This parameter is the one that has the most direct relationship with the properties of the original image. An image with considerable small-scale structure generally requires a large value of the shape parameter whereas a scene with little structure is best suited to a small value. In Figures 4.2 to 4.4 we illustrate the effect of the shape parameter on the result of segmenting Figure 4.1

Figure 4.2: Segmentation with large shape parameter.
\includegraphics[width=0.6\textwidth]{figures/using/simseg1.ps}

Figure 4.3: Segmentation with default shape parameter.
\includegraphics[width=0.6\textwidth]{figures/using/simseg01.ps}

Figure 4.4: Segmentation with small shape parameter.
\includegraphics[width=0.6\textwidth]{figures/using/simseg001.ps}

From Figure 4.2 we observe that small details of scene structure are visible with a larger parameter value. However, there are also a number of small flecks in the reconstruction that are associated with speckle noise. This is known because the simulated images had uniform RCS within the segments. Thus this parameter value is too high. The result for the default shape parameter value in 4.3 has lost detail, such as the weak dashed lines visible in places in (a), but has also lost the spurious spots. As the value decreases, the reconstruction becomes progressively smoother with more detail averaged out. It is apparent that a value around the default value is probably ``best'' for this segmentation.

The other two parameters relate to the optimisation process and are less obviously related to the quality of the output. In fact the stopping parameter has little impact on the quality or speed of reconstruction, provided that the default values are used. The cooling parameter has comparatively little effect on the quality of the reconstruction but has a considerable impact on execution time.

For convenience, three predefined parameter sets are provided with segment: fast provides for a quick look at the segmentation; default is recommended for normal running; and sensitive provides suitable settings when the interest lies in small features.


The merge routine

For each pair of neighbouring regions, merge calculates the probability that the two regions are taken from the same underlying cross-section. If this exceeds the user specified probability threshold then the two regions are merged. This is repeated until there are no more regions suitable for merging.

From the original image and a region map of this image, merge will join any adjacent regions where the intensity does not significantly differ. The final number of regions can be controlled by:

Figure 4.5 shows the result of merging the segmented image of figure 4.2. The less significant edges have been removed from the original cartoon image. Whilst the edges in the results produced by segment can, in theory, be of any statistical significance, merge provides a method to ensure that only highly significant edges remain.
Figure 4.5: Merging the result from Figure 4.2.
\includegraphics[width=0.6\textwidth]{figures/using/merge_image1.ps}

The merge routine can process layered images. Full Python script and function syntaxes are given in section A.4.3.


The texseg routine

Texture segmentation involves partitioning of an image into regions, each of which contains a single texture distinct from its neighbors. It works in an analogous fashion to segment, the difference being that instead of segmenting upon the measure of regional mean intensity, texseg segments upon the Blacknell-Tough measure:

\begin{displaymath}\overline{I\log(I)}/\overline{I} - \log(\overline{I}) \end{displaymath}

where $I$ denotes the intensity image values. This measure accounts for variation of texture within the image. Since the measure is unreliable with small sample sizes and because the user should be looking to identify reasonably large regions with homogeneous texture, texseg starts with a default segmentation of regions of approximately 200 pixels in size. This value is user settable.

Figure 4.6 shows the an example result of using texseg. Note that the routine has clearly differentiated between areas of virgin rain forest and clearings. This distinction would have been far less unclear from using the segment routine. Note that the output images are also coloured according to the Blacknell-Tough measure.

Joint segmentation is performed when there is more than one image layer. Full Python script and function syntaxes are given in section A.4.2.

Figure 4.6: (a) SAR image of rain forest. (b) Segmentation using texseg.
\includegraphics[width=2.8in,height=2.8in]{figures/using/texseg_image1.ps} \includegraphics[width=2.8in,height=2.8in]{figures/using/texseg_image2.ps} Figure 4.6(a) Figure 4.6(b)


The colseg routine

colseg is a routine that will process a segmented image to colour regions according to one of a number of measures. This is useful, both visually and for further processing purposes, since it allows variation in the scene to be highlighted according to different properties.

Figure 4.7 shows the result of colouring the segmentation of figure 4.6 by two different methods.

The colseg algorithm can be performed upon images with more than one image layer. Full Python script and function syntaxes are given in section A.4.4.

Figure 4.7: Result of running colseg on the image of Figure 4.6(b) with (a) colouring by mean intensity. Note that the difference between clearing and virgin rain forest is much less pronounced than when the regions are coloured using the Blacknell-Tough measure as in Figure 4.6(b). (b) colouring by regional Gamma order parameter.
\includegraphics[width=2.8in,height=2.8in]{figures/using/colseg_image1.ps} \includegraphics[width=2.8in,height=2.8in]{figures/using/colseg_image2.ps} Figure 4.7(a) Figure 4.7(b)

InfoSAR Ltd