caffe目標檢測模型訓練全過程(二)python載入caffemodel分類
阿新 • • 發佈:2019-02-03
繼上篇 caffe目標檢測模型訓練全過程(一)指令碼、資料準備與製作
之後,我們訓練出來了其模型,如圖所示:
models2_iter_70000.caffemodel 就是需要呼叫的模型,70000表示模型訓練了70000次後所儲存的模型,其他也是一樣的。
記下來,使用python載入模型,然後進行識別,首先對處理好的227*227大小的處理好的圖片進行識別。
程式碼如下:
net_full_conv = caffe.Net('../deploy.prototxt',
'../models2_iter_50000.caffemodel',
caffe.TEST)
# 載入圖片
im = caffe.io.load_image('scale_img.jpg')
print(im.shape)
transformer = caffe.io.Transformer({'data': net_full_conv.blobs['data'].data.shape})
#transformer.set_mean('data', np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1))
transformer.set_transpose('data', (2,0,1))
transformer.set_channel_swap('data' , (2,1,0))
transformer.set_raw_scale('data', 255.0)
transformed_image = transformer.preprocess('data', im)
net_full_conv.blobs['data'].data[...] = transformed_image
net_full_conv.blobs['data'].reshape(1,3,227,227)
### perform classification
out = net_full_conv.forward()
# make classification map by forward and print prediction indices at each location
# out = net_full_conv.forward_all(data=np.asarray([transformer.preprocess('data', im)]))
#打印出類別
print (out['prob'],(x,y))