Colmap 教程
Posenet 教程
转换colmap数据至文本文件
1 | $ ./colmap-path/build/src/exe/model_converter --input_path ./ --output_path ./ --ouput_type TXT |
根据TXT文件生成posenet的训练数据集和测试数据集
1 | #!/usr/bin/python |
posenet 教程
生成lmdb文件
1 | caffe_root = '/home/teng/programmings/semap/caffe-posenet/' # Change to your directory to caffe-posenet |
test文件
1 | caffe_root = '/home/teng/programmings/semap/caffe-posenet/' # Change to your directory to caffe-posenet |
计算均值文件
1 | $ ./caffe-posenet-path/build/tools/compute_image_mean train_lmdb/ train.binaryproto |
修改训练配置文件
修改 train_bayesian_posenet.prototxt
1 | name: "GoogLeNet" |
修改 solver_bayesian_posenet.prototxt
1 | net: "/home/teng/programmings/semap/caffe-posenet/posenet/models/611/train/ train_bayesian_posenet.prototxt" #训练或者测试配置文件 |
解释:
训练样本
总共:2280个
batch_szie:64
将所有样本处理完一次(称为一代,即epoch)需要:2280/64=36 次迭代才能完成
所以这里将test_interval设置为36,即处理完一次所有的训练数据后,才去进行测试。所以这个数要大于等于36.
如果想训练100代,则最大迭代次数为3600;
测试样本
同理,如果有212个测试样本,batch_size为32,那么需要7次才能完整的测试一次。 所以test_iter为7;这个数要大于等于7.
学习率
学习率变化规律我们设置为随着迭代次数的增加,慢慢变低。总共迭代120000次,我们将变化6次,所以stepsize设置为120000/6=20000,即每迭代20000次,我们就降低一次学习率。
训练
1 | $ ./caffe-posenet-path/build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt 2>&1 | tee log |
1) fc7表示提取全连接第七层特征,conv5表示提取第五个卷积层的特征, examples/temp_features表示存放结果的目录(目录不需要提前构建)
2.)10:输入的包的数量,我们test时的batchsize是50,这里输入10,表示会提取50*10=500张图片的特征
3.)imageNet网络有很多层(data conv1 conv2 conv3 conv4 conv5 fc6 fc7 fc8 prob),我们可以选取任意一层;fc7是最后一层特征,fc8输出的就是softmax的输出了,所以提取fc7层
4.)lmdb:输出的数据格式是lmdb,还可以是leveldb