【发布时间】:2017-11-16 08:43:24
【问题描述】:
我正在使用多张图像进行 svm 训练。这是我的第一个 SVM 项目。我正在使用 HOG 特征提取来提取特征。训练特征并标记它们的位置 1 如果它在地平线上,0 如果它在背景上。我有 74 张图像用于训练和 7 张图像用于测试。不幸的是,我的准确率不能超过 50%。我改变了图像大小,我在特征提取中播放了单元格大小。它并没有太大变化。我可以尝试什么?理想的数据集数量是多少,有多少张图像用于训练和测试?例如,在一张图像中它预测所有正确的图像在下一张图像中都是错误的。
这就是我计算准确性的方式;
%%%%% Evaluation
% Testing Data
hfsTest = vertcat(dataset.HorizonFeatsTest{:});
bfsTest = vertcat(dataset.BgFeatsTest{:});
test_data = [hfsTest;bfsTest];
% Labels
hlabelTest = ones(size(hfsTest,1),1);
blabelTest = zeros(size(bfsTest,1),1);
test_label = [hlabelTest;blabelTest];
Predict_label = vertcat(results.predicted_label{:});
acc = numel(find(Predict_label==test_label))/length(test_label);
disp(['Accuracy ', num2str(acc)]);
%done
% Training Data
hfs = vertcat(dataset.HorizonFeats{:});
bfs = vertcat(dataset.BgFeats{:});
train_data = [hfs;bfs];
% Labels
hlabel = ones(size(hfs,1),1);
blabel = zeros(size(bfs,1),1);
train_label = [hlabel;blabel];
%%%
% do training ...
svmModel = svmtrain(train_data, train_label,'BoxConstraint',2e-1);
我使用了 Predict_label_image = svmclassify (svmModel, image_feats);供测试用。
【问题讨论】:
-
请展示您如何训练您的 SVM。也许您应该尝试对超参数进行网格搜索?
-
我已经编辑了我的问题,但我不知道我是否回答了你的问题。我用过 svmtrain 和 svmclassify。
-
你看过输入特征的规模吗? SVM 可以从标准化中显着受益content.iospress.com/articles/intelligent-data-analysis/ida730
标签: matlab image-processing machine-learning classification svm