TLDR:

我正在传播2个数据集:

  • Kannada-MNIST数据集:28x28灰度图像:60k 训练集 | 10k测试集

  • Dig-MNIST:28x28灰度图像:10240(1024x10)(见下图)

虽然这些数字符号是坎纳达(Kannada)语言,但是Kannada-MNIST数据集是为了替代MNIST数据集。

此外,我正在分发一个用同一种语言(主要是该语言的非本地用户)编写的10k个手写数字的额外数据集Dig-MNIST,可以用作额外的测试集。

资源列表:

  • GitHub?: https://github.com/vinayprabhu/Kannada_MNIS

  • Kaggle?: https://www.kaggle.com/higgstachyon/kannada-mnist

  • ArXiv? : https://arxiv.org/pdf/1908.01242.pdf

如果您在同行评审的论文中使用Kannada-MNIST,我们希望将其引用为:

Prabhu, Vinay Uday. “Kannada-MNIST: A new handwritten digits dataset for the Kannada language.” arXiv preprint arXiv:1908.01242 (2019)..

Bibtex:

@article{prabhu2019kannada,
  title={Kannada-MNIST: A new handwritten digits dataset for the Kannada language},
  author={Prabhu, Vinay Uday},
  journal={arXiv preprint arXiv:1908.01242},
  year={2019}
}

介绍:

坎纳达语是印度卡纳塔克邦的官方行政语言,全球有近6000万人。此外,根据印度宪法第344(1)和351条,坎纳达语是印度22种预定语言之一。该语言是使用官方的坎纳达语脚本编写的,该脚本是Brahmic家族的元音附标文字,其起源可追溯到Kadamba脚本(公元325-550)。

不同的符号用于表示语言中的数字0-9,这些数字与当今世界许多地方流行的现代阿拉伯数字不同。与其他一些古老的数字系统不同,这些数字在卡纳塔克邦的日常生活中被大量使用,如下图所示,这些数字在车辆牌照上的普遍使用说明了这一点:

下图捕获以下现代字体中字体变化的MNIST化效果图:Kedage, Malige-i, Malige-n, Malige-b, Kedage-n, Malige-t, Kedage-t, Kedage-i, Lohit-Kannada, Sampige 和 Hubballi-Regular.

数据集策划:

Kannada-MNIST:

在印度班加罗尔招募了65名志愿者,他们是该语言的母语使用者和日常使用者。每位志愿者填写一张有着32×40网格的A3纸。每张A3纸包含每个数字的128个实例,我们假设它足够大以捕获大多数自然志愿者的字体的变化。使用Konica Accurio-Press-C6085扫描仪以600点/英寸的分辨率扫描得到了65张4963×3509的png图像。

Dig-MNIST:

我们招募了8名年龄在20到40岁之间的志愿者,这些志愿者在32×40格的纸上写坎纳达数字,所有人都用Z-Grip系列黑色墨水或者Zebra钢笔写在商业的Mead Cambridge Quad写字板上。写字板的参数为8–1/2" x 11",四边形,白色,80页/画本。然后我们使用戴尔-S3845cdn扫描仪进行扫描,扫描仪设置如下:

  • 输出颜色:灰度

  • 原始类型:文本

  • 变淡/加深:加深+3

  • 大小:自动检测

用于书写数字的纸张尺寸缩小了(US-letter与A3)使得扫描图像(.tif)更小,均约为1600×2000。

与MNIST比较:

1:平均像素强度分布

2:形态属性

3:PCA分析

4:UMAP可视化

一些分类基准点:

我使用标准的MNIST-cnn体系结构来获得一些基本的准确度基准(参见下图)

(a) Kannada-MNIST训练集的训练以及Kannada-MNIST测试集的测试

(b) Kannada-MNIST训练集的训练以及Dig-MNIST上的测试

向机器学习社区开放挑战

我们向整个机器学习社区提出以下开放的挑战

  • 当使用Kannada-MNIST对在MNIST上预训练的CNN进行再训练时,描述遗忘的特性。我们注意到,Kannada-MNIST中3和7的字形与MNIST中2的字形非常相似。

  • 对使用字体[1]生成的纯合成数据进行训练,并进行增强,以实现Kannada-MNIST和Dig-MNIST数据集的高准确度。

  • 跨不同的语言的来复制本文中描述的过程,特别是印度里的语言。

  • 至于Dig-MNIST数据集,我们看到一些志愿者违反了网格的边界,因此一些图像要么只有部分字形或者笔划,要么从外观上可以说是它们可能属于两个不同类别中的任何一个。关于这些图像,值得看看我们是否可以设计一个分类器,将分配的softmax质量分配给候选类。

  • 我们共享原始扫描图像背后的主要原因是促进对自动分割算法的研究,该算法将解析来自网格的各个数字图像,这可能反过来导致数据集的升级版本拥有更高质量的图像。

  • 通过训练Kannada-MNIST数据集并在Dig-MNIST数据集上进行测试而无需借助图像预处理来实现MNIST级的准确度。

[1]: Prabhu, Vinay Uday, Sanghyun Han, Dian Ang Yap, Mihail Douhaniaris, Preethi Seshadri, and John Whaley. “Fonts-2-Handwriting: A Seed-Augment-Train framework for universal digit classification.” arXiv preprint arXiv:1905.08633 (2019). [ https://arxiv.org/abs/1905.08633 ]

欢迎关注磐创博客资源汇总站:

http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:

http://pytorch.panchuang.net/

Kannada-MNIST:一个新的手写数字数据集的更多相关文章

  1. 吴裕雄 python 神经网络——TensorFlow 循环神经网络处理MNIST手写数字数据集

    #加载TF并导入数据集 import tensorflow as tf from tensorflow.contrib import rnn from tensorflow.examples.tuto ...

  2. MNIST手写数字数据集

    下载python源代码之后,使用: import input_data mnist = input_data.read_data_sets('MNIST_data/',one_hot=True) 下载 ...

  3. keras实现mnist手写数字数据集的训练

    网络:两层卷积,两层全连接,一层softmax 代码: import numpy as np from keras.utils import to_categorical from keras imp ...

  4. 吴裕雄 PYTHON 神经网络——TENSORFLOW 无监督学习处理MNIST手写数字数据集

    # 导入模块 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt # 加载数据 from tensor ...

  5. Tensorflow学习练习-卷积神经网络应用于手写数字数据集训练

    # coding: utf-8 import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data mn ...

  6. TensorFlow实战之Softmax Regression识别手写数字

         关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2018年02月21日 23:10:04所撰写内容(http://blog.c ...

  7. KNN 算法-实战篇-如何识别手写数字

    公号:码农充电站pro 主页:https://codeshellme.github.io 上篇文章介绍了KNN 算法的原理,今天来介绍如何使用KNN 算法识别手写数字? 1,手写数字数据集 手写数字数 ...

  8. mnist手写数字识别——深度学习入门项目(tensorflow+keras+Sequential模型)

    前言 今天记录一下深度学习的另外一个入门项目——<mnist数据集手写数字识别>,这是一个入门必备的学习案例,主要使用了tensorflow下的keras网络结构的Sequential模型 ...

  9. 基于TensorFlow的MNIST手写数字识别-初级

    一:MNIST数据集    下载地址 MNIST是一个包含很多手写数字图片的数据集,一共4个二进制压缩文件 分别是test set images,test set labels,training se ...

随机推荐

  1. linux tc流量控制

    tc流量控制 项目背景 vintage3.0接口lookupforupdage增加一个策略,当带宽流量tx或rx超过40%,75%随机返回304:超过60%,此接口均返回304 为了对测试机器进行流量 ...

  2. PHP时区转换(默认中国时区<Asia/Shanghai>转意大利时区<Europe/Rome>)

    <?php function changeTimeZone($date_time, $format = 'Y-m-d H:i:s', $to = 'Europe/Rome', $from = ' ...

  3. fsLayuiPlugin数据表格动态转义

    数据表格动态转义提供一种更简洁的方式,主要解决前端laytpl模板转义的问题,对于一些简单的,例如:状态展示,我们可以通过前端编写laytpl模板来处理:对于动态的数据,通过这种静态方式是没有办法处理 ...

  4. VUE实现Studio管理后台(十):OptionBox,一个综合属性输入界面,可以级联重置

    为了便于阅读代码,已经把测试数据分离出来,放在了mock目录下: 阅读代码的话,稍微留意一下就好.本次介绍RXEditor界面最重要的部分,属性输入组件,该组件可以显示是否有数据被修改,还可以批量重置 ...

  5. Python知识点 - 获取当前系统主机名、用户名、用户目录。

    代码示例: import socket, getpass, os # 获取当前系统主机名 host_name = socket.gethostname() # 获取当前系统用户名 user_name ...

  6. 全面认识HBase架构(建议收藏)

    在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#. ...

  7. webpack的loader和plugin的区别

    [Loader]:用于对模块源码的转换,loader描述了webpack如何处理非javascript模块,并且在buld中引入这些依赖.loader可以将文件从不同的语言(如TypeScript)转 ...

  8. 在Linux上查询物理机信息-不用去拆机器了

    目录 一.查看系统信息(包含机器型号) 1.1 查看机型和品牌 二.查看CPU 信息 2.1 查看CPU 型号 2.2 查看CPU的物理数量 2.3 查看 CPU核心数量(非逻辑CPU) 2.4 查看 ...

  9. 5W2H方法:七问分析法

    5W2H分析方法也叫七问分析法,是二战中美国陆军兵器修理部首创.简单.方便.易于理解.使用,富有启发意义,被广泛应用于企业管理和技术活动,对于决策和执行性的措施也非常有帮助,有助于弥补考虑问题的疏漏. ...

  10. Python专题——五分钟带你了解map、reduce和filter

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题第6篇文章,给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter. 不知道大家看到ma ...