[HOT] Building Detection using Machine Learning

Robert Banick rbanick at gmail.com
Fri Dec 23 22:46:55 UTC 2016


Hi Phillip,

I think Andrew, John, etc. have well covered the practical relevance to
OSM. On a technical note you may consider looking into what the Facebook
data team is doing:
https://code.facebook.com/posts/1676452492623525/connecting-the-world-with-better-maps/

I believe a lot of it is based on building detection via machine learning.

Robert

On Wed, Dec 21, 2016 at 7:07 PM Andrew Buck <andrew.r.buck at gmail.com> wrote:

> I agree with what the others have said so far... this probably won't be
> used to feed into the main database but could have other uses.
>
> One place where it could be good is in very sparsely populated areas
> like northern Africa, where there are huge areas of empty space with a
> few isolated settlements.  In the past we used micro tasking to have
> users quickly scan though and find village locations and then manually
> mapped the buildings using the microtask results to find the villages to
> map.  This worked very well and your algorithm looks robust enough to
> find the majority of villages.  Also in that case false positives are no
> problem at all as the mapper just won't map anything when they look
> there and false negatives are not such a big deal (as long as you
> identify at least one building in the village the mapper can map the
> rest themselves anyway).
>
> Lastly, this could be used to re-check already mapped villages to see if
> they need to be revisited to map new buildings, etc.  You could scan an
> area and for each village spit out a set of numbers of how many
> buildings are in both datasets, how many are only in yours, and how many
> are only in OSM.  Based on that we can prioritize areas to be re-looked
> at by human mappers to update to the new imagery.
>
> So all in all this is a very useful tool to have in our toolbox, but
> just not for direct inclusion into the main database.
>
> -AndrewBuck
>
>
>
>
> On 12/19/2016 08:17 AM, Philip Hunt wrote:
> > Hi all,
> >
> > I attended my first Humanitarian OpenStreetMap Team (HOT) mapping event
> a few months ago and was interested to see how successful machine learning
> would be at detecting buildings in satellite images. The results look
> promising but I wanted to know if it could be useful to the community and
> if it’s worth pursuing further. I thought I would post a sample of the
> results and then quickly explain the process and issues.
> >
> >
> > Results
> > ———
> >
> > These are the results of a test I ran on project 2101 (Rongo, Kenya -
> PMI/USAID) on 1 November 2016. These images show the buildings detected by
> the algorithm on the first six unstarted tasks from the project. Potential
> buildings are marked with green rectangles:
> >
> > https://s3-eu-west-1.amazonaws.com/hot-osm-ml-test-data/2101_4.png
> > https://s3-eu-west-1.amazonaws.com/hot-osm-ml-test-data/2101_5.png
> > https://s3-eu-west-1.amazonaws.com/hot-osm-ml-test-data/2101_9.png
> > https://s3-eu-west-1.amazonaws.com/hot-osm-ml-test-data/2101_12.png
> > https://s3-eu-west-1.amazonaws.com/hot-osm-ml-test-data/2101_13.png
> > https://s3-eu-west-1.amazonaws.com/hot-osm-ml-test-data/2101_14.png
> >
> > As you can see the initial results look promising - most of the
> buildings have been detected and the false positive rate is pretty low.
> >
> >
> > Process
> > ————
> >
> > I’ve been using the Viola–Jones machine learning algorithm, which
> requires training to know what is and isn’t a building. Once the algorithm
> is trained, it can be used to detect buildings in new images in a few
> seconds.
> >
> > The whole process looks like this:
> >
> > - Get the HOT project and task data using the HOT API
> > - Get the satellite imagery of the area from OSM
> > - Get the nearby existing buildings from the OSM API
> > - Find the existing buildings in the satellite imagery and use these to
> train the algorithm
> > - Run through each incomplete task in the HOT project and detect
> buildings
> > - Output the results as OSM XML
> > - Load the output into JOSM, validate and upload to OSM
> >
> >
> > Issues
> > ———
> >
> > I loaded the output of the algorithm into JOSM and completed tasks 1 and
> 2 of project 2101. However it still took a bit of work to make sure the
> data is good enough for OSM and I think an experienced mapper would have
> taken roughly the same amount of time starting from scratch.
> >
> > The main issue is the algorithm can’t rotate the detected rectangle to
> fit the building shape (as you can see from the example images above, none
> of the rectangles are rotated). I’ve tried using methods such as line
> detection to detect the building and rotate and crop the rectangle around
> the edges - this worked well some of the time and other times went horribly
> wrong.
> >
> > The second issue is false positives. While the examples above we’re
> generally clean, sometimes the algorithm would think a field was a
> building. Because data uploaded to OSM needs to be accurate it can take
> some time checking each potential building in JOSM.
> >
> > Another potential issue could be training samples. When testing I
> trained a new algorithm for each project, using local existing building
> data from OSM as training data. The assumption here is that nearby
> buildings will look like buildings in the project area and that nearby
> building data is available and accurate.
> >
> >
> > Next Steps
> > —————
> >
> > The Viola–Jones objection detection research paper was first published
> in 2001 so the algorithm has been around for a while. Machine learning has
> improved since then and neural networks are showing a lot of promise -
> using these could increase the reliability and also allow the detected
> rectangle to be fixed around the edge of the building - meaning a lot less
> editing in JOSM. I’m also aware of similar projects, but I haven’t found
> anything that’s able to detect buildings or ready for use yet:
> >
> > https://github.com/trailbehind/DeepOSM (find misconfigured roads in OSM)
> > https://github.com/patrick-dd/landsat-landstats (predicts population
> size)
> > https://github.com/larsroemheld/OSM-HOT-ConvNet
> >
> >
> > I'm not suggesting this could replace volunteers (since algorithms will
> never be completely accurate), but maybe this could help speed things up or
> be used to quickly estimate building locations over large areas.
> >
> > Please let me know your thoughts. Could this could be a useful tool for
> HOT or any other volunteer organisations and is it worth taking any further?
> >
> > Thanks,
> >
> > Philip Hunt
> >
> >
> > _______________________________________________
> > HOT mailing list
> > HOT at openstreetmap.org
> > https://lists.openstreetmap.org/listinfo/hot
> >
>
>
> _______________________________________________
> HOT mailing list
> HOT at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/hot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/hot/attachments/20161223/e6cd2dfe/attachment.html>


More information about the HOT mailing list