Per pixel supervised classification

From AWF-Wiki
Revision as of 11:56, 14 December 2020 by Hfuchs (Talk | contribs)

Jump to: navigation, search

Contents

Using QGIS and OTB processing toolbox

  • Using OTB version 7.2.0, input vector file format of training data can be GeoPackage GPKG or ESRI Shapefile.
  • The column containing class label needs to be an integer (whole number).

Training phase

  • In the search engine of Processing Toolbox, type TrainImages and open TrainImagesClassifer.
  • In the Input Image List select one (or optional: several) multi-band raster (multispectral images).
  • In the Input Vector Data List do not select a vector file from the list of files which might be already loaded in the QGIS Viewer. There is currently a bug in QGIS 3.16 which leads to failure during file import. Instead please select a vector file clicking Qgis add file.png and browse directly to the file containing training area polygons in format GPKG or SHP.
  • If you do not have independent validation data: leave Validation Vector Data List empty.
  • Bound sample number ba minimum: 1. The class with the minimum number of pixels determines the sample size of all other classes. Changing this value to 0 does not have an effect (current bug in QGIS3.16).
  • Training and validation sample ratio: 0.25. This is a 4-fold cross-validation with split 0.75 per cent for training and 0.25 per cent for testing.
  • Type C_ID in the Field containing the class integer label for supervision text field.
  • As Classifier to use for training choose Support Vector Machine libsvm from the drop down list.
  • The SVM Kernel Type is Linear.
  • SVM Model Type is csvc
  • Switch checkbox Parameters optimization off. The optimization results in a higher accuracy but takes much time (> 1 hour computation).
  • In the Output model specify a model file: e.g. svm.model
  • Click Run.
  • Click on the Log tab and inspect the model quality measures: Precision, Recall, F-score and Kappa index.

Qgis otb trainimages.png

Classification phase

  • In the search engine of Processing Toolbox, type ImageClassifier and double click ImageClassifier.
  • Set an multiband image as Input image.
  • Set Input _mask to blank (top of drop-down list).
  • Set svm.model as Model file.
  • Set the number of classes in your model: this is the number of unique classes in your training vector file.
  • Set Output pixel type to uint8
  • Save the Output image as svm_classification.tif.
  • Uncheck Confidence map: Open output file after running algorithm.
  • Uncheck Probability map: Open output file after running algorithm. Run.

Qgis otb imageclassifier.png

  • Find the output svm_classification.tif in the QGIS map canvas.
  • Right click on the layer svm_classification and select Properties --> Symbology --> Style --> Load Style.
  • Select the style file classified.qml. OK.

Postprocessing

This application uses a majority filter with a circular structure element.

  • In the search engine of Processing Toolbox, type regularization and double click ClassificationMapRegularization.
  • Define Input classification image as an classification output raster.
  • Set Structuring element radius to 2 pixels.
  • Set Output pixel type to uint8.
  • Save the Output regularizd image as svm_classification_majority.tif.
  • Click Run.

Qgis otb majority.png

  • Find the output svm_classification_majority.tif in the QGIS map canvas.
  • Right click on the layer svm_classification_majority in the and select Properties --> Symbology --> Style --> Load Style.
  • Select the style file classified.qml. OK.


Using OTB standalone

Training phase

  • Navigate in the Windows explorer to your Folder OTB-7.2.0-Win64. Double click the Windows-Batchdatei mapla to open Monteverdi Application Launcher.
  • In the search engine of mapla, type TrainImages and double click TrainImagesClassifer.
  • In the Input Image List click on + and select a (or optional: several) multispectral images: Subset_S2A_MSIL2A_20170619T_MUL.tif .
  • In the Input Vector Data List choose a vector polygon file with training areas in file format GPKG or SHP.
  • In the Output model specify an output model file: e.g. lucc_rf.model
  • In the Bound sample number by minimum field type 0.
  • Set the training and validation sample ratio to 0.25.
  • Mark C_ID in the Field containing the class integer label (C_ID refers to the column that contains the LUC code in the training and validation vector file).
  • Choose Shark Random forests classifier from the drop down list as Classifier to use for the training.
  • Check user defined Random seed and enter any positive integer value. This initializes a pseudorandom number generator which may be used to reproduce results.
  • Click on Execute.
  • Click on the Log tab and inspect the quality measures: Precision, Recall, F-score and Kappa index.

Otb trainimages.png

Classification phase

  • In the search engine of mapla, type ImageClassifier and double click ImageClassifier
  • Set Subset_S2A_MSIL2A_20170619T_MUL.tif as Input image.
  • Set lucc_svm.model as Model file.
  • Save the Output image as svm_classification.tif.
  • Adjust the Number of classes in the model to the number of unique classes in the training vector file.

Otb imageclassifier.png

  • Add svm_classification.tif to QGIS canvas.
  • Download the style file classified.qml from Stud.IP.
  • Right click on the layer svm_classification and select Properties --> Style --> Style --> Load Style.
  • Select the style file classified.qml. OK.

Postprocessing

This application uses a majority with a circular structure element.

  • In the search engine of mapla, type, regular and double click ClassifcationMapRegularization.
  • As theInput classification image definethe output raster file of the classification phase.
  • Save the Output regularizd image as svm_classification_majority.tif.
  • Set Structuring element radius to 2 pixels.
  • Set Output pixel type to uint8.
  • Click Execute.

Otb majority.png

  • Add svm_classification_majority.tif to QGIS canvas.
  • Download the style file classified.qml from Stud.IP.
  • Right click on the layer svm_classification_majority and select Properties --> Style --> Style --> Load Style.
  • Select the style file classified.qml. OK.
Personal tools
Namespaces

Variants
Actions
Navigation
Development
Toolbox
Print/export