English | 简体中文
📘使用文档 |
数据是人工智能的基石。数据获取、传播和使用的效率直接影响科技发展和应用进步。在人工智能漫长历史中,大量的数据集被制造和发布推动整个领域的发展。然而,这些数据集基于不同的形式定义,使得其在传播、融合和使用时成本较高。这通常表现为每个使用者/团队需要制定一套新的格式,开发定制化工具或脚本将新的数据集标准化合并到已有的工作流。
为了克服上述问题,我们设计了一套数据集描述语言DSDL(Data Set Description Language)。
DSDL的设计目标总共有三点:通用性(Generic),便携性(Portable),以及可拓展性(Extensible)。三种特性总称为GPE。
-
通用性
该语言主要目的是提供一种统一表示的标准,可以覆盖各个领域的人工智能数据,而不是基于特定的一种任务或者某个领域设计。该语言应该可以用一致的格式来表达不同模态和结构的数据。
-
便携性
写完无需修改,随处分发。数据集描述可以被广泛的分发和交换,不需要修改就可以在各种环境下使用。这一目标的实现对于建立开发繁荣生态至关重要。为此我们需要仔细检查实现细节,使其对底层设施或组织无感知,从而去除基于特定假设的无必要依赖。
-
可拓展性
在不需要修改核心标准的情况下可以拓展表述的边界。对于C++或者Python等编程语言,应用边界可以通过使用链接库或者软件包得以显著拓展,而核心语法可以在很长的时间内保持稳定。基于链接库和包,可以形成丰富的生态系统,使对应语言可以长时间保持活跃度和发展。
方法1 作为python包安装
pip install dsdl
方法2 从源码安装
git clone https://github.com/opendatalab/dsdl.git
cd dsdl
python setup.py install
dsdl parse --yaml demo/coco_demo.yaml
创建配置文件config.py
,内容如下(目前只支持读取阿里云OSS数据与本地数据):
local = dict(
type="LocalFileReader",
working_dir="demo",
)
ali_oss = dict(
type="AliOSSFileReader",
access_key_secret="your secret key of aliyun oss",
endpoint="your endpoint of aliyun oss",
access_key_id="your access key of aliyun oss",
bucket_name="your bucket name of aliyun oss",
working_dir="the relative path of your media dir in the bucket")
在config.py
中,列举了所有支持的媒体文件读取方式,根据实际情况选择并配置文件路径等信息:
- 本地读取:
local
中的参数working_dir
(本地数据所在的目录) - 阿里云OSS读取:
ali_oss
中的参数(阿里云OSS的配置access_key_secret
,endpoint
,access_key_id
;桶名称bucket_name
,数据在桶中的目录working_dir
)
dsdl view -y <yaml-name>.yaml -c <config.py> -l ali-oss -n 10 -r -v -f Label BBox
每个参数的意义为:
参数简写 | 参数全写 | 参数解释 |
---|---|---|
-y | --yaml |
定义所有samples的yaml文件的路径 |
-c | --config |
配置文件(config.py )的路径 |
-l | --location |
只可以指定为local 或是ali-oss ,分别表示读取本地的数据与读取阿里云的数据 |
-n | --num |
加载数据集的样本数量 |
-r | --random |
在加载数据集中的样本时是否随机选取样本,如果不指定的话就按顺序从开始选取样本 |
-v | --visualize |
是否将加载的数据进行可视化展示 |
-f | --field |
选择需要进行可视化的字段,如-f BBox 表示可视化bbox,-f Label 表示对样本的label进行可视化等等,可以同时选择多个,如-f Label BBox |
-t | --task |
可以选择当前需要可视化的任务类型,如果选择-t detection ,则等价于-f Label BBox Polygon |
如果你觉得本项目对你的研究工作有所帮助,请参考如下 bibtex 引用 DSDL。
@misc{wang2024dsdl,
title={DSDL: Data Set Description Language for Bridging Modalities and Tasks in AI Data},
author={Bin Wang and Linke Ouyang and Fan Wu and Wenchang Ning and Xiao Han and Zhiyuan Zhao and Jiahui Peng and Yiying Jiang and Dahua Lin and Conghui He},
year={2024},
eprint={2405.18315},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
DSDL
采用 Apache 2.0 开源许可证。
- 字段与模型的设计受到了 Django ORM 和 jsonmodels的启发