Custom search

Samstag, 20. Dezember 2014

Hierarchical image segmentation

Ingredients are a colored infrared image (CIR), GRASS GIS and some of its features (i.segment, i.segment.hierarchical, g.gui.mapswipe,) and a tricky landscape with heterogeneous geomorphology and heterogeneous forest stands with various combinations of spruce (Picea abies), fir (Abies alba), pine (Pinus sylvestris), beech (Fagus sylvatica), ash (Fraxinus excelsior) and maple (Acer pseudoplatanus).

Image segmentation or object recognition is the process of grouping similar pixels into unique segments, also refered to as objects.

GRASS GIS features:
  • i.segment (manual, src) identifies segments (objects) from imagery data.
  • i.segment.hierarchical (manual, src) performs a hierarchical segmentation on imagery data by using i.segment.
  • g.gui.mapswipe (manual) compares interactively two maps by swiping a visibility bar.
The resolution of the CIR is 0,2m:
g.region -p                                                                    
projection: 99 (Transverse Mercator)
zone:       0
datum:      hermannskogel
ellipsoid:  bessel
north:      252452
south:      251798.6
west:       -112476.2
east:       -111678.2
nsres:      0.2
ewres:      0.2
rows:       3267
cols:       3990
cells:      13035330
colored infrared image (CIR)
Important options of i.segment are:
  • minsize = Minimum number of cells in a segment.
  • threshold = Difference threshold between 0 and 1; 0 merges only identical segments; threshold = 1 merges all.
Let's do 2 runs of i.segment.hierarchical
i.segment.hierarchical group=cirgroup thresholds=0.02,0.05,0.1,0.15,0.2,0.25,0.3,0.35 output=cirsegmin10 outputs_prefix=segmin10__%.2f minsizes=10 memory=1000 iterations=20 processes=4                                                        
i.segment.hierarchical group=cirgroup thresholds=0.02,0.05,0.1,0.15,0.2,0.25,0.3,0.35 output=cirsegmin20 outputs_prefix=segmin20__%.2f minsizes=20 memory=1000 iterations=20 processes=4

and load some results with different thresholds and minsizes to g.gui.mapswipe:

scene 1:

threshold=0.2 minsize=10
threshold=0.2 minsize20








threshold=0.3 minsize20

threshold=0.3 minsize=10
threshold=0.35 minsize=10
threshold=0.35 minsize20









scene 2:

threshold=0.2 minsize=10
threshold=0.2 minsize20  









threshold=0.3 minsize=10
threshold=0.3 minsize20









threshold=0.35 minsize=10
threshold=0.35 minsize20









scene 3:
 
threshold=0.2 minsize=10

threshold=0.2 minsize20
 








threshold=0.3 minsize=10
threshold=0.3 minsize20









threshold=0.35 minsize=10   
threshold=0.35 minsize20









Nice open source tools for image segmentation! Have also a look at the Orfeo Toolbox!

Keine Kommentare:

Kommentar veröffentlichen