HTTPS SSH

SegOptim


Package description

An R package for optimizing image segmentation parameters using genetic algorithms for supervised image classification tasks

It's really simple to install! :+1:
(don't forget to install devtools package in case you haven't done that yet)

if(!("devtools" %in% installed.packages()[,1])){
  install.packages("devtools")
}

library(devtools)
install_bitbucket("joao_goncalves/segoptim")

Features

Supports multiple image segmentation algorithms currently implemented in different GIS and remote sensing softwares:

  • ArcGIS 10: Mean-shift
  • TerraLib 5: Mean-region growing and Baatz algorithms
  • RSGISLib: Shepherd Kmeans-based algorithm
  • GRASS-GIS 7: Region-growing
  • SAGA-GIS: Seeded region-growing

Includes several different classification algorithms:

  • Gradient Boosted Regression and Classification (gbm)
  • Support Vector Machines (e1071)
  • Random Forests (randomForest)
  • K-nearest Neighbour (base)
  • Flexible Discriminant Analysis (mda)

Allows for single and multi-class parameter evaluation

Allows to perform data balancing in case of highly imbalanced single-class datasets

Users may define which functions to use to aggregate pixel values to segment level

Support for multiple methods of performance evaluation:

  • 5-Fold cross-validation
  • 10-Fold cross-validation
  • Holdout cross-validation

Several performance evaluation metrics implemented (e.g., Kappa, AUC, accuracy, Gerrity skill score, Peirce skill score)


Workflow

How does it work? The algorithm behind SegOptim

Installing the package and its dependencies

Input data

To run SegOptim basically 3 types of data inputs are required:

  1. Train data, either in:

    • Point (vector), or,
    • Raster data format
  2. Segmentation features

  3. Classification features