Hi Stephen, Thanks for this feedback. I think the OTB community could (should?) start working on the design of a generic OBIA framework for land-cover mapping. Two releases ago, OTB provided a new sampling framework for the classification pipeline [1] which makes dealing with huge amounts of data feasible (and allows to avoid the use of a data base).
At CESBIO, we are using it for land-cover mapping at the country scale [2,3] and it has allowed us to get x20 speed-up and also enormous savings in terms of disk storage (since applications can be connected in memory). Although we are still doing pixel based classification, I think that this new sampling framework could work just as well with "objects", since samples are geometries on a vector representation (points by now, but could be polygons). Since, OTB has the best large scale segmentation ;), I think the missing step is the feature extraction for polygons. There are some interesting things in OTB for this (ObjectsRadiometricStatistics from the Sertit module, for instance), but we have nothing for shapes, let alone context (what you do with FRAGSTATS). On the other hand, some say that the classical OBIA workflow may be sub-optimal since all segmentation errors (and they exist!) will undermine the following steps of the processing chain. Superpixels seem to be an alternative (we may be contributing a large scale SLIC implementation soon). I am not aware of any framework which is generic enough to integrate all these different alternatives (pixel-based + regularisation, classical OBIA, superpixel+??), but if some OTB users feel like it, we could try to sketch something allowing to build a scalable pipeline (parallel and with reduced IO) which generalises the current pixel-based framework. >From my point of view, having a coherent solution in OTB (not only for >classification, but for any remote sensing pipeline) has huge advantages with >respect to using heterogeneous tools (OTB + postgres + FRAGSTATS + >scikit-learn): when you have finished prototyping and want to scale up, being >able to connect applications in memory to minimise IO, use MPI to distribute >on a cluster (or keep just multi-threading), etc. is the key. The issue >nowadays, is that even for prototyping, we are faced with TB of data, and in >this case, I'd rather be efficient from the get go. On the other hand, maybe we should give up to OBIA and just use deep learning with CNNs as most people have started doing? Any thoughts on this? Jordi [1] https://www.orfeo-toolbox.org/CookBook/recipes/pbclassif.html [2] http://dx.doi.org/10.3390/rs9010095 [3] http://tully.ups-tlse.fr/jordi/iota2 On Wed 17-May-2017 at 23:27:40 +0200, Stephen Woodbridge <[email protected]> wrote: > I'm new to OTB, but have the same need to do OBIA. I just finished a project > where we used a proprietary segmentation module then using python integrated > the results with scikit-learn. I'm rewriting that to work with otb LSMS > Segmentation which works much better. So my current > workflow is something like this: > > step 1: run LSMSSegmentation and get polygon shapefile with attributes like: > > Num Name Type Len Decimal > 1. LABEL N 9 0 > 2. NBPIXELS N 9 0 > 3. MEANB0 N 24 15 > 4. MEANB1 N 24 15 > 5. MEANB2 N 24 15 > 6. MEANB3 N 24 15 > 7. MEANB4 N 24 15 > 8. MEANB5 N 24 15 > 9. VARB0 N 24 15 > 10. VARB1 N 24 15 > 11. VARB2 N 24 15 > 12. VARB3 N 24 15 > 13. VARB4 N 24 15 > 14. VARB5 N 24 15 > > step 2: and then to that I add polygon stats based roughly on FRAGSTATS like: > > 15. AREA N 24 15 > 16. PERIM N 24 15 > 17. PARA N 24 15 > 18. COMPACT N 24 15 > 19. COMPACT2 N 24 15 > 20. SMOOTH N 24 15 > 21. SHAPE N 24 15 > 22. FRAC N 24 15 > 23. CIRCLE N 24 15 > > step 3: In my case I load these into a postgres database where we have > training polygons and we select the polygon segments that match our exemplars > step 4: and feed them into scikit-learn to build a trained classifier. > step 5: we segment a search areas and add the polygon stats as above > step 6: we run those segments through trained classifier to get probability > that they belong to a specific class. > > It sounds like otb has modules for the classifiers that I might need to look > into, but I like using the database just because there is a lot of data to > manage. Gluing everything together with python means I can automate the > workflow and the data management of various runs against > different areas. > > -- -- -- Check the OTB FAQ at http://www.orfeo-toolbox.org/FAQ.html You received this message because you are subscribed to the Google Groups "otb-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/otb-users?hl=en --- You received this message because you are subscribed to the Google Groups "otb-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
