计算机视觉格式
15 种导入格式与 29 种导出格式,其中 11 种可双向往返。包括带 RLE 与人群区域的 COCO、YOLO、Pascal VOC、CVAT、双向的 Darwin、KITTI、MOT、DAVIS、Cityscapes 等。
Potato 可读取 15 种计算机视觉格式、写出 29 种,其中 11 种可双向往返。 如果你正在权衡是否迁移一份数据集,真正的问题通常不是标签能不能进来,而是能不能再出去。
导入
potato import --format coco path/to/annotations.json
potato import path/to/dataset/ # 依据特征文件自动识别potato import 接受目录与压缩包,并依据特征文件识别格式,无需你指明。
导入格式:COCO(多边形、RLE、人群区域、全景、关键点)、YOLO、Pascal VOC、CVAT XML、Darwin(V7)、LabelMe、KITTI、MOT、DAVIS、Cityscapes、Labelbox、Open Images、VIA、WebDataset、HuggingFace。
COCO 是按原样导入的,包含多边形与 RLE 分割以及 iscrowd 人群区域,无需任何预处理步骤。已有的标注与模型输出可以直接修正,而不必重做。
迁移这个问题
只支持导入的路径,让团队能够离开某个平台一次,却永远无法把成果交回去。在你把工具定下来之前,这种不对称值得先查清楚。
在 Potato 中 Darwin 是双向的,因此一份 V7 数据集可以进来、被加工、再回去。这是关于这一部分能力最值得一说的一点。
这张矩阵是生成的,也是被测试的
格式矩阵由注册表生成,并由一项测试固定:它断言表中列出的每种格式确实已注册、已注册的格式没有一个从表中遗漏,并且单向路径在两个方向上都被标注为单向。
一张可能与代码脱节的矩阵,比没有矩阵更糟:它会告诉人们某次迁移可行而实际不可行;而低报了实际可行的部分,则会把人们从一次本可成功的迁移前面劝退。
各格式能承载什么
不同格式所能保留的几何信息各不相同,而损失并不总是显而易见:
- Pascal VOC 与 KITTI 只承载框。导出到其中任何一种时,多边形都会退化为它的外接框。
- YOLO 承载框与多边形,不承载掩码。
- DAVIS 只承载逐实例掩码,别的都不承载。
- Cityscapes 承载多边形,不承载框。
- KITTI 3D 只承载单个偏航角,因此俯仰与滚转会被舍弃——并且导出时会报告舍弃了多少朝向信息。参见点云。
经由有损格式往返,自然会以显而易见的方式产生损失;Potato 会说明哪个方向会损失什么,而不是留给你自己去发现。