Section 1 Introduction
This section provides a brief overview of concepts and information regarding the package architecture and functionalities.
1.1 Audience and objectives
SegOptim intended audience are users with at least some GIS and Remote Sensing background that want to perform an object-based approach to the analysis and classification of high or very-high spatial resolution Earth Observation (EO) imagery. For this purpose you will need a minimum amount of knowledge regarding the concepts behind operating, (pre-)processing and analyzing EO data especially the object-based approach to it. However, having said this, the package aims to make things easier.
In its essence SegOptim is a package for non-experts that have an interest in exploiting EO data for devising land cover classification maps for a specific task, research, management or conservation goal. The package also provides tools and algorithms capable of mapping a single specific class (e.g. forest, grassland) or species (depending of course in the characteristics of input EO data).
Since R is at the core of everything, you will also need some familiarity with the R language and environment
with the advantage that this gives you more flexibility and knowledge behind each processing step.
Among other objectives, the package aims to stimulate the use of open-source solutions to image segmentation
and to compare different algorithms.
1.2 Object-based Image Analysis (OBIA)
Object-based Image Analysis (OBIA) is a technique (or a set of techniques) used to analyze digital images that was developed relatively recently in comparison to ‘classic’ pixel-based image approaches (Burnett and Blaschke 2003). While pixel-based image analysis depends on spectral (or other) information from each pixel, OBIA is based on information based on sets of pixels termed ‘objects’. Put very simply, an object is a set of pixels with similar or relatively homogeneous spectral (or other) characteristics that are spatially connected. Objects exhibit different shapes, sizes, scales and temporal properties.
1.3 SegOptim architecture
SegOptim combines image segmentation and supervised classification into a single workflow making it easier to run both steps in sequence. However, external (3rd party) software (e.g., GRASS GIS) is used to perform the segmentation stage. This is required because currently R has no ‘native’ packages for conducting image segmentation on Earth Observation images. SegOptim uses two ways to interface with external software:
Command-line interface (CLI) - for Orfeo ToolBox, GRASS GIS, SAGA GIS and TerraLib; or,
Python API - for RSGISLib and ArcGIS
The design of the package is detailed on the figure below:
While external software is used for image segmentation, R is responsible for the remaining processing and analysis tasks. R is especially well tailored for running the classification stage since it has a large number of available algorithms for this end (e.g., from packages such as randomForest, e1071). Also, R has good functionalities to handle raster images which comes from packages such as raster or rgdal.
1.4 Functionalities
Currently the package offers several functionalities, namely:
Run different image segmentation algorithms;
Populate image segments with aggregate statistics with user-defined functions;
Perform object-based supervised classification with several methods;
Evaluate classification performance for single- or multi-class problems;
Optimize image segmentation parameters using Genetic Algorithms (GA) and other methods;
Compare different algorithms based on optimized solutions;
Perform unsupervised classification with several methods and compare the results using internal clustering criteria.
1.5 Available algorithms
1.5.1 Image segmentation algorithms
SegOptim allows comparing multiple algorithms both for image segmentation, supervised and unsupervised classification. One of the major objectives of this package is the ability of comparing and optimizing these different methods. Currently, the following methods are available for image segmentation:
1.5.2 Image segmentation software compatible with SegOptim
Check out the list of software versions that are compatible with SegOptim for each operating system:
[Updated: 04/12/2018]
Software | Version | Windows-10 | Linux | MacOS |
---|---|---|---|---|
ArcGIS | 10.3.1 | OK | Not available | Not available |
GRASS GIS | 7.2.0 | OK | OK | - |
GRASS GIS | 7.4.2 | Issue 1 | - | - |
Orfeo Toolbox (OTB) | 5.8.0 | OK | - | - |
Orfeo Toolbox (OTB) | 5.10.1 | OK | OK | OK |
Orfeo Toolbox (OTB) | 6.6.0 | OK | - | - |
RSGISLib (Anaconda 4.3 / Python 3.5) | <3.5 | OK | - | - |
SAGA GIS | 2.3.1 | - | OK | - |
SAGA GIS | 4.0.1 | OK | - | - |
SAGA GIS | 7.0.0 | OK | - | - |
TerraLib / TISA build | 5.2.1 | OK | - | - |
Note: software marked with (-) where not yet tested
Issues
[1] Despite we are able to successfully run the segmentation test, the results between GRASS GIS versions 7.2 and 7.4 strongly differ (last update: 2018/12/05).
1.5.3 Supervised classification algorithms
As for supervised classification, the following methods are available through R:
1.5.4 Unsupervised classification algorithms
Regarding unsupervised classification, SegOptim supports the following algorithms:
CLARA (Clustering LARge Applications) (link)
Hard competitive learning algorithm (link)
K-means (link)
Neural gas algorithm (link)
The support for (internal) clustering criteria used for comparing each unsupervised solution is given by the clusterCrit package (link).
1.6 Limitations
Currently, SegOptim has several limitations that derive from design decisions that were made during development stages and, to be completely honest, the fact that we are not software developers… (sorry for that ;-). Among other, these limitations are:
Memory restrictions (especially for large images);
Computational complexity and workload (especially for applying optimization);
No pre-processing for satellite data;
Only allows single-stage classification;
It does not allow to explore hierarchical or spatial relations among or between objects;
No post-classification processing;
Although tests have been successfully accomplished in several operating systems, Windows is for now the most supported one.
We are planning to add new features and to address some of these limitations in future releases however this is the status quo! ;-)