总结一下用caffe跑图片数据的研究流程

总结一下用caffe跑图片数据的研究流程

最近在用caffe玩一些数据集,这些数据集是从淘宝爬下来的图片。主要是想研究一下对女性衣服的分类。

下面是一些具体的操作流程,这里总结一下。

1 爬取数据。写爬虫从淘宝爬取自己需要的数据。

2 数据预处理。将图片从jpg,png格式转为leveldb格式。因为caffe的输入层datalayer是从leveldb读取的。这一步自己基于caffe写了个工具实现转换。

转换命令例子:

./convert_imagedata.bin /home/linger/imdata/skirt_train/ /home/linger/linger/testfile/skirt_train_db/ /home/linger/linger/testfile/skirt_train_attachment/ 3 250 250

./convert_imagedata.bin /home/linger/imdata/skirt_test/ /home/linger/linger/testfile/skirt_test_db/ /home/linger/linger/testfile/skirt_test_attachment/ 3 250 250

./compute_image_mean.bin /home/linger/linger/testfile/skirt_train_db /home/linger/linger/testfile/skirt_train_mean.binaryproto

./compute_image_mean.bin /home/linger/linger/testfile/skirt_test_db /home/linger/linger/testfile/skirt_test_mean.binaryproto

3 建立网络模型。主要是写train.prototxt和test.prototxt,还有solver.prototxt。前两者是训练和测试的网络结构,后者是网络的一些配置参数。

4 训练和测试模型。有时候需要调整一些参数,比如learning rate,或者调整网络结构。

5 可视化响应图和权重图。主要把最后一层的特征响应图和权重图画出来,便于观察规律。这两个工具也是自己写的。

工具使用例子:

./visualize_weights.bin /home/linger/linger/caffe-action/caffe-master/examples/cifar10/cifar10_full_test.prototxt /home/linger/linger/caffe-action/caffe-master/examples/cifar10/cifar10_full_iter_60000 1 GPU /home/linger/linger/testfile/skirt_test_attachment/image_filename /home/linger/linger/testfile/weights/ 7

./visualize_features.bin /home/linger/linger/caffe-action/caffe-master/examples/cifar10/cifar10_full_test.prototxt /home/linger/linger/caffe-action/caffe-master/examples/cifar10/cifar10_full_iter_60000 20 GPU /home/linger/linger/testfile/skirt_test_attachment/image_filename /home/linger/linger/testfile/innerproduct/ 7