SOM image classification.


Unsupervised Self Organizing Map image classification.


InputImage -in image Mandatory
Input image to classify.

OutputImage -out image [dtype] Mandatory
Output classified image (each pixel contains the index of its corresponding vector in the SOM).

ValidityMask -vm image
Validity mask (only pixels corresponding to a mask value greater than 0 will be used for learning)

TrainingProbability -tp float Default value: 1
Probability for a sample to be selected in the training set

TrainingSetSize -ts int
Maximum training set size (in pixels)

SOM Map -som image [dtype]
Output image containing the Self-Organizing Map

SizeX -sx int Default value: 32
X size of the SOM map

SizeY -sy int Default value: 32
Y size of the SOM map

NeighborhoodX -nx int Default value: 10
X size of the initial neighborhood in the SOM map

NeighborhoodY -ny int Default value: 10
Y size of the initial neighborhood in the SOM map

NumberIteration -ni int Default value: 5
Number of iterations for SOM learning

BetaInit -bi float Default value: 1
Initial learning coefficient

BetaFinal -bf float Default value: 0.1
Final learning coefficient

InitialValue -iv float Default value: 0
Maximum initial neuron weight

Random seed -rand int
Set a specific random seed with integer value.

Available RAM (MB) -ram int Default value: 256
Available memory for processing (in MB).


From the command-line:

otbcli_SOMClassification -in QB_1_ortho.tif -out SOMClassification.tif -tp 1.0 -ts 16384 -sx 32 -sy 32 -nx 10 -ny 10 -ni 5 -bi 1.0 -bf 0.1 -iv 0

From Python:

import otbApplication

app = otbApplication.Registry.CreateApplication("SOMClassification")

app.SetParameterString("in", "QB_1_ortho.tif")
app.SetParameterString("out", "SOMClassification.tif")
app.SetParameterFloat("tp", 1.0)
app.SetParameterInt("ts", 16384)
app.SetParameterInt("sx", 32)
app.SetParameterInt("sy", 32)
app.SetParameterInt("nx", 10)
app.SetParameterInt("ny", 10)
app.SetParameterInt("ni", 5)
app.SetParameterFloat("bi", 1.0)
app.SetParameterFloat("bf", 0.1)
app.SetParameterFloat("iv", 0)