caffe 提取可视化特征遇到keyerror(即用matlab显示提取特征)

首先感谢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幅图像往上的  如果有人做了  也希望讨论可以找我讨论  


我把第五幅图像的特征贴上了 


效果如下:

caffe 提取可视化特征遇到keyerror(即用matlab显示提取特征)_第1张图片

原图是一张飞机

你可能感兴趣的:(caffe 提取可视化特征遇到keyerror(即用matlab显示提取特征))