初识caffe的Matlab接口

本文详细介绍如何使用VGG_FACE预训练模型进行人脸图像特征提取的过程。从图像读取、预处理,到利用Caffe框架加载模型并进行前向传播,最终获取图像的fc7层特征,用于后续的人脸识别或分类任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 转自:https://www.cnblogs.com/wangnianbing/p/7287895.html

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

%训练的时候得到的每个通道平均值,在测试阶段需要每张图像减去对应通道的平均值
%对应的论文还没有看,好奇这里的均值不应该是图像大小么,类似于平均脸
averageImage = [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]);%将RGB图像转换成BGR图像
model = 'VGG_FACE_deploy.prototxt'; %定义的网络结构都在其中
weights = 'VGG_FACE.caffemodel'; %用两百多万图片训练的权重参数
caffe.set_mode_gpu(); %设置GPU模式,GF820伤不起
net = caffe.Net(model, weights, 'test'); %创建网络,加载权重系数,声明'test'是避免前向传播的时候使用dropout

res = net.forward({img}); %前向传播得到最后一层的输出结果,其中参数需要是cell类型
prob = res{1};

caffe_ft =net.blobs('fc7').get_data();%取出全连接层名字为fc7的数据,这里提取的数据一般可以作为特征再在其它分类器中使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值