最近领导让研究一下猜画小歌的底层原理,下面是自己总结的,不合适的地方,请大家留言指点,谢谢!
1.简化图形文件:将数据定位并缩放到256x256区域。数据以ndjson格式导出,其元数据与原始格式相同。
简化过程是:
【资料图】
1.1.将图形与左上角对齐,使其最小值为0。
1.2.均匀缩放绘图,最大值为255。
1.3.以1像素间距重新采样所有笔划。
2.使用Ramer-Douglas-Peucker算法简化所有笔划,epsilon值为2.0
Ramer-Douglas-Peucker算法:转下一页PPT
3.二进制文件(.bin)
简化的图纸和元数据也以自定义二进制格式提供,以实现高效压缩和加载。
4.Numpy位图(.npy)
所有简化的图纸都以numpy .npy格式渲染成28x28灰度位图。可以使用np.load()加载这些文件。这些图像是从简化数据生成的,但是与图形边界框的中心对齐,而不是左上角。
5. Sketch-RNN QuickDraw数据集
该数据还用于训练Sketch-RNN模型。 Magenta项目中提供了该模型的开源TensorFlow实现(链接到GitHub repo)。您还可以在此Google研究博客文章中阅读有关此模型的更多信息。数据以适合输入到递归神经网络的格式存储在压缩的.npz文件中。
在该数据集中,从每个类别中随机选择了75K样本(70K训练,2.5K验证,2.5K测试),使用ε参数2.0进行RDP线简化处理。每个类别都将存储在自己的.npz文件中,例如cat.npz。
键类型描述
KEY_ID64位无符号整数所有图纸的唯一标识符。
字串提示玩家绘制的类别。
认可布尔这个词是否被游戏识别。
时间戳约会时间绘图创建时。
国家代码串播放器所在的双字母国家代码(ISO 3166-1 alpha-2)。
画画串表示矢量绘图的JSON数组