FiftyOne使用

本文介绍了开源工具FiftyOne的安装、数据集加载,特别是与CVAT的集成,用于图像和视频的注释。通过FiftyOne加载自定义或标准格式数据,使用CVAT进行高效标注,然后将注释合并回FiftyOne,优化数据集准备过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

fiftyone的官方定义是一款用于构建高质量数据集和计算机视觉模型的开源工具。它提供了用于优化数据集分析管道的构建块。使用它来管理数据集、可视化复杂标签、评估模型、探索感兴趣的场景、识别故障模式、查找注释错误等等。本文主要介绍fiftyone的简单使用和CVAT的交互使用。关于fiftyone的基础知识详见https://docs.voxel51.com/user_guide/basics.html

fiftyone的安装与检验

我们可以先在conda建立一个虚拟环境,

conda create -n fo python=3.9

接着安装fiftyone,使用镜像源提高下载速度

pip install fiftyone -i https://pypi.tuna.tsinghua.edu.cn/simple

然后检验一下fiftyone是否能正常使用,在pycharm新建一个文件运行以下代码:

import fiftyone as fo
import fiftyone.zoo as foz
print(foz.list_zoo_datasets())
dataset = foz.load_zoo_dataset("quickstart")
session = fo.launch_app(dataset)
session.wait()

运行结果如下

点击网页的显示效果是这样的:

fiftyone提供桌面客户端和网页两种方式启动app,如果要在客户端启动,只需要在launch_app函数中,把desktop设置成True就可以了。

数据集加载

FiftyOne 支持自动加载以各种常见格式存储的数据集,同样也支持自定义格式的数据集。如果数据集在本地,可以通过Dataset将数据自动加载到:

import fiftyone as fo

# A name for the dataset
name = "my-dataset"

# The directory containing the dataset to import
dataset_dir = "/path/to/dataset"

# The type of the dataset being imported
dataset_type = fo.types.COCODetectionDataset  # for example

dataset = fo.Dataset.from_dir(
   
### 使用YOLOv8与FiftyOne进行计算机视觉项目 为了将YOLOv8模型集成到FiftyOne工作流中,可以遵循以下方法来加载、训练以及评估模型。此过程涉及安装必要的库并准备数据集。 #### 安装依赖项 首先确保环境中已安装`ultralytics`和`fiftyone`包: ```bash pip install fiftyone ultralytics ``` #### 加载预训练的YOLOv8模型 利用Ultralytics官方API可以直接获取预训练版本的YOLOv8模型实例[^4]: ```python from ultralytics import YOLO model = YOLO('yolov8n.pt') # Load pretrained model ``` #### 准备数据集并与FiftyOne连接 创建一个新的FiftyOne Dataset对象并将图像文件导入其中。这一步骤对于后续的数据可视化非常重要: ```python import fiftyone as fo import fiftyone.zoo as foz dataset = foz.load_zoo_dataset( "coco-2017", split="validation", max_samples=50, shuffle=True, ) session = fo.launch_app(dataset) ``` 上述代码片段会自动下载COCO验证集中随机选取的50张图片作为样本,并启动 FiftyOne 应用程序以便于查看这些数据[^2]。 #### 执行推理操作 一旦完成了前期准备工作,则可以通过调用 `predict()` 方法来进行预测任务。这里需要注意的是,在实际应用过程中可能还需要调整输入尺寸等参数以适应特定需求: ```python results = [] for sample in dataset: predictions = model(sample.filepath)[0].cpu().numpy() detections = [] for pred in predictions.boxes.data.tolist(): x_min, y_min, x_max, y_max, conf, cls = pred detection = fo.Detection( label=model.names[int(cls)], bounding_box=[x_min, y_min, x_max-x_min, y_max-y_min], confidence=float(conf), ) detections.append(detection) results.append(fo.Sample(filepath=sample.filepath,detections=detections)) # Save the inference results back into the original samples. dataset.save_results(results) ``` 这段脚本遍历整个数据集中的每一个样本,针对每一张图片执行目标检测,并保存识别出来的边界框位置及其对应的类别标签至新的字段内[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值