caffe 用训练好的模型提取图片特征(使用自带classify.py和classifier.py)

该博客介绍了如何利用已训练好的Caffe模型和classify.py、classifier.py脚本来提取图片特征。在过程中,作者遇到了mean文件格式不匹配和显存不足的问题,通过调整代码解决了这些问题,实现了单张图片处理并保存特征和标签的脚本extract_feature.py。
摘要由CSDN通过智能技术生成

原材料:

1)训练好的caffemodel

2)  定义网络结构的deploy.prototxt配置文件

3) 训练时使用的mean文件,在/cafferoot/python/classify.py的demo中,要求使用的是.npy格式的meanfile,如果我们手上有的是mean.binaryproto文件, 则需要自己完成转换:可以使用以下convert_mean.py来实现

#!/usr/bin/python

import numpy as np
import sys
sys.path.append('/home/caffe/python')			#caffe_root is your caffe root dir need change
import caffe

blob = caffe.proto.caffe_pb2.BlobProto()
data = open( 'places205CNN_mean.binaryproto', 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( 'mean' , out )

places205CNN_mean.binaryproto是我存放在当前目录下的mean文件,运行上面的python程序将它转换成存在当前目录下的mean.npy文件。

4)    图片文件list,其中存有图片绝对路径和图片的标签。


具体过程:

/cafferoot/python/classify.py是一个可以实现特征提取/分类的demo,调用的是/cafferoot/python/caffe/classifier.py文件里实现的classifer和predict函数。

classify.py可以接受一系列命令行参数,可以接受的数据源格式非常灵活,包括:图片绝对路径/保存图片的文件夹路径/保存图片的.npy。文件内容如下:

#!/usr/bin/env python
"""
classify.py is an out-of-the-box image classifer callable from the command line.

By defaul
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值