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. jQuery样式及html属性操作

    样式及html属性操作1,行内样式 css(); a:获取样式 元素.css(样式名称); b:设置单个样式 元素.css("样式名称":"样式值"); c:设 ...

  2. sublime 安装Anaconda插件 配置python开发环境

    我的sublime 3  python 3.6.6 安装Anaconda插件 由于Anaconda插件本身无法知道Python安装的路径,所以需要设置Python主程序的实际位置.选择Settings ...

  3. 用 Java 实现人脸识别功能(附源码)

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 ...

  4. input type="file"使用

    问题: 在实际开发过程中,会遇到上传文件的一些需求.但是使用原生的<input type="file" />在使用中存在一些问题 在未上传文件时,显示"no ...

  5. 前端面试题(HTML、CSS部分)

    HTML.CSS部分: 一.html5有哪些新特性.移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?   新特性: HTML5 现在已经不是 SGML 的 ...

  6. javascript中this指向的问题

    javascript中this只有函数执行时候才能确定到底指向谁,实际this最终指向是那个调用它的对象. 1,匿名函数中的this——window function foo(){ var lastN ...

  7. vue的插件使用

    插件通常是为Vue添加全局功能,vue的官网介绍了5中添加插件的方法. vue的插件有个公开方法install.第一个参数是Vue构造器,第二个参数是一个可选的选项对象. 在plugin.js中可以这 ...

  8. 基于SpringCloud搭建项目-Zuul篇(六)

    本文主要介绍zuul的基本原理和在sprngcloud服务下如何使用 一.简单介绍 Zuul 是 Netflix OSS 中的一员,是一个基于 JVM 路由和服务端的负载均衡器.提供路由.监控.弹性. ...

  9. python笔记28(TCP,UDP,socket协议)

    今日内容 1.TCP协议 协议的特点:三次握手,四次挥手: 2.UDP协议 3.OSI七层模型:每层的物理设备,每一层协议. 4.代码部分: ①介绍socket: ②使用socket完成tcp协议的w ...

  10. MySQL数据备份之逻辑备份工具mysqldump

    #前言:我们知道对数据进行备份很重要,出现非正常操作可以进行对数据进行恢复,下面我们就来使用一下mysql数据库自带的一个逻辑备份工具mysqldump 1.简单概述 #mysqldump:mysql ...