框架组
ClearML 企业版提供FrameGroup作为一种易于使用的框架类型,支持多种来源。 将SingleFrames列表添加到FrameGroup中,然后在数据集版本中注册FrameGroups。 查看和编辑 FrameGroups及其包含的SingleFrames 在ClearML 企业版WebApp(UI)中。
一个SingleFrame由在特定时间点针对特定空间区域收集的原始数据的元数据组成,还包括注释和掩码等附加元数据。因此,FrameGroup将同一时间点的多组原始数据及其附加元数据组合在一起。
例如,使用FrameGroups用于以下情况:
- 自动驾驶汽车上的多个摄像头 - 由每个摄像头的SingleFrame组成的FrameGroup。
- 机器上的多个传感器检测缺陷 - 由每个传感器的SingleFrame组成的FrameGroup。
用法
创建FrameGroup
FrameGroup 类似于 SingleFrames 的字典。实例化一个 FrameGroup 和一个 SingleFrame。然后将 SingleFrame 对象添加到 FrameGroup 中,键为 SingleFrame 的名称,值为 SingleFrame 对象。
from allegroai import FrameGroup, SingleFrame
# Create a FrameGroup object
frame_group = FrameGroup()
# Create a SingleFrame
frame = SingleFrame(
source='https://allegro-datasets.s3.amazonaws.com/tutorials/000012.jpg',
width=512, height=512,
preview_uri='https://allegro-datasets.s3.amazonaws.com/tutorials/000012.jpg'
)
# Add the first SingleFrame to the FrameGroup.
frame_group['FrameOne'] = frame
向数据集版本添加FrameGroups
要向数据集版本添加FrameGroups:
-
创建一个FrameGroup对象
-
将SingleFrames添加到FrameGroup中,其中FrameGroup中每个SingleFrame的键是SingleFrame的名称
-
将FrameGroup对象附加到帧列表中
-
使用
DatasetVersion.add_frames()
方法将该列表添加到DatasetVersion中。使用upload_retries
参数设置在上传失败的情况下,应重试上传帧的次数,然后将帧标记为失败并继续上传下一帧。如果FrameGroup中的单个帧上传失败,则整个组将不会被注册。该方法返回未成功注册或上传的帧列表。
# Create a FrameGroup object
frame_group = FrameGroup()
# Create SingleFrame
single_frame = SingleFrame(
source='https://allegro-datasets.s3.amazonaws.com/tutorials/000012.jpg'
)
# Add the first SingleFrame to the FrameGroup.
frame_group['FrameOne'] = single_frame
# The DatasetVersion.add_frames requires a list of frames.
frames = []
frames.append(frame_group)
# Add the FrameGroup to the version
myVersion.add_frames(frames)
访问FrameGroup
要访问一个FrameGroup,请使用DatasetVersion.get_single_frame()
,
就像访问SingleFrame时一样:
# Get the FrameGroup
frame_group = DatasetVersion.get_single_frame(
frame_id='f3ed0e09bf23fc947f426a0d254c652c',
dataset_name='MyDataset',
version_name='FrameGroup'
)
更新FrameGroups
更新FrameGroups与更新SingleFrames类似,不同之处在于每个SingleFrame需要使用其名称作为FrameGroup中的键来引用。
frames = []
# Get the FrameGroup
frame_group = DatasetVersion.get_single_frame(
frame_id='f3ed0e09bf23fc947f426a0d254c652c',
dataset_name='MyDataset',
version_name='FrameGroup'
)
# Add metadata by referencing the name of the SingleFrame in the FrameGroup
frame_group['FrameOne'].metadata['new_key'] = 'new_value'
# Update change to the FrameGroup
frames.append(frame_group)
myVersion.update_frames(frames)
删除帧
要删除一个FrameGroup,请使用DatasetVersion.delete_frames()
方法,就像删除SingleFrame时一样,只是这里引用的是FrameGroup。
frames = []
# Get the FrameGroup
frame_group = DatasetVersion.get_single_frame(
frame_id='f3ed0e09bf23fc947f426a0d254c652c',
dataset_name='MyDataset',
version_name='FrameGroup'
)
# Delete the FrameGroup
frames.append(frame_group)
myVersion.delete_frames(frames)