《Caffe下跑AlxNet之数据处理过程》
环境:Windows
最近用Caffe跑了一下AlxNet网络,现在总结一下数据处理部分:(处理过的数据打包链接:http://pan.baidu.com/s/1sl8M5ad 密码:ph1y)
(1)获得数据集,途径有:
1.Benchmark(数据库) AFLW FDDB
2.最新论文(2016)
3.Thinkface论坛
数据量:庞大的数据量支撑,最少1w张(正,负样本各一万张),格式如下:
xxxx.jpg x1,y1,x2,y2(标注label),即人脸所在矩形框的坐标
xxxx.jpg x1,y1,w,h
我是从Thinkface论坛上直接下载的经过裁剪的人脸数据;
(2)利用下载下来的数据集制作正负样本以及.txt文件:
以下是我的方法,可能有点笨拙:
1.先建立imageset_2文件夹作为总的工程文件夹,然后在其中新建两个文件夹,一个命名为0,一个命名为1,分别放入裁剪好的人脸数据和非人脸数据,再对图片进行重命名(人脸图片命名为face_xxxx,非人脸图片命名为non_face_xxxx);
2.再新建mix、val、train文件夹(train文件夹中再新建两个文件夹,一个命名为0,一个命名为1),编写一个python小程序,将0和1中的图片经过混合后放入mix文件夹,在mix文件中取10%放入val文件夹作为测试数据,再取剩下的90%将其中的人脸图片放入train文件夹中的0文件夹,非人脸图片放入1文件夹(正样本5800张,负样本20000张左右);
3.先制作train.txt,在train中的0文件夹中写一个.bat文件,内容如下:
dir /b/s/p/w *.jpg > train_0.txt
上述命令在新建的train_0.txt文件写入0中的每张图片的绝对路径,然后再使用txt的替换功能去掉绝对路径,再在后面加上Label值,形式如下:
对于1也如上进行操作,得到的train_1.txt中的内容如下:
然后再将两个文件中的内容整合到train.txt文件中,就得到了我们需要的train.txt文件;
对于val.txt文件我们也进行类似操作,不过我们也要先将val文件夹中的图片分到0和1两个文件夹(因为val里既有人脸图片也有非人脸图片,无法使用替换功能),然后制作val.txt文件;
(3)将正负样本转换为lmdb格式:
在Windows下调用caffe安装根目录下BUild->x64->Debug中有一个convert_imageset.exe文件来制作lmdb文件(有的人有可能只有.cpp,那么就还需要经过VS的编译生成.exe)
在Linux下则调用examples->imagenet中的create_imagenet.sh文件,并进行改写(参见网上相关博客)
这里我介绍的是如何在windows下转换lmdb格式(要自己写.bat文件,满满的泪。。。。)
首先在Imageset_2文件夹中写一个create_imageset_2.bat文件,内容如下:
然后执行就会在后面相应的路径中创建lmdb文件;
(4)图像预处理
使用Build中的compute_image_mean.exe将图像减去均值,.bat文件内容如下:
得到对应的.binaryproto文件
(5)修改solver.prototxt和train.prototxt文件
简单一点,我们只需要修改其中的路径即可(注意,路径用\\或者/,千万不要用\!!!!!!!!)
用CPU的话,solver:CPU,GPU的话相应修改即可。
(6)训练网络:
编写train.bat文件开始训练,内容如下:
双击就开始训练了:
配置:i7,8G,CPU训练,已经一天了还没好,强烈建议GPU!!!!
《Caffe下跑AlxNet之数据处理过程》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- IFC是什么
IFC是用EXPRESS语言来描述的一种数据格式 IFC的物理文件 为了数据交换的目的,STEP标准Prat 21规定了正文文件的结构,认为一个STEP文件或一个Part 21文件包括两端:头段和数据 ...
- Redis设计与实现读书笔记(一) SDS
作为redis最基础的底层数据结构之一,SDS提供了许多C风格字符串所不具备的功能,为之后redis内存管理提供了许多方便.它们分别是: 二进制安全 减少字符串长度获取时间复杂度 杜绝字符串溢出 减少 ...
- 使用plsql创建表空间和用户
使用plsql创建oracle数据库的表空间和用户,并授权的语句.1.创建表空间:说明:datafile是指定创建位置,指向oracle数据库的默认位置:autoextend 设置容量为自动增长,50 ...
- linux下查看最消耗CPU、内存的进程
2012-11-19 15:38:04 分类: LINUX 1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗 ...
- java第三周学习
这一周学习的是java数组面向对象 数组中存放的数据的类型:既可以是基本数据类型也可以是引用数据类型. 数组的定义方式: 1 数据类型[] 数组名; 2 数据类型 数组名[]; 数组的初始化: 1.静 ...
- javascript操作字符串的方法
string.indexOf()//返回字符串中第一个与给定子串匹配的子串序号字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表 ...
- C#基础强化-进程操作
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- php验证身份证号码的正确性
/********************php验证身份证号码是否正确函数*********************/function is_idcard( $id ) { $id = strto ...
- 【原创】JEECMS v6~v7任意文件上传漏洞(1)
文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...
- TomCat的安装与配置方法
经过自己的研究,各种烦,所以要写个博客,帮助大家安装这个软件. 一.安装TomCat(因为大家都安装了jdk,所以就不写了) 1.下载TomCat 网址如下:http://tomcat.apache. ...