如何使用COCOInstance从训练数据集读取(image,label,segm)元组
拆分CocoDetection数据集的image、label与segmentation
torchvision.datasets.CocoDetection返回的样本结构是**(image, target)**二元组,其中target是一个包含多个目标标注的字典列表,每个字典里存储了该目标的category_id(对应label)、segmentation(对应segm)等标注信息,你需要从target里提取对应字段:
单目标样本的提取方式
如果当前样本仅包含一个目标标注,直接取列表第一个元素的对应字段:
train_image, target = train_dataset[6] # 提取目标标签 train_label = target[0]['category_id'] # 提取目标分割掩码 train_segm = target[0]['segmentation']
多目标样本的提取方式
如果样本里有多个目标,可通过列表推导式批量提取所有标签和分割信息:
train_image, target = train_dataset[6] # 获取所有目标的标签列表 train_labels = [anno['category_id'] for anno in target] # 获取所有目标的分割掩码列表 train_segms = [anno['segmentation'] for anno in target]
确认标注字段结构
如果不确定target里的具体字段,可先打印查看标注结构,避免因数据集标注差异出错:
train_image, target = train_dataset[6] print(target)
内容的提问来源于stack exchange,提问作者zeynep
相关产品推荐
相关产品推荐

