前言:最近参加百度点石大赛,完成商家招牌的分类和检测,把实验过程简单记录下来,具体步骤如下。

环境配置:windows下的visual studio2013和caffe(cpu版本)环境搭建请看我另一篇博客:http://www.cnblogs.com/wmr95/articles/9021748.html

下面写写具体实验流程:

1.首先把比赛平台下的数据集下载放到caffe-master路径下data文件夹中,如图:

首先数据提供的是train和test图片数据及label的txt文件,具体如图所示:

其中train文件夹下的图片和train.txt中的内容如图:

2.接下来根据图片和label信息得到lmdb格式文件train_lmdb新建一个create_lmdb.bat 文件,内容为:

E:\caffe-master\Build\x64\Release\convert_imageset.exe --resize_height= --resize_width= --shuffle --backend="lmdb" E:\caffe-master\data\signboard\train\ E:\caffe-master\data\signboard\train.txt train_lmdb  

pause

简单解释一下,第一个显然是你编译好的caffe中的exe工具,第二和第三指定对图像进行resize(因为原图大小尺寸不一),第四个是shuffle参数,随机打乱一下label的txt列表,第六个--backend指定生成lmdb格式(还可以指定为leveldb,另外一种格式),第七个指定train文件夹下的图片,第八个指定train的label信息,最后一个指定得到的train_lmdb(这个不能添加路径,由程序自己创建文件夹,如果提前有这个文件夹会报错)。

执行成功截图:

在当前路径下得到train_lmdb文件,如图所示:

3.根据得到的lmdb格式文件train_lmdb得到均值文件

新建一个compute_image_mean.bat文件,代码内容为:

E:\caffe-master\Build\x64\Release\compute_image_mean.exe E:\caffe-master\data\signboard\train_lmdb mean.binaryproto

pause  

具体意思大概看下就了解,不具体解释了。运行成功截图为:

在当前路径下得到的mean.binaryproto文件为:

4.接下来就准备网络模型的事情了(简单举个例子,我这里先采用的是cifar10的网络,接下来以这个为例)

先将examples下的cifar10拷贝一份命名为signboard,这里主要用到两个prototxt文件:

train_test.prototxt的内容需要做修改:(mean_file和source需要指定路径,另外我们是进行100分类,最后的output由10改为100)

这里需要注意,因为我们没有得到test_lmdb文件,这里需要把phase的TEST部分删除,只留下TRAIN部分。

然后再修改solver.prototxt文件:

因为训练过程中不包含测试集,所以这里需要把test部分注释,否则会出现“Unknown bottom blob 'data' (layer 'conv1',bottom index 0)”的错误。

错误截图为:

5.完成数据处理和网络模型后,就可以进行训练模型了,在caffe-master根目录下新建一个trian_signboard.bat文件,代码内容为:

.\Build\x64\Release\caffe.exe train --solver=.\examples\signboard\cifar10_quick_solver.prototxt
pause

在caffe-master根目录下执行这个.bat文件就可以训练了,开心的飞起~~训练过程截图为:

这只是初步的把分类实验跑起来,后期打算做数据增强和finetune操作。期待竞赛有个好成绩~~

Windows下Caffe实现图像分类的更多相关文章

  1. Windows下caffe的配置和调用caffe库(一)

    一.Windows下caffe的配置: 1. 下载caffe官网提供的开发包,https://github.com/microsoft/caffe 2. 将caffe-master目录下的Window ...

  2. Windows下caffe安装详解(仅CPU)

    本文大多转载自 http://blog.csdn.net/guoyk1990/article/details/52909864,加入部分自己实战心得. 1.环境:windows 7\VS2013 2. ...

  3. windows下caffe GPU版本配置

    由于项目需要,所以在自己本子上配置了一下windows下GPU版本的caffe; 硬件:  win10    ;      gtx1070独显(计算能力6.1): 安装软件:     cudnn-8. ...

  4. windows下caffe安装配置、matlab接口

    一.CommonSettings.props caffe下载后解压.源代码文件夹caffe-master,到该文件夹下的windows文件夹下,将CommonSettings.props.exampl ...

  5. Windows下caffe的python接口配置

    主要是因为,发现很多代码是用python编写的,在这里使用的python安装包是anaconda2. 对应下载地址为: https://www.continuum.io/downloads/ 安装py ...

  6. Windows下caffe的配置和调用caffe库(二)

    二. Caffe库的调用: 新建空白项目,将配置管理器更改为x64运行方式.(release和Debug均可). Debug配置: 1)      包含目录: D:\caffe-master\incl ...

  7. windows下caffe如何单独编译proto文件

    利用protoc.exe即可编译. 在protoc.exe当前文件夹下打开cmd,输入命令如下: pushd %~dp0 echo "copying .proto and generated ...

  8. 实践详细篇-Windows下使用Caffe训练自己的Caffemodel数据集并进行图像分类

    三:使用Caffe训练Caffemodel并进行图像分类 上一篇记录的是如何使用别人训练好的MNIST数据做训练测试.上手操作一边后大致了解了配置文件属性.这一篇记录如何使用自己准备的图片素材做图像分 ...

  9. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

随机推荐

  1. 前端学习之CSS

    CSS介绍 CSS(Cascading Style Sheet, 层叠样式表)定义如何显示HTML元素, 给HTML设置样式, 让它更加美观. 当浏览器读到一个样式表, 它就会按照这个样式表来对文档进 ...

  2. 剑指offer 06:旋转数组的最小数字

    题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转 ...

  3. python-文字转语音-pyttsx3

    pyttsx3 python 文字转语音库,支持英文,中文,可以调节语速.语调等. 安装 pip install pyttsx3 示例 import pyttsx3 teacher = pyttsx3 ...

  4. golang Mysql -- Tx

    Transaction 事务 事务处理是数据的重要特性.尤其是对于一些支付系统,事务保证性对业务逻辑会有重要影响.golang的mysql驱动也封装好了事务相关的操作.我们已经学习了db的Query和 ...

  5. asp.net 虹软 人脸识别 实现刷脸住宿、刷脸签到、刷脸进入等

    先看看效果图,我把demo改成自动运行了,暂时借用别人的图片: 最左侧的大图为选择上传的, 中间的小图是大图的脸, 右侧的大图是人脸文件夹中已经存在的,并且相似度较高的一张脸,也就是比对的结果. 先记 ...

  6. mysql、nginx、php-fpm的启动与关闭

    mysql 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3.使用 sa ...

  7. 【JAVA】servlet执行流程

    servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.respon ...

  8. awk 中的难懂符号解释

    awk中NF和NR的意义,其实你已经知道NF和NR的意义了,NF代表的是一个文本文件中一行(一条记录)中的字段个数,NR代表的是这个文本文件的行数(记录数). 看个例子: cal 9 2003 Sep ...

  9. 8、TypeScript-解构赋值

    1.数组的解构赋值 2.对象的解构赋值 注意:在浏览器环境中,windows本身有一个成员name,所以要重新,语法为  属性名:重命名 3.函数的解构赋值

  10. Python3+Appium安装使用教程

    一.安装 我们知道selenium是桌面浏览器自动化操作工具(Web Browser Automation) appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mobi ...