How to process extracted SURF features for SVM classifier

5 views (last 30 days)
How to process stored surf features of multiple files for svm classifier

Accepted Answer

Bilal Razi
Bilal Razi on 11 Apr 2020
You can use a combination of functions.
bagOfFeatures and trainImageCategoryClassifier
Use bagOfFeatures to extract your SURF features e.g.
bag = bagOfFeatures(imds, "CustomExtractor", extractorFcn);
where extractorFcn is is a function which extracts your SURF features
then train your model using SVM
classifier = trainImageCategoryClassifier(imds, bag, "LearnerOptions", opts);
where opts = templateSVM()
Hope that helps.

More Answers (4)

Divya Gaddipati
Divya Gaddipati on 14 Jan 2020
You can use fitcsvm to train SVM classifier.
You can load the files into the workspace in a loop.
for i = 1 : total_files
x = load(filename(i).name);
XTrain(i,:) = x;
clear x;
end
Assuming your labels are in a variable YTrain, you can use the fitcsvm as follows:
Mdl = fitcsvm(XTrain, YTrain)
For more information on fitcsvm, you can refer to the following link:
Alternatively, you can also use classificationLearner
Hope this helps!

Amit DOegar
Amit DOegar on 16 Jan 2020
I mean to ask for classfier needs input as vector of features and label
as input for classifier,
but when we extract surf features it gets into array for example
extracted features of aray size 100*100 then through reshape if we convert into vector
size will be of 100* 100 i.e 10000 for a vector . so how to use any classfier for the features like surf, mser or sift, brisk and give it to classifiier

fadi ssuhimat
fadi ssuhimat on 3 Feb 2020
Do you find soluation for this case, I have same issue???

Amit DOegar
Amit DOegar on 3 Feb 2020
Features set is in matrix form
using rehape function we can convert into vector
but dimensions are tool large, still looking for solution

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!