批量提取 caffe 特征 (python, C++, Matlab)(待续)
来源:互联网 发布:可以建霍格沃茨的软件 编辑:程序博客网 时间:2024/05/24 05:10
本文参考如下:
Instant Recognition with Caffe
Extracting Features
Caffe Python特征提取
caffe 练习4 —-利用python批量抽取caffe计算得到的特征——by 香蕉麦乐迪
caffe 练习3 用caffe提供的C++函数批量抽取图像特征——by 香蕉麦乐迪
caffe python批量抽取图像特征
caffe python 批量抽取图像特征—续篇
caffe c++ 抽取图片特征
shicai C++ Caffe提取特征
caffe源码修改:抽取任意一张图片的特征
matlab 批量提取CNN特征
关于如何批量提取特征,本文的框架如下:
1. 准备数据及相应准备工作
2. 初始化网络
3.读取图像列表
4.提取图像特征,并保存为特定格式
Python方法一
主要有三个函数:
initialize () 初始化网络的相关
readlist() 读取抽取图像列表
extractFeatre() 抽取图像的特征,保存为指定的格式
其中在transformer那里需要根据自己的需求设定
#encoding:utf-8#详情请查看http://www.cnblogs.com/louyihang-loves-baiyan/p/5078746.htmlimport numpy as npimport matplotlib.pyplot as pltimport osimport caffeimport sysimport pickleimport structimport sys,cv2caffe_root = '../' # 运行模型的prototxtdeployPrototxt = '/home/bids/caffe/caffe-master/changmiao/model/deploy.prototxt'# 相应载入的modelfilemodelFile = '/home/bids/caffe/caffe-master/changmiao/model/bvlc_reference_caffenet.caffemodel'# meanfile 也可以用自己生成的meanFile = 'python/caffe/imagenet/ilsvrc_2012_mean.npy'# 需要提取的图像列表imageListFile = '/home/bids/caffe/caffe-master/changmiao/data/temp.txt'imageBasePath = '/home/bids/caffe/caffe-master/changmiao/data/cat'#gpuID = 4 #根据你自己电脑的GPU情况而定postfix = '.classify_allCar1716_fc6'# 初始化函数的相关操作def initilize(): print 'initilize ... ' sys.path.insert(0, caffe_root + 'python') caffe.set_mode_gpu()# caffe.set_device(gpuID) net = caffe.Net(deployPrototxt, modelFile,caffe.TEST) return net # 提取特征并保存为相应地文件def extractFeature(imageList, net): # 对输入数据做相应地调整如通道、尺寸等等 transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) transformer.set_transpose('data', (2,0,1)) transformer.set_mean('data', np.load(caffe_root + meanFile).mean(1).mean(1)) # mean pixel transformer.set_raw_scale('data', 255) transformer.set_channel_swap('data', (2,1,0)) # set net to batch size of 1 如果图片较多就设置合适的batchsize net.blobs['data'].reshape(1,3,227,227) #这里根据需要设定,如果网络中不一致,需要调整 num=0#imageList = os.listdir(imageBasePath) for imagefile in imageList: imagefile_abs = os.path.join(imageBasePath, imagefile) print imagefile_abs net.blobs['data'].data[...] = transformer.preprocess('data', caffe.io.load_image(imagefile_abs)) out = net.forward() fea_file = imagefile_abs.replace('.jpg',postfix) num +=1 print 'Num ',num,' extract feature ',fea_file with open(fea_file,'wb') as f: for x in xrange(0, net.blobs['fc6'].data.shape[0]): for y in xrange(0, net.blobs['fc6'].data.shape[1]): f.write(struct.pack('f', net.blobs['fc6'].data[x,y]))# 读取文件列表def readImageList(imageListFile): imageList = [] with open(imageListFile,'r') as fi: while(True): line = fi.readline().strip().split()# every line is a image file name if not line: break imageList.append(line[0]) print 'read imageList done image num ', len(imageList) return imageListif __name__ == "__main__": net = initilize() imageList = readImageList(imageListFile) extractFeature(imageList, net)
0 0
- 批量提取 caffe 特征 (python, C++, Matlab)(待续)
- Caffe图片特征提取(Python/C++)
- caffe通过python(pycaffe)在已有模型上进行批量预测,批量提取特征
- caffe的python接口学习(11):特征的批量提取
- caffe 提取可视化特征遇到keyerror(即用matlab显示提取特征)
- 使用Caffe批量提取特征
- 深度学习Caffe实战笔记(10)Windows Caffe使用MATLAB接口提取和可视化特征
- caffe c++API特征提取
- Caffe Matlab feature extraction 特征提取
- Caffe Matlab feature extraction 特征提取
- caffe学习笔记15-caffe批量提取特征
- caffe cnn提取各层特征并可视化结果(Python接口)
- Caffe Python接口多进程提取特征
- caffe python接口:参数及特征提取
- matlab 局部特征检测与提取(问题与特征)
- caffe python批量抽取图像特征
- caffe python 批量抽取图像特征---续篇
- caffe python批量抽取图像特征
- (七)、HDFS 剖析
- 技术分类
- UESTC - 1264:人民币的构造【规律】
- Linux将命令添加到PATH中
- 腾讯QQ电脑管家2016 v11.5 免费版
- 批量提取 caffe 特征 (python, C++, Matlab)(待续)
- (八)、HDFS Java 接口
- ubuntu 12.04安装qq2015
- 第四章 SpringMVC之HandlerAdapter解析
- Android中View的事件分发机制
- 动态添加Option
- 1010. Radix (25)
- greenDAO讲义(一):使用篇
- android 自定义AlertDialog 与Activity相互传递数据