ComputeConfusionMatrix - Confusion matrix Computation

Computes the confusion matrix of a classification

Detailed description

This application computes the confusion matrix of a classification map relative to a ground truth dataset. This ground truth can be given as a raster or a vector data. Only reference and produced pixels with values different from NoData are handled in the calculation of the confusion matrix. The confusion matrix is organized the following way: rows = reference labels, columns = produced labels. In the header of the output file, the reference and produced class labels are ordered according to the rows/columns of the confusion matrix.

Parameters

This section describes in details the parameters available for this application. Table [1] presents a summary of these parameters and the parameters keys to be used in command-line and programming languages. Application key is ComputeConfusionMatrix .

[1]Table: Parameters table for Confusion matrix Computation.
Parameter Key Parameter Name Parameter Type
in Input Image Input image
out Matrix output Output File name
format set the output format to contingency table or confusion matrix Choices
format confusionmatrix Choice of a confusion matrix as output. Choice
format contingencytable Choice of a contingency table as output. Choice
ref Ground truth Choices
ref raster Ground truth as a raster image Choice
ref vector Ground truth as a vector data file Choice
ref.raster.in Input reference image Input image
ref.raster.nodata Value for nodata pixels in ref raster Int
ref.vector.in Input reference vector data Input File name
ref.vector.field Field name List
ref.vector.nodata Value for nodata pixels in ref vector Int
nodatalabel Value for nodata pixels in input image Int
ram Available RAM (Mb) Int
inxml Load otb application from xml file XML input parameters file
outxml Save otb application to xml file XML output parameters file

Input Image: The input classification image.

Matrix output: Filename to store the output matrix (csv format).

set the output format to contingency table or confusion matrix: Choice of the output format as a contingency table for unsupervised algorithmsor confusion matrix for supervised ones. Available choices are:

  • Choice of a confusion matrix as output.
  • Choice of a contingency table as output.

Ground truth: Choice of ground truth format. Available choices are:

  • Ground truth as a raster image
  • Input reference image: Input image containing the ground truth labels.
  • Value for nodata pixels in ref raster: Label to be treated as no data in ref raster.
  • Ground truth as a vector data file
  • Input reference vector data: Input vector data of the ground truth.
  • Field name: Field name containing the label values.
  • Value for nodata pixels in ref vector: Label to be treated as no data in ref vector. Please note that this value is always used in vector mode, to generate default values. Please set it to a value that does not correspond to a class label.

Value for nodata pixels in input image: Label to be treated as no data in input image.

Available RAM (Mb): Available memory for processing (in MB).

Load otb application from xml file: Load otb application from xml file.

Save otb application to xml file: Save otb application to xml file.

Example

To run this example in command-line, use the following:

otbcli_ComputeConfusionMatrix -in clLabeledImageQB1.tif -out ConfusionMatrix.csv -ref vector -ref.vector.in VectorData_QB1_bis.shp -ref.vector.field Class -ref.vector.nodata 255

To run this example from Python, use the following code snippet:

#!/usr/bin/python

# Import the otb applications package
import otbApplication

# The following line creates an instance of the ComputeConfusionMatrix application
ComputeConfusionMatrix = otbApplication.Registry.CreateApplication("ComputeConfusionMatrix")

# The following lines set all the application parameters:
ComputeConfusionMatrix.SetParameterString("in", "clLabeledImageQB1.tif")

ComputeConfusionMatrix.SetParameterString("out", "ConfusionMatrix.csv")

ComputeConfusionMatrix.SetParameterString("ref","vector")

ComputeConfusionMatrix.SetParameterString("ref.vector.in", "VectorData_QB1_bis.shp")

# The following line execute the application
ComputeConfusionMatrix.ExecuteAndWriteOutput()

Limitations

None

Authors

This application has been written by OTB-Team.