caffe 提取可视化特征遇到keyerror(即用matlab显示提取特征)
2016-05-10 12:27
796 查看
首先感谢http://blog.csdn.net/lcj_cjfykx/article/details/47272193这篇博客 我的大部分都是从这篇博客改过来的
但是遇到一个keyerror问题 我将leveldb2mat.py做了一些修改
结果也很正确 为了互相学习 我将代码发给大家同时希望我们可以互相讨论 对于有的人问特征29040这个怎么计算出来的 我找过一篇博客大家看看也就知道怎么做的了
leveldb2mat.py代码
import leveldb
import feat_helper_pb2
import numpy as np
import scipy.io as sio
import time
import collections
def main(argv):
leveldb_name = sys.argv[1]
print "%s" % sys.argv[1]
batch_num = int(sys.argv[2]);
batch_size = int(sys.argv[3]);
window_num = batch_num*batch_size;
start = time.time()
if 'db' not in locals().keys():
db = leveldb.LevelDB(leveldb_name)
datum = feat_helper_pb2.Datum()
it = db.RangeIter()
ft = np.zeros((int(sys.argv[6]), int(sys.argv[4])))
#featureFile=sys.argv[5]
#output = open(featureFile, 'wb')
print "%s" %it
for key,value in it:
print "%d" %int(sys.argv[6])
if int(key)==int(sys.argv[6]):
break
datum.ParseFromString(db.Get(key))
#if
print "%s" %key
print "%d" %len(datum.float_data)
#str = ' '.join(str(i) for i in datum.float_data)
#output.write(str)
#output.write("\n")
#print "%s" %value.size()
ft[int(key), :] = datum.float_data
#for im_idx in range(window_num):
#datum.ParseFromString(db.Get(im_idx))
#ft[im_idx, :] = datum.float_data
#sort_features = collections.OrderedDict(sorted(ft.items()))
#for k, arr in sort_features.iteritems():
print 'time 1: %f' %(time.time() - start)
sio.savemat(sys.argv[5], {'feats':ft})
print 'time 2: %f' %(time.time() - start)
print 'done!'
#output.close()
#leveldb.DestroyDB(leveldb_name)
if __name__ == '__main__':
import sys
main(sys.argv)
原先需要五个参数但是现在需要六个参数
例如第六个参数就是有多少图片需要提取特征
python
latelevel2mat.py examples/mytestextractFeature/feature/fivepicfeatures_conv 1 10 290400
examples/mytestextractFeature/feature/fivefeatures.mat 5
第六个参数就是我新添加了 提取前五幅图像特征,
对了我现在只是做了五幅图像的 没有做500幅图像往上的 如果有人做了 也希望讨论可以找我讨论
我把第五幅图像的特征贴上了
效果如下:
![](http://img.blog.csdn.net/20160510134601781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
原图是一张飞机
但是遇到一个keyerror问题 我将leveldb2mat.py做了一些修改
结果也很正确 为了互相学习 我将代码发给大家同时希望我们可以互相讨论 对于有的人问特征29040这个怎么计算出来的 我找过一篇博客大家看看也就知道怎么做的了
leveldb2mat.py代码
import leveldb
import feat_helper_pb2
import numpy as np
import scipy.io as sio
import time
import collections
def main(argv):
leveldb_name = sys.argv[1]
print "%s" % sys.argv[1]
batch_num = int(sys.argv[2]);
batch_size = int(sys.argv[3]);
window_num = batch_num*batch_size;
start = time.time()
if 'db' not in locals().keys():
db = leveldb.LevelDB(leveldb_name)
datum = feat_helper_pb2.Datum()
it = db.RangeIter()
ft = np.zeros((int(sys.argv[6]), int(sys.argv[4])))
#featureFile=sys.argv[5]
#output = open(featureFile, 'wb')
print "%s" %it
for key,value in it:
print "%d" %int(sys.argv[6])
if int(key)==int(sys.argv[6]):
break
datum.ParseFromString(db.Get(key))
#if
print "%s" %key
print "%d" %len(datum.float_data)
#str = ' '.join(str(i) for i in datum.float_data)
#output.write(str)
#output.write("\n")
#print "%s" %value.size()
ft[int(key), :] = datum.float_data
#for im_idx in range(window_num):
#datum.ParseFromString(db.Get(im_idx))
#ft[im_idx, :] = datum.float_data
#sort_features = collections.OrderedDict(sorted(ft.items()))
#for k, arr in sort_features.iteritems():
print 'time 1: %f' %(time.time() - start)
sio.savemat(sys.argv[5], {'feats':ft})
print 'time 2: %f' %(time.time() - start)
print 'done!'
#output.close()
#leveldb.DestroyDB(leveldb_name)
if __name__ == '__main__':
import sys
main(sys.argv)
原先需要五个参数但是现在需要六个参数
例如第六个参数就是有多少图片需要提取特征
python
latelevel2mat.py examples/mytestextractFeature/feature/fivepicfeatures_conv 1 10 290400
examples/mytestextractFeature/feature/fivefeatures.mat 5
第六个参数就是我新添加了 提取前五幅图像特征,
对了我现在只是做了五幅图像的 没有做500幅图像往上的 如果有人做了 也希望讨论可以找我讨论
我把第五幅图像的特征贴上了
效果如下:
原图是一张飞机
相关文章推荐
- 去除图像旋转黑边现象
- ubuntu14.04安装MATLAB R2014a
- matlab非线性拟合所碰到的问题
- solve stiffness matrix in matlab
- matlab中的sort函数
- MATLAB读取和写入Excel文件
- MATLAB地图工具箱学习总结(二)大圆和恒向线
- 模型化开发过程中要基本掌握的Matlab/Simulink的功能
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- matlab 2014 破解使用
- matlab中有哪些有趣的命令?好玩的matlab彩蛋
- Octave matlab中运行.m文件方式对比
- matlab文件数据处理
- ubuntu下安装matlab2015b
- matlab二值图处理
- Matlab Tricks(一)—— figure(1)
- paper 66: MATLAB函数—disp的使用
- 写matlab程序中用记录下来的小碎片
- matlab 下的 C/C++ 编译器设置与 matlab/C 混合编程
- matlab中的imshow函数的问题