一、 分类图片
Train:训练图片(包含正负样本)
正负样本(车或不是车的)先分开,以便后面批处理分类。
Val:测试图片(train中的部分图片)
二、 生成train.txt和val.txt
新建train.bat放入train里批处理命令:
@ECHO OFF
REM 变量延迟
SETLOCAL ENABLEDELAYEDEXPANSION
REM File List
SET LIST=list.txt
REM Log File
SET LOG=exec.log
REM Get file list
IF EXIST “%LIST%” (
del %LIST% >> %LOG%
)
dir/b/o-d/a *.jpg >> %LIST%
FOR /F “tokens=1,2 delims=.” %%a IN (%LIST%) DO (
SET /a x=!x!+1
SET nm=00000!x!
REM file rename
ren %%a.%%b Car!nm:~-3!.JPG
ECHO ren %%a.%%b Car2!nm:~-3!.JPG >> %LOG%
)
ECHO Success!!! >> %LOG%
同样的方法将正负样本的txt都生成,如下
使用记事本的替换功能,将正样本的JPG替换成JPG 1,负样本的JPG替换成JPG 0,将正负样本的放入统一个train.txt中,如下图左,选择train中部分写入val.txt如图右。注:train.txt和val.txt中的图片名要跟train和val图片文件夹中的图片对应。
三、 转换图片(train和val)为leveldb,运行convert_imageset.exe
新建convert_imageldb_trainset.bat:
SET GLOG_logtostderr=1
路径\convert_imageset.exe –backend leveldb 路径\train\ 路径\train.txt 路径\mtrainldb
pause
生成结果
新建convert_imageldb_valset.bat:
SET GLOG_logtostderr=1
路径\convert_imageset.exe –backend leveldb路径\val\ 路径\val.txt 路径\mvalldb
pause
生成结果
注:这里生成的是leveldb文件,后面预处理 计算均值图像的时候也要用leveldb
四、 计算均值图像,运行compute_image_mean
新建compute_image_mean,处理train:
SET GLOG_logtostderr=1
路径\compute_image_mean.exe –backend leveldb 路径\mtrainldb 路径\train_mean.binaryproto
Pause
新建compute_val_mean,处理val:
SET GLOG_logtostderr=1
路径\compute_image_mean.exe –backend leveldb 路径\mtrainldb 路径\val_mean.binaryproto
pause
生成以下两个文件:
五、网络层参数
文件:train_val.prorotxt,参照(在example下面):
注意将地址对应自己的转换数据的位置,backend要跟前面的一致修改为LEVELDB,代码如下:
六、运行caffe.bat
路径\caffe.exe train –solver 路径\solver.prototxt
pause