Caffe SSD的resize過程解析

問題描述
在windows平臺上,本地訓練SSD_512獲得了對應的權值參數文件,加載模型進行前向測試的時候,發現調用caffe.io.Transformer中的resize處理函數速度太慢,打算用opencv的resize作替換,所以更改了輸入圖片到模型中的預處理過程,使用caffe.io.Transformer進行預處理的過程以下:python

import numpy as np 
import sys,os 
# 設置當前的工做環境在caffe下 
caffe_root = '/home/xxx/caffe/' 
# 咱們也把caffe/python也添加到當前環境 
sys.path.insert(0, caffe_root + 'python') 
import caffe 
os.chdir(caffe_root)#更換工做目錄

# 設置網絡結構 
net_file=caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt' 
# 添加訓練以後的參數 
caffe_model=caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel' 
# 均值文件 
mean_file=caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy'

# 這裏對任何一個程序都是通用的,就是處理圖片 
# 把上面添加的兩個變量都做爲參數構造一個Net 
net = caffe.Net(net_file,caffe_model,caffe.TEST) 
# 獲得data的形狀,這裏的圖片是默認matplotlib底層加載的 
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) 
# matplotlib加載的image是像素[0-1],圖片的數據格式[weight,high,channels],RGB 
# caffe加載的圖片須要的是[0-255]像素,數據格式[channels,weight,high],BGR,那麼就須要轉換

# channel 放到前面 
transformer.set_transpose('data', (2,0,1)) 
transformer.set_mean('data', np.load(mean_file).mean(1).mean(1)) 
# 圖片像素放大到[0-255] 
transformer.set_raw_scale('data', 255) 
# RGB-->BGR 轉換 
transformer.set_channel_swap('data', (2,1,0))

# 這裏纔是加載圖片 
im=caffe.io.load_image(caffe_root+'examples/images/cat.jpg') 
# 用上面的transformer.preprocess來處理剛剛加載圖片 
net.blobs['data'].data[...] = transformer.preprocess('data',im) 
#注意,網絡開始向前傳播啦 
out = net.forward() 
# 最終的結果: 當前這個圖片的屬於哪一個物體的機率(列表表示) 
output_prob = output['prob'][0] 
# 找出最大的那個機率 
print 'predicted class is:', output_prob.argmax()

  


用opencv2中的resize函數替換以後,檢測的結果不好,最終經過比較兩種resize方式對同一張圖片處理後結果的差別,發現兩種方式存在不一樣,雖說差別很小,可是也會嚴重影響檢測結果,緣由可能以下:ubuntu

模型不夠魯棒
caffe中的resize和opencv中的resize的默認插值方式可能不一樣,這點須要看源碼進行確認
在ubuntu上不存在這個問題,猜測多是在windows下的caffe不是官方提供的,可能處理方式存在差別
最終,所有采用caffe.io.Transformer的方式進行圖片的預處理,檢測結果恢復正常。windows

此外,測試了opencv2和opencv3,發現用opencv2處理圖片,檢測的效果更好,緣由未知!
---------------------
做者:tsq292978891
來源:CSDN
原文:https://blog.csdn.net/tsq292978891/article/details/78918413
版權聲明:本文爲博主原創文章,轉載請附上博文連接!網絡

相關文章
相關標籤/搜索