A complete toolchain for objectbased image analysis with GRASS GIS
Formal Metadata
Title 
A complete toolchain for objectbased image analysis with GRASS GIS

Title of Series  
Part Number 
163

Number of Parts 
193

Author 

License 
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. 
Identifiers 

Publisher 

Release Date 
2016

Language 
English

Content Metadata
Subject Area  
Abstract 
Objectbased image analysis (OBIA) is the current state of the art feature extraction technique for very high resolution (VHR) satellite imagery. While one proprietary tool dominated the market for years, more and more alternative solutions now appear, including free software based, and research continues to produce new approaches. However, many of the techniques implemented in free software are not easily accessible to the inexperienced user. This presentation presents efforts to develop a complete tool chain of easytouse modules for OBIA in GRASS GIS, ever since the development of an image segmentation module i.segment during GSoC 2012. Amongst the other modules presented are i.segment.uspo for unsupervised segmentation parameter optimization, i.segment.hierarchical for hierarchical segmentation, v.stats and i.segment.stats for the collection of statistics characterizing the objects, v.class.ml and v.class.mlR for supervised image classification. Combining these modules enables semiautomatic treatment of VHR imagery in a completely free software environment, as shown through examples of the two research projects SmartPop (funded by ISSeP) and MAUPP (funded by BELSPO). The talk will end with some reflections about possible further enhancements of this process, including through the combination of GRASS GIS with other FOSS4G tools.

00:00
CAN bus
Computer animation
Object (grammar)
Computergenerated imagery
Projective plane
Mathematical analysis
Grass (card game)
Grass (card game)
Mereology
Traffic reporting
Formal language
00:25
Satellite
Metropolitan area network
Execution unit
Pixel
Image resolution
Matter wave
Image resolution
Computergenerated imagery
3 (number)
Bilderkennung
Grass (card game)
Mathematical analysis
Grass (card game)
Special unitary group
Medical imaging
Hardy space
Computer animation
Object (grammar)
Selforganization
Object (grammar)
Pixel
Exception handling
01:48
Rule of inference
Medical imaging
Pixel
Computer animation
Object (grammar)
Content (media)
Object (grammar)
Content (media)
5 (number)
Mereology
Pixel
Statistics
02:23
Group action
Module (mathematics)
Identifiability
Computergenerated imagery
Mass
Parameter (computer programming)
Bound state
Mereology
Local Group
Medical imaging
Computer configuration
Different (Kate Ryan album)
Object (grammar)
Core dump
Endliche Modelltheorie
Series (mathematics)
output
Pixel
Metropolitan area network
Physical system
Algorithm
Chemical equation
Graph (mathematics)
Parameter (computer programming)
Line (geometry)
Limit (category theory)
Type theory
Computer animation
Intrusion detection system
Raster graphics
Function (mathematics)
Object (grammar)
03:34
Pixel
Algorithm
Euler angles
State of matter
Set (mathematics)
Parameter (computer programming)
Mereology
Distance
Shift operator
Code
Field (computer science)
Arithmetic mean
Term (mathematics)
Different (Kate Ryan album)
Band matrix
Radius
Object (grammar)
Integer
Pixel
Mathematical optimization
Physical system
Area
Shift operator
Algorithm
Inheritance (objectoriented programming)
Mapping
Parameter (computer programming)
Thresholding (image processing)
Electronic signature
Band matrix
Arithmetic mean
Computer animation
Personal digital assistant
Normal (geometry)
Object (grammar)
Mathematical optimization
Spectrum (functional analysis)
Spacetime
05:43
Module (mathematics)
Multiplication sign
Computergenerated imagery
Maxima and minima
3 (number)
Electronic mailing list
Parameter (computer programming)
Thresholding (image processing)
Local Group
Medical imaging
Different (Kate Ryan album)
Energy level
Software testing
Integer
Series (mathematics)
output
Mathematical optimization
Metropolitan area network
Rule of inference
Dialect
Electronic mailing list
Parameter (computer programming)
Range (statistics)
Price index
Process (computing)
Computer animation
Software testing
Object (grammar)
Mathematical optimization
06:56
Point (geometry)
Axiom of choice
Empennage
Rectangle
Decision theory
Maxima and minima
Parameter (computer programming)
Mereology
Thresholding (image processing)
Graph coloring
Inference
Different (Kate Ryan album)
Object (grammar)
Information
Data structure
Fuzzy logic
Rule of inference
Dialect
Information
Bit
Statistics
Computer animation
Network topology
Software testing
Object (grammar)
Mathematical optimization
Form (programming)
Data structure
08:02
Axiom of choice
Statistics
Module (mathematics)
Mapping
Service (economics)
Identifiability
Computer file
ACID
Grass (card game)
Function (mathematics)
Parameter (computer programming)
Surgery
Entire function
Variable (mathematics)
Number
Medical imaging
Feldrechner
Object (grammar)
Vector space
Pressure volume diagram
Endliche Modelltheorie
output
Form (programming)
Module (mathematics)
Rule of inference
Compact space
Pairwise comparison
Axiom of choice
Texture mapping
Mapping
Computer file
Code
Price index
Grass (card game)
Variable (mathematics)
Statistics
Number
Arithmetic mean
Computer animation
Vector space
Raster graphics
Repository (publishing)
Calculation
Object (grammar)
Form (programming)
Geometry
10:14
Machine learning
Computer animation
Object (grammar)
Different (Kate Ryan album)
Social class
Grass (card game)
Series (mathematics)
Variable (mathematics)
Statistics
Virtual machine
10:30
Group action
Set (mathematics)
Numbering scheme
Grass (card game)
Complete metric space
Parameter (computer programming)
Function (mathematics)
Medical imaging
Mathematics
Different (Kate Ryan album)
Object (grammar)
Process (computing)
Endliche Modelltheorie
Office suite
Series (mathematics)
Physical system
Social class
Scripting language
Machine learning
Algorithm
Meta element
Software developer
Bilderkennung
Numbering scheme
Complete metric space
Statistics
Virtual machine
Forest
Partition (number theory)
Arithmetic mean
Computer configuration
Chain
Different (Kate Ryan album)
Selforganization
output
Arithmetic progression
Resultant
Asynchronous Transfer Mode
Random number
Module (mathematics)
Algorithm
Virtual machine
Voting
Chain
Term (mathematics)
Tunis
Form (programming)
Module (mathematics)
Rule of inference
Electronic data processing
Execution unit
Weight
Graph (mathematics)
Mathematical analysis
Grass (card game)
Voting
Computer animation
Integrated development environment
Social class
Object (grammar)
Capability Maturity Model
Library (computing)
13:49
Module (mathematics)
Scaling (geometry)
Matching (graph theory)
Projective plane
Feedback
Planning
Mereology
Statistics
Variable (mathematics)
Geometry
Graphical user interface
Computer animation
Integrated development environment
Different (Kate Ryan album)
Object (grammar)
Software testing
Social class
Software testing
Associative property
Form (programming)
Resultant
14:45
Point (geometry)
Module (mathematics)
Rule of inference
Execution unit
Algorithm
Module (mathematics)
Graph (mathematics)
Virtual machine
1 (number)
Bit
Variable (mathematics)
Performance appraisal
Geometry
Graphical user interface
Computer animation
Object (grammar)
Normed vector space
Social class
Software testing
Object (grammar)
Geometry
Social class
16:02
Module (mathematics)
Image processing
Set (mathematics)
Graph coloring
Food energy
Theory
Scalability
Variable (mathematics)
Medical imaging
Geometry
Graphical user interface
Term (mathematics)
Different (Kate Ryan album)
Object (grammar)
Rule of inference
Weight
Bound state
Mathematical analysis
Bilderkennung
Complete metric space
Process (computing)
Computer animation
Normed vector space
Social class
Software testing
Quicksort
17:07
Rule of inference
Key (cryptography)
Inheritance (objectoriented programming)
Software developer
Image resolution
Execution unit
Lattice (order)
Plastikkarte
Mereology
Rule of inference
Flow separation
Medical imaging
Computer animation
Moving average
Object (grammar)
Acoustic shadow
Window
Resultant
19:13
Satellite
Axiom of choice
Multiplication sign
Real number
Image processing
1 (number)
3 (number)
Maxima and minima
Complete metric space
Plastikkarte
Bookmark (World Wide Web)
Web 2.0
Medical imaging
Frequency
Chain
Hypermedia
Process (computing)
Endliche Modelltheorie
Information security
Scripting language
Information
Mapping
Chemical equation
Graph (mathematics)
Graphical user interface
Process (computing)
Computer animation
Auditory masking
output
21:30
Computer animation
00:08
In the sale more or less the
00:14
rest of this report with very specialized 1 on 1 aspect of what's going on the grass project just 7 this part also of research going on in the language the financed by 2
00:27
different organisms the Belgians federal science policy and someone institutions FIL grass generous the all but still there and very much so and very generalization in the grass does everything except for the morning coffee after the party that otherwise really about what I'm going to focus on today is the image of treatment of satellite images the
01:07
just to we show that that we're on the same wavelength when I talk about objects this image analysis is that it really is the example we coming from the situation where we have satellite images for such as The Lancet images here where individual objects much smaller than the pixels so pixel would be urbanized we can see individual houses to a situation where we have a very high resolution imagery where are the objects are much bigger than pixels so the issue becomes to identify the objects in there before we
01:51
so which comes from identifying the contents of pixels to grouping pixels and labeling this 3 basic steps and then there's the image segmentation of of creating the objects is the characterization of these objects dealing with the data you want and then based on the labeling so the classification so
02:15
the segmentation part is you have an image and you want to identify the objects and so
02:23
we different algorithms exist that and try to identify individual objects in graphs that's kind of
02:32
the core model of this voltage and we have the I. segment model Will you give it any group of images you want so it works in multispectral and it gives you the rest man with the the different object ID is in this true but interesting options in their 1 is to define a balance mass which can predefined limits of the objects so you can then actually say only segment within this object but don't cross the lines that allows it to do topdown hierarchical segmentation so we start from the top and the new segment within certain types of even more etc. such and there's a bottomup option which is to work with so you already have small objects and then you ask the system to merge them together so that you can do bottomup the important part within is that you have to choose a series of parameters and that's always
03:34
a difficult part by now we have 2 algorithms in segment the 1st is the region growing and the 2nd which is brand new it's not in the trunk codes yet but it will be pretty soon as mean shift a region growing is a system where you start with individual States pixels and emerged as you go along and mean shift is where you take your pixels and you kind of shift and 2 is the mean of the of the neighbors get similar itself to be even more similar so whatever parent is an integer attitudes which objects to merge that means how close 2 objects have to be in the spectral space to for the 1st emerged and the mean shift cyber them we also have a spatial bandwidth we have to decide which areas that we look at in terms of the pixels and also which neighbors to really get in terms of proximity within the spectral demonstrate all this means that a new parameter tuning which is generally done in of cases them by hand people just try out and look at the map and what we trying to implement is an
04:51
unsupervised segmentation Paramita optimization trying to find the best settings of these parameters and this is always relative obviously and it's a tradeoff between at the 1 norm wants anyone to have high homogeneity within objects so all pixels that are within an object should be pretty close to each other in terms of the the spectral signatures and high heterogeneity between objects so any 2 objects should be different as much as possible and some this is so there's a lot of literature on that and it's ongoing research field but still we implemented 2 different optimization algorithms based on these articles here and so we created a lot but I segment is here where you can actually give it
05:45
images obviously any given a list of test regions because obviously if you on a test and you know a lot of characters and if you have a lot of and that is a lot of time so what you do is you choose a series of smaller regions within the image as test regions and then you tell it OK I wanna take shit I want you to test the threshold for example From this value and this value with a step of this and then goes different regions and run the segmentations and calculates optimization criterion indicator and you can choose this different optimization criterion used and into those as well to see rather more focus on the integers between objects on will focus on the homogeneity within objects that and it gives you then as up the best parameters and possibly you want to even the best man and it's more processing enabled meaning that if you have several costs you can run the test in parallel this level segmentation but in parallel so it speeds things up so here
06:49
you have an example you have different tests regions and so does different segmentations
06:57
and here in this example I also tested for the threshold and you can see there's different threshold values that come different reasons so at 1 point there is a decision that needs to be taken obviously and these are the the 3 regions so the some of choice to be made the next part once we
07:15
have decided OK this is uh the segmentation parameters so we segmented we've got objects now we get can characterizes so for example you these are trees or bushes there red because this is the inference false color compositions and yeah he haven't seen this fuzzy of structure is not really very clear that they are a bit above ground social hide information you can use that as well and they have a higher information value steakhouse is more rectangular it's high above the ground you have for example this 1 you have high values in red it's fairly large so you can work with the size and 2nd so for this we have a
08:04
model which is called a segment steps which takes the output of the assignments and then calculate statistics on the object you can give it any other restaurants that you want to look at the statistics for so if you want have the meaning uh and for for example or or or mean texture or whatever or or maximum whatever we can concatenate all the statistics for each object it would have the statistics and you have a choice of form variables so parameter and other indicators of counted in on the form of comparisons compactness of the form things like and you can show is being you 1 the output of the vector map of gives you the objects within attributed with no statistics or you can just get out a serious follow that choosing a file that contains all the object identifiers and this is 6 lead to that and I'll come back to the question of files services vector of the problem when you go to the vector stages that especially work workers very very large numbers of objects and some of the images that we work with you know you come up to millions of objects that you identify these images vectorization processes are often very slow or and so before we only have a module which calculated the objects form statistics in a vector form and grass and that was quite slow to then we move from the acid to the vector to calculate performance indicators and so we created a new model is ah object geometries which is also just just entered the the repository last moves last week and that the postproduction and the year it takes the roster output of the i sigma model and it calculates the the the object form statistics and it's much much faster than what we could do before surgery there a big plus the so you have these
10:12
segments and for each
10:16
segment so used to this 1 which is selected you have a whole series of all variables characterized each segment and that will then allow to classify and each segment
10:30
to label each object to what and most of what's going on now in terms of enabling of objects uses machine learning there's different machine learning algorithms and we decided to not implement all these arguments and in graphs itself but rather to problems the fact that we have sophisticated scientific libraries that exist in different programming environments and so those 2 modules actually that I frontend of their grass modules to run them just as in the model but they're not from to libraries of 1 is from 10 to Python could learn in an MLP I and the other is a you are said to especially the caret package which is a pair had kind meta package allowing to run a whole series of machine learning algorithms currently we only have supervised learning meaning that you have to give the algorithms and training sets of objects where you say this object is this subject is that and then it runs in machine learning on something this for future development so the classification that take the example of the the customer it uses automatic tuning which the caricature office so a lot of people the algorithms they need tuning as well you have to decide what is Paris so the care package does that as well that's also done in whenever possible data processing and currently we have these 4 algorithms that can be called that is obviously quite easy to then extended to more rooms and so that something is going to come in that modulus well we have implemented a majority voting scheme where there's only you can run actually several but research and then at the end of the module organization between these different algorithms and then uh the majority wins or you can have a weighted majority and different different forms of majority voting to decide which is the uh the class that the object comes in you have the opportunity to output all the individual classifiers results as well so you don't have to trust the system setting in so that means we now have a really complete tool chain in graphs which allows to do the objectbased image analysis and this is and then the image of our we graphical models which allows it to
13:10
graphically group 2 different models together and then use a random search for you can spit it out as a Python scripture you can increase the model out of it and then if you can run independently of the of the mother the mother is still work in progress but it works quite well for just moving all these different commands together and you can also call also here I've kind of hard coded these images i wanna put into the analysis but you can also parametrized so when you run this script and script as to which not the 1 running around so you can really create your own change with flexible input so these are
13:51
some results from this research projects that I spoke about the beginning which 2 research projects 1 where we about both the matching of the the aim to better modelize population on a very very local scale to see where are people actually 1 is in Africa's as where the 1 in Belgium association and so we actually worked out the science and try them out on these 2 different environments and they quite satisfying results of so so you can see this segmentation part and this is the leading parts in the results here so when we
14:30
go from there testing testing testing and so on we're doing that it has a lot of obviously the more we get feedback on immoral people in different situations different environments better than this we're planning
14:47
on adding more formal roles in the our object geometry because this is a bit limited at this stage this style of person we can make more classifiers in the classification aspects machine learning algorithms including unsupervised ones we at this stage at this stage when we use the money to the it so a mistake this is this is actually classifications was strong in the class accuracy at at this point we only take overall accuracy as a as an evaluation of the classification and not the and that each class individually so that's a lot of things that we can work on their the nice to have a dedicated modules going that allows you to you very easily pick training objects out of the objects on the freedoms instrumentation and whatever you want contribute that's obviously would be great I think another aspect that is interesting to have a session here together today we can see how we can introduce a bit more with the other tools such as for example and you get down into the graph to a well so that's it thank
15:59
you a
16:03
fast do we have any questions what is greater than k permitting nothing then this sort of pipelining theories and weightings and image analysis and what we found is something that is quite useful do can't image processing 1st sometimes spitting out color is the the exact answers that was able we have these In this process of energy the complete tool sets in terms of the image treatment you can you can do better because you can can do a whole lot of analysis trade close to the bounds of the difference in the cities you can do atmospheric correction you can do a lot of it and he is asking it's easy to say no at this stage now we have the same discussion last nite scalable and his so that
17:05
not again yes OK I suppose
17:11
that we have a meeting is misses the DDT Jesus actually at the University of Reading Online depending on the mood of the keys in the the it is not only to the induced Italy's not exact spend money into these different when you should all in units that have to know that the dead horse he saw this is this but don't don't do what you here and I think that's a lot of stuff exceeding the m we have the additional or on the 1 side you know we have for a different spectral values so you will to induce the how users all trying to modernize the don't results yeah that's that's the graphical problem the getting these images and the as we get more and more into this very high resolution images we have a lot of promise that the shadows and if you take a house like this you will have you know you have little window here oriented to me all these will become different objects whereas the latter part of the same house with so that's so the question is then that's part of the of the parents tuning in the segmentation to decide is it better to divide the house in several parts and then enter labeling step the grouping together saying all these are actually part of a house war or is to try to segment in a way that you get the entire object which is often quite difficult so generally I would say it's better to over segments to create more objects more segments then you have actual objects and then add the labelings that tried to label all these so you have rules in shadow rules in the sense that both of them will be part of a house we can not In his research this the I n this general question the if you are a developer behind the
19:15
image processing scientists and do you have a particularly favorite references for conceptual understanding in image processing if you just trying to get from this balance will uh I don't have anything right now to instead of my hence the period of time and there is a lot of stuff on image processing on the web and you can just this thing here just needs and intro for them is if you 1 on on on on image the processing that's all that's available and well I don't think I don't have any other anybody else has an idea of this is the great reference the grasp of their government and media as it doesn't contain the objectbased treatment yet but it does have a lot of information on what our satellite images and what think of when this is coming out of the year he the we're just follow the usual the then many ones will question about their going model that you will make you mentioned How to imagine it can I can
20:36
instantly make a molecule like that and then created and screwed up a from anything 1st like that there's no OK so here you you can do you can in the the pudding model or you put in data so you can start with the data is not with them with processes you wanted hitching whatever you want and you have possibility to export as a Python script and actually the nicest thing that if you permit right so that means for example if the input mask fine hard coded but he's saying when I run this could I want to give the the maps and the Python script it's actually like a real graphs model which then automatically take creates a graphical user interface so it gives you the choice of the possibility to choose something on the same killed social Security eventually