尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

FiftyOne Dataset Zoo 快速入门:使用 quickstart-groups 分组数据集探索多模态 3D 场景

FiftyOne Dataset Zoo 快速入门:使用 quickstart-groups 分组数据集探索多模态 3D 场景 FiftyOne Dataset Zoo 快速入门使用 quickstart-groups 分组数据集探索多模态 3D 场景【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyonequickstart-groups是 FiftyOne Dataset Zoo 内置的一个小型分组数据集grouped dataset它从 KITTI 数据集的训练集train split中精选了 200 个场景每个场景同时包含左/右相机图像、点云以及 2D/3D 目标标注可用于快速体验 FiftyOne 对多模态分组数据的下载、加载与可视化能力。阅读本文后你将掌握如何通过一行 Python 代码或一条 CLI 命令加载该数据集理解其底层QuickstartGroupsDataset的实现原理并学会在 FiftyOne App 中浏览图像与点云同步联动的 3D 场景。数据集概览quickstart-groups自 FiftyOne 开源版 0.17.0Enterprise 版 1.0起随 Dataset Zoo 提供官方文档中给出的核心元信息如下属性值数据集名称quickstart-groups数据集大小516.3 MB源码类文档字符串中标注约 576 MB以实际下载为准许可证CC-BY-NC-SA-3.0标签image,point-cloud,quickstart支持的 splitsN/A不划分训练/验证/测试子集ZooDataset 类QuickstartGroupsDataset定义于 fiftyone/zoo/datasets/base.py数据内容为 KITTI 数据集训练集中的 200 个场景scenes每个场景包含四种模态的数据左相机图像left camera、右相机图像right camera、点云point cloud以及2D/3D 目标标注object annotation。得益于 FiftyOne 的分组Groups机制这四个模态被组织为一个分组group共享同一个group_id可在 App 中同步切换、联动查看。一行代码加载Python 快速上手Dataset Zoo 的核心入口是fiftyone.zoo.datasets.load_zoo_dataset()加载并可视化quickstart-groups只需如下代码import fiftyone as fo import fiftyone.zoo as foz # 下载如尚未下载并加载 quickstart-groups 数据集 dataset foz.load_zoo_dataset(quickstart-groups) # 在 FiftyOne App 中可视化 session fo.launch_app(dataset)默认情况下如果数据集尚未下载到本地load_zoo_dataset()会自动完成下载与解压因此首次执行时需要联网并等待数据传输完成。加载完成后dataset是一个标准的 fiftyone.core.dataset.Dataset 实例可以直接进行筛选、聚合、导出等后续操作。命令行加载CLI 快速上手如果不希望编写 Python 代码也可以使用 FiftyOne 命令行工具完成同样的流程。第一步通过zoo datasets load子命令下载并加载数据集fiftyone zoo datasets load quickstart-groups第二步通过app launch子命令启动 App 并打开该数据集进行可视化fiftyone app launch quickstart-groups其中fiftyone zoo datasets load支持--splits、--dataset-name等可选参数fiftyone app launch支持-p端口、-A监听地址、-b浏览器、-r远程等选项具体用法可查阅 docs/source/cli/index.rst。完整的数据集列表可用fiftyone zoo datasets list查看。源码级剖析QuickstartGroupsDataset 的实现quickstart-groups在 Dataset Zoo 中注册为QuickstartGroupsDataset类其类文档字符串与本文档描述一致见 fiftyone/zoo/datasets/base.py。该类继承自FiftyOneDataset原生内置于 FiftyOne 的 Zoo 数据集基类见 fiftyone/zoo/datasets/base.py并通过模块末尾的注册表与名称quickstart-groups关联。从源码结构可以归纳出以下几个关键实现事实1. 下载元信息硬编码在类属性中_GDRIVE_ID 1OcuP2daa_usoinLm64CueObGFxLBwOjE _ARCHIVE_NAME quickstart-groups.zip _DIR_IN_ARCHIVE quickstart-groups数据源托管在 Google Drive 上下载过程由_download_and_extract_archive()完成先通过etaw.download_google_drive_file()拉取压缩包再解压并把归档内的quickstart-groups目录移动到目标数据集目录。2. 元数据声明集中在属性中name返回quickstart-groupslicense返回CC-BY-NC-SA-3.0tags返回(image, point-cloud, quickstart)supported_splits返回None表示该数据集不划分 split与文档中 Supported splits: N/A 一致has_patches返回True表示该数据集支持按标签裁剪出 patch 子视图。3. 加载流程使用 FiftyOneDataset 原生格式_download_and_prepare()在解压后通过FiftyOneDatasetImporter._get_num_samples()与_get_classes()读取样本数量与类别信息返回的数据集类型为fiftyone.types.FiftyOneDataset即数据以 FiftyOne 原生序列化格式存储加载时无需额外转换。4. 点云格式自适应修补该类还重写了_patch_if_necessary()当检测到数据集中的点云PCD元数据格式不符合当前 App 版本要求时会重新下载并修补数据。判断逻辑位于_should_patch_pcd()fiftyone/zoo/datasets/base.py其检查要点包括v1 旧格式metadata.json中 3D 插件配置app_config.plugins[3d]的 overlay 是否包含itemRotationv2 新格式group_media_types中pcd对应的媒体类型是否为3d。一旦发现版本不匹配就会触发重新下载修补从而保证不同版本的 FiftyOne App 都能正确渲染点云与 3D 边界框。这一机制也解释了为何该数据集的类文档中标注约 576 MB而官方文档页标注 516.3 MB——两者对应不同时期的归档版本实际占用以你下载到的版本为准。深入使用进阶操作与常见问题在 App 中联动查看多模态分组启动 App 后quickstart-groups的每个分组由 GROUP 面板统一管理左侧显示左/右相机的多视角图像右侧显示对应的点云PCD与红色 3D 边界框标注元数据面板中可看到分组 ID、分组名称与组类型如left。切换分组时同一group_id下的图像与点云会同步更新非常适合演示 2D-3D 联合标注与多模态数据关联。通过 tags 检索该数据集quickstart-groups被打上了image、point-cloud、quickstart三个标签因此可以用list_zoo_datasets()的标签过滤功能快速定位import fiftyone.zoo as foz # 列出所有带 point-cloud 与 quickstart 标签的数据集 names foz.list_zoo_datasets(tags[point-cloud, quickstart]) print(names)list_zoo_datasets()还支持source与license过滤例如foz.list_zoo_datasets(licenseCC-BY-NC-SA-3.0)可列出同许可证的数据集见 fiftyone/zoo/datasets/init.py。加载参数说明load_zoo_dataset()的核心参数完整签名见 fiftyone/zoo/datasets/init.py包括参数默认值说明name_or_url必填数据集名称或远程源GitHub 仓库/ref/归档 URLsplit/splitsNone要加载的子集quickstart-groups无 split可忽略label_fieldNone标签存储字段名默认ground_truthdataset_nameNone自定义返回数据集名称默认由名称与 split 构造download_if_necessaryTrue本地不存在时是否自动下载drop_existing_datasetFalse是否丢弃同名已存在数据集persistentFalse会话结束后是否在数据库中持久化overwriteFalse下载时是否覆盖已有文件cleanupTrue是否清理下载产生的临时文件progressNone是否显示进度条True/False/回调函数例如将数据集重命名并持久化保存便于后续会话直接复用import fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset( quickstart-groups, dataset_namemy-quickstart-groups, persistentTrue, )常见注意事项许可证约束数据集采用 CC-BY-NC-SA-3.0非商业、相同方式共享使用前请确认符合该许可条款首次下载耗时数据约 516 MB且托管于 Google Drive首次加载耗时取决于网络状况无 split 划分quickstart-groups不区分 train/validation/test加载时无需也不应传split参数点云兼容性若遇到点云无法在 App 中渲染的情况可重新加载数据集触发_patch_if_necessary()的自动修补逻辑。小结quickstart-groups是理解 FiftyOne 分组Groups与多模态数据图像 点云 2D/3D 标注工作流的理想起点文档提供了一致的元信息描述而 QuickstartGroupsDataset 的源码实现则完整展示了 Zoo 数据集从下载、解压、元数据解析到点云格式修补的完整生命周期。结合 Dataset Zoo 概览 与 Dataset Zoo 首页你还可以继续探索 Zoo 中其他内置数据集并将同样的加载模式推广到自定义数据上。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表