Start with a line, let the planet complete the picture
Jeff Nusz, Data Arts
Team
Take a break this holiday season and paint with satellite images of the Earth through a new
experiment called
Land Lines. The project lets
you explore Google Earth images in unexpected ways through gesture. Earth provides the
palette; your fingers, the paintbrush.
There are two ways to explore–drag or draw. "Draw" to find satellite images that
match your every line. "Drag" to create an infinite line of connected rivers,
highways and coastlines. Here's a quick demo:
Everything runs in real time in your phone's web browser without any servers.
The responsiveness of the project is a result of using machine learning,
data optimization, and vantage-point trees to analyze the images and store that data.
We preprocessed the images using a combination of
Open
CV's Structured Forests machine learning based edge detection and
ImageJ's Ridge Detection library. This
culled the initial
dataset of over fifty thousand high res images down to just a few thousand
selected for their presence of lines, as shown in the example below. What
ordinarily would take days was completed in just a few hours.
Example output from the line detection processing. The
dominant line is
highlighted in red while secondary lines are highlighted in green.
In the drawing exploration, we stored the resulting data in a
vantage-point tree. This enabled
us to efficiently run gesture matching against all the images and have results
appear in milliseconds.
An early example of gesture matching using vantage
point trees, where the
drawn input is on the right and the closest results on the left.
Another example of user gesture analysis, where the
drawn input is on the
right and the closest results on the left.
Built in collaboration with Zach Lieberman,
Land Lines is an experiment
in big visual data that explores themes of connection. We tried several machine
learning libraries in our development process. The learnings from that
experience can be found in the
case study,
while the project
code is available open-source on
Git
Hub. Start with a line at
g.co/landlines.