谷歌开源Land Lines:简单一笔为你匹配谷歌地球对应位置

新年将近,如果你不愿意亲自在寒冷的冬天里外出旅行,那么你可以尝试一下谷歌地球(Google Earth)。但地球这么大,你却不知道看哪里?没关系,谷歌近日又推出了一项神奇的新功能:Land Lines。你只需要简简单单画一笔,谷歌就能为你将这一笔和谷歌地球上的地理或建筑线条匹配起来,将你带到你意想不到的地方:东南亚群岛的海岸线、欧洲小镇的街角、南美横贯的河流……


这一切只需要轻轻一画。


体验地址:https://lines.chromeexperiments.com 


该项目有两种体验方式。一是画(draw)——能帮你找到与你画的线匹配的卫星图像;二是拉(drag)——可以创建一条互相连接的河流、高速公路和海岸线的线条。下面是一个简单的演示:

LandLines_drag-iloveimg-compressed.gif

这一切都运行在你的手机网页浏览器中,不需要任何服务器。(桌面 Chrome 浏览器也可使用。)据谷歌介绍,这些响应是通过机器学习、数据优化和 vantage-point tree 分析图像和存储该数据所得到的。


谷歌解释说:

我们组合性地使用了 OpenCV 的基于结构化森林(Structured Forests)机器学习的边检测和 ImageJ 的 Ridge Detection 库。这将最初的超过 5 万张高分辨率图像数据集减少到了能够代表这些线的形状的仅仅几千张图像,如下图所示。这样的处理以往需要花费几天时间,我们只用了几个小时就完成了。

image02.png

来自线条检测处理(line detection processing)的输出示例。其中主线以红色突出显示,而辅助线则以绿色显示。

在绘画实验中,谷歌将结果数据存储到了 vantage-point tree 中。这让该应用可以有效地在所有图像上运行手势匹配(gesture matching),并在毫秒级的时间内给出结果。

image03.png

使用 vantage-point tree 的一个早期的手势匹配样本,其中右边是画出的输入,而左边则是最接近的结果。

image00.png

另一个用户手势分析的示例,其中右边是画出的输入,而左边则是最接近的结果。

该项目是与黑客兼艺术家 Zach Lieberman 合作开发的。Land Lines 是一个大型视觉数据连接主题探索实验。开发团队表示他们在他们的开发过程中采用了多种机器学习库。Lieberman 还写了一份有关的学习经历,该项目的代码也已经开源,相关链接如下:


  • Lieberman 的经历:https://developers.google.com/web/showcase/2016/land-lines

  • Land Lines 开源地址:http://github.com/ofZach/landlines/

  • vantage-point tree 开源地址:https://github.com/fpirsch/vptree.js

  • OpenCV Structured Forests 机器学习:http://docs.opencv.org/3.1.0/d0/da5/tutorial_ximgproc_prediction.html 

  • ImageJ 的 Ridge Detection 库:http://imagej.net/Ridge_Detection

入门谷歌开源工程计算机视觉
1