1. 程式人生 > >初識caffe的Matlab介面

初識caffe的Matlab介面

 轉自: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的資料,這裡提取的資料一般可以作為特徵再在其它分類器中使用