Presentation of the Orfeo Toolbox

Post on 27-Jan-2015

127 views 6 download

Tags:

description

General presentation of the Orfeo Toolbox Library (OTB)

transcript

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)