CHDET

Change detection


EnvironmentsPYTHON :: EASI :: MODELER
Batch ModeYes
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Algorithm :: References :: Related

Back to top

Description


CHDET detects changes in SAR imagery. Given two registered amplitude or intensity SAR images, CHDET calculates a difference image, removes the speckle noise, and generates bitmap overlays that display changes greater than a specified threshold and number of pixels.
Back to top

Parameters


Name Type Length Value range
InputA: Input Layer A * Raster port 1 -    
InputB: Input Layer B * Raster port 1 -    
Output A-B Difference Layer: Output difference image layer or channel * Raster port 1 - 1  
OutputPos: Output positive threshold bitmap * Bitmap port 1 -    
OutputNeg: Output negative threshold bitmap * Bitmap port 1 -    
Filter Type String 0 - 1 NONE, AVG, KUAN
Default: NONE
Positive Threshold Float 0 - 1 0.0 - 1000.0
Negative Threshold Float 0 - 1 -1000.0 - 0.0
Minimum Number of Neighbors Integer 0 - 1 0 - 4
Default: 0
Image Format String 0 - 1 Amplitude, Power
Default: Amplitude
Filter Size Integer 0 - 1 5, 7, 9, 11, 13, 15
Default: 5
Number of Looks Float 0 - 1 1 - 100
Default: 1
Data Type Float 0 - 3 8U, 16S, 16U, 32R
Default: 8U
Report String 0 - 192 See parameter description

* Required parameter
Back to top

Parameter descriptions

InputA: Input Layer A

Specifies the first of two input layers from which a (filtered) difference image is created.

InputB: Input Layer B

Specifies the second of two input layers from which a (filtered) difference image is created.

CHDET creates a difference image from the two input layers; pixels from the Layer A are divided by pixels from Layer B. The result is saved in the specified Output layer.

Output A-B Difference Layer: Output difference image layer or channel

Specifies the image channel or layer to which the (filtered) difference image is written.

OutputPos: Output positive threshold bitmap

Specifies the layers that contains the bitmap image showing the positive differences.

OutputNeg: Output negative threshold bitmap

Specifies the layers that contains the bitmap image showing the negative differences.

Filter Type

Specifies the type of filter being applied to the difference image.

Valid options include:

See the Details section for more information about the available filters.

Positive Threshold

Specifies the positive value, in decibels (dB), that is used in performing thresholding to detect positive changes. If the value of a pixel in the (filtered) difference image is greater than the specified Positive Threshold, the corresponding pixel in the output bitmap is set.

See the Details section for information about how to specify threshold values.

Negative Threshold

Specifies the negative value, in decibels (dB), that is used in performing thresholding to detect negative changes. If the value of a pixel in the (filtered) difference image is smaller than the specified Positive Threshold, the corresponding pixel in the output bitmap is set.

See the Details section for information about how to specify threshold values.

Minimum Number of Neighbors

Specifies the minimum number of neighboring pixels that a pixel in a change bitmap must have, in order to be preserved. Pixels having less than the specified minimum number of neighbors (pixels with value 1) are excluded from the positive and/or negative change bitmap. The specified value should be between 0 and 4.

Image Format

Specifies the format of the radar image.

Acceptable options include:

Filter Size

Specifies the size the square window used to filter the difference image.

Acceptable values are 5, 7, 9, 11, 13, and 15. The default value is 5, proving a square window of 5x5 pixels.

Number of Looks

Specifies the number of independent looks of the image. This parameter adapts the filter to the difference image.

Instead of 1, the default value of this parameter will be the file level metadata value for 'NumLooks' if this metadata exists.

Data Type

Specifies the data type for the output image file.

Acceptable values are:

Report

Specifies where to direct the generated report.

Available options are:

Back to top

Details

CHDET lets you visualize and analyze the difference between two radar images for monitoring changes in specific areas.

CHDET first calculates the ratio of the image channels from the database file and performs logarithmic scaling. The result is a difference image, in dB values. A positive value means that the first channel has a higher backscatter than the second channel; a negative value means the opposite. A zero value means that there is no difference. To discriminate between changes, two thresholds, also in db values, can be set for positive and negative values. When set, these result in new bitmap segments that can be used as overlays.

For a change detection operation, the input channels must be registered; otherwise, the difference image produces several errors. Also important for correct operation is the image format; for intensity or power images, select "POW". For amplitude images, select "AMP". The amplitude is the square root of the power. An example of an amplitude image is an ERS-1 PRI image.

SAR images contain a lot of speckle that can produce a noisy difference image. To correct this problem, select the AVG or KUAN filters. Both filters work on the resulting difference image, in dB values. The size of the filter window (kernel) is specified using the DIFLSZ (Filter Size) parameter, and must be square.

AVG selects average filtering and smoothes the noise in a rough manner. It shows the major differences between the two images and is comparable with the averaging filter FAV.

KUAN selects an extended Kuan minimum-mean-square-error filter, which smoothes the noise more accurately and gives a more complete view of the changes. The filter is comparable with the Kuan filter FKUAN, but contains a structure-detection stage and is adapted to the noise in the SAR difference images. Kuan needs an effective Number of Looks from the input SAR images. This parameter is used to adapt the filter to the difference image that is calculated from the SAR images.

The criteria for threshold values is the difference in a radar cross-section (the radar return). A SAR image is a reproduction of the radar cross-sections of the area imaged. Each pixel contains a radar cross-section value that is related to its position on the grid. A SAR difference image shows the differences of the radar cross-sections. The thresholds on the SAR difference image indicate the pixels that contain a radar cross-section that is larger than the threshold value. Because radar cross-sections are often presented in dB, this value is also the quantity for the thresholds. The indicated pixels represent the changes detected in the radar cross- section.

Because of SAR speckle noise, false detections are sometimes made. The probability that a detected change is false is related to the height of the threshold; a higher threshold causes a lower probability of a false alarm (E.J.M. Rignot and J.J. van Zyl provide more information about this relation). Filtering the speckle by applying the DIFILTER option also lowers the probability of a false alarm. Because misregistration errors can be interpreted as noise, they also increase the probability of a false alarm. The characteristics of misregistration noise are different from speckle noise. For more information, see the References section.

Radiometric (calibration) errors cause an offset in the difference image. When these errors occur, the thresholds must be lifted with the offset. A radiometric error can be tested by comparing the global averages, preferably in dB, of both SAR input images.

For example, in the ERS-1 PRI image used in Example 1 below, the unfiltered thresholds +6.35dB and -6.35dB cause a 5-percent probability of a false alarm. To lower this probability, use the DIFILTER="KUAN" option. If a radiometric error of +4dB is found by comparing the averages, the thresholds should be +10.35dB and -2.35dB.

The size, in pixels, of the changes in the bitmaps can be defined by MINNEIGH (Minimum Number of Neighbors). This parameter specifies the lowest number of neighboring pixels that a change pixel must have in order to be preserved. This operation is used when images are oversampled (the pixel size is smaller than the resolution), and can only be performed on bitmaps (if the Positive or Negative Thresholds, or both, are set). MINNEIGH is recommended as an extra stage after a Kuan filter is applied, but it can also be used if no filtering is performed. Because this operation after average filtering has minimal effect, it is not recommended.

Back to top

Algorithm

CHDET is a four-stage algorithm that performs the following:
  1. Ratioing the input images and logarithmic scaling (if two input channels are specified)
  2. Filtering (if set and two input channels are specified)
  3. Thresholding (if set)
  4. Neighbor search (if set)

Step 1 produces a difference image by using the following formulas:

r = P1/P2
C = A * log10(r)
where:

C is assigned the following special values if either P1 or P2 are zero:

if (P1 = 0 and P2 <> 0) C = log10(MINFLOAT)
if (P2 = 0 and P1 <> 0) C = log10(MAXFLOAT)
if (P2 = 0 and P1 = 0)  C = 0.0

MINFLOAT = Minimum Floating Point Value
MAXFLOAT = Maximum Floating Point Value

In step 2, an averaging spatial filter or an extended Kuan spatial filter can be selected.

The averaging spatial filter computes the mean values of the square filter window that surrounds each pixel. All pixels are filtered. Near the edges, the mean is computed from the available pixels, including the pixels just outside the input window. Edges are duplicated if not enough data is available. The result is a fully blurred image that gives an overview of the major changes. The blurring is dependent on the size of the filter window (see FAV).

The extended Kuan minimum-mean-square-error (MMSE) filter contains a structure-detection stage and a Kuan-MMSE filter stage. The structure-detection stage searches for structures in a square window that surrounds each pixel. The structures are edges, lines (both in four directions), and point targets. If no structure is found, the area in the square window is homogenous. Depending on the detected structure, the following actions are taken:

The first three actions preserve the structures and still filters them (instead of blurring). A more accurate view of the changes is provided, while errors caused by noise are largely reduced.

Because of the operations at stage 1, the Kuan-MMSE filter equation differs from the equation for signal-dependent noise, as in non-ratioed SAR images. The difference is the computation of the weight (see FKUAN).

The filter equation is:

R = C*W + I*(1-W)
where:
  • R: the resulting (filtered) difference pixel
  • C: the central difference pixel in the filter window
  • I: the mean of all difference pixels in the filter window
  • W: weight, computed as 1 - VARn/VARi
  • VARi: the variance of all difference pixels in the filter window
  • VARn: the noise variance in the difference image, computed from NLOOK

As with the averaging filter, edges are duplicated if necessary.

Step 3 sets every bit in the bitmap to 1 if the corresponding pixel value is larger (or smaller) than the threshold value (POSTHRES and/or NEGTHRES).

Step 4 searches for neighbors. For each pixel set to 1 in the change bitmaps, the neighbor-search algorithm counts the number of neighbor-pixels that are set to 1 in the 3 x 3 window that surrounds this pixel. If the number of set neighbor-pixels is less than MINNEIGH, the central pixel is set to 0. The algorithm is iterative and stops when all pixels meet this criteria (no more pixels are cleared). All preserved changes consist of at least MINNEIGH+1 joined pixels with a value of 1. Images that are oversampled (the pixel size is smaller than the resolution) can exclude changes that are smaller than the resolution.

Each pixel has eight neighbors in a 3 x 3 window; therefore, MINNEIGH can theoretically be set to 8. Because the algorithm is iterative, all detected changes disappear (all set bits are cleared) when MINNEIGH is greater than or equal to 5; therefore, the maximum value for MINNEIGH is 4. If MINNEIGH = 0, the changes are completely preserved.

For more information about the algorithm, see:

Dekker, R.J. "Speckle filtering in satellite SAR change detection imagery", International Journal of Remote Sensing, 19, no. 6 (1998): 1133-1146.

For more information about the Kuan-MMSE filter, see:

Kuan, D.T., A.A. Sawchuk, T.C. Strand, and P. Chavel. "Adaptive noise smoothing filter for images with signal-dependent noise", IEEE Trans. Pattern Anal. Mach. Intell., 7, no. 2 (1985): 165-177.

Back to top

References

Rignot, E.J.M. and J.J. van Zyl. "Change detection techniques for ERS-1 SAR data", IEEE Trans. Geosci Remote Sensing, 31, no. 4 (1993): 896-906.

Townshend, J.R.G., C.O. Justice, C. Gurney, and J. McManus. "The impact of misregistration on change detection", IEEE Trans. Geosci. Remote Sensing, 30, no. 5 (1992):1054-1060.

+-------------------------------------------------------------------------+
| Original File : chdet.c                                                 |
| Company       : ICT Automatisering Deventer b.v.                        |
| Author        : M.G. Groothus                                           |
| Description   : Source code file for Change Detection (CHDET)           |
| Creation date : July 1995                                               |
+-------------------------------------------------------------------------+
| ICT Automatisering Deventer B.V. TNO Physics and Electronics Laboratory |
| Keulenstraat 7, 7418 ET          Oude Waalsdorperweg 63                 |
| P.O.Box 701, 7400 AS             P.O.Box 96864, 2509 JG                 |
| Deventer, The Netherlands        The Hague, The Netherlands             |
+-------------------------------------------------------------------------+     

© PCI Geomatics Enterprises, Inc.®, 2026. All rights reserved.