Skip to content

Suggesting OSM road tags from street-level images

Type
Public project
Sector
Humanitarian technology
Project lead
Humanitarian OpenStreetMap Team
A street-level view of an unpaved rural road, including the road surface, drainage, vegetation, buildings, and utility poles

We built HOT’s first tagging API

Through Tech To The Rescue, HOT brought us in as its technology partner for OSM Tagger. The problem was concrete: turn a geolocated street-level image into tags a mapper could actually use.

We built that path end to end, from the request schema through the /api/v1/tags/ route to integration tests. HOT merged it into the public repository as the project’s first implementation.

We made the output useful inside OpenStreetMap

A prose description of the road would have been useless to a mapper. OSM Tagger returns key-value pairs from the OpenStreetMap vocabulary, along with a confidence value. In the repository’s published example, it proposed surface=unpaved and smoothness=intermediate for the test image. The wider prototype supports LLaVA 34B and Llama 3.2 Vision 11B through Ollama, or Amazon Bedrock, and compares an image with more than 9,000 Mapillary road images when calculating confidence.

HOT planned to connect the API to ChatMap, but we designed the endpoint to accept geolocated imagery from other sources too. Its curation route also lets a mapper save a corrected result by tag_id, giving the system a clean record of confirmed tags.

The prototype still leaves the final call with the mapper

OSM Tagger was an experiment, not an autonomous editing system. It proposes a tag and shows its confidence; a mapper who knows the place checks the image and decides whether the suggestion belongs in OpenStreetMap. That limit is what made it useful. It sped up classification while leaving the judgment with the person who could actually make it.

Tell us where the current process breaks down.

Show us the current process and the records people trust.