使用Caffe进行图片分类

本文详细介绍了如何使用Caffe进行图片分类,包括图片格式转换、图片均值化、模型训练和分类四个步骤。通过脚本将图片转换为LMDB格式,计算均值文件,使用Caffe训练Caffenet模型,最后利用训练好的模型进行图片分类。在实践中需要注意脚本路径不能含有中文,以及对prototxt文件的修改。
摘要由CSDN通过智能技术生成

首先,贴参考:caffe_root\caffe-master\examples\imagenet, (这是windows下的脚本运行,用于训练建模)
caffe_root\caffe-master\examples\cpp_classification\classification.cpp(用于分类)
所使用的顺序是1.create_imagenet.sh(将图片转成lmdb格式,并统一大小) 。2.make_imagenet_mean.sh(生成均值文件)。3.train_caffenet.sh(训练网络)。4.classification.cpp(对图片进行分类)

1.图片格式转换

Caffe是用训练集和交叉验证集进行建模,最后使用测试集测试。
1.TrainSet 2.CrossValidate Set(val) 3.TestSet (最好将不同的种类的这三个文件分开),网上百度点数据即可。这步是将图片转换成LMDB格式,首先看create_imagenet.sh,它其实就是一个命令:

$TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    --shuffle \
    $TRAIN_DATA_ROOT \
    $DATA/Train.txt \
    $EXAMPLE/ilsvrc12_train_lmdb

convert_imageset在 caffeBuilder/Build/x64/Release/ (当然这需要你编译过Caffe,并且选择x64和Release),所以修改上面的环境变量TOOLS为caffeBuilder/Build/x64/Release/(路径没写全,因为每个人的不一样,我写的是绝对路径),resize_height将图片处理后的高度像素,同理resize_widthshuffle为打乱图片顺序,TRAIN_DATA_ROOT为存放的训练集的路径,Train.txt是图片+标签,$EXAMPLE/ilsvrc12_train_lmdb为输出路径,随意填写路径。
发现没有Train.txt。使$DATA加上Train.txt里面的每一行都可以指定一张图片,后面再加标签即可,为了方便,之前将每类都分开存放,这是就可以用cmd打开Train,输入:

dir /s /on /b > $DATA/***Train.txt

$DATA,***Train.txt按自己情况进行替换,之后使用notepad等打开,加入标签,然后将每一类的TrainSet,以及Train.txt放在一起,就是我们要输入的数据和不同种类(标签)。之后,将CrossValidate Set也进行数据和文本的准备,在create_imagenet.sh中的

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    --shuffle \
    $VAL_DATA_ROOT \
    $DATA/Val.txt \
    $EXAMPLE/ilsvrc12_val_lmdb

就是对交叉验证集的转换。
Tips:如果使用脚本运行,那么路径上不能有中文。

2.图片均值化

打开make_imagenet_mean.sh,只对TrainSet进行均值化

$TOOLS/compute_image_mean $EXAMPLE/ilsvrc12_train_lmdb \
  $DATA/imagenet_mean.binaryproto

$TOOLS 路径相同,ilsvrc12_train_lmdb 就是生成的lmdb文件,写好路径。imagenet_mean.binaryproto为输出的文件,随意写,后缀不变就行。

3.建模训练

打开train_caffenet.sh

./build/tools/caffe train \
    --solver=models/bvlc_reference_caffenet/solver.prototxt
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值