Per pixel supervised classification
From AWF-Wiki
(Difference between revisions)
(→Training phase) |
(→Training phase) |
||
Line 8: | Line 8: | ||
* In the {{button|text=Input Image List}} select one (or optional: several) multi-band raster (multispectral images). | * In the {{button|text=Input Image List}} select one (or optional: several) multi-band raster (multispectral images). | ||
* In the {{button|text=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 [[File:Qgis_add_file.png]] and browse directly to the file containing training area polygons in format GPKG or SHP. | * In the {{button|text=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 [[File: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 {{button|text=Validation Vector Data List}} empty. |
− | * Bound sample number | + | * Bound sample number ba minimum: {{typed|text=1}}. The class with the minimum number of pixels determines the sample size of all other classes. Changing this value to {{typed|text=0}} does not have an effect (current bug in QGIS3.16). |
* Training and validation sample ratio: {{typed|text=0.25}}. This is a 4-fold cross-validation with split 0.75 per cent for training and 0.25 per cent for testing. | * Training and validation sample ratio: {{typed|text=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 {{typed|text=C_ID}} in the {{button|text=Field | + | * Type {{typed|text=C_ID}} in the {{button|text=Field containing the class integer label for supervision}} text field. |
− | * | + | * As Classifier to use for training choose Support Vector Machine {{button|text=libsvm}} from the drop down list. |
− | + | ||
* The SVM Kernel Type is {{button|text=Linear}}. | * The SVM Kernel Type is {{button|text=Linear}}. | ||
+ | * SVM Model Type is {{button|text=csvc}} | ||
* Switch checkbox {{button|text=Parameters optimization}} '''off'''. The optimization results in a higher accuracy but takes much time (> 1 hour computation). | * Switch checkbox {{button|text=Parameters optimization}} '''off'''. The optimization results in a higher accuracy but takes much time (> 1 hour computation). | ||
− | * In the {{button|text=Output model}} specify | + | * In the {{button|text=Output model}} specify a model file: e.g. '''svm.model''' |
* Click {{button|text=Run}}. | * Click {{button|text=Run}}. | ||
* Click on the {{button|text=Log}} tab and inspect the '''model quality''' measures: Precision, Recall, F-score and Kappa index. | * Click on the {{button|text=Log}} tab and inspect the '''model quality''' measures: Precision, Recall, F-score and Kappa index. |
Revision as of 23:03, 12 December 2020
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 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.
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 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.
- Add svm_classification.tif to QGIS canvas.
- Find the prepared style file classified.qml.
- Right click svm_classification.tif in the TOC 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.
Using OTB standalone
Training phase
- Type into the search box of the Windows taskbar: mapla.bat. Click on mapla.bat 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_svm.model
- Activate the checkbox and save the Output confusion matrix or contingency table as lucc_svm_confusion.csv.
- In the Bound sample number by minimum field type 0.
- Set the training and validation sample ratio to 0. (0 = all training data).
- 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 LibSVM classifier from the drop down list as Classifier to use for the training.
- The SVM Kernel Type is Linear.
- The SVM Model Type is C support vector classification.
- Switch the Parameters optimization to on.
- Check user defined seed and enter an integer value.
- Click on Execute.
- Click on the Log tab and inspect the quality measures: Precision, Recall, F-score and Kappa index.
Classification phase
- In the search engine of mapla, type ImageClassifier and double click ClassifcationMapRegularization
- Set Subset_S2A_MSIL2A_20170619T_MUL.tif as Input image.
- Set SVM.model as Model file.
- Save the Output image as svm_classification.tif.
- Evaluate classification results:
- Add svm_classification.tif to QGIS canvas.
- Download the style file classified.qml from Stud.IP.
- Right click svm_classification.tif in the TOC 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.
- Define Input classification image as ans classification output raster.
- 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.