news 2026/9/15 21:17:39

FiftyOne 快速上手带地理位置数据集 quickstart-geo:加载、浏览与地理空间分析实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FiftyOne 快速上手带地理位置数据集 quickstart-geo:加载、浏览与地理空间分析实战

FiftyOne 快速上手带地理位置数据集 quickstart-geo:加载、浏览与地理空间分析实战

【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone

导读

quickstart-geo是 FiftyOne Dataset Zoo 内置的一个轻量级地理空间示例数据集,用于帮助开发者快速体验「带 GPS 位置信息的图像数据」在 FiftyOne 中的加载、可视化与地理空间查询能力。它由 BDD100K 数据集中纽约市区验证集(validation split)的 500 张道路场景图像构成,每张图像都带有目标检测标注与 GPS 时间戳。阅读本文后,你将掌握如何通过 Python API 与 CLI 一键加载该数据集、理解其底层 ZooDataset 实现原理,并学会使用geo_near()等地理空间视图操作完成按地理位置排序、距离过滤等实战任务。

数据集一览:quickstart-geo 的核心信息

根据 quickstart_geo.rst 文档的说明,quickstart-geo是一个「小体积、带地理定位数据」的快速上手数据集,其关键元信息如下:

项目
数据集名称quickstart-geo
数据集大小33.50 MB
标签(Tags)image, location, quickstart
支持的分割(Splits)N/A(不区分 train/validation/test)
ZooDataset 类QuickstartGeoDataset(定义于 fiftyone/zoo/datasets/base.py)
可用版本OSS 0.8.0 起,Enterprise 1.0 起

数据集的内容构成:

  • 来源:BDD100K 数据集中纽约市(New York City)区域的验证集图像;
  • 样本规模:共 500 张图像;
  • 标注类型:每张图像附带目标检测(object detections)标注以及 GPS 时间戳;
  • 典型用途:快速体验 FiftyOne 的location字段处理、地图类可视化与地理空间查询。

由于数据集体积仅 33.50 MB,非常适合作为入门地理空间数据工作流的试验场,无需大规模下载即可跑通「加载 → 浏览 → 分析」全链路。

快速加载:Python API 与 CLI 双通道

Python 方式

quickstart-geofiftyone.zoo.datasets模块注册,直接通过foz.load_zoo_dataset()即可加载,然后使用fo.launch_app()在 FiftyOne App 中打开浏览:

import fiftyone as fo import fiftyone.zoo as foz dataset = foz.load_zoo_dataset("quickstart-geo") session = fo.launch_app(dataset)

CLI 方式

不写代码同样可以完成加载与启动 App,两条命令等价于上面的 Python 片段:

fiftyone zoo datasets load quickstart-geo fiftyone app launch quickstart-geo

其中fiftyone zoo datasets load负责将数据集下载并导入 FiftyOne,fiftyone app launch则启动本地 App 会话用于交互式浏览。

load_zoo_dataset 的常用参数

从 load_zoo_dataset 签名 可以看到,该入口函数支持丰富的参数以控制加载行为。对quickstart-geo而言,由于它没有 split 划分,核心常用参数包括:

  • dataset_name:为返回的 Dataset 自定义名称。不指定时,FiftyOne 会根据数据集名与 split 自动构造;若此前已用同一名称加载过该数据集,会直接返回已存在的 Dataset 而不会重复下载。
  • download_if_necessary(默认True):若本地数据集目录中不存在该数据集,则自动下载。
  • drop_existing_dataset(默认False):是否丢弃同名已存在数据集后再加载。
  • persistent(默认False):是否将数据集持久化(不随进程退出而释放)。
  • overwrite/cleanup:控制重复下载时是否覆盖、下载后是否清理临时文件。

首次调用时,FiftyOne 会自动从官方托管位置下载约 33.50 MB 的归档文件并完成导入,之后再次加载将直接使用本地缓存。

底层实现:QuickstartGeoDataset 源码解析

quickstart-geo在代码中的完整定义位于 fiftyone/zoo/datasets/base.py,其类层次为QuickstartGeoDataset(FiftyOneDataset),而FiftyOneDataset又是fozd.ZooDataset的子类,是「FiftyOne 原生提供」的动物园数据集基类(base.py#L45)。

从源码结构可以梳理出以下实现事实:

  • 归档来源:类中声明了_GDRIVE_ID = "1B2msoc3ej2RD0zVHoXNQmuJIjsPxLTfz"_ARCHIVE_NAME = "quickstart-geo.zip"_DIR_IN_ARCHIVE = "quickstart-geo",表明数据集以 zip 归档形式托管,下载后解压到quickstart-geo目录。
  • 元数据属性name返回"quickstart-geo"license指向 BDD 数据集官方下载页(http://bdd-data.berkeley.edu/download.html),说明其数据版权遵循 BDD100K 的使用条款;tags返回("image", "location", "quickstart"),与文档卡片完全一致;supported_splits返回None,印证了「无分割」的说明。
  • 下载与准备流程_download_and_prepare()先调用_download_and_extract_archive()完成下载解压,随后以fot.FiftyOneDataset()作为数据集类型、foud.FiftyOneDatasetImporter作为导入器来解析元数据——包括读取类别(_get_classes)与样本数(_get_num_samples),最终返回(dataset_type, num_samples, classes)供上层完成导入。

这意味着quickstart-geo是一个「FiftyOne 原生格式(FiftyOneDataset)」的数据集:下载即得、导入零转换成本,非常适合作为教学示例。

在 App 中浏览:地图与位置字段

加载并启动 App 后,即可在 docs/source/images/dataset_zoo/quickstart-geo.png 所示的界面中看到数据集全貌:左侧为字段筛选面板(ground_truth目标检测标签、location位置字段等),中间为 500 张道路场景图像的缩略图网格(涵盖白天/夜晚的城市街道、车辆等,并叠加了青色检测框),数据集总样本数为 500。

这里的location字段正是该数据集的核心特色——它承载了每张图像的 GPS 坐标与时间戳,使数据从「纯图像」升级为「可做地理空间分析」的样本。这也是其标签中出现location的原因。

地理空间实战:用 geo_near 做位置排序与距离过滤

quickstart-geo最具实战价值的一点,是它可以直接配合 FiftyOne 的地理空间视图操作geo_near()使用。该方法的完整文档与示例位于 fiftyone/core/collections.py,其核心语义是:按样本到指定地理坐标点的距离对样本排序

需要特别注意两点使用前提:

  1. geo_near必须作为 DatasetView 中的第一个 stage出现;
  2. 要求在指定 location 字段上存在球形索引(spherical index),可通过create_index=True自动创建。

以下是官方文档中针对quickstart-geo的完整示例(以纽约时报广场为例):

import fiftyone as fo import fiftyone.zoo as foz TIMES_SQUARE = [-73.9855, 40.7580] dataset = foz.load_zoo_dataset("quickstart-geo") # 按样本到时报广场的距离排序(自动创建球形索引) view = dataset.geo_near(TIMES_SQUARE, create_index=True) # 仅保留距时报广场 5km 以内的样本 view = dataset.geo_near( TIMES_SQUARE, max_distance=5000, create_index=True, ) # 只查看位于曼哈顿的样本 import fiftyone.utils.geojson as foug

geo_near()的主要参数包括:

  • point:目标地理坐标点,形如[经度, 纬度]
  • location_field:使用的 location 字段名(数据集默认字段即可);
  • min_distance/max_distance:距离过滤范围(单位:米),用于实现「距某点 X 米到 Y 米之间」的环形筛选;
  • query:可选的 GeoJSON 查询对象,用于更复杂的地理区域限定;
  • create_index:是否自动在 location 字段上创建球形地理索引(首次使用建议开启以加速查询)。

由此可以看出,quickstart-geo不仅是展示数据的「花瓶」示例,更是一套可以直接复制运行的地理空间分析教学样例:从「加载数据」到「按位置排序」「距离圈选」「区域过滤」一气呵成。

小结

  • quickstart-geo是 FiftyOne Dataset Zoo 内置的 500 张图像、33.50 MB 的地理空间快速上手数据集,源自 BDD100K 纽约市验证集,含目标检测标注与 GPS 时间戳;
  • 通过foz.load_zoo_dataset("quickstart-geo")或 CLI 的fiftyone zoo datasets load quickstart-geo均可一键加载,其底层由 QuickstartGeoDataset 以 FiftyOne 原生格式提供,下载即用;
  • 结合geo_near()等地理空间视图操作,可以用它快速验证按地理位置排序、距离过滤等分析流程,是学习 FiftyOne 地理空间功能的理想入门数据集。

如需了解 Zoo Dataset 机制的完整说明,可进一步阅读 dataset_zoo 总览 与 数据集卡片索引。

【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 21:15:14

基于Hadoop+Spark的胆结石大数据分析系统设计与实现

1. 项目背景与核心价值这个毕业设计选题完美结合了医疗健康与大数据技术两大热门领域。胆结石作为一种常见消化系统疾病,全球发病率约10%-15%,我国部分地区甚至高达20%。传统临床研究受限于样本量小、维度单一等问题,而基于HadoopSpark的分布…

作者头像 李华
网站建设 2026/9/15 21:13:32

极验四代滑块验证码轨迹构造:物理模型与行为特征模拟实战

说实话,极验四代滑块验证码这玩意儿,我在很长一段时间里看见就头疼。前两篇我们聊了怎么定位缺口、怎么拿参数,但那都只是前戏。真正决定你能不能稳定跑通的,就是标题里写的这三个字:轨迹构造。你就算把缺口识别得再准…

作者头像 李华
网站建设 2026/9/15 21:13:12

MongoDB启动失败:Failed to unlink socket文件修复

1. 先别慌:这个报错到底在说什么看到Failed to unlink socket file /tmp/mongodb-27017.sock Unknown error这行输出时,多数人的第一反应是去搜索引擎复制粘贴,然后被一堆“删 socket”“改权限”“重装 MongoDB”的帖子淹没。我前前后后因为…

作者头像 李华
网站建设 2026/9/15 21:10:29

Oracle通过ODBC访问SQL Server:HSODBC配置与排查指南

先说个结论:这件事做的人不少,翻车的也真不少。Oracle和SQL Server分属两家厂商,Oracle自己出过一套官方的Transparent Gateway for SQL Server,但这东西属于独立授权,价格贵、安装还讲究版本匹配;相比之下…

作者头像 李华