Download - Presentation of the Orfeo Toolbox
1
orfeo-toolbox.org
Presentation of the Orfeo Toolbox (OTB)Presentation of the Orfeo Toolbox (OTB)
2
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
3
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
4
orfeo-toolbox.org
Framework : ORFEO Accompaniment Program
Goals : make easier the development of new algorithms, their validation and capitalisation, fill the gap between researchers and ORFEO users
CNES is responsible for design and specification
Open source software for Image Processing labs, users and the industry
OTB= Image processing library with focus on feature extraction
Development of OTB functionalities driven by thematic ORFEO user’s need
Why Orfeo Toolbox ?Why Orfeo Toolbox ?
5
orfeo-toolbox.org
What is OTB ? (1/3)What is OTB ? (1/3)
Multi-purpose library for image processing Orthorectification, cartographic projectionsImage fusion, pan-sharpeningRadiometric correctionRegistrationFiltering, segmentation, classificationFeature extraction (texture, lines, vegetation indexes)Basic change detectionBasic feature extractionSupervised learningObject countingSpatial reasoningEtc....
Many examples and binary applications for specific tasks (open source) Command line or GUI
6
orfeo-toolbox.org
What is OTB ? (2/3)
• C++ library based on existing developments
OTB
Library
Applications
Developpers
Utilities
UsersExternal libs
7
orfeo-toolbox.org
What is OTB ? (3/3)What is OTB ? (3/3)
Main characteristicsExtension of the ITK API formalismOpen Source (CeCILL licence)Multi-platforms (Linux, UNIX, MS-Windows, MAC OS)Open source libraries : ITK (segm., registr.), GDAL, OSSIM (carto, ortho), VTK, FLTK (GUI), LibSVM (supervised learning & classif.)C++ language ➢Type genericity (int, float, double, complex) - use of templates➢“Typedef” knowledge required...
Always the same formalism to plugin elementary image processing blocks Synchronized pipeline (processing on demand)Streaming and multi-threading process
8
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
9
orfeo-toolbox.org
Line detection on SAR images
Library and Functions Library and Functions
10
orfeo-toolbox.org
Perceptual alignment detection
Library and Functions Library and Functions
11
orfeo-toolbox.org
Change detection
Library and Functions Library and Functions
12
orfeo-toolbox.org
Original Blurring Edge preserving
Denoising
Library and Functions Library and Functions
13
orfeo-toolbox.org
Circle extraction
Library and Functions Library and Functions
14
orfeo-toolbox.org
Watershed segmentation
Library and Functions Library and Functions
15
orfeo-toolbox.org
Object segmentation
Library and Functions Library and Functions
16
orfeo-toolbox.org
Supervised classification
Library and Functions Library and Functions
17
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
18
orfeo-toolbox.org
OTB applications OTB applications
otbImageViewer
otbImageViewerManager
19
orfeo-toolbox.org
Applications – Image viewer
otbImageViewer
20
orfeo-toolbox.org
Applications Applications
otbRoadExtractionApplication
otbSupervisedClassificationApplication
21
orfeo-toolbox.org
Applications – SegmentationApplications – Segmentation
otbSegmentationApplication
22
orfeo-toolbox.org
otbSegmentationApplication (1/8)
23
orfeo-toolbox.org
otbSegmentationApplication (2/8)
24
orfeo-toolbox.org
otbSegmentationApplication (3/8)
25
orfeo-toolbox.org
otbSegmentationApplication (4/8)
26
orfeo-toolbox.org
otbSegmentationApplication (5/8)
27
orfeo-toolbox.org
otbSegmentationApplication (6/8)
28
orfeo-toolbox.org
otbSegmentationApplication (7/8)
29
orfeo-toolbox.org
otbSegmentationApplication (8/8)
30
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
31
orfeo-toolbox.org
What is Monteverdi ?What is Monteverdi ?
Framework to interactively build a image processing pipeline
Orfeo Toolbox components :
Functions and filters
Applications
Global framework
=> Monteverdi
32
orfeo-toolbox.org
Main menu
File
SAR
Filtering
Learning
Geometry
Visualization
Help
MonteverdiMonteverdi
33
orfeo-toolbox.org
Visualization
Viewer
Monteverdi – ViewerMonteverdi – Viewer
34
orfeo-toolbox.org
Geometry
Orthorectification
Reproject image : reprojection of ortho-images
Superimpose two images
Homologous points extraction : manual selection of homologous points,
then re-sampling of the image on the fixed one.
GCP to Sensor Model : manual set of longitude / latitude of
geographical points, then re-sample of the image.
MonteverdiMonteverdi
35
orfeo-toolbox.org
Menu Geometry > Orthorectification
MonteverdiMonteverdi
36
orfeo-toolbox.org
Menu Geometry > Homologous points extraction
MonteverdiMonteverdi
37
orfeo-toolbox.org
Menu Geometry > GCP to sensor model
MonteverdiMonteverdi
38
orfeo-toolbox.org
Filtering
Feature Extraction
Meanshift clustering
Pan-sharpen an image
Band math
Change detection
Threshold
MonteverdiMonteverdi
39
orfeo-toolbox.org
Filtering
Feature Extraction (1/3)
MonteverdiMonteverdi
40
orfeo-toolbox.org
Filtering
Feature Extraction (2/3)
MonteverdiMonteverdi
41
orfeo-toolbox.org
Filtering
Feature Extraction (3/3)
➢More than 65 features ! Mean, variance, Gradient, spectral angle
Textures (energy, entropy, contrast, etc)Morphological filters
Radiometric indexes• Vegetation (NDVI, ARVI, etc), Soil, Built up, Water
Edge density
Mean shift
Original data (=> no need to concatenate channels after filtering)Etc
➢Use before SVM classification for example
MonteverdiMonteverdi
42
orfeo-toolbox.org
MonteverdiMonteverdi
Filtering
Change
Detection
43
orfeo-toolbox.org
Menu Learning > SVM classification (1/2)
MonteverdiMonteverdi
44
orfeo-toolbox.org
Menu Learning > SVM classification (2/2)
MonteverdiMonteverdi
45
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
46
orfeo-toolbox.org
Documentation
OTB user guide
Examples of class use
Example of input and output images
Doxygen documentation
Class interface, hierarchies, methods, etc
OTB utilities and applications source code (open source)
Amount of examples to build you own application
47
orfeo-toolbox.org
User Guide
OTB user guide (1/2)
48
orfeo-toolbox.org
OTB user guide (2/2)
49
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
50
orfeo-toolbox.org
Hello world program Hello world program
#include "otbImage.h"
#include "otbImageFileReader.h"
#include "otbStreamingImageFileWriter.h"
#include "itkGradientMagnitudeImageFilter.h"
int main( int argc, char * argv[ ] )
{
typedef otb::Image<unsigned char, 2> ImageType;
typedef otb::ImageFileReader<ImageType> ReaderType;
ReaderType::Pointer reader = ReaderType::New();
typedef otb::StreamingImageFileWriter<ImageType> WriterType;
WriterType::Pointer writer = WriterType::New();
reader->SetFileName(argv[1]);
writer->SetFileName(argv[2]);
typedef itk::GradientMagnitudeImageFilter <ImageType,ImageType> FilterType;
FilterType::Pointer filter = FilterType::New();
filter->SetInput(reader->GetOutput());
writer->SetInput(filter->GetOutput());
writer->Update();
return 0;
}
Simple pipeline example
File Reader
Gradient filter
File writer
51
orfeo-toolbox.org
From the hello world example to an OTB application From the hello world example to an OTB application
Advantages
Same code whatever the input image (many formats, huge images)
Binaries can run on several processors
Difficulties
Steep learning curve but real benefit on the long term
52
orfeo-toolbox.org
Python / Java / IDL bindings
Context
Not all users like C++ programming
Higher level languages are more appealing
Many users have legacy code in other languages
Need of rapid prototyping with an interactive command line
=> Python / Java / IDL bindings
53
orfeo-toolbox.org
Development with OTB Development with OTB
Library source code and applications source code are useful to build :
Image processing chainsComposite filters with existing filters / blocksSpecific filters
And if I don't want / don't know how to develop with C++ ? Use of OTB Python, Java, IDL bindings
And if I don't want to develop ?Use of OTB utilities and applications
54
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
55
orfeo-toolbox.org
OTB distributed under the CeCILL Licence
http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
Free software as free speech, not free beer
If I wanted to distribute an application using OTB what license would I need to use?
The CeCILL licence
OTB Licence and contributions (1/2)OTB Licence and contributions (1/2)
56
orfeo-toolbox.org
If I write an application using OTB am I forced to distribute that application?
No. The license gives you the option to distribute your
application if you want to. You do not have to exercise this
option in the license.
I am a commercial user. Is there any restriction on the use of OTB?
OTB can be used internally ("in-house") without restriction, but
only redistributed in other software that is under the CeCILL
licence.
OTB Licence and contributions (2/2)OTB Licence and contributions (2/2)
57
orfeo-toolbox.org
Contents of the presentation
Introduction
Library and functions
Presentation of applications
Presentation of Monteverdi
Documentation
Development with OTB
OTB License and contributions
Roadmap
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)
58
orfeo-toolbox.org
December 2008Object counting (Pléiades, QB, Ikonos)Road network extraction (Pléiades, QB, Ikonos, SPOT5)Hydrographic network extraction (Pléiades, QB, Ikonos, SPOT5)
February 2009Urban area extraction (Pléaides, CSK, QB, Ikonos, TSX, SPOT5)Image to Data Base registration (Pléiades/QB to BDTopo)
April 2009Radiometric calibration (Pléiades, SPOT5, QB, CSK, ASAR, ERS, RadarSAT)Individual trees and tree stands extractionPlanning can evolve depending on user requirements
December 2009
Monteverdi
RoadmapRoadmap
59
orfeo-toolbox.org
Web sites
OTB main page http://orfeo-toolbox.org/
OTB download http://sourceforge.net/projects/orfeo-toolbox/
Beta version download http://hg.orfeo-toolbox.org/
Wiki (contributors doc.) http://wiki.orfeo-toolbox.org
Bugs reporting http://bugs.orfeo-toolbox.org
Blog http://blog.orfeo-toolbox.org
Useful linksUseful links
60
orfeo-toolbox.org
Thank you for your attention
http://www.orfeo-toolbox.org/
Orfeo Toolbox (OTB)Orfeo Toolbox (OTB)