Land Lines 的卫星图像来自哪里?
Land Lines 的卫星图像来自 Google Earth。这个 Chrome Experiments 实验项目把 Google Earth 的卫星影像作为素材库,让你用画线或拖动的方式去匹配地球表面已有的线条。它不生成新图像,也不实时抓取地图,而是从预先筛选好的图像数据集里找匹配项。
图像从原始数据到可用素材的处理流程
项目团队没有直接把 5 万多张卫星图全部塞进应用,而是先做了一轮筛选。
第一步:分析 5 万多张初始图像
初始数据集包含 50,000 多张图像。团队用两种工具来识别图像中的主要视觉线条:
- OpenCV Structured Forests:用于分析图像结构
- ImageJ 的 Ridge Detection:用于检测脊线
两者结合,找出每张图里最显著的线条走向。
第二步:筛选出几千张“最有趣”的图像
线条检测的结果用来做减法。原始数据集被大幅缩减,只保留 几千张 线条特征最明显、最适合匹配的图像。这一步决定了你画一条线时,系统能给出的候选图质量。
第三步:把线条数据存进 Vantage Point Tree
“Draw”模式要实时匹配你画的线,靠的是一种叫 vantage point tree 的数据结构。它把筛选后的线条数据组织起来,让浏览器能在本地快速查找相似线条,不需要请求后端服务器。
图像存在哪里、怎么送达
所有图像托管在 Google Cloud Storage 上。这样做的目的是让全球用户都能较快地加载图像。图像本身不经过应用服务器中转,而是直接从云存储分发。
为什么这个架构值得注意
Land Lines 的一个关键设计是:整个实验在手机浏览器里就能跑,不需要后端服务器。支撑这一点的是三样东西的组合:
| 环节 | 用到的技术 | 作用 |
|---|---|---|
| 线条识别 | OpenCV + ImageJ | 从 5 万张图里找出有线条特征的图 |
| 快速查找 | Vantage point tree | 在本地实时匹配你画的线 |
| 图形渲染 | Pixi.js(基于 WebGL) | 快速绘制和重绘 2D 图形 |
| 图像分发 | Google Cloud Storage | 全球快速加载图像 |
机器学习负责前期筛选,优化算法负责运行时查找,显卡负责渲染——三者配合,才让“画一条线,让地球补全画面”这件事在浏览器里流畅发生。
如果你想进一步了解实现细节,项目页面提供了技术案例研究和 GitHub 上的开源代码两个入口。