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

时间:2024-06-05 10:33:56

近期在用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