Road extraction revamped

The road extraction application was one of the first applications distributed with OTB. Originally, it was intended for demonstration purposes only for the IEEE ICIP 2007 conference. It was suffering from serious shortcomings in terms of size of the image to process, export of the results, access to the parameters, etc.

The application has been redesigned from scratch and will be distributed with the next release of OTB (2.8) coming next Monday. You can now load full images, as only the area displayed will be processed. You also have access to all the parameters (you can refer to the ICIP paper for details: E. Christophe, J. Inglada, Robust Road Extraction for High Resolution Satellite Images, ICIP 2007).

Road Extraction Application

Road Extraction Application

One of the main improvement is coming from the changes in the vector data handling. Now, OTB knows how to convert these data between different projection systems (which could be map projections or sensor models). That means that you can now export the results of the main OTB application in shapefile format to load it in you favorite GIS (Quantum GIS for example) or in KML to load it in Google Earth.

For example, with the previous extraction, Google Earth will display:

Road extraction results on Google Earth

Road extraction results on Google Earth

You can notice that there is an offset of several meters due to registration problems. Indeed the orthorectification of the image used for the extraction was not done with OTB and images on Google Earth can also suffer from registration problems.

Looking as such results may give you some ideas of new stuff to try with OTB. We are bubbling with ideas but lacking the time to try them all!

One last thing, the algorithm included here is far from being perfect and was designed mostly to be fast enough to allow interaction. There are many ways to improve the results and adapt the algorithm to your needs. The good thing is that this application has been designed following the MVC architecture. That means that the visualization (the View) is decoupled from the processing (the Model). You could quite easily create a new model with a completely different algorithm to have a better road extraction application. Feel free to reuse the code!