文章目录
FiftyOne——数据集、样本等的基础操作
引言
概念
-
样本 sample
指的是某个数据实例,例如一张图片,但注意在FiftyOne只是把sample实例的某个filepath属性指向具体数据的路径,并不把数据载入到程序中。 -
字段 fields
一个字段指的是样本的一个信息,例如 filepath指的是一个sample对应数据的路径。除了filepath外,还有其它的例如id等字段 -
数据集 dataset
指的是FiftyOne创建的抽象数据集概念。指的是一些sample的组织关系。不是指具体的图像数据。
三者的关系就是,
一个dataset是一些sample的组织关系,每个sample里面有多个fields。
数据集 dataset
保存\删除数据集
dataset1.persistent = True # 保存数据集,正常情况下,当退出终端的时候,程序中的数据集将会被自动清空。
dataset1.deleted # 将会从离线和在线中都删除
查看现有数据集
fo.list.datasets()
指定数据集名称
dataset.name = "名称"
数据集信息的记录
每个数据集都由一个info属性,其实就是一个字典,你可以往里面添加你的各种备注的消息,然后保存在里面文件中
import fiftyone as fo
dataset = fo.Dataset()
# Store a class list in the dataset's info
dataset.info = {
"dataset_source": "https://...",
"author": "...",
}
# Edit existing info
dataset.info["owner"] = "..."
dataset.save() # 必须调用这个语句才能保存在硬盘里面
返回样本迭代器
samples = dataset.iter_samples()
样本 sample
载入样本
可以看到,一个sample并不是载入实际的数据,而是记录了他的路径
# An image sample
sample = fo.Sample(filepath="/path/to/image.png")
# A video sample
another_sample = fo.Sample(filepath="/path/to/video.mp4")
将样本添加到数据集中
dataset = fo.Dataset("example_dataset")
dataset.add_sample(sample)
# 或者批量加入
dataset.add_samples(
[
fo.Sample(filepath="/path/to/image1.jpg"),
fo.Sample(filepath="/path/to/image2.jpg"),
fo.Sample(filepath="/path/to/image3.jpg"),