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. 视频描述(Video Captioning)近年重要论文总结

    视频描述 顾名思义视频描述是计算机对视频生成一段描述,如图所示,这张图片选取了一段视频的两帧,针对它的描述是"A man is doing stunts on his bike", ...

  2. github浏览器无法访问,并且idea无法push项目

    github浏览器无法访问,并且idea无法push项目 原因:前一晚还能正常访问github,今天就无法提交项目了.前一步的操作为删库,然后改库.估计是因为dns出现了问题,具体问题不知道. 网上一 ...

  3. mysql插入数据报错一二

    上周selenium+phantomjs+python3简单爬取一个网站,往数据库写数据遇到以下两个问题,记录一下: 报错一:Data truncated for column 'update_tim ...

  4. 7-43 jmu-python-字符串异常处理 (20 分)

    输入一行字符串及下标,能取出相应字符.程序能对不合法数据做相应异常处理. 输入格式: 行1:输入一字符串 行2:输入字符下标 输出格式: 下标非数值异常,输出下标要整数 下标越界,输出下标越界 数据正 ...

  5. JVM—垃圾回收GC算法

    1 GC算法简介 算法 特点 标记-清除 分为"标记"和"清除"两个阶段 复制 可以解决效率问题,将可用的内存按容量划分为大小相等的两块. 标记-整理 先标记. ...

  6. Ubuntu16.04下安装nvidia-docker2

    若docker-ce.nvidia.CUDA等都安装完成之后,开启docker服务时,能够正常运行,并有预测结果,那表示服务开启没问题:若都安装成功之后,用docker命令开启服务时,一直报错,可能表 ...

  7. mongoose .find().limit()返回undefined

    当我们使用mongoose的find方法查询数据库的同时,可以使用limit方法来指定返回数据的条数. limit方法基本语法如下所示: >db.COLLECTION_NAME.find().l ...

  8. 有关于python内置函数exec和eval一些见解笔记

    eval是将函数内的字符串以计算式的方式进行计算并给与外部一个值. 例: a=eval('1+1') print(a) >>>>2 但是如果出现在函数内部字符串中进行赋值会抛出 ...

  9. Java探针技术-retransformclasses的介绍

    retransformclasses void retransformclasses(class... classes) throws unmodifiableclassexception 重转换提供 ...

  10. MATLAB神经网络(6) PID神经元网络解耦控制算法——多变量系统控制

    6.1 案例背景 6.1.1 PID神经元网络结构 PID神经元网络从结构上可以分为输入层.隐含层和输出层三层,$n$个控制量的PID神经元网络包含$n$个并列的相同子网络,各个子网络间既相互独立,又 ...