資源簡介
hog+svm圖像二分類*(MATLAB版本),需要安裝libsvm工具箱(環境是MATLAB2014a+libsvm3.23)。里面包含正負樣本集圖片。
代碼片段和文件信息
function?hog_svm_2classify
%hog+svm實現圖像二分類
clc;?
clear?;??
%%?訓練階段??
ReadList1??=?textread(‘pos_list.txt‘‘%s‘‘delimiter‘‘\n‘);%載入正樣本列表??
sz1=size(ReadList1);????
label1=ones(sz1(1)1);?%正樣本標簽設為1
ReadList2??=?textread(‘neg_list.txt‘‘%s‘‘delimiter‘‘\n‘);%載入負樣本列表??
sz2=size(ReadList2);??
label2=zeros(sz2(1)1);%負樣本標簽設為0??
label=[label1‘label2‘]‘;%標簽匯總??
total_num=length(label);??
data=zeros(total_num1764);??
%讀取正樣本并計算hog特征??
for?i=1:sz1(1)??
???name=?char(ReadList1(i1));??
???image=imread(strcat(‘F:\svm\程序\HOG+SVM\實現圖像二分類\pos\‘name));?
???im=imresize(image[6464]);??
???img=rgb2gray(im);??
???hog?=hogcalculator(img);??
???data(i:)=hog;??
end??
%讀取負樣本并計算hog特征??
for?j=1:sz2(1)??
???name=?char(ReadList2(j1));??
???image=imread(strcat(‘F:\svm\程序\HOG+SVM\實現圖像二分類\neg\‘name));??
???im=imresize(image[6464]);??
???img=rgb2gray(im);??
???hog?=hogcalculator(img);??
???data(sz1(1)+j:)=hog;??
end??
[train?test]?=?crossvalind(‘holdOut‘label);??
cp?=?classperf(label);??
svmStruct?=?svmtrain(data(train:)label(train));??
save?svmStruct?svmStruct??
classes?=?svmclassify(svmStructdata(test:));??
classperf(cpclassestest);??
fprintf(‘CorrectRate?=?%f\n‘cp.CorrectRate);??
%%?訓練完成后保存?svmStruct即可對新輸入的對象進行分類了無需再執行上面訓練階段代碼??
load?svmStruct??
test=imread(‘test2.jpg‘);??
?????
im=imresize(test[6464]);??
figure;??
imshow(im);??
img=rgb2gray(im);??
hogt?=hogcalculator(img);??
classes?=?svmclassify(svmStructhogt);%classes的值即為分類結果?
if?classes==1
????fprintf(‘測試對象為狗狗\n‘);
elseif?classes==0
????fprintf(‘測試對象為貓咪\n‘);
end
%%?子函數?hogcalculator.m
function?F?=?hogcalculator(img?cellpw?cellph?nblockw?nblockhnthet?overlap?isglobalinterpolate?issigned?normmethod)
?%?HOGCALCULATOR?calculate?R-HOG?feature?vector?of?an?input?image?using?the
?%?procedure?presented?in?Dalal?and?Triggs‘s?paper?in?CVPR?2005.
?%
%?Author:???timeHandle
?%?Time:?????March?24?2010
?%???????????May?12,2010?update.
?%
?%???????this?copy?of?code?is?written?for?my?personal?interest?which?is?an?
?%???????original?and?inornate?realization?of?[Dalal?CVPR2005]‘s?algorithm
?%???????without?any?optimization.?I?just?want?to?check?whether?I?understand
?%???????the?algorithm?really?or?not?and?also?do?some?practices?for?knowing
?%???????matlab?programming?more?well?because?I?could?be?called?as?‘novice‘.?
?%???????OpenCV?2.0?has?realized?Dalal‘s?HOG?algorithm?which?runs?faster
?%???????than?mine?without?any?doubt?╮(╯▽╰)╭?.?Ronan?pointed?a?error?in?
?%???????the?code,thanks?for?his?correction.?Note?that?at?the?end?of?this
?%???????code?there?are?some?demonstration?code,please?remove?in?your?work.
?%?
?%?F?=?hogcalculator(img?cellpw?cellph?nblockw?nblockh
?%????nthet?overlap?isglobalinterpolate?issigned?normmethod)
?%
?%?IMG:
?%???????IMG?is?the?input?image.
?%
?%?CELLPW?CELLPH:
?%???????CELLPW?and?CELLPH?are?cell‘s?pixel?width?and?height?respectively.
?%
?%?NBLOCKW?NBLCOKH:
?%???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????18165??2019-01-09?21:38??實現圖像二分類\hog_svm_2classify.m
?????文件?????204539??2018-08-13?17:29??實現圖像二分類\neg\001.jpg
?????文件??????96337??2018-08-13?17:29??實現圖像二分類\neg\002.jpg
?????文件??????17069??2018-08-13?17:36??實現圖像二分類\neg\003.jpg
?????文件??????76468??2018-08-13?17:32??實現圖像二分類\neg\004.jpg
?????文件??????41452??2018-08-13?17:37??實現圖像二分類\neg\005.jpg
?????文件??????14968??2019-01-09?16:14??實現圖像二分類\neg\006.jpg
?????文件??????13477??2019-01-09?16:14??實現圖像二分類\neg\007.jpg
?????文件???????9609??2019-01-09?16:14??實現圖像二分類\neg\008.jpg
?????文件??????19519??2019-01-09?16:14??實現圖像二分類\neg\009.jpg
?????文件??????11870??2019-01-09?16:14??實現圖像二分類\neg\010.jpg
?????文件???????6976??2019-01-09?16:14??實現圖像二分類\neg\011.jpg
?????文件??????15828??2019-01-09?16:14??實現圖像二分類\neg\012.jpg
?????文件??????16946??2019-01-09?16:14??實現圖像二分類\neg\013.jpg
?????文件??????19743??2019-01-09?16:14??實現圖像二分類\neg\014.jpg
?????文件??????17538??2019-01-09?16:14??實現圖像二分類\neg\015.jpg
?????文件??????14978??2019-01-09?16:14??實現圖像二分類\neg\016.jpg
?????文件??????10546??2019-01-09?16:14??實現圖像二分類\neg\017.jpg
?????文件??????12772??2019-01-09?16:14??實現圖像二分類\neg\018.jpg
?????文件??????12464??2019-01-09?16:14??實現圖像二分類\neg\019.jpg
?????文件??????16300??2019-01-09?16:14??實現圖像二分類\neg\020.jpg
?????文件??????15512??2019-01-09?21:31??實現圖像二分類\neg\021.jpg
?????文件??????17547??2019-01-09?21:31??實現圖像二分類\neg\022.jpg
?????文件??????14928??2019-01-09?21:33??實現圖像二分類\neg\023.jpg
?????文件??????16010??2019-01-09?21:33??實現圖像二分類\neg\024.jpg
?????文件???????8320??2019-01-09?21:33??實現圖像二分類\neg\025.jpg
?????文件????????225??2019-01-09?21:34??實現圖像二分類\neg_list.txt
?????文件??????16363??2019-01-09?16:08??實現圖像二分類\pos\001.jpg
?????文件?????135559??2018-08-13?17:25??實現圖像二分類\pos\002.jpg
?????文件???????9123??2019-01-09?16:08??實現圖像二分類\pos\003.jpg
............此處省略34個文件信息
評論
共有 條評論