osm.to - providing automated geo-referencing for all your mapping data layers

High-Level Project Summary

We are OSM.to and we tackled the DRONES AND SATELLITES FOR URBAN DEVELOPMENT challenge.To create maps the coordinates of each pixel in a satellite or drone photo must be known. This geo-referencing is a manual task which we wanted to automate.To achieve this we use QR codes which link to their location data as our ground control points.Combined with the position of the QR code in the photo, one can automatically geo-reference the image. All this can be done with our prototype.Now we want to create more Ground Control Points and add them to Open Street Map,so everybody can profit from better maps, that everyone can create with open source software.

Link to Final Project

Detailed Project Description

Mission Satement

Get the highest level of spatial precision for your drone and satellite data and automate it with OpenStreetMap (OSM).

providing a meta service with Ground Control Points (GCP) for all mapping services to reference their imergary data on the same GCP points. Enabling the end user to have different layers of data but on the same, open and standardized reference frame and provide the best spatial precision data sets.


The Problem

The current state-of-the-art GCP cannot be automatically identified and requires knowledge of its geo-position. That means GCPs needs to be manually measured via GPS and the location data needs to be provided to the people using the GPS for their imagery processing. This is tidous manual work and limits the availabilty of such GCP data-sets.

Ground Control Points (GCP) are essential for accurate ortho-rectification of aerial, optical satellite imagery and drone data, for precise localisation of ground features and landmark detection.



The Solution

Making the GCP auto-identifiable to provide their data, and standarizing the method as an open-source standard, so that as many differnet users can use it for their datasets.

With OSM.to, we provide the solution as QR-codes that serve as GCPs.

Above in the image you see on the left hand side the current state-of-the-art gcp. The center where the corners of all four tiles meat is easily detectable in images. This is also the location where the geo reference is taken by measuring it with GPS or another GNSS method. But beyond that, it does not provide more. Even the geo-reference needs to be provided via another way (commercial database, or your own knowledge.

On the right hand side you have a standard QR-code with 25x25 pixels. That can hold 32 characters of data. That is what we use for our OSM.to link. Furthermore it has the corner "bobbles", the position markers. We selected the top left one to be the georeference similar to the classical GCP. It is also easily detectable in images and the even though it does not have a very sharp center, the center can be calculated also very precisly inside the black bobble. And als the other 2 bobbles can be used if required. And furthermore the QR-code can be used for more image correction because it gives the image attitude. So that is rather handy.


By this very simple spaceapps, we do not use data sources, we generate a new data source. We will provide a geo reference layer for all image layers no matter if this is from drones, planes, satellites or else. We will help them to align the layers in a way that the data on each on them corresponds to the right pixel and thus geo-coordinate on the other layer. With this, new conclusions can be drawn and thus more valuable results will be genrated. This is supporting the United Nations' Stustainable Development Goals (SDGs) because everyone is enabled now to generate data and easily combine them with data of other sources like ESA's coperincus programme or NASAs Earth Data.


Key Features

  • provide standardized GCP identification and location
  • automate GCP detection and decoding
  • support one geo-referencing for several layers of spatial imaries by satellites, drones, planes and more
  • platform independency (cloud and not cloud based processing)
  • integration of databases like OpenStreetMap


Your advantages with Ground Control Points by osm.to

  • improve spatial data accuracy
  • precise orthorectification of aerial or satellite imagery
  • auto identification of GCP in-situ
  • open-standard


What's inside the QR-code aka "the OSM.to link"?

The content of the QR-code is simple, it is a link. A simple link. Within the scope of SpaceApps 2021 most of the efforts went into defining it. In the graph below you see the structure that has three parts: The link, the type indicator and the payload. It is so universal it can be used now for our GCP purposes, but it can be extended for future needs and beyond ground control points for images.

So your phone is able to read it and our webpage https://osm.to will show you the qr-code data and further data. And our gcp-osm Python tool is parsing it and generating other products for you like a list of all found osm.to QR-codes that you can then use within your process flow.

Interested? Find the full design description on our gcp-osm repo.


Lay out OSM.to QR-codes

This workflow currently is just an idea that has not been thought out fully...

  • Decide where the QR-code shall be and decide for the <type_indicator>
  • Create QR code with OSM.to<payload>
  • Calculate the needed visible pixel size. For satellites, on tile should be at least 50cm (depends on the service). So that means a 25x25 QR-code will be about 12.5m x 12.5m
  • Find a location that is big anough and lay out the QR-code (paint, print, pave, plant trees/flowers, etc...)
  • Measure the geolocation of the upper left marker with the best possible accuracy
  • Adjust position in OSM and remove WorkInProgess tag, or put the data into your locally defined databse/file.


Working with OSM.to

Now you either just need to fly your drone over this area or you just wait until your or any other satellite with optical cameras and a good enough ground resolution comes by.

You will get the raw photos with some of them having the OSM.to qr-codes inside. You just need our parser to detect and work with the qr-codes.

With our gcp-osm programme you can call it with

"python3 main.py -f FILEFOLDERNAME"

and one or all images from a folder will be scanned. You will receive a GCP_list.txt with OpenDroneMap standard.

from here on you are good to go to use the georeference on pixel basis with your photos in your next step of the process flow.


We are very happy to support your project to be more spatially precise and with less manual work. :)


The way forward

  • get user experience from the drone community like OpenDroneMaps to use it and get further rections from ESA, NASA and Planet. PLEASE USE OUR CODE AND SEND US FEEDBACK! THANK YOU
  • crowd collection of Ground Control Points. If you know one in your area, put them here to our online spreadsheet list!
  • create osm.to GCPs and put them to the outside world (starting with the city, county, country and also with university institutions.


You find OSM.to on


Space Agency Data

Data Aggregation

We checked these data sets. We discussed these as individual layers within anothers users product, where this user wants to add his/her own imagery layer taken by a drone. We did not find a common and open database for ground control points that this user could use to make sure his/her data is alligened / geo-referenced on the same basis as these three.


Specific Geo Referencing

So we decided to create this common meta layer that enables new users with drones to add their imagery layer to the already available layers of other services. And also our meta layer can be used by these existing services to use it when they are processing their raw data to produce their services.


For that we were also inspired by these sets

Hackathon Journey

Team


Extra Team


Thanks to


Project Flow

We as a team took most time to define the essence of our project. That took us the first Friday and most of Saturday of SpaceApps2021. This was designing the standard "link" inside the QR-code.

When this was set, we tackled the coding of the Python parser, called gcp-osm which you find in our Github Repo (see above) and that you see as a rough functional process flow below.

We tackled all of the yellow and blue functions (with the integration to OpenStreetMap untested). But we also paved the way for further expansions into other GCPs like finding manhole-covers that can be easily seen from space, their forms are very easy to detect in images (even when they are internationally differently looking) and also registered in communal or other databases. This would be an extenstion with respect to Machine Learning. So on the first glance osm.to seems very simple, but it already has great potential.

Tags

#drones #satellites #maps #openstreetmap #autorectifying #osmto

Global Judging

This project has been submitted for consideration during the Judging process.