hog svm 视频 matlab,matlab版hog+svm图像二分类
開(kāi)始接觸svm分類器是opencv中的使用起來(lái)很方便,后來(lái)根據(jù)實(shí)際需要需要使用matlab版的,以前沒(méi)怎么接觸過(guò),開(kāi)始有點(diǎn)頭大,不知從何下手,查閱相關(guān)例子后,就開(kāi)始
開(kāi)始接觸svm分類器是opencv中的使用起來(lái)很方便,后來(lái)根據(jù)實(shí)際需要需要使用matlab版的,以前沒(méi)怎么接觸過(guò),開(kāi)始有點(diǎn)頭大,不知從何下手,查閱相關(guān)例子后,就開(kāi)始訓(xùn)練了自己所需分類器了,也很方便.其中hog源程序參考
準(zhǔn)備工作
1:創(chuàng)建正陽(yáng)本文件夾“pos”將正陽(yáng)本放入
2:創(chuàng)建負(fù)樣本文件夾“neg”將負(fù)樣本放入
3:制作正陽(yáng)本文件列表pos_list.txt
4:制作負(fù)樣本文件列表neg_list.txt
5:執(zhí)行下面程序進(jìn)行訓(xùn)練,測(cè)試
clear ;
%% 訓(xùn)練階段
ReadList1 = textread('pos_list.txt','%s','delimiter','\n');%載入正樣本列表
sz1=size(ReadList1);
label1=ones(sz1(1),1); %正陽(yáng)本標(biāo)簽
ReadList2 = textread('neg_list.txt','%s','delimiter','\n');%載入負(fù)樣本列表
sz2=size(ReadList2);
label2=zeros(sz2(1),1);%負(fù)樣本標(biāo)簽
label=[label1',label2']';%標(biāo)簽匯總
total_num=length(label);
data=zeros(total_num,1764);
%讀取正樣本并計(jì)算hog特征
for i=1:sz1(1)
name= char(ReadList1(i,1));
image=imread(name);
im=imresize(image,[64,64]);
img=rgb2gray(im);
hog =hogcalculator(img);
data(i,:)=hog;
end
%讀取負(fù)樣本并計(jì)算hog特征
for j=1:sz2(1)
name= char(ReadList2(j,1));
image=imread(name);
im=imresize(image,[64,64]);
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(svmStruct,data(test,:));
classperf(cp,classes,test);
cp.CorrectRate
%% 訓(xùn)練完成后保存 svmStruct即可對(duì)新輸入的對(duì)象進(jìn)行分類了無(wú)需再執(zhí)行上面訓(xùn)練階段代碼
load svmStruct
test=imread('test2.jpg');
im=imresize(test,[64,64]);
figure;
imshow(im);
img=rgb2gray(im);
hogt =hogcalculator(img);
classes = svmclassify(svmStruct,hogt);%classes的值即為分類結(jié)果
,
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的hog svm 视频 matlab,matlab版hog+svm图像二分类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php7 ast,PHP7 的抽象语法树
- 下一篇: matlab中tenmat,tensor