初識caffe的Matlab介面
阿新 • • 發佈:2019-01-05
轉自: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的資料,這裡提取的資料一般可以作為特徵再在其它分類器中使用