I have fine tuned the existed model and trained it before. The issue about how to classify the images will come along. So In this chapter, I will explain how to call python interface to classify images.

Here is the python source code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import numpy as np
caffe_root = "/home/your_name/Downloads/caffe-master/"
import sys
sys.path.insert(0, caffe_root+"python")
import os
import caffe
import io

caffe.set_mode_cpu()
MODEL_FILE = caffe_root + "models/colon_caffenet/colon_deploy.prototxt"
#change the deploy file same as the train_val.prototxt
PRETRAINED = caffe_root + "models/colon_caffenet/caffenet_train_iter_80.caffemodel"
MEAN = caffe_root + "examples/colon/colon_mean.npy"
# later I will tell how to tranform *.binaryproto to *.npy
net = caffe.Classifier(MODEL_FILE, PRETRAINED, mean = np.load(MEAN).mean(1).mean(1),
channel_swap=(2,1,0),
raw_scale=255,
image_dims=(256, 256))

filewriter = open(caffe_root+"data/colon/test_result.txt","w+")
for root,dirs,files in os.walk(caffe_root+"data/colon/test/"): # all the images are in test folder
for file in files
IMAGE_FILE = os.path.join(root,file).decode('gbk').encode('utf8')
input_image = caffe.io.load_image(IMAGE_FILE)
prediction = net.predict([input_image])
string = os.path.basename(IMAGE_FILE)+" "+str(prediction[0].argmax())+"\n"
filewriter(string)
print os.path.basename(IMAGE_FILE), prediction[0].argmax()

filewriter.close()

convert binaryproto to npy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import caffe
import numpy as np
import sys

if len(sys.argv) != 3:
print "Usage: python convert_protomean.py proto.mean out.npy"
sys.exit()

blob = caffe.proto.caffe_pb2.BlobProto()
data = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( sys.argv[2] , out )

Meets lots of problems when import caffe

When python executes “import caffe”, many problems comes out. All problems are about the python packages. Although I have set up the python library pointing to anaconda2 lib, it seems programme will find all the dependencies in /usr/lib/python2.7/dist-packages. So if you have encountered the same issues, copy all dependencies in /anaconda2/lib/python2.7/site-packages to /usr/lib/python2.7/dist-packages

1
sudo cp -r /anaconda2/lib/python2.7/site-packages/* /usr/lib/python2.7/dist-packages

Import cv2: No Module named cv2

copy /usr/lib/python2.7/dist-packages/cv2.so to /anaconda2/lib/python2.7/site-packages/

ValueError: Mean shape incompatible with input shape

The problem is related to io.py, here is the solution

Let go to line 253-253 in caffe-master/python/caffe/io.py Replace

1
2
if ms != self.inputs[in_][1:]:
raise ValueError('Mean shape incompatible with input shape.')

by

1
2
3
4
5
6
7
if ms != self.inputs[in_][1:]:
print(self.inputs[in_])
in_shape = self.inputs[in_][1:]
m_min, m_max = mean.min(), mean.max()
normal_mean = (mean - m_min) / (m_max - m_min)
mean = resize_image(normal_mean.transpose((1,2,0)),in_shape[1:]).transpose((2,0,1)) * (m_max - m_min) + m_min
#raise ValueError('Mean shape incompatible with input shape.')

Rebuild your code. It will be fine.

相关文章
评论
分享
  • T Bill vs T Notes vs T Bonds

    T 指的是 Treasury, 国债,债券发行机构为美国中央政府(federal government),为了解决政府日常运营所需资金的问题,例如遇到财政赤字时,不仅可以通过增加税收的方式,也可以通过发债的方式解决政府资金短缺。 美...

    T Bill vs T Notes vs T Bonds
  • 加德满都/巴德岗4日游--最幸福的地区

    时间:20190605-20190608; 从广州乘坐飞机直达加德满都,4个小时。 飞机上可以远远看到珠峰 加德满都海拔1340米左右,比北京晚2小时15分 D1: 加德满都泰米尔到达加德满都机场(标记1)为当地时间11点左右。订的酒...

    加德满都/巴德岗4日游--最幸福的地区
  • I graduated from Nanjing Normal University, majoring in computer science and technology. Now I am applying for Master...

  • 身份信息泄露,南京警方让回户籍所在地报警,户籍所在地警方让去支付宝所在的派出所报警,我到底该去哪里报警??为什么求助那么困难??

    本人南京市溧水区石湫镇人,南京大学毕业,目前香港工作。前段时间遇到一件特别心塞的事情,身份信息被盗,总计盗款38000元左右,已报警,不立案。报警过程更加心塞。 事情大概是这样的: 身份被盗:我的身份证号码(未丢失)+银行卡号码(...

    身份信息泄露,南京警方让回户籍所在地报警,户籍所在地警方让去支付宝所在的派出所报警,我到底该去哪里报警??为什么求助那么困难??
  • 美西之行七 Bryce Canyon

    美西之行七 Bryce Canyon今天前往Bryce Canyon。 路上的视野很开阔,颜色也较之前变得小清新了一些。 看到一辆RV车,载着一家随处转悠 可爱的大叔主动配合照相 马场 小木屋 到达Bryce Canyon 又开始浓...

    美西之行七 Bryce Canyon
  • 美西之旅六 Arches Canyon

    美西之旅六 Arches Canyon离开blanding之后,驱车前往Arches Canyon,中文名为拱石国家公园。 沿途的颜色开始变成橙黄 路上碰到一只被撞死的小鹿,身体还是温热的。这在西部是经常发生的事情 晚上住在一个叫...

    美西之旅六 Arches Canyon
  • 美西之旅五大峡谷到Blanding

    美西之旅 Grand Canyon –> Blanding小镇 离开Page之后,计划去羚羊谷,但是去羚羊谷要经过一片私人领地,造成景区价格偏高,朋友说他之前去过并没有网上照片拍的那么美,同时我们也要赶路,所以决定不再进入羚羊...

    美西之旅五大峡谷到Blanding
  • 美西之旅四大峡谷

    美西之旅 大峡谷(Grand Canyon)进入国家公园第一站--大峡谷。 大峡谷模拟图 我们直接坐蓝线到底,之后一站一个景点下来走 大峡谷 光影倒映在山谷,为其增添新色彩 走走走,拍拍拍 逛完南峡谷,准备驱车进入北峡谷。 北峡谷入...

    美西之旅四大峡谷
  • 美西之旅三 拉斯维加斯到大峡谷

    美西之旅 拉斯维加斯->大峡谷 离开Vegas之后,我们驱车前往Grand Canyon大峡谷。Vegas外围的民宅,沙漠中的家园。每家每户门前都栽种着一颗绿树,即使再荒凉,心中依然绿树成荫。 在去往大峡谷的中途会经过Hover...

    美西之旅三 拉斯维加斯到大峡谷
  • 美西之旅之拉斯维加斯

    美西之旅 洛杉矶->拉斯维加斯 早上9点多从洛杉矶出发,沿着15号公路向东北方向驶去,进入拉斯维加斯。从洛杉矶到拉斯维加斯大概4个小时车程,途中经过两个很大的OutLet,买买买忘了时间,大概到晚上12点多才到拉斯。原本计划只在...

    美西之旅之拉斯维加斯
Please check the comment setting in config.yml of hexo-theme-Annie!