您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

VGG脸部描述符在python与caffe

5b51 2022/1/14 8:23:27 python 字数 2259 阅读 621 来源 www.jb51.cc/python

我想在 python中实现 VGG Face Descriptor.但我一直收到一个错误: TypeError: can only concatenate list (not “numpy.ndarray”) to list 我的代码: import numpy as np import cv2 import caffe img = cv2.imread("ak.png") img = cv2.

概述

TypeError: can only concatenate list (not “numpy.ndarray”) to list

我的代码

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

现在img是H-by-W-by-3 numpy数组.
Caffe期望其输入为4D:batch_index x channel x width x height.
因此,您需要转置输入并添加单个维度以表示“batch_index”前导维度

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

现在你可以运行前进传球了

out = net.forward_all( data = img )

总结

以上是编程之家为你收集整理的VGG脸部描述符在python与caffe全部内容,希望文章能够帮你解决VGG脸部描述符在python与caffe所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶