Hi,
I have been trying to figure out where machine learning techniques have the most potential in the mapping process.
Currently, it doesn’t seem like these techniques will be robust enough in a fully automated setting (e.g. Facebook’s “AI-assisted road import”). Thus, I’m imagining a system that suggests tiles that have relatively “major” missing roads to a human editor, who then traces the roads and tags them appropriately.
The idea is that the system would make it easier to search for areas where the map needs improvement. Rather than scrolling through the city to look for missing roads, users are able to jump to these suggested tiles. Tiles that appear to contain roads that are more “important” to the road network would be prioritized. Hopefully this would improve the overall efficiency of mapping.
I have a demo (modified iD editor) running in a small region of Bangkok. In addition to suggesting tiles, the demo allows you to add an overlay on top of the imagery that highlights the roads found by a machine learning approach in yellow. The process is relatively straightforward:
-
Switch the background imagery to “Imagery + RoadTracer” to get the highlighted roads (yellow).
-
Press the checkmark “Jump” button on the right panel (or use “J” hotkey) to jump to the next suggested tile.
-
Trace out roads as you like, save.
-
Jump to the next tile, etc.
I am very interested in feedback to see where to go from here. I would appreciate feedback on both the fundamental semi-automated architecture (e.g., if most mappers use GPS traces then this wouldn’t be useful, or maybe imagery is used a lot but the time spent searching for areas that need improvement is actually negligible) and this specific implementation of the idea.
The demo is running here (machine is in AWS Singapore, hopefully the connection speed is reasonable):
BTW, regarding source tag, the machine learning model is trained on “DigitalGlobe Premium Imagery”. Currently the demo does not automatically set this tag. Actually another thing that I want to explore and think would be useful especially for new contributors is an assisted tagging system that suggests what tags to use for a road to the user; but I need to think more about how this could be integrated nicely into the user interface. Maybe it should just be a warning if the system is confident that the wrong tag has been selected (I saw some issues with new contributors mis-tagging roads, which this could mitigate).
(This is for a research project. We have been working on automatic map inference for a couple years and now want to see if it can actually be deployed to improve mapping. The code for both the machine learning model and the modified iD will eventually be made open source, I’ll try to make that sooner rather than later; the machine learning component is an extension of our most recent paper, https://roadmaps.csail.mit.edu/roadtracer/, for which we have already released code.)
Thanks!
Favyen