Centre de Morphologie Mathmatique (CMM) Mines ParisTech Overview - - - PowerPoint PPT Presentation

centre de morphologie math matique cmm
SMART_READER_LITE
LIVE PREVIEW

Centre de Morphologie Mathmatique (CMM) Mines ParisTech Overview - - - PowerPoint PPT Presentation

Centre de Morphologie Mathmatique (CMM) Mines ParisTech Overview - Founding Concept - Software Development Layers - Fundamental Notion - Algorithm Decomposition - Content - Conclusion Founding Concept Aim Improve and Extend our old


slide-1
SLIDE 1

Centre de Morphologie Mathématique (CMM) Mines ParisTech

slide-2
SLIDE 2
  • Founding Concept
  • Fundamental Notion
  • Software Development Layers
  • Algorithm Decomposition
  • Content
  • Conclusion

Overview

slide-3
SLIDE 3

Aim Improve and Extend our old library (Xlim3d)

Founding Concept

slide-4
SLIDE 4

Needs Parallel dev Readability Robustness Aim Improve and Extend our old library (Xlim3d)

Founding Concept

slide-5
SLIDE 5

Needs Parallel dev Readability Robustness Solutions Modular Reusable Encapsulation Aim Improve and Extend our old library (Xlim3d)

Founding Concept

slide-6
SLIDE 6

Needs Parallel dev Readability Robustness Solutions Modular Reusable Encapsulation Tools SVN Tests Genericity Design Patterns Aim Improve and Extend our old library (Xlim3d)

Founding Concept

slide-7
SLIDE 7

Software Development Layers

Customized Graphical User Interface Script Layer C++ Core Layer C-Like Layer

Low - Level Developers Application Users (Industrial) Very flexible layer for generic algorithm design.

C - Like interface

Python :

  • Ease of use
  • Fast Algorithms Implementation
  • Transparency with Core Layer
  • Prototyping
  • Educational purposes

User-Friendly interface for specific applications Laboratory Users & Teaching

slide-8
SLIDE 8

Fundamental Notion

Data Types Abstraction

controller

Simple Iterator Neighborhood Iterator Mask Iterator complexe Iterator

? Max + = ImMaximum Max + = ImDilate

step

Min + = ImMinimum

OnRegion Operator

Generic Function

Neighbor

ES 1 V1

0,0 0,-1 0,+1 +1,0

  • 1,0
slide-9
SLIDE 9

template<class ImageIn, class ImageValues, class SE, class ImageOut> RES_C t_ImLabelWithAverage( const ImageIn& imIn, const ImageValues & imVals, const SE& nl, ImageOut &imOut) { … s_LabellingMeasureAverage<tVal,tOut> opAvg; s_ConnexityIsNotBeingZero<ImageIn,ImageOut, LabelImageOutputPolicy_Default, LabelValuesPolicy_Default> opCnx; Return t_ImLabelWithConnexityOperatorWithValues(imIn,imVals,nl,opCnx,op Avg,imOut);

Algorithm Decomposition

slide-10
SLIDE 10

Python Example

def MyErode2(imIn,nl,imOut): itIn = imIn.imageData() itOut = imOut.imageData() neighb = createNeighborhood( imIn, nl ) while itIn.isNotFinished() and itOut.isNotFinished(): neighb.setCenter( itIn ) itOut.setPixel( min( neighb.imageData() ) ) itIn.next() itOut.next() def MyErode1(imIn, nl, imOut): # lambda version: morphee.ImNeighborhoodUnaryOperation(imIn, nl, lambda l:min(l), imOut) # version using 'min' function: morphee.ImNeighborhoodUnaryOperation(imIn, nl, min, imOut) def main():

im=fileRead("./Gray/foreman.png") imEro = getSame(im) imEroRef = getSame(im) nl = neighborsSquare2D # C++ function ImErode( im, nl, imDilRef)

slide-11
SLIDE 11

Content

Images Structure :

  • Multi-dimensional image data
  • Templated image data structures for pixel type

abstraction

  • Several image le formats avalaible:

PNG,TIFF,BMP,JPEG,VTK,... Structuring Element :

  • Myriad of predefined Structuring element
  • Easy use and easy manipulation of SE Iterator
  • Multi-dimentionnal structuring element
  • Dynamic Structuring Element
  • Image-based Structing Element
  • Neighborhood based Generic operations

Morphological Operation:

  • Criteria based morphology (AreaClosing,...)
  • Basic morphological operators(Erode,...)
  • Distance functions and Geodesic operators
  • Lexicographical morphology
  • Morphological lters and measures
  • Labelling and Leveling
  • Morphological Segmentation

Image Processing:

  • Arithmetics and logics
  • Color conversion and manipulations
  • Geometrics transformations (Drawing,rotation,...)
  • Pixel-wise generic operatior

Filters:

  • Convolution Filters
  • Diffusion Filters
  • Noising Filters

Statistics Tools:

  • Kriging
  • Linear algebra
  • Morphological Measures (Granulometry,...)
  • Usual statistics (mean, variance, ... )
  • Histograms and Counting (threshold intervariance class, ...

Graphs and Addons

  • Morphology based on graph and Tree
  • Graphs Cuts and Graph Manipulation
  • FFT, Skeleton, ...
slide-12
SLIDE 12

Conclusion

Portability: 32bits or 64bits, Windows, Linux, OS X Genericity:

  • Modular and robustness project
  • Each Algorithms can be extended easily
  • Algorithms disconnected from data representation
  • Pixel Types abstraction (scalar, vector, matrix,…)
  • Robustness
  • Collaborative working

Features & Advantage A Lots of Addons:

  • Morphology on Graph
  • Morphology on Multi-Hyper spectale images
  • Skeleton
  • Maxtree, FFT,….
slide-13
SLIDE 13

Portability: 32bits or 64bits, Windows, Linux, OS X Genericity:

  • Modular and robustness project
  • Each Algorithms can be extended easily
  • Algorithms disconnected from data representation
  • Pixel Types abstraction (scalar, vector, matrix,…)
  • Robustness
  • Collaborative working

Features & Advantage

Conclusion

Drawback Coding time (heavy design, funny debug…) Performance ( Not design for that !) Code Size (must be patient for browsing and compiling the code) Code Adaptation period (student or post-doc) A Lots of Addons:

  • Morphology on Graph
  • Morphology on Multi-Hyper spectale images
  • Skeleton
  • Maxtree, FFT,….
slide-14
SLIDE 14

Conclusion

Drawback Coding time (heavy design, funny debug…) Performance ( Not design for that !) Code Size (must be patient for browsing and compiling the code) Solution: SMIL Light genericity / Generic-friendly Optimized algorithms as far as possible Parallel Programming / fast library Predefined image Types ( avoid exotic types) Work on 2D and 3D images Design by Matthieu Faessel Code Adaptation period (student or post-doc) Portability: 32bits or 64bits, Windows, Linux, OS X Genericity:

  • Modular and robustness project
  • Each Algorithms can be extended easily
  • Algorithms disconnected from data representation
  • Pixel Types abstraction (scalar, vector, matrix,…)
  • Robustness
  • Collaborative working

Features & Advantage A Lots of Addons:

  • Morphology on Graph
  • Morphology on Multi-Hyper spectale images
  • Skeleton
  • Maxtree, FFT,….
slide-15
SLIDE 15

What’s next ?

  • Parallel programming
  • Optimized Algorithms
  • Have Standalone
  • Java & Python binding
  • Free/Fast

SMIL:

Morph-M:

  • Research Library
  • Generic Prototyping
  • Educational
  • Industrial Project
  • Proprietary

Mamba:

  • Free/ Light
  • Simple / Fast
  • Fit for eductional purposes
  • Applications Prototyping
slide-16
SLIDE 16

Watershed Hierarchy Road mask

Road Detection & tracking based

  • n hierarchical Segmentation

Computer Vision (2D+t) Segmentation of Seismic Data Interactive Segmentation of 3D Medical Images Urban Modeling Some Applications

Gradient

Façades, Ground, Artifacts

Lampposts , Cars Pedestrians, Others Point Clouds Semantic Analysis Haussmannian facades Analysis

Microtomography Analysis

slide-17
SLIDE 17

Thanks for you attention Question ?

slide-18
SLIDE 18

Image Processing Library Specialized in Mathematical Mophology

Mines ParisTech - Centre de Morphologie Mathématique - 35, rue Saint Honoré 
77305 Fontainebleau CEDEX (France) – http://cmm.ensmp.fr

Features

Morph-M is the result of the work of several researchers at the Centre for Mathematical Morphology. Morph-M provides a rich environment for the development of image processing algorithms.

Portability Genericity Professional Quality

Windows, Linux & Mac ; 32 and 64 bits Morph-M offers a large choice regarding image types and structuring elements Nightly regression tests Sources manager Bug tracker CMS

Software Development Layers

Customized Graphical User Interface Script Layer C++ Core Layer C-Like Layer

Low - Level Developers Laboratory Users & Teaching Application Users

Very flexible layer for algorithm design. C - Like interface

Python :

  • Ease of use
  • Fast Algorithms Implementation
  • Transparency with Core Layer

User-Friendly interface for specific applications

More Information

Morph-M represents a reference in mathematical morphology.

Extensible

serge.koudoro@mines-paristech.fr http://morphm.ensmp.fr

Contact

A myriad of addons Connection with several libraries (vtk,

  • pencv, … )
slide-19
SLIDE 19

Needs Parallel dev Readability Robustness Solutions Modular Reusable Encapsulation Tools SVN Tests Genericity Design Patterns

slide-20
SLIDE 20
  • Parallel programming
  • Optimized Algorithms
  • Have Standalone
  • Java & Python binding
  • Free/Fast

SMIL:

Morph-M:

  • Research Library
  • Generic Prototyping
  • Educational
  • Industrial Project
  • Proprietary

Mamba:

  • Free/ Light
  • Simple / Fast
  • Fit for eductional purposes
  • Applications Prototyping
slide-21
SLIDE 21

template<class ImageIn, class ImageValues, class SE, class ImageOut> RES_C t_ImLabelWithAverage( const ImageIn& imIn, const ImageValues & imVals, const SE& nl, ImageOut &imOut) { … s_LabellingMeasureAverage<tVal,tOut> opAvg; s_ConnexityIsNotBeingZero<ImageIn,ImageOut, LabelImageOutputPolicy_Default, LabelValuesPolicy_Default> opCnx; Return t_ImLabelWithConnexityOperatorWithValues(imIn,imVals,nl,opCnx,op Avg,imOut);