caffe中训练和测试mnist数据集都是批处理,可以反馈识别率,但是看不到单张样本的识别效果,这里使用windows自带的画图工具手写制作0~9的测试数字,然后使用caffemodel模型识别。

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都可以正确识别:

转载于:https://www.cnblogs.com/mtcnn/p/9411855.html

使用caffemodel模型(由mnist训练)测试单张手写数字样本相关推荐

  1. [tensorflow、神经网络] - 使用tf和mnist训练一个识别手写数字模型,并测试

    参考 包含: 1.层级的计算.2.训练的整体流程.3.tensorboard画图.4.保存/使用模型.5.总体代码(含详细注释) 1. 层级的计算 如上图,mnist手写数字识别的训练集提供的图片是 ...

  2. 机器学习算法(九): 基于线性判别LDA模型的分类(基于LDA手写数字分类实践)

    机器学习算法(九): 基于线性判别模型的分类 1.前言:LDA算法简介和应用 1.1.算法简介 线性判别模型(LDA)在模式识别领域(比如人脸识别等图形图像识别领域)中有非常广泛的应用.LDA是一种监 ...

  3. caffe学习(二):利用mnist数据集训练并进行手写数字识别(windows)

    准备数据集 http://yann.lecun.com/exdb/mnist/提供了训练集与测试集数据的下载. 但是caffe并不是直接处理这些数据,而是要转换成lmdb或leveldb格式进行读取. ...

  4. Keras【Deep Learning With Python】keras框架下的MNIST数据集训练及自己手写数字照片的识别(分类神经网络)

    文章目录 前言 mnist_model.py predict.py 前言 深度学习领域的"hello,world"可能就是这个超级出名的MNIST手写数字数据集的训练(想多了,要是 ...

  5. 使用Dl4j训练的一个手写数字识别软件

    DL4J使用之手写数字识别 最近一直在学习深度学习,由于我是Java程序员出身,就选择了一个面向Java的深度学习库-DL4J.为了更加熟练的掌握这个库的使用,我使用该库,以MNIST(http:// ...

  6. 应用训练MNIST的CNN模型识别手写数字图片完整实例(图片来自网上)

    1 思考训练模型如何进行应用 通过CNN训练的MNIST模型如何应用来识别手写数字图片(图片来自网上)? 这个问题困扰了我2天,网上找的很多代码都是训练模型和调用模型包含在一个.py文件中,这样子每一 ...

  7. 基于一个线性层的softmax回归模型和MNIST数据集识别自己手写数字

    原博文是用cnn识别,因为我是在自己电脑上跑代码,用不了处理器,所以参考Mnist官网上的一个线性层的softmax回归模型的代码,把两篇文章结合起来识别. 最后效果 源代码识别mnist数据集的准确 ...

  8. mnist训练与测试自己手写数字

    一.训练 1.从http://yann.lecun.com/exdb/mnist/下载的数据集 这需要进行数据结构转化,转化为lmdb格式. 解压到caffe->data->mnist文件 ...

  9. pytorch MNIST 手写数字识别 + 使用自己的测试集 + 数据增强后再训练

    文章目录 1. MNIST 手写数字识别 2. 聚焦数据集扩充后的模型训练 3. pytorch 手写数字识别基本实现 3.1完整代码及 MNIST 测试集测试结果 3.1.1代码 3.1.2 MNI ...

最新文章

  1. linux开启nscd服务缓存加速
  2. esp32-wrover流水灯c语言程序,ESP-WROVER-KIT V4.1 入门指南
  3. ASP.NET Core中间件初始化探究
  4. 网络数据包收发流程(四):协议栈之packet_type
  5. 论文浅尝 | 知识图谱中的链接预测:一种基于层次约束的方法
  6. 图片背景虚化_如何用PPT制作图片虚化背景?
  7. 华为Mate 30系列后摄相机模组曝光:圆形三摄各有不同
  8. 彻底下载32位office2010
  9. CentOS7配置ssh证书登录无效
  10. PHP查看内存使用量
  11. 暑期实习面试——超对称,算法实习生
  12. pixel 1 欧版电信破解4G,安卓P亲测可用(打电话+4G上网)
  13. 超级实用的浏览器插件
  14. TS:虚机ipv6网络不通问题-2022.5.16(已解决-博客分享)
  15. dnc开源梦之队2018 开源项目精选集
  16. c语言实现utf-8编码解码器
  17. chrome浏览器无法找到 www.baidu.com 的 DNS 地址
  18. 研究开源项目发现的一个人性化的Go语言库
  19. [cocos2dx开发技巧4]工具CocosBuilder的使用--复杂动画
  20. 计算机设计核心思想,科学网—计算机设计的两种理念,颠覆os的计算机 - 姜咏江的博文...

热门文章

  1. C# semaphore的使用
  2. C++Event机制的简单实现
  3. ubutn下安装英伟达显卡驱动
  4. 深入分析linux内核及其应用(更新完毕)
  5. ASP.NET中的事件处理
  6. java 蓝桥杯算法训练 猴子分苹果(题解)
  7. linux vi 上下左右 ab,【Linux】Ubuntu vi 上下左右变ABCD及 apt-get install报错问题解决方法...
  8. sender分析之Selector
  9. (126)FPGA面试题-做了哪些FPGA时序约束?
  10. oracle导数据不释放内存,关于ORACLE数据库delete后释放空间问题