【图像分类】基于HOG特征结合SVM实现图像分类识别附matlab代码

1 内容介绍

​为了满足人工智能在目标识别方法中的应用需求,需要具备对海量数据进行智能分类、识别、判读的能力.进一步挖掘了目标特性数据库数据,并将基于HOG+SVM的目标识别算法应用于红外目标识别过程中.选择采集到的汽车、直升机、飞机、舰船、无人机等目标,并结合HOG算子与SVM分类方法来实现目标检测与分类算法,从而实现了目标智能化分类研究,为后续目标特性的进一步分析以及导引头智能化算法设计提供了支撑.

2 部分代码

%% 用hog特征对图像进行多分类,svm训练,1 VS 1  

%% 1 数据集,包括训练的和测试的 (注意自己图片存放路径,附录我给出示例下载图片链接) 

imdsTrain = imageDatastore('train_images',...  

    'IncludeSubfolders',true,...  

    'LabelSource','foldernames');  

imdsTest = imageDatastore('test_image');  

%% 显示训练的图片种类Labels和数量Count

Train_disp = countEachLabel(imdsTrain);

disp(Train_disp);

  

%%   2 对训练集中的每张图像进行hog特征提取,测试图像一样  

% 预处理图像,主要是得到features特征大小,此大小与图像大小和Hog特征参数相关  

imageSize = [256,256];% 对所有图像进行此尺寸的缩放  

image1 = readimage(imdsTrain,1);  

scaleImage = imresize(image1,imageSize);  

[features, visualization] = extractHOGFeatures(scaleImage);  

imshow(scaleImage);hold on; plot(visualization)  

  

% 对所有训练图像进行特征提取  

numImages = length(imdsTrain.Files);  

featuresTrain = zeros(numImages,size(features,2),'single'); % featuresTrain为单精度  

for i = 1:numImages  

    imageTrain = readimage(imdsTrain,i);  

    imageTrain = imresize(imageTrain,imageSize);  

    featuresTrain(i,:) = extractHOGFeatures(imageTrain);  

end  

  

% 所有训练图像标签  

trainLabels = imdsTrain.Labels;  

  

% 开始svm多分类训练,注意:fitcsvm用于二分类,fitcecoc用于多分类,1 VS 1方法  

classifer = fitcecoc(featuresTrain,trainLabels);  

  

%% 预测并显示预测效果图  

numTest = length(imdsTest.Files);  

for i = 1:numTest  

    testImage = readimage(imdsTest,i);  

    scaleTestImage = imresize(testImage,imageSize);  

    featureTest = extractHOGFeatures(scaleTestImage);  

    [predictIndex,score] = predict(classifer,featureTest);  

    figure;imshow(testImage);  

    title(['预测图像: ',char(predictIndex)]);  

end  

3 运行结果

4 参考文献

[1]姜经纬, 程传蕊. 基于HOG+SVM的图像分类系统的设计与实现[J]. 漯河职业技术学院学报, 2017, 16(2):4.

[2]宋敏敏, 周泽亚, 邱燕,等. 基于HOG特征和SVM分类器的红外图像智能检测与分类方法[J]. 红外, 2022(043-004).

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值