使用caffemodel模型(由mnist训练)测试单张手写数字样本
2017-06-21 20:56
1076 查看
caffe中训练和测试mnist数据集都是批处理,可以反馈识别率,但是看不到单张样本的识别效果,这里使用windows自带的画图工具手写制作0~9的测试数字,然后使用caffemodel模型识别。
1. 打开画图工具,设置画板宽高为28*28,然后分别画出0~9的数字,分别保存为0~9.bmp文件。
宽高属性修改:
手写的10个数字:
画图工具保存的这10张手写数字图像是彩色三通道的,需要转换成单通道灰度图像,这个转换可以通过OpenCV完成。
2. 使用OpenCV转换灰度图像
OpenCV的imread函数的第二个参数设置为0,会把读入的图像自动转换成灰度图像。
强调一点是,mnist的训练和测试数据集都是黑底白字的,而用画图制作的图像是白底黑字的,所以要做一个底色的变换,要不然识别率很低。以下是处理程序:
完成之后在data目录下新生成00~09.bmp(黑底白字)共10个二值图像。
3. 单张手写样本测试
在.\examples\mnist目录下新建一个标签文件synset_words.txt,输入以下内容:
在caffe-master目录下新建一个mnist-class.bat脚本文件,输入以下内容:
双击运行,得到识别结果,0~9都可以正确识别:
1. 打开画图工具,设置画板宽高为28*28,然后分别画出0~9的数字,分别保存为0~9.bmp文件。
宽高属性修改:
手写的10个数字:
画图工具保存的这10张手写数字图像是彩色三通道的,需要转换成单通道灰度图像,这个转换可以通过OpenCV完成。
2. 使用OpenCV转换灰度图像
OpenCV的imread函数的第二个参数设置为0,会把读入的图像自动转换成灰度图像。
强调一点是,mnist的训练和测试数据集都是黑底白字的,而用画图制作的图像是白底黑字的,所以要做一个底色的变换,要不然识别率很低。以下是处理程序:
#include <iostream> #include <highgui/highgui.hpp> #include <imgproc/imgproc.hpp> using namespace std; using namespace cv; void main() { Mat image; stringstream str; //0~9.bmp图像保存路径 string pathFile = "D:\\Software\\Caffe\\caffe-master\\examples\\mnist\\data\\"; string s; for (int i = 0; i < 10; i++) { str.clear(); str << i; string str1; str >> str1; s = pathFile + str1; s += ".bmp"; image = imread(s, 0); threshold(image, image, 0, 255, CV_THRESH_OTSU); //图像做底色反转变换 image = ~image; //转换的二值图像保存在同一个文件夹下,在名称前加0区分 s = ""; s = pathFile + "0" + str1+".bmp"; imwrite(s, image); } }
完成之后在data目录下新生成00~09.bmp(黑底白字)共10个二值图像。
3. 单张手写样本测试
在.\examples\mnist目录下新建一个标签文件synset_words.txt,输入以下内容:
在caffe-master目录下新建一个mnist-class.bat脚本文件,输入以下内容:
for /l %%i in (0,1,9) do (.\Build\x64\Debug\classification.exe .\examples\mnist\lenet.prototxt .\examples\mnist\CaffeModel\lenet_iter_10000.caffemodel .\examples\mnist\mean.binaryproto .\examples\mnist\synset_words.txt .\examples\mnist\data\0%%i.bmp ) pause
双击运行,得到识别结果,0~9都可以正确识别:
相关文章推荐
- 使用caffe训练好的模型测试单张手写数字
- caffe手写数字mnist训练测试使用教程
- mnist训练的cnn模型测试自己的手写数字
- Caffe学习总结(四)——使用mnist训练模型识别一张手写数字图像
- TensorFlow - 手写数字识别 (模型训练完成后的使用)
- 用tensorflow框架和Mnist手写字体,训练cnn模型以及测试一张手写字体
- 【深度学习】笔记3_caffe自带的第一个例子,Mnist手写数字识别所使用的LeNet网络模型的详细解释
- Windows玩转Caffe(三):由图片训练mnist模型,并用其模型识别手写数字【多图出品】
- TensorFlow用MNIST训练的模型来识别手写数字
- mnist训练与测试自己手写数字
- mnist数据集在caffe(windows)上的训练与测试及对自己手写数字的分类
- caffe示例实现之4在MNIST手写数字数据集上训练与测试LeNet
- Tensorflow的Helloword:使用简单Softmax Regression模型来识别Mnist手写数字
- caffe示例实现之4在MNIST手写数字数据集上训练与测试LeNet
- Caffe 实例 手写数字mnist训练与测试过程(Windows + CPU Only)
- caffe(二): 利用训练好的MNIST模型测试自己的手写字符图片
- 使用caffe训练并且测试一个自己的模型
- 勉强算升2级吧----用mnist训练好的model对自己手写的数字进行分类识别
- 使用caffe训练并且测试一个自己的模型
- 使用matlab训练mnist模型