这些天处理图像检索的一些benchmark数据集,今天处理了MNIST数据集,并对其进行了特征的提取。我的方法可能不一定是最优,但是按照这样的步骤来做,得到了我最后想要的特征数据结果。需要的朋友可以参考下。

(MNIST数据集介绍官网:http://yann.lecun.com/exdb/mnist/,如果对这个数据集中的数据形式不了解,建议可以看一下)

1. 首先,通过官网我们知道MNIST这个数据集中的数据包含60000个训练数据和10000个测试数据,其图片数据形式是按行存储的,每一行是784=28*28像素点的一张图片,这里可以跟CIFAR-10的彩色图像RGB三通道的图片数据处理进行一下对比记忆。对于MNIST这样的灰度值图片数据,处理起来比彩色图片简单多了。

为了证实每一行是存储的一张图片,我写了一个m文件(下载资源中的export_Mnist_to_images.m,可以不用全部输出,可以设置只输出一部分查看结果即可,但是后面提取特征时候需要用到,所以最好还是全部输出图片),在matlab中进行可视化,输出结果,证实了该结果。下图为截取的部分结果。

这里,中途遇到一个波折,一开始对于这些图片的命名时,是采用在该文件夹名字后面添加五位整数从00001-70000.jpg,但是后来在特征提取for循环中读取图片进行图片名字匹配的时候很不方便,于是我重新生成了一遍(这个过程比较快,大概几分钟就能够完成),直接使用循环自增参数i+‘.jpg’,这样之后特征提取的时候就直接使用strcat匹配构造出可以循环读取的图片名了。这个小小的技巧也分享一下。

另外,这里插入提及一下对文件批量重命名的方法,但是我既然在这个过程中使用了就一并分享一下。

这个例子针对一个文件夹中的大量图片文件,如果图片并没有按照包含数字自增的区别或者比较混乱,或者自增,但是自增幅度不是1的时候,可以考虑对全部文件进行重命名。首先Ctrl+A选中全部文件,然后按键盘F2,之后对鼠标对第一个文件右键选择重命名,然后点击enter,接着文件就可以批量自增重命名文件了。举个栗子,如果对第一个文件的重命名为image1.jpg,总共有10,000张图片,那么最后批量重命名之后,这10,000张图片的文件名为image (1).jpg,image (2).jpg,...image (10000).jpg,注意image与后面的括号编号之间有一个空格,一定要小心,否则无法找到文件。

2.第二步,就是对得到的图片进行特征提取。

这里先引用了一个对彩色图像进行特征提取的实例,在其基础上,我进行了对以上黑白图片的特征提取,并先预先输出几个进行了测试。因为这个过程耗时较长,如果出错那么运行的几个小时时间可能就浪费了。

测试正确之后就循环对70000张图片进行特征提取,并保存在一个矩阵中,这里要注意提取的是512维的特征,因此最后的到的数据矩阵大小为70000*512,注意数据维数的设置不要出错。

特征提取的过程比起生成图片就慢多了,这个过程我花了2个小时50分钟左右(从下午15:14到18:01)。另外就是,对于程序的运行,这种暂无输出而又比较长的运行过程,可以在每次迭代之后考虑在命令行窗口输出一行信息,类似于fprintf('the %d iter is finished.\n', i),这样可以使得程序运行过程更明了,并且出错的话也能够很快查找。

虽然这个过程看似比较简单,但是一开始摸索的时候还是遇到一些困难的。也学习了一些细节的东西,比如如何将灰度图直接画出来(这里用的是imshow,跟RGB图片的输出不同)等。自己要一步一步做这个工作。

这里分享一下完成该过程的所有代码和初始数据集,希望对做此研究的朋友有帮助,少走弯路。

下载地址为http://download.csdn.net/detail/ying_xu/9413394。

由于最后生成的特征数据集文件太大,因此放置到百度云盘,下载链接为http://pan.baidu.com/s/1gdQP3Ab。

MNIST数据集的gist特征提取(含全部实例代码下载地址)相关推荐

  1. 【小牛分享】jquery mobile网页demo实例代码下载

    原文:[小牛分享]jquery mobile网页demo实例代码下载 源代码下载地址:http://www.zuidaima.com/share/1622363259194368.htm 也可以用手机 ...

  2. struts2 poi导出excel实例代码下载

    原文:struts2 poi导出excel实例代码下载 代码下载地址:http://www.zuidaima.com/share/1550463233526784.htm 页面展现成表格形式,添加ex ...

  3. C/C++Linux服务器开发完整学习路线(含免费学习资料下载地址)

    C/C++Linux服务器开发完整学习路线(含免费学习资料下载地址) 相信大部分同学刚毕业或者想转行做c++服务端开发的时候都很迷茫不知道从哪里开始学习,于是准备参加各种培训班或者网络培训,有不知道该 ...

  4. Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...

  5. (转载)Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解 ...

  6. java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载

    工作需要,要生成xml文件,所以做了个小demo分享一下. 看代码吧~ main()里面没什么好说的 该写的都写了public static void main(String[] args) { // ...

  7. 苹果系统安装虚拟机 Mac如何安装虚拟机教程 (含系统镜像的下载地址)

    镜像下载地址 http://www.itellyou.cn 1.前言    大家在用 Mac 系统的时候,可能有时难免还是要用到 Windows 系统.在 Mac 上使用 Windows 系统有二种方 ...

  8. 电气设计常用提示图标(自己画的)含高清原图下载地址

    1-1.不可循环利用/不可回收 1-2.可循环利用/可回收 1-3.静电敏感/ESD 1-4.注意高温/注意烫伤  1-5.有电危险/注意危险  1-6.高压危险 链接: https://pan.ba ...

  9. Pytorch 实现全连接神经网络/卷积神经网络训练MNIST数据集,并将训练好的模型在制作自己的手写图片数据集上测试

    使用教程 代码下载地址:点我下载 模型在训练过程中会自动显示训练进度,如果您的pytorch是CPU版本的,代码会自动选择CPU训练,如果有cuda,则会选择GPU训练. 项目目录说明: CNN文件夹 ...

最新文章

  1. Science Advances: 中科院微生物所叶健团队揭示双生病毒调控植物免疫平衡制约机制...
  2. 什么是 SAP UI5 的 Hybrid Web Containers
  3. ArcGIS实验教程——实验三十一:ArcGIS构建泰森多边形(Thiessen Polygon)实例精解
  4. PWN-PRACTICE-BUUCTF-12
  5. 我的职业生涯规划学习日记(软件工程)整理时间线
  6. linux 调优 网络调优
  7. Android:更好的自定义字体方案
  8. 如何将浮点数点左边的数每三位添加一个逗号,如12000000.11转化为『12,000,000.11』...
  9. 记一次华为服务器故障解决
  10. html5中秋节吃月饼游戏源码,html5中秋吃月饼大赛微信游戏源码
  11. 微信公众号文章的爬取(搜狗微信搜索)
  12. Labview编程模式
  13. Ubuntu HDMI连接后没有声音解决办法
  14. linux fat get entry,操作系统--主引导程序控制权的转移
  15. KVM虚拟机快速入门
  16. $Loj10155$ 数字转换(求树的最长链) 树形$DP$
  17. Android蓝牙简介
  18. 计算机如何更改后缀文件名,如何批量修改文件后缀名(任何文件的扩展名)?
  19. shell学习整理笔记
  20. Linux 下编译 VLC

热门文章

  1. 可以将matlab安装到u盘吗,如何进行微软的office和matlab以及word等软件导入u盘
  2. staruml文字换行 - 魔改StarUML(不负责任版,2333
  3. android sd 挂载流程_Android7.0 SD卡挂载流程
  4. Assemble(王爽)——nasm 和 masm的一些简单区分
  5. 百度地图自定义覆盖物
  6. 设置Windows本地DNS域名解析hosts
  7. mysql的UNIX_TIMESTAMP用法
  8. linux命令之unzip
  9. Spring Cloud升级之路 - Hoxton - 10. 网关重试带Body的请求Body丢失的问题
  10. 微信小程序开发实战9_3 小程序URL Scheme