十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FiftyOne 开源视觉 AI 数据集工具:安装部署、快速上手与核心能力深度解析

FiftyOne 开源视觉 AI 数据集工具:安装部署、快速上手与核心能力深度解析 FiftyOne 开源视觉 AI 数据集工具安装部署、快速上手与核心能力深度解析【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyoneFiftyOne 是 Voxel51 开源的计算机视觉数据集与模型管理平台定位为构建高质量数据集和视觉 AI 模型的开源工具。它以 Python 库为核心内置可交互的可视化 App、数据集 Zoo、模型 Zoo 以及完整的标注、评估与数据策展能力贯穿数据可视化 → 标注 → 模型评估 → 数据清洗的完整工作流。读完本文你将掌握 FiftyOne 的完整安装路径pip / 源码 / 开发者 / Docker / Colab、五分钟快速上手范式加载 Zoo 数据集并启动 App以及其七大核心能力的源码级实现脉络可以直接在当前仓库中对照验证。项目定位从数据到模型的完整闭环FiftyOne 的核心哲学是把数据质量与模型质量放在同一工作流中闭环管理你可以可视化并标注数据、评估模型、并比以往更高效地最大化数据与模型质量。在仓库中这一理念体现为清晰的模块划分Python SDK 核心位于 fiftyone/fiftyone.core提供 Dataset / Sample / View / Session 等对象模型可视化前端 App 位于 app/packages/app/由fiftyone.core.session负责拉起数据集与模型资源库位于 fiftyone/zoo/与 PyTorch、Ultralytics、Hugging Face 等生态的对接实现集中在 fiftyone/utils/插件与算子扩展体系位于 fiftyone/plugins/ 与 fiftyone/operators/。主包入口 fiftyone/init.py 通过pkgutil.extend_path支持多个fiftyone.XXX子包如fiftyone-brain、fiftyone-db在同一环境共存并暴露__version__等元信息。安装指南一键安装pip install fiftyone最简单的安装方式pip install fiftyoneFiftyOne 支持 Python 3.10 - 3.13README 声明。安装脚本 install.sh 中同样内置了版本门控逻辑会读取当前 Python 的major.minor并校验是否位于允许区间不满足则直接退出并提示使用受支持的版本。官方强烈建议将 FiftyOne 安装在虚拟环境中以保持工作区干净。对于大多数用户安装最新发布版即可若需排查安装问题可参考仓库中的安装文档与故障排查。源码安装Source Install若希望贡献代码或使用最新开发版可执行源码安装。前置工具链为Python3.10 - 3.13Node.jsLinux 上建议通过 nvm 安装较新版本YarnNode.js 装好后可通过corepack enable启用安装步骤git clone https://github.com/voxel51/fiftyone cd fiftyone # Mac 或 Linux bash install.sh # Windows .\install.batinstall.sh内部的实际流程install.sh依次为安装并构建 App含 nvm 与 corepack 的自动准备、yarn install与yarn build→ 安装fiftyone-db或按需从零安装 MongoDB→ 安装/升级fiftyone-brain→ 安装fiftyone主包。若导入 FiftyOne 时遇到问题可将克隆仓库路径加入PYTHONPATHexport PYTHONPATH$PYTHONPATH:/path/to/fiftyone注意安装脚本会向~/.bashrc或~/.bash_profile写入 nvm 相关配置这是安装与构建 App 所必需的。升级源码安装与重建 App拉取最新main分支并重跑安装脚本即可升级到前沿版本git checkout main git pull # Mac 或 Linux bash install.sh # Windows .\install.bat由于 App 前端与 Python 后端是分开构建的拉取到 App 新改动后需要重建可以重跑安装脚本也可以在./app目录下直接执行yarn build。从仓库结构看App 是使用 Vite 构建的 TypeScript/React 工程见 app/ 目录下的vite.config.ts与各app/packages/*子包。开发者安装需要参与开源贡献时使用-d标志执行开发者安装# Mac 或 Linux bash install.sh -d # Windows .\install.bat -d从 install.sh 的usage()可见安装脚本支持的一组完整自定义标志标志含义-h显示帮助信息-b源码安装 fiftyone-brain-d安装开发者依赖含pre-commit与requirements/dev.txt-e源码安装 voxel51-eta-m从零安装 MongoDB脚本内置版本为 6.0.5而非安装 fiftyone-db-p仅安装核心 Python 包不构建 App-o安装文档构建依赖开发者通常会进一步将 FiftyOne 配置为连接自管 MongoDB 实例相关配置方式见配置 MongoDB 连接。在 Google Colab 中源码安装在 Colab 单元格中执行以下命令然后重启运行时%%shell git clone --depth 1 https://github.com/voxel51/fiftyone.git cd fiftyone # Mac 或 Linux bash install.sh # Windows .\install.bat文档构建构建与贡献文档的方式参见 docs/README.md文档站点基于 Sphinx源码位于 docs/source/。卸载pip uninstall fiftyone fiftyone-brain fiftyone-db系统级先决条件按平台Linux在 Ubuntu 24.04 全新安装上验证通过的步骤同样适用于 Ubuntu 22.04 及 Ubuntu Serversudo apt-get update sudo apt-get upgrade sudo apt-get install python3-venv python3-dev build-essential git-all libgl1-mesa-devLinux 至少需要openssl与libcurl包Debian 系发行版需按版本安装libcurl4或libcurl3# Ubuntu sudo apt install libcurl4 openssl # Fedora sudo dnf install libcurl openssl创建并激活虚拟环境python3 -m venv fiftyone_env source fiftyone_env/bin/activate处理视频数据集可选时安装 FFmpegsudo apt-get install ffmpegmacOS依次安装 Xcode Command Line Tools、Homebrew、Python 与 protobufxcode-select --install /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) brew install python3.10 brew install protobuf随后创建并激活虚拟环境按需brew install ffmpeg。Windows⚠️ 微软商店提供的 Python 版本不推荐使用 ⚠️应从 python.org 下载 64 位的 Python 3.10 - 3.13 安装包安装时勾选将 Python 加入 PATH并建议点击禁用 PATH 长度限制。随后安装 Microsoft Visual C Redistributable 与 Git再创建虚拟环境python -m venv fiftyone_env fiftyone_env\Scripts\activate激活后命令行提示符会显示(fiftyone_env)前缀。如需处理视频下载 FFmpeg 二进制并将其 bin 目录如C:\ffmpeg\bin加入PATH环境变量。Docker构建并运行包含发布版或源码版 FiftyOne 的 Docker 镜像参考环境文档中的 Docker 章节。仓库根目录提供了 Dockerfile 与 Makefile。快速上手加载数据集并启动 App打开 Python 交互环境运行以下代码——它会下载一个小型数据集并启动 FiftyOne App 供你探索import fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset(quickstart) session fo.launch_app(dataset)如果你是在脚本中运行而非交互环境必须在末尾加上session.wait()阻塞执行直到关闭 App 为止。从源码看session.wait() 的默认参数为wait3秒即失去全部连接后最多等待 3 秒再返回传入负值则会无限期等待适合需要保持会话的场景session.wait() # 默认等待 session.wait(-1) # 永久阻塞直到用户关闭 Appload_zoo_dataset 参数详解load_zoo_dataset定义于 fiftyone/zoo/datasets/init.py是加载 Zoo 数据集的标准入口。其完整签名与语义如下参数默认值说明name_or_url必填Zoo 数据集名称或远程源GitHub 仓库 URLhttps://github.com/user/repo、GitHub ref/tree/branch或/commit/commit、user/repo[/ref]、公开归档文件zip/tarURLsplitNone加载单个划分典型值为train/validation/testsplitsNone加载多个划分的列表二者均未提供时加载全部可用划分label_fieldNone标签存放字段数据集只有一个标签字段时默认为ground_truth多标签字段时使用数据集特定字段名dataset_nameNone返回数据集的命名默认根据数据集名与划分自动构造download_if_necessaryTrue数据集目录中不存在时是否自动下载drop_existing_datasetFalse同名数据集已存在时是否删除重建persistentFalse会话结束后数据集是否在数据库中持久保存overwriteFalse需要下载时是否覆盖已有文件cleanupTrue是否清理下载产生的临时文件progressNoneTrue/False控制进度条渲染None时取fiftyone.config.show_progress_bars默认值也可传入进度回调函数**kwargs—传给DatasetImporter构造函数或远程数据集的load_dataset()方法的可选参数download_if_necessaryTrue时还可包含download_zoo_dataset的参数底层调用链fiftyone/zoo/datasets/init.py展示了几个值得注意的实现细节未指定dataset_name且之前加载过相同 Zoo 数据集与划分时会直接返回已存在的数据集fo.load_dataset避免重复下载对无标签如 test划分会自动向 importer 注入include_all_dataTrue确保为没有对应标签条目的媒体也生成样本每个划分通过dataset.add_importer(...)以tags[split]方式写入数据集便于后续按划分过滤。launch_app 参数详解launch_app定义于 fiftyone/core/session/session.py同一时刻只能打开一个 App 实例重复调用会先关闭旧实例。主要参数参数默认值说明datasetNone要加载的Dataset或DatasetViewviewNone要加载的DatasetView视图sample_id/group_idNone在模态框中定位加载的 Sample / Group IDspacesNone定义空间布局配置的Space实例color_schemeNone自定义配色方案plotsNone连接到会话的PlotManagerport/addressNoneApp 服务端口与地址缺省取fiftyone.config.default_app_port/default_app_addressremoteFalse远程会话模式不尝试本地打开 AppbrowserNone指定浏览器打开 App缺省用系统默认heightNone笔记本单元格中 App 实例的渲染高度像素autoTrue会话状态更新时是否自动展示新 App 窗口笔记本场景configNone控制细粒度 App 默认设置的AppConfig会话还支持session.view ...等属性赋值以动态切换视图配合session.no_show()上下文管理器可在不弹出新窗口的情况下批量更新状态如dataset.take(100)抽样。核心特性Key Features原生标注Native Annotation在 App 内直接创建与编辑 2D/3D 标签或对接你常用的标注工具然后在一个平台内完成策展、QA 与迭代。仓库中对应Python 端标注服务抽象位于 fiftyone/core/annotation/前端标注交互位于 app/packages/annotation/另有独立的 视频标注子包 与 3D 渲染引擎 app/packages/looker-3d/。可视化复杂数据集Visualize Complex Datasets在强大的可视化界面中轻松探索图像、视频及关联标签。核心是 fiftyone/core/session/ 驱动的会话机制前端渲染器为 app/packages/looker/图像/视频查看器与 app/packages/looker-3d/3D 场景查看器并支持空间面板布局app/packages/spaces/。探索嵌入Explore Embeddings在 App 中通过降维散点图探索样本的嵌入向量选中感兴趣的点即可查看对应的样本与标签。仓库中有两代实现经典版 app/packages/embeddings/ 与新一代 app/packages/embeddings-v2/后端计算位于 fiftyone/core/plots/提供EmbeddingPanel等可视化面板。分析与改进模型Analyze and Improve Models评估模型性能、识别失败模式并对模型进行微调。核心评估框架位于 fiftyone/core/evaluation.py前端评估视图在 app/packages/core/ 中实现用户可对同一批样本运行多个模型的预测并与 ground truth 对比逐类分析误检与漏检。高级数据策展Advanced Data Curation快速发现并修复数据问题、标注错误与边缘案例。这依赖 fiftyone/core/brain.py 暴露的 Brain 方法如compute_uniqueness、compute_mistakenness、compute_similarity等底层由 fiftyone-brain 包提供配合前端 app/packages/spotlight/ 的基于相似度的 Spotlight 视图进行交互式清洗。丰富集成Rich Integrations与主流深度学习生态开箱即用PyTorchfiftyone/utils/torch.py、Hugging Facefiftyone/utils/huggingface.py、Ultralyticsfiftyone/utils/ultralytics.py、SAM 系列fiftyone/utils/sam.py 等、COCO/VOC 等数据集格式fiftyone/utils/coco.py、fiftyone/utils/voc.py以及 CVAT、Labelbox、Label Studio 等标注工具对接。开放可扩展Open and Extensible通过插件Plugins与算子Operators体系按需定制Python 端框架在 fiftyone/plugins/ 与 fiftyone/operators/前端注册与面板在 app/packages/plugins/ 与 app/packages/operators/仓库还内置了可直接复用的示例插件见 plugins/。数据集 Zoo 与模型 Zoo除 quickstart 外fiftyone/zoo/datasets/ 提供大量公开数据集的一键加载load_zoo_dataset、download_zoo_dataset、find_zoo_dataset、list_zoo_datasets等fiftyone/zoo/models/ 则提供list_zoo_models、download_zoo_model、load_zoo_model等接口下载与加载预训练模型供评估与推理使用。配置与数据目录FiftyOne 的本地配置集中在用户主目录下的~/.fiftyone相关路径常量定义于 fiftyone/constants.py路径用途~/.fiftyone/config.json主配置文件FIFTYONE_CONFIG_PATH~/.fiftyone/annotation_config.json标注后端配置~/.fiftyone/evaluation_config.json评估配置~/.fiftyone/app_config.jsonApp 细粒度默认设置~/.fiftyone/var/lib/mongo默认 MongoDB 数据目录DEFAULT_DB_DIR~/.fiftyone/migrations数据库迁移记录从constants.py还可看到两个对兼容性有影响的事实客户端声明的数据集兼容版本范围为0.19,2COMPATIBLE_VERSIONS即旧版本客户端创建的数据集可由当前客户端无错加载与编辑App 内置了一套默认标签配色池DEFAULT_APP_COLOR_POOL共 13 种颜色可通过ColorScheme自定义覆盖。FAQ、社区与引用安装问题排查参考故障排查页与常见问题 FAQ仍无法解决时可在 GitHub Issues 提交问题或加入社区 Discord 交流。贡献指南FiftyOne 与 FiftyOne Brain 均开源欢迎社区贡献参与方式见 CONTRIBUTING.md 与仓库根目录的 AGENTS.md、CODING_STANDARDS.md 等协作文档开发环境搭建参考上文开发者安装。论文引用如在研究中使用了 FiftyOne可引用项目article{moore2020fiftyone, title{FiftyOne}, author{Moore, B. E. and Corso, J. J.}, journal{GitHub. Note: https://github.com/voxel51/fiftyone}, year{2020} }结语FiftyOne 的价值在于把看数据、标数据、评模型、清数据整合进同一个开源工作流Python SDK 提供编程式数据操作与评估App 提供即时可视化反馈Zoo 提供即取即用的数据集与模型插件体系则允许按需扩展。对于正在构建高质量视觉 AI 数据集、或希望系统性分析模型失败模式的团队从pip install fiftyone加一段 quickstart 代码即可快速起步并可在本文引用的各源码模块中深入理解其内部实现。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表