6

PythonでVGG Face Descriptorを実装したい。しかし、私はエラーが発生し続けます:

TypeError:リスト(「numpy.ndarray」ではない)をリストに連結することしかできません

私のコード:

import numpy as np
import cv2 
import caffe
img = cv2.imread("ak.png")
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
net = caffe.Net("VGG_FACE_deploy.prototxt","VGG_FACE.caffemodel",  caffe.TEST)
print net.forward(img)

手伝って頂けますか ?

更新 1

この作業コードは matlab の例です

%  Copyright (c) 2015, Omkar M. Parkhi
%  All rights reserved.
img = imread('ak.png');
img = single(img);

    Img = [129.1863,104.7624,93.5940] ;

img = cat(3,img(:,:,1)-averageImage(1),...
    img(:,:,2)-averageImage(2),...
    img(:,:,3)-averageImage(3));

img = img(:, :, [3, 2, 1]); % convert from RGB to BGR
img = permute(img, [2, 1, 3]); % permute width and height

model = 'VGG_FACE_16_deploy.prototxt';
weights = 'VGG_FACE.caffemodel';
caffe.set_mode_cpu();
net = caffe.Net(model, weights, 'test'); % create net and load weights

res = net.forward({img});
prob = res{1};

caffe_ft = net.blobs('fc7').get_data();
4

3 に答える 3

7

Python インターフェイスを使用するには、入力画像をネットにフィードする前に変換する必要があります。

img = caffe.io.load_image( "ak.png" )
img = img[:,:,::-1]*255.0 # convert RGB->BGR
avg = np.array([93.5940, 104.7624, 129.1863])  # BGR mean values
img = img - avg # subtract mean (numpy takes care of dimensions :)

現在imgH-by- W-by-3 numpy 配列です。
Caffe は、入力が 4D であると想定しています: batch_indexxチャネルxx高さ。したがって、「batch_index」主要ディメンションを表すために、入力にシングルトン ディメンションを追加する
必要があります。transpose

img = img.transpose((2,0,1)) 
img = img[None,:] # add singleton dimension

これでフォワードパスを実行できます

out = net.forward_all( data = img )
于 2015-11-22T17:50:12.723 に答える
1

OpenCV は BGR を読み取り、デフォルトで 255 形式にスケーリングされるため、次のようになります。

img = cv2.imread('ak.png')
avg = np.array([93.5940,104.7624,129.1863]) # BGR mean from VGG
img -= avg # subtract mean
img = img.transpose((2,0,1)) # to match image input dimension: 3x224x224
img = img[None,:] # add singleton dimension to match batch dimension
out = net.forward_all(data = img)
于 2015-12-02T08:54:51.530 に答える
0

単一の要素リストをメソッドに渡してみてください。

net.forward ([img])
于 2015-11-20T19:36:40.947 に答える