本文主要是介绍经典问题-数字图像的识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
主要是老师布置的一个考察任务,虽然名义上给了十几天的时间,可是这十几天,大部分的时间都在复习准备期末考试(万恶的考试啊!!!),结果导致自己只有几天的时间来做,加上自己是一个新手,任务完成的马马虎虎 了╮(╯▽╰)╭
说到这个经典问题,网上公布的数据集有很多,这里提供一个MNIST,这个数据集的格式注意下,是二进制存储的。最好仔细阅读下数据的格式。这里提供一下matlab的读取方式。下载好文件后
[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
FID = fopen('Mnist文件','r');
% magicnumber=fread(FID,4,'int32');
% size=fread(FID,4,'int32');
magicnumber=fread(FID,4);
size=fread(FID,4);
rows=fread(FID,4);
colums=fread(FID,4); images=fread(FID, inf, 4);fclose(FID);
到这里,需要给一个工具箱,DeeplearnToolbox (github地址 :https://github.com/rasmusbergpalm/DeepLearnToolbox),里面实现了好几个深度学习模型,是非常适合学习的资料,里面有的模型,CNN (Convolutional Neural Networks), DBN等等,在github上面有详细的介绍,大家需要仔细看看。
在DeeplearnToolbox 内部,有mnist_unit8.m 这个文件,可以直接load mnist_unit8, MNIST数据都保存在里面。
关于MNIST现在已经有非常好的效率了,但是对于variation MNIST来说,就不是这样了,特别是有背景干扰和旋转干扰的,这个时候我们需要克服这种干扰。下面给出读取MNIST variations的代码github ,直接给github链接了,里面还有一些使用DeeplearnToolbox 内的方法进行学习判别的代码,但是我的错误率不低,我觉得要想克服这些干扰,需要结合CNN和SAE的优势, 其实有一个CAE( Convolutional Auto-Encoders)DeeplearnToolbox内部有一个实现,,但是了解不多,还有一个CAE(Contractive Auto-Encoders)论文:Contractive auto-encoders: Explicit invariance during feature extraction
以后有资料,我再继续补充
这篇关于经典问题-数字图像的识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!