https://console.cloud.google.com/storage/browser/quickdraw_dataset
Quick Draw!数据集
Quick Draw数据集是345种类别中的5000万张图纸的集合,由游戏玩家Quick,Draw!提供。绘图被捕获为带时间戳的向量,标记有元数据,包括要求玩家绘制的内容以及玩家所在的国家/地区。您可以在quickdraw.withgoogle.com/data上浏览已识别的图纸。
我们在这里分享它们,供开发人员,研究人员和艺术家探索,研究和学习。如果您使用此数据集创建内容,请通过电子邮件或AI实验告知我们。
我们还在tensorflow.org上发布了用于培训您自己的绘图分类器的教程和模型。
请记住,虽然这些图纸集合是单独审核的,但它可能仍包含不适当的内容。
内容
原始主持数据集
原始数据以ndjson
文件的形式分类,按类别分隔,格式如下:
钥匙 | 输入 | 说明 |
---|---|---|
key_id | 64位无符号整数 | 所有图纸的唯一标识符。 |
字 | 字符串 | 提示玩家绘制的类别。 |
认可 | 布尔值 | 这个词是否被游戏识别。 |
时间戳 | datetime | 绘图创建时。 |
国家代码 | 字符串 | 播放器所在位置的双字母国家代码(ISO 3166-1 alpha-2)。 |
绘图 | 字符串 | 表示矢量绘图的JSON数组 |
每行包含一个图纸。以下是单个绘图的示例:
{
“KEY_ID”: “5891796615823360”,
“字”:“鼻子”,
“COUNTRYCODE”: “AE”,
“timestamp”:“2017-03-01 20:41:36.70725 UTC”,
“认可”:真实,
“绘图”:[[[129,128,129,129,130,130,131,132,132,133,133,133,133,...]]]
}
绘图数组的格式如下:
[
[//第一击
[x0,x1,x2,x3,...],
[y0,y1,y2,y3,...],
[t0,t1,t2,t3,...]
]
[//第二次中风
[x0,x1,x2,x3,...],
[y0,y1,y2,y3,...],
[t0,t1,t2,t3,...]
]
... //额外的笔画
]
其中x
和y
是像素坐标,t
是自第一个点以来的毫秒数。```和y
是实数值,而t
是整数。由于用于显示和输入的不同设备,原始图纸可以具有极大不同的边界框和点数。
预处理数据集
我们已经预处理并将数据集拆分为不同的文件和格式,以便更快,更轻松地下载和浏览。
简化的图形文件(.ndjson
)
我们简化了向量,删除了时序信息,并将数据定位并缩放到256x256区域。数据以ndjson
格式导出,其格式与原始格式相同。简化过程是:
1.将图形与左上角对齐,使其最小值为0。
2.均匀缩放图形,最大值为255。
3.以1像素间距重新采样所有笔划。
4.使用Ramer-Douglas-Peucker算法以epsilon值2.0简化所有笔划。
[examples / nodejs / simplified-parser.js](examples / nodejs / simplified-parser.js)中有一个示例,展示了如何在NodeJS中读取ndjson文件。
此外,[examples / nodejs / ndjson.md](examples / nodejs / ndjson.md)文档详细介绍了一组命令行工具,可以帮助探索这些相当大的文件的子集。
二进制文件(.bin
)
简化的图纸和元数据也以自定义二进制格式提供,以实现高效压缩和加载。
[examples / binary_file_parser.py](examples / binary_file_parser.py)中有一个示例,展示了如何在Python中加载二进制文件。
[examples / nodejs / binary-parser.js](examples / nodejs / binary-parser.js)中还有一个示例,展示了如何读取NodeJS中的二进制文件。
Numpy位图(.npy
)
所有简化的图纸都以numpy.pypy
格式渲染成28x28灰度位图。可以使用np.load()
加载这些文件。这些图像是从简化数据生成的,但是与图形边界框的中心对齐,而不是左上角。
获取数据
该数据集在Google Cloud Storage上以ndjson
文件的形式分类。请参阅Cloud Console中的文件列表,或阅读有关[访问公共数据集]的更多信息(https://cloud.google.com/storage) / docs / access-public-data)使用其他方法。
按类别分隔的完整数据集
Sketch-RNN QuickDraw数据集
该数据还用于训练Sketch-RNN模型。这个模型的开源TensorFlow实现可以在Magenta Project中找到,(链接到GitHub repo /树/主/品红/模型/ sketch_rnn))。您还可以在此Google研究博客文章中阅读有关此模型的更多信息。数据以适合输入到递归神经网络的格式存储在压缩的.npz文件中。
在此数据集中,从每个类别中随机选择75K样本(70K训练,2.5K验证,2.5K测试),使用[RDP]处理(https://en.wikipedia.org/wiki/Ramer%E2%80% 93Douglas%E2%80%93Peucker_algorithm)线条简化,epsilon
参数为2.0。每个类别都将存储在自己的.npz
文件中,例如cat.npz
。
如果您想使用超过70K的培训示例,我们还提供了每个类别的完整数据。它们与.full.npz
扩展一起存储。
使用数据集的项目
以下是一些以有趣的方式使用或展示数据集的项目和实验。有东西要补充吗?告诉我们!
创意和艺术项目
- [Deborah Schmidt]的Letter collages(http://frauzufall.de/)
- [Neil Mendoza] [http://www.neilmendoza.com/]的面部跟踪实验
- Tortue的人性面孔
- 无限QuickDrawkynd.info
- Matthew Collyer的Misfire.io
- 绘制本由Dan Macnish
数据分析
Facets Dive x Quick,Draw!由People + AI Research Initiative (PAIR), Google
Google Research的探索和可视化开放式全球数据集
指南和教程
- TensorFlow绘图分类教程
- 使用Colab在tf.keras中训练模型,并使用TensorFlow.js在浏览器中运行由Zaid Alyafeai提供
代码和工具
- Quick Draw处理Cody Ben Lewis
- Quick Draw预测模型作者:Keisuke Irie
- 随机抽样工具学习统计数据非常棒
-
Ian Johnson
的SVG渲染d3.js示例(http://enja.org/) 了解更多关于此过程的信息此处 - Payal Bajaj的Sketch-RNN分类
- Thomas Wagenaar的quickdraw.js
-
Doodler来自
Krishna Sri Somepalli - Quick Draw Python APIMartin O'Hanlon
变化
2017年5月25日:更新了Sketch-RNN QuickDraw数据集,创建了.full.npz
互补集。
执照
这些数据由Google,Inc。根据[知识共享署名4.0国际许可证]提供。(https://creativecommons.org/licenses/by/4.0/)