We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

How will you use Orfeo ToolBox in the next few years ?

00:00

Formal Metadata

Title
How will you use Orfeo ToolBox in the next few years ?
Title of Series
Number of Parts
295
Author
Contributors
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
Language

Content Metadata

Subject Area
Genre
Abstract
Orfeo ToolBox (OTB) is already used in numerous Remote Sensing & geospatial processing chains, throught its C++ or Python interface. OTB users can also deal with almost 100 applications through their own graphical interface or via QGIS. We would like to talk about future interfaces for OTB, especially about Python interface (Conda environnement, Jupyter notebook for demos, etc.) and how OTB can interact with other commonly used environments in the geospatial community.
Keywords
129
131
137
139
Thumbnail
28:17
MassMaxima and minimaInclusion mapSpacetimeService (economics)Prisoner's dilemmaLecture/ConferenceComputer animation
Interactive televisionBitResultantCuboidComputer animation
BitLecture/Conference
Letterpress printingArtistic renderingSatelliteCartesian coordinate systemComputer animation
Cartesian coordinate systemMedical imagingMappingArtistic renderingLine (geometry)Object (grammar)Right angleCASE <Informatik>Software
BitMedical imagingData storage deviceSound effectProcess (computing)ChainRemote procedure call
Data modelChi-squared distributionData conversionOpen setFiber bundleComputer-generated imageryMedical imagingCartesian coordinate systemLevel (video gaming)Library (computing)PreprocessorSatelliteComputer animation
ChainInclusion mapMereologyLink (knot theory)Library (computing)HypermediaDialectPlug-in (computing)Row (database)User interfaceMeasurementMedical imagingCartesian coordinate systemComputer animation
Presentation of a groupSoftwareComputer animationLecture/Conference
Arithmetic meanMedical imagingParameter (computer programming)Internet forumFile viewerFilter <Stochastik>Cartesian coordinate systemZoom lensSatelliteComputer animation
Error messageGraphical user interfaceTime zoneoutputComputer-generated imageryCone penetration testCommon Language InfrastructurePhysical lawBoolean algebraParameter (computer programming)Normed vector spaceRegulärer Ausdruck <Textverarbeitung>Asynchronous Transfer ModeMach's principleDuality (mathematics)CodeMIDICartesian coordinate systemUser interfaceParameter (computer programming)Electronic mailing listPresentation of a groupReplication (computing)Sanitary sewerGraphical user interfaceTrailLine (geometry)Ring (mathematics)Computer animation
Installation artSign (mathematics)Gamma functionInclusion mapCartesian coordinate systemInternetworkingMedical imagingBitNeuroinformatikMeasurementWeb pagePoint (geometry)Service (economics)Digital photographyUser interfaceProcess (computing)Remote procedure callSoftwareModule (mathematics)Plug-in (computing)Link (knot theory)MappingParameter (computer programming)Computer animation
Module (mathematics)Extension (kinesiology)Core dumpComputing platformBuildingModul <Datentyp>Open sourceFunctional (mathematics)Cartesian coordinate systemRemote procedure callModule (mathematics)Template (C++)Core dumpComputing platformAreaNetwork topologyMeasurementMoment (mathematics)Wave packetBuildingRight angleEndliche ModelltheorieComputer animation
Multiplication signCartesian coordinate systemView (database)Point (geometry)Software developerModule (mathematics)BitOffice suiteArithmetic meanLecture/Conference
Module (mathematics)TensorSoftware frameworkDataflowComputer-generated imageryInstance (computer science)Generic programmingAsynchronous Transfer ModeBuildingMedical imagingElectric generatorSoftware developerBlock (periodic table)Video gameModule (mathematics)Remote procedure callCartesian coordinate systemSoftware frameworkOperator (mathematics)PixelComputer animation
Module (mathematics)DataflowTensorSoftware frameworkComputer-generated imageryPlastikkarteMedical imagingEmailImage resolutionWeightLecture/ConferenceComputer animation
Module (mathematics)DataflowTensorSoftware frameworkComputer-generated imageryPixelAnalytic continuationFunctional (mathematics)Module (mathematics)Cartesian coordinate systemMedical imagingChief information officerCellular automatonMathematics
Windows RegistryRead-only memoryMiniDiscOperations researchIntegrated development environmentFormal languageProcess (computing)Computer-generated imageryDisintegrationRaster graphicsPoint cloudKernel (computing)GoogolUser interfaceBlock (periodic table)AreaWeb 2.0MiniDiscGroup actionFormal languageProof theoryCartesian coordinate systemNeuroinformatikMedical imagingFactory (trading post)INTEGRALState observerSanitary sewerReynolds numberService (economics)ExistenceLibrary (computing)Goodness of fitMultiplication signParameter (computer programming)Line (geometry)Level (video gaming)Semiconductor memoryConnected spaceIntegrated development environmentSoftware developerScripting languageFunction (mathematics)Wave packetType theoryElectronic mailing listDifferent (Kate Ryan album)Lecture/ConferenceComputer animation
Integrated development environmentDisintegrationPoint cloudKernel (computing)GoogolRaster graphicsChainDifferent (Kate Ryan album)Library (computing)LaptopOperator (mathematics)Process (computing)Software frameworkRow (database)User interfacePhysical systemPoint cloudLabour Party (Malta)Computer animation
EstimationGraphical user interfaceInternet forumDisintegrationCompilation albumSoftware testingCodeFactory (trading post)Continuous integrationMereologyGravitationContinuous integrationComplete metric spaceFeedbackCartesian coordinate systemSoftware testingDifferent (Kate Ryan album)Multiplication signInternet forumPoint (geometry)INTEGRALInstance (computer science)Perspective (visual)SummierbarkeitForm (programming)Goodness of fitTerm (mathematics)Process (computing)Software developerWebsiteComputer animation
Internet forumFeedbackPoint (geometry)Internet forumConnected spaceDependent and independent variablesDifferent (Kate Ryan album)Computer programmingWritingCollaborationismGoogolFunction (mathematics)Computer fileoutputGoodness of fitGeometryObservational studyApache ForrestEstimationDevice driverRevision controlProcess (computing)BitExpressionReading (process)Multiplication signPhysical systemShape (magazine)CuboidPrice indexRectifierRadiometryVirtualizationModule (mathematics)TesselationDigital photographyPoint cloudFilter <Stochastik>Electronic data processingRaster graphicsTime seriesLocal ringMoment (mathematics)OpticsFile systemComputer animationLecture/ConferenceMeeting/Interview
Internet forumFeedback
Transcript: English(auto-generated)
Hello, can everybody can hear me? Okay. So let's start. Yeah, that's it. So my name
is Enya Nick. I'm working at the French Space Agency at Kness. I'm very glad to present you off the toolbox this afternoon. I'm very glad that you come, so many people. Maybe we'll try to make it a bit interactive. That's why the title is a question. How will
you use off the toolbox in the next few years? That means that maybe some of you already use off the toolbox. Do people are using that software? Yeah. And maybe other people don't use yet off the toolbox, so I'm going to present a little bit. I'm not alone because
there will be a question. And as you may know the TV show Who Wants to be a Billionaire, when you cannot answer a question, you have a kind of a joker. And I won't hesitate to use the ask a friend joker because we have here Remy Cresson from Istere, and also David Ducefi from Kness, who may answer the question with me. Okay. So let's start
by presenting a few things you can do with off the toolbox. Sometimes you receive some remote sensing data, some satellite images, and the rendering is not so good. You don't have a good contrast, you don't have a good rendering, and you would like
to make a nice print. You can use one application to make a local adaptation of his histogram, so you have a good rendering of the images. That's an example of what you could do with off the toolbox. Or maybe you are interested in mapping objects,
and you want to use an application to detect lines, and then you can import lines in your software and try to filter them to find perpendicular lines or whatever. And it could be another use case of off the toolbox. Or maybe simply you think that the river is quite hot in Bucharest. You want to go at the mountain, and because 3D is a bit
trendy, you make several images of the mountain with off the toolbox, or with a processing chain using off the toolbox, you can build this kind of stereoscopic view of off the toolbox, okay? Off the mountain, sorry. So off the toolbox is a library of remote
sensing applications. There are about 90 applications in the library, and the applications go from the very low-level pre-processing of satellite images to high-level processing,
some of them I'll show you. Okay? So now if you want to have a look at what's inside of the toolbox, it's a kind of multilayer sandwich, like you can see. At the lower layer, we have some well-known libraries. After we have our C++ application
public interface, and then the layer of off the toolbox applications. Over that, we have a very efficient image URL called Monteverdi, okay? So here are some libraries you may
know, like JDAL, like ITK, and we are built on the shoulders of this giant, and we also have a link with QGIS, because there is a plugin that allows you to use off the toolbox application directly from QGIS, and we'll talk about that later.
As you may know, off the toolbox is part of OSGEO since three years now, and it's already licensed under Apache v2 license, okay? But as I told you at the beginning,
the subject of the presentation is not only what is off the toolbox, but who are the users of off the toolbox, what are you going to do with off the toolbox, how can you use off the toolbox? So the whole story is not about the software itself, but about users. Okay, so these are the users of off the toolbox. Doesn't like, no, I don't
recognize anyone. Okay, so we are going to focus on the different ways you could use off the toolbox. A good way to begin to use off the toolbox is to launch Monteverdi.
Monteverdi is a very efficient image viewer that allows you to load very big satellite images, to zoom in, zoom out very efficiently, to apply some filters like you can see here, to adapt the histogram, to change the channels, and so on. You can also launch applications
from Monteverdi, okay? So the off the toolbox applications, as I said, there are about 90 applications, and the main principle is that for every application we have three different interfaces that are generated automatically. One application with a graphical interface,
one command line interface, and also a Python interface, and we'll talk later about the Python interface because it's the main subject of this presentation, okay? So for every application you have a list of parameters, and the same parameters you will find in
every interface with the same name, so it facilitates the use of off the toolbox. So now we can also launch application, off the toolbox application within QGIS. From QGIS 3.8, I think it's now an official plug-in. It has been an official plug-in before
and now it's again an official plug-in, and so you can install off the toolbox plug-in from QGIS. You just have to install off the toolbox as well on your computer to make it work, and then there is a link between the two software and you can launch
off the toolbox application and process your images. You can select an image in the stack here and launch an application. Okay, so it's quite convenient way to use off the toolbox
when you begin, but to be honest we still have some problems with this interface, with this plug-in because of some mapping issue between off the toolbox parameters and QGIS parameters in the GUI. It's a bit complex to resolve, it's a bit complex to work on
that subject, so maybe if there are any volunteers, any people that know well QGIS, who have an idea, it could be a good idea to discuss together about how to improve it. It's not the only way to use off the toolbox as I said, but I think it could be fine for
some people, so if you have any idea, if you know well QGIS, we are here and it is great to discuss with you. Now I am going to speak about remote module. Remote module is like an off the toolbox application, but it's an external off the toolbox application
so it extends the functionalities of the core off the toolbox. But when you build your remote module, in fact you can start with, you can get clone remote module and we have a template of remote module, okay, and you can start developing some application
using off the toolbox filters, using off the toolbox application, you have all the power of off the toolbox. And when you think it's quite mature and maybe you want that other users could benefit from your remote module, you can ask us and we can
put daily build chain, for example, to deliver your package throughout your application while building a platform to the other users. So it's very convenient. We don't know how many remote modules exist, in fact we know dozens of them. We have eight remote modules
that we consider as official remote modules that we want to package with off the toolbox quite regularly, but there are other remote modules that we don't know because they are not open source at the moment or because maybe some of you have tried to build an application and maybe in a few months you will tell, okay, I've done that, maybe
it could be useful to other users off the toolbox and it becomes more official, okay. So, now it's time to invite Remi who will talk a little bit about the remote module he made and I wanted him to talk about it from the developer point of view.
Not only because it's very interesting, it's remote module, but also because there's a good experience of developing with off the toolbox. Thank you, Yannick. Just I would like to add that remote module are really great if you want to implement a feature that is not already in the off your toolbox, for
instance, some pixel wise operation or you want to use some, for instance, tensorflow and you want to keep the streamable aspect of the easy pipeline because you can use the OTP application like building blocks, you know, you can build big things with a
smaller or little tools. So, remote modules are really useful, I think, when you want to do some custom mid-level stuff and after that you can use the high-level API of the toolbox like Python or something like that to use it. So, it's really great. You have many advantage to build your own application. So, this is one example. I developed
the UTBTF remote module, which is a kind of generic framework, multipurpose framework for deep learning on the real world remote sensing images. I mean, you know, when you
read a scientific paper, people are working on tiny image like postal card stamps and in the real life, images are quite big. So, here you have some SRGAN. It's a deep net that transform a low-resolution image into a high-resolution image. So, this is
some Sentinel-2 image and this is some Sentinel-2 image, which looks like a spot-7 image. So, that's just an example. The image is like, I don't remember, but like a hundred of thousand pixels side. So, it's a big image and you can process it similarly
and connect this application with some other application like a bandmatics or if you want to perform some optical calibration before and you can do it by changing simply the applications. So, that's why remote modules are really a great functionality of OTB.
And yeah, I will let Yannick continue. He will show you how we can change this legal blocks together with the Python API. Thanks. Okay. Thank you, Remy. So, now we're going to talk about the Python interface to see
how our photoblocks and Python can work together. In fact, the Python interface is at the same level as the application interface. You cannot connect to the lower interface, but it's enough to make a lot of interesting stuff. In fact, the API is very,
very simple. You have to import a module. You create the application like that and then you set parameters. That means that you have to know the list of parameters, but OTB applications are quite well documented, so you can type the name of the application in the command line and you get the name of the parameters. And when you know that,
you can set the parameters in your Python script and execute your application. An interesting thing is that OTB applications can be linked in a pipeline. That means that if you use a pipeline functionality, the images won't be wrote down on the disk
on red. It will only be right at the end and red just near the beginning. It's a very, very interesting characteristic to make some efficient computations because you read images only once and you write them only at the very end, even if your pipeline
has five or ten applications. So to do that in Python, you just say, okay, execute the applications. And at that time, our photoblocks does nothing. In fact, almost nothing because it connects the pipelines and it tells the different applications, okay, you
will have to take the data from this application and after your next applications will be fed by this result. And at the very end, your last applications, you will call execute and write output and it will write down on the disk the final image, okay? So this
is an in-memory connection. Another thing is an MPI compatibility. So you can also use some images that you have read in an MPI. Okay. So to summarize, there's three good reasons to use our photoblocks in a Python environment. That Python is a very
popular language, very accessible. We have this compatibility with MPI. We have this in-memory connection. And as you may notice, we have put four good reasons because it's like the three musketeers. In fact, indeed, there are four. Okay. So we think that we
have to put some effort on the development of this interface and to better integrate with other libraries, other environments. They offer two bugs, okay? Maybe with X-ray or with this kind of library. So about the integration of other libraries, some of you
recognize, I've been on Monday in our workshop and our OTBI workshop that last half a day. It was a short workshop because we have also a big training session of two or three days. But the short workshops is now a kind of proof of concepts, sorry, of Jupyter
notebook plus different libraries like Raster.io, like EPI Leaflet to make a smaller processing chain with our photobooks. And it's quite fun and you can check it on our GitLab. We also have some ideas of running our photobooks in the cloud, maybe one day. We don't
know yet. David here has worked hard to make possible to install our photobooks from Conda, like Conda installed OTBI and indeed it worked during the workshop. I think that
we will soon also try to work on compatibility with libraries like Dask, like Spark because it's interesting to go on big data frameworks. About OS compatibility, actually it's now compatible with a three operating system, Linux, Windows, also Mac OS. But Mac OS,
we have sometimes some difficulties to test and so we ask if we, it's not possible to make a Docker image, an official Docker image, but maybe Docker is not so trendy now. So, if you have any suggestion, we are glad to hear your ideas. And last thing, what's
new in OTBI, it will arrive about, I think, in October. And so, for the visible part for the user, there will be some improvements in the graphical interface, a lot of new thematic applications, but one of them will be applications for our perspective features.
A better integration within QGIS, like we said. And a simplified documentation because the main entry point will be the cookbook. Before, we had a lot of different documents and now we have the cookbook which gives you recipes and how to handle OTBI, how to
make it work with a lot, in a lot of situations, okay? And the less visible part of the iceberg, a tons of big fixes. We have simplified test, simplified some completion process. So, for developer, it will be easier and we also have a very nice
continuous integration within our GitLab instance. So, it's very nice because if you are a contributor, you can submit your main request and it will be compiled on time and you have a feedback on if it works, if the test pass, et cetera. And last but not least, we have a very nice user forum with discourse and it's very efficient. It's a nice way to ask your
question and to get feedback from the community. Okay. So, thank you again for your feedback. Stay connected. We have here the main entry points to enter the world of toolbox, our website, our GitLab and the forum. Thank you very much for your attention. And if you have any question, of course.
Yeah, I'm apologizing if I'm missing it and it already exists but I think it's not.
Like, the driver for the data, reading and writing is GDAL and I really brutally miss PostGIS and virtual rasters. So, am I missing it or is it not still yet integrated? Because when we are talking about larger data, we don't want to have one million of TIFs and we don't want to have outputs of shape files. So, I want to have an input
virtual raster, an output in PostGIS, then I continue with validating the geometry, doing radiometrical indices with RFE or stuff like that. So, yeah, this is mainly, I think that it's not still existing and it should be done. Yeah.
Okay. For the first question, I will always use my Drucker but I think it does not exist yet. We are going to support GDAL 3 in next version and maybe it could be a good idea to support this virtual raster but here, another friend that can answer. Actually, I've used VRT support in OTB in version 5.0 which is like ages old.
So, it's there, it works but in my experience, it was kind of slow. So, that's... Maybe that's a good topic for the forum.
Thank you. You have other questions? So, maybe this is also answered by the GDAL answer. So,
how do you interact with cloud data? So, like Amazon S3 or is this possible or is this... We don't know, we don't interact yet with this kind of data. We only open local files for the moment but maybe in future works, we would like to interact with such data.
I don't want to use an idea. He's also a contributor from OTB. So, Amazon S3 should be supported via GDAL but I think it doesn't really work too well right now but we use a few driver to mount S3 like file systems to
as local drives and that's usually a pretty good solution. Okay, maybe one last question. Just a short question. Do you plan to expand
SAR and processing module a bit because now it's kind of like limited I think just to calibration or something and so that's a question. I don't know if we are going to extend it now but a lot of users using SAR data and some of them are building some remote modules with SAR for example to filter
speckle with a high longer time series. So, we can use SAR data to make a lot of things like classification and so on but not now in our photo box even if there are some SAR data processing in our photo box. Yeah, I think you have to have a look at
a remote module called JAPO-TB which is a remote module to make interferometry to make some filtering on SAR data. So, definitely you should have a look at that. It's developed now
and I think it will be a yeah okay yeah yeah there is also the S1 tiling remote module which allows you to map S1 data on Sentinel-2 tiles to make auto rectification and so on and
to make some treatments and filtering. So, it's definitely a good idea also to use the S1 tiling if you want to use Sentinel-1 data along with Sentinel optical data from Sentinel-2.
I guess we have to stop now. Thank you very much and see you later.