[GRASS-user] supervised image classification using textural aspects

Hello everybody,

I am trying to perform a supervised classification of false color
images. The resolution of the bands (IR,R,G) is 1 meter. Additionally I
can use a DEM as input ( hor. res. = 5m), but apparently null-values
within the training areas are causing some problems (see
http://lists.osgeo.org/pipermail/grass-user/2008-June/045261.html) so I
am not using the DEM for the moment. I intend to use the combined
radiometric and geometric modules i.gensigset and i.smap.

Looking at the images, I wonder if including textural features within
the images would be usefull: a forest canopy has a far coarser texture
than a grassland. Also in the Grassbook this is mentioned, and for the
supervised classification of saltmarshes in Germany, textural features
are also used (see i.e.
http://www.nature-consult.de/images/downl/Agit_2008_nature-consult.pdf,
but in German), but this is not further explained.

This brings me to the following questions:

1) Is it usefull to make a raster with textural image features as an
extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
is partly based on geometry and therefor on texture as well so what does
a texturemap add?
2) if it is usefull, which textural feature is then aproppriate? I have
been experimenting and until now simply variance seems to make the
difference between forest and shrubland compared to grassland, and
reed-vegetation. This was using a windowsize of 5, meaning 5x5 m.

Did anyone have any experience with this?

Regards,

Wout

Wout:

    This is more of a general response, rather than a "how to" for GRASS. At 1m, you are absolutely going to need to include some level of spatial processing (texture being the "brute force" way of getting at these sorts of things). At that resolution, trees become multi-pixel objects, and there will be more spectral variation within a tree crown than between any two trees. Which textures to try are an issue you will need to resolve by experimentation -- variance is often an important factor, average less so. The window size choice is extremely important, because each window size is picking up different pieces of information. For instance, for large trees at 1m, a 3x3 window is going to be picking up within-crown variation, so you will get high values near the sunlit-to-shadow transition, and near the crown edges, but low variation within the shadow or within the sunlit portions of the tree. Your window should be larger than a tree crown if you expect to get fairly similar values within the tree crown (which is critical if you want to approach this in a pixel based approach). I don't recommend pixel-based approaches for macro-pixel objects, however.

    When working with "hyperspatial" remote sensing data, keep in mind you are classifying "trees" as unique landscape objects (polygons, really), not the less well defined "forest" -- as such, you should try to employ object-based approaches. You can google scholar "tree crown remote sensing" to get some ideas on how people approach this problem. Keep an eye out for papers by Lefsky, Pouliot, Popescu, Wulder, and Leckie, amongst others. If you want to understand how to scale from tree crown objects to a "forest" I'll tout one of my papers:

http://casil.ucdavis.edu/docman/view.php/52/141/greenbergetal2006b.pdf

    It would be cool to implement some of these algorithms in GRASS, but to my knowledge there is no package (you'd have to write one) -- in fact, very few remote sensing packages have even the beginnings of these capabilities, although some of the authors I mention above may be willing to share their code.

--j

Wout Bijkerk wrote:

Hello everybody,

I am trying to perform a supervised classification of false color
images. The resolution of the bands (IR,R,G) is 1 meter. Additionally I
can use a DEM as input ( hor. res. = 5m), but apparently null-values
within the training areas are causing some problems (see
http://lists.osgeo.org/pipermail/grass-user/2008-June/045261.html) so I
am not using the DEM for the moment. I intend to use the combined
radiometric and geometric modules i.gensigset and i.smap.

Looking at the images, I wonder if including textural features within
the images would be usefull: a forest canopy has a far coarser texture
than a grassland. Also in the Grassbook this is mentioned, and for the
supervised classification of saltmarshes in Germany, textural features
are also used (see i.e.
http://www.nature-consult.de/images/downl/Agit_2008_nature-consult.pdf,
but in German), but this is not further explained.

This brings me to the following questions:

1) Is it usefull to make a raster with textural image features as an
extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
is partly based on geometry and therefor on texture as well so what does
a texturemap add?
2) if it is usefull, which textural feature is then aproppriate? I have
been experimenting and until now simply variance seems to make the
difference between forest and shrubland compared to grassland, and
reed-vegetation. This was using a windowsize of 5, meaning 5x5 m.

Did anyone have any experience with this?

Regards,

Wout

_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

--
Jonathan A. Greenberg, PhD
Postdoctoral Scholar
Center for Spatial Technologies and Remote Sensing (CSTARS)
University of California, Davis
One Shields Avenue
The Barn, Room 250N
Davis, CA 95616
Cell: 415-794-5043
AIM: jgrn307, MSN: jgrn307@hotmail.com, Gchat: jgrn307

Dear Wout,

Following Jonathan´s comments about window size selecion, give a look at:

RIBEIRO, M. C. ; ALVES, D. S. ; YANASSE, C. C. F. ; SOARES, J. V. ; II, F. M. . Window size selection for SAR classification using texture measures: a case study of a Brazilian Amazon test site. In: Segunda jornada latino-americana de sensoriamento remoto por radar: técnicas de processamento de imagens, 1998, Santos, SP. Segunda jornada latino-americana de sensoriamento remoto por radar: técnicas de processamento de imagens, 1998

http://marte.dpi.inpe.br/col/sid.inpe.br/deise/1999/02.11.16.14/doc/10_213o.pdf

Best wishes,

miltinho

2008/8/22, Jonathan Greenberg <greenberg@ucdavis.edu>:

Wout:

This is more of a general response, rather than a “how to” for GRASS. At 1m, you are absolutely going to need to include some level of spatial processing (texture being the “brute force” way of getting at these sorts of things). At that resolution, trees become multi-pixel objects, and there will be more spectral variation within a tree crown than between any two trees. Which textures to try are an issue you will need to resolve by experimentation – variance is often an important factor, average less so. The window size choice is extremely important, because each window size is picking up different pieces of information. For instance, for large trees at 1m, a 3x3 window is going to be picking up within-crown variation, so you will get high values near the sunlit-to-shadow transition, and near the crown edges, but low variation within the shadow or within the sunlit portions of the tree. Your window should be larger than a tree crown if you expect to get fairly similar values within the tree crown (which is critical if you want to approach this in a pixel based approach). I don’t recommend pixel-based approaches for macro-pixel objects, however.

When working with “hyperspatial” remote sensing data, keep in mind you are classifying “trees” as unique landscape objects (polygons, really), not the less well defined “forest” – as such, you should try to employ object-based approaches. You can google scholar “tree crown remote sensing” to get some ideas on how people approach this problem. Keep an eye out for papers by Lefsky, Pouliot, Popescu, Wulder, and Leckie, amongst others. If you want to understand how to scale from tree crown objects to a “forest” I’ll tout one of my papers:

http://casil.ucdavis.edu/docman/view.php/52/141/greenbergetal2006b.pdf

It would be cool to implement some of these algorithms in GRASS, but to my knowledge there is no package (you’d have to write one) – in fact, very few remote sensing packages have even the beginnings of these capabilities, although some of the authors I mention above may be willing to share their code.
–j

Wout Bijkerk wrote:

Hello everybody,

I am trying to perform a supervised classification of false color
images. The resolution of the bands (IR,R,G) is 1 meter. Additionally I
can use a DEM as input ( hor. res. = 5m), but apparently null-values
within the training areas are causing some problems (see
http://lists.osgeo.org/pipermail/grass-user/2008-June/045261.html) so I
am not using the DEM for the moment. I intend to use the combined
radiometric and geometric modules i.gensigset and i.smap.

Looking at the images, I wonder if including textural features within
the images would be usefull: a forest canopy has a far coarser texture
than a grassland. Also in the Grassbook this is mentioned, and for the
supervised classification of saltmarshes in Germany, textural features
are also used (see i.e.
http://www.nature-consult.de/images/downl/Agit_2008_nature-consult.pdf,
but in German), but this is not further explained.

This brings me to the following questions:

  1. Is it usefull to make a raster with textural image features as an
    extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
    is partly based on geometry and therefor on texture as well so what does
    a texturemap add?
  2. if it is usefull, which textural feature is then aproppriate? I have
    been experimenting and until now simply variance seems to make the
    difference between forest and shrubland compared to grassland, and
    reed-vegetation. This was using a windowsize of 5, meaning 5x5 m.

Did anyone have any experience with this?

Regards,

Wout


grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user


Jonathan A. Greenberg, PhD
Postdoctoral Scholar
Center for Spatial Technologies and Remote Sensing (CSTARS)
University of California, Davis
One Shields Avenue
The Barn, Room 250N
Davis, CA 95616
Cell: 415-794-5043
AIM: jgrn307, MSN: jgrn307@hotmail.com, Gchat: jgrn307


grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Wout,

On Fri, Aug 22, 2008 at 2:29 PM, Wout Bijkerk <wout.bijkerk@xs4all.nl> wrote:
...

Looking at the images, I wonder if including textural features within
the images would be usefull: a forest canopy has a far coarser texture
than a grassland. Also in the Grassbook this is mentioned, and for the
supervised classification of saltmarshes in Germany, textural features
are also used

...

1) Is it usefull to make a raster with textural image features as an
extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
is partly based on geometry and therefor on texture as well so what does
a texturemap add?

...

It's worth trying. I have done so for orthophoto classification and
it definitely helped:
http://mpa.itc.it/markus/ortho_smap/

The texture map(s) add patterns which can stabilize the process
of assigning pixels to classes/can improve the segmentation part
of i.smap as it renders heterogeneous areas to homogeneous
areas.

Markus

On Fri, 2008-08-22 at 16:02 -0300, Milton Cezar Ribeiro wrote:

Dear Wout,

Following Jonathan´s comments about window size selecion, give a look
at:

RIBEIRO, M. C. ; ALVES, D. S. ; YANASSE, C. C. F. ; SOARES, J. V. ;
II, F. M. . Window size selection for SAR classification using texture
measures: a case study of a Brazilian Amazon test site. In: Segunda
jornada latino-americana de sensoriamento remoto por radar: técnicas
de processamento de imagens, 1998, Santos, SP. Segunda jornada
latino-americana de sensoriamento remoto por radar: técnicas de
processamento de imagens, 1998

http://marte.dpi.inpe.br/col/sid.inpe.br/deise/1999/02.11.16.14/doc/10_213o.pdf

Best wishes,

miltinho

2008/8/22, Jonathan Greenberg <greenberg@ucdavis.edu>:
        Wout:
        
          This is more of a general response, rather than a "how to"
        for GRASS. At 1m, you are absolutely going to need to include
        some level of spatial processing (texture being the "brute
        force" way of getting at these sorts of things). At that
        resolution, trees become multi-pixel objects, and there will
        be more spectral variation within a tree crown than between
        any two trees. Which textures to try are an issue you will
        need to resolve by experimentation -- variance is often an
        important factor, average less so. The window size choice is
        extremely important, because each window size is picking up
        different pieces of information. For instance, for large
        trees at 1m, a 3x3 window is going to be picking up
        within-crown variation, so you will get high values near the
        sunlit-to-shadow transition, and near the crown edges, but low
        variation within the shadow or within the sunlit portions of
        the tree. Your window should be larger than a tree crown if
        you expect to get fairly similar values within the tree crown
        (which is critical if you want to approach this in a pixel
        based approach). I don't recommend pixel-based approaches for
        macro-pixel objects, however.
        
          When working with "hyperspatial" remote sensing data, keep
        in mind you are classifying "trees" as unique landscape
        objects (polygons, really), not the less well defined "forest"
        -- as such, you should try to employ object-based approaches.
         You can google scholar "tree crown remote sensing" to get
        some ideas on how people approach this problem. Keep an eye
        out for papers by Lefsky, Pouliot, Popescu, Wulder, and
        Leckie, amongst others. If you want to understand how to
        scale from tree crown objects to a "forest" I'll tout one of
        my papers:
        
        http://casil.ucdavis.edu/docman/view.php/52/141/greenbergetal2006b.pdf
        
          It would be cool to implement some of these algorithms in
        GRASS, but to my knowledge there is no package (you'd have to
        write one) -- in fact, very few remote sensing packages have
        even the beginnings of these capabilities, although some of
        the authors I mention above may be willing to share their
        code.
        --j
        
        Wout Bijkerk wrote:
                Hello everybody,
                
                I am trying to perform a supervised classification of
                false color
                images. The resolution of the bands (IR,R,G) is 1
                meter. Additionally I
                can use a DEM as input ( hor. res. = 5m), but
                apparently null-values
                within the training areas are causing some problems
                (see
                http://lists.osgeo.org/pipermail/grass-user/2008-June/045261.html) so I
                am not using the DEM for the moment. I intend to use
                the combined
                radiometric and geometric modules i.gensigset and
                i.smap.
                
                Looking at the images, I wonder if including textural
                features within
                the images would be usefull: a forest canopy has a far
                coarser texture
                than a grassland. Also in the Grassbook this is
                mentioned, and for the
                supervised classification of saltmarshes in Germany,
                textural features
                are also used (see i.e.
                http://www.nature-consult.de/images/downl/Agit_2008_nature-consult.pdf,
                but in German), but this is not further explained.
                
                This brings me to the following questions:
                
                1) Is it usefull to make a raster with textural image
                features as an
                extra input for i.gensigset / i.smap? The
                i.gensigset / i.smap procedure
                is partly based on geometry and therefor on texture as
                well so what does
                a texturemap add?
                2) if it is usefull, which textural feature is then
                aproppriate? I have
                been experimenting and until now simply variance seems
                to make the
                difference between forest and shrubland compared to
                grassland, and
                reed-vegetation. This was using a windowsize of 5,
                meaning 5x5 m.
                
                Did anyone have any experience with this?
                
                Regards,
                
                Wout

[...]

All this is a "burning" issue for me as well. I was looking for
r.texture as well but never found something detailed. I did some tests
on my own without success. Now I read Markus' notes [1] and I'll try to
play around sooner or later (thank you Markus).

If i.smap could auto-segment multi-layer raster maps with some kind of
input parameters (not training samples) and r.texture really does
"statistical magic", then GRASS would challenge proprietary image
segmentation/classification tools. I think that a lot of people would
like that.

[1] http://mpa.itc.it/markus/ortho_smap/orthophoto_smap_043050.txt

Greetings, Nikos

On Mon, Aug 25, 2008 at 2:39 PM, Nikos Alexandris
<nikos.alexandris@felis.uni-freiburg.de> wrote:

On Fri, 2008-08-22 at 16:02 -0300, Milton Cezar Ribeiro wrote:

...

All this is a "burning" issue for me as well. I was looking for
r.texture as well but never found something detailed. I did some tests
on my own without success. Now I read Markus' notes [1] and I'll try to
play around sooner or later (thank you Markus).

Please consider to submit improvements of the r.texture manual
page then!

If i.smap could auto-segment multi-layer raster maps with some kind of
input parameters (not training samples) and r.texture really does
"statistical magic", then GRASS would challenge proprietary image
segmentation/classification tools. I think that a lot of people would
like that.

You could probably feed i.smap with spatially *reduced* output of
i.cluster (using r.texture synthetic maps also as input here), maybe in
combination with PCA images.

Markus

On Saturday 23 August 2008 08:19:15 am Markus Neteler wrote:

Wout,

On Fri, Aug 22, 2008 at 2:29 PM, Wout Bijkerk <wout.bijkerk@xs4all.nl>
wrote: ...

> Looking at the images, I wonder if including textural features within
> the images would be usefull: a forest canopy has a far coarser texture
> than a grassland. Also in the Grassbook this is mentioned, and for the
> supervised classification of saltmarshes in Germany, textural features
> are also used

...

> 1) Is it usefull to make a raster with textural image features as an
> extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
> is partly based on geometry and therefor on texture as well so what does
> a texturemap add?

...

It's worth trying. I have done so for orthophoto classification and
it definitely helped:
http://mpa.itc.it/markus/ortho_smap/

The texture map(s) add patterns which can stabilize the process
of assigning pixels to classes/can improve the segmentation part
of i.smap as it renders heterogeneous areas to homogeneous
areas.

Markus
_______________________________________________

Next time I will give r.texture a try. For the record, here is another example
of i.smap in use.

http://casoilresource.lawr.ucdavis.edu/drupal/node/548

Dylan

--
Dylan Beaudette
Soil Resource Laboratory
http://casoilresource.lawr.ucdavis.edu/
University of California at Davis
530.754.7341

So as a heads up, we actually built some functionality into starspan to deal with the huge amount of time it takes to process texture images for data exploration. If you check out the minirasterstrip output, it allows you to take your field data, and produce a small strip of raster windows around each of your field points along with an affiliated vector. This allows you to run the texture transforms just on the neighborhood around known data. This will allow you to quickly test out a bunch of different texture (and spectral) transforms without waiting a week to finish a bunch of texture transforms that may or may not be useful. Here's the basic workflow:

1) Acquire "training" vector and overlapping raster data.
2) Run starspan to output the minirasterstrip + minirasterstrip vector.
3) Perform spatial (texture) and spectral transforms on the minirasterstrip.
4) Apply different classifiers to the minirasterstrip (with various spatial and spectral transforms), decide on which spectral and spatial transforms are required, and which classifier to use.
5) As a FINAL step, apply the spectral and spatial transforms to the entire image, and apply the classification rules.

http://starspan.casil.ucdavis.edu

--j

Dylan Beaudette wrote:

On Saturday 23 August 2008 08:19:15 am Markus Neteler wrote:

Wout,

On Fri, Aug 22, 2008 at 2:29 PM, Wout Bijkerk <wout.bijkerk@xs4all.nl>
wrote: ...

Looking at the images, I wonder if including textural features within
the images would be usefull: a forest canopy has a far coarser texture
than a grassland. Also in the Grassbook this is mentioned, and for the
supervised classification of saltmarshes in Germany, textural features
are also used

...

1) Is it usefull to make a raster with textural image features as an
extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
is partly based on geometry and therefor on texture as well so what does
a texturemap add?

...

It's worth trying. I have done so for orthophoto classification and
it definitely helped:
http://mpa.itc.it/markus/ortho_smap/

The texture map(s) add patterns which can stabilize the process
of assigning pixels to classes/can improve the segmentation part
of i.smap as it renders heterogeneous areas to homogeneous
areas.

Markus
_______________________________________________

Next time I will give r.texture a try. For the record, here is another example of i.smap in use.

http://casoilresource.lawr.ucdavis.edu/drupal/node/548

Dylan

--

Jonathan A. Greenberg, PhD
Postdoctoral Scholar
Center for Spatial Technologies and Remote Sensing (CSTARS)
University of California, Davis
One Shields Avenue
The Barn, Room 250N
Davis, CA 95616
Cell: 415-794-5043
AIM: jgrn307, MSN: jgrn307@hotmail.com, Gchat: jgrn307

Markus (and others)

Answering my question

Is it usefull to make a raster with textural image features as an
extra input for i.gensigset / i.smap? The i.gensigset / i.smap procedure
is partly based on geometry and therefor on texture as well so what does
a texturemap add?

Markus Neteler wrote

It's worth trying. I have done so for orthophoto classification and
it definitely helped:
http://mpa.itc.it/markus/ortho_smap/

The texture map(s) add patterns which can stabilize the process
of assigning pixels to classes/can improve the segmentation part
of i.smap as it renders heterogeneous areas to homogeneous
areas.

Thanks for your tips.
The explanation of r.texture in the manual pages has puzzled me, and in
fact partly it still does. At first I had the impression r.texture was
just a slight modification of r.neighbors, but after reading
http://www.eng.tau.ac.il/~michal/mri_segmentation/mri_segmentation.html
I discovered that r.texture makes use of several quite advanced
algorithms. Now I can, at least partly, depict more or less what it
effectively is doing. The problem that I am stil facing, is which
textural measure might give the best input for i.smap. Anyway I will
give Sum Avarage a try. With my dataset (resolution 0,5 meters and
mainly smaller trees and shrubs), I will use a distance value of 2 and,
following your example, using two windowsize: a smal one of 3 and a
medium one of 9.

Untill now I used the Variance measure with distance 1 and windowsize 3.
I (not knowing what r.texture realy does) used only one direction as
input and the result (r,kappa) was worse than with no textural measure.
This was caused by i.e. transitions from water to grassland that (with
higher variance) were classified as forest

Jonathans bottom-up approach (
http://casil.ucdavis.edu/docman/view.php/52/141/greenbergetal2006b.pdf )
seems interesting. I might give that one a try for a more detailed
classification as a testcase, since we have also a detailed vegetation
map (scale 1:5000, dating from 2005) at hand that we use for training
sites in our coarser classification.

Regards,

Wout