matlab数据分类与识别,Matlab图像识别/检索系列(3)—10行代码完成caltech图象集分类和识别...
Caltech是常用的图像识别数据库之一,加州理工有一个在Caltech上的图像检索工具包image-search ,提供了很多图像检索需要的功能,其中包括基于BOW的图像检索。该工具包的使用有一定难度,并且涉及函数很多。在Matlab2016中也有Caltech101的图像分类和识别程序,代码数量很少。
% 数据库下载地址,第一次执行需要联网下载
url ='http://www.vision.caltech.edu/Image_Datasets/Caltech101/101_ObjectCategories.tar.gz';
outputFolder = fullfile(tempdir, 'caltech101');
if ~exist(outputFolder, 'dir') % download only once
disp('Downloading 126MB Caltech101 data set...');
untar(url, outputFolder);
end
rootFolder = fullfile(outputFolder, '101_ObjectCategories');
%为加快速度只取三类图像
imgSets = [ imageSet(fullfile(rootFolder, 'airplanes')), ...
imageSet(fullfile(rootFolder, 'ferry')), ...
imageSet(fullfile(rootFolder, 'laptop')) ];
%取各类图像数目最小值
minSetCount = min([imgSets.Count]);
%图像集分割
[trainingSets, validationSets] = partition(imgSets, 0.3, 'randomize');
bag = bagOfFeatures(trainingSets);
img = read(imgSets(1), 1);
%使用图像词包(bag)对每幅图像进行编码,得出一个定长的向量
featureVector = encode(bag, img);
figure;
%图像向量分布图
bar(featureVector);
title('Visual word occurrences');
xlabel('Visual word index');
ylabel('Frequency of occurrence');
%训练图像类别分类器
categoryClassifier = trainImageCategoryClassifier(trainingSets, bag);
%计算训练集上的混淆矩阵
confMatrix = evaluate(categoryClassifier, trainingSets);
confMatrix = evaluate(categoryClassifier, validationSets);
% 计算平均准确度
mean(diag(confMatrix));
img = imread(fullfile(rootFolder, 'airplanes', 'image_0690.jpg'));
%对指定图像进行识别
[labelIdx, scores] = predict(categoryClassifier, img);
该示例关键代码也只有几行,除了计算图象集词包,还利用encode函数对图像编码,生成了特征向量,也有人叫做视觉向量。该示例中,仅画出了视觉向量的分布图,没有它用。事实上,该向量可作为图像特征进一步完成图像检索、分类、识别等任务,相比直接使用提取词袋的局部特征,可大大减少计算复杂度和内存消耗。
matlab数据分类与识别,Matlab图像识别/检索系列(3)—10行代码完成caltech图象集分类和识别...相关推荐
- matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...
在Matlab2017中,完成一个使用CNN网络进行分类的示例非常简单.为了便于创建图像集,Matlab2015引入了ImageDatastore对象,实现函数为imageDatastore,该函数可 ...
- Matlab:连续按键、移动鼠标、鼠标点击、鼠标连点、输入字符,10行代码即可。
Matlab也可以实现按键J灵的一些基本功能,比如:连续按键.移动鼠标.鼠标点击.鼠标连点和输入字符!其中, "连续按键":指间隔一定的时间(如:0.1s)按一下某个按键(如:键盘 ...
- 业界首个声纹识别与音频检索系统,10分钟搭建产业级应用
随着深度学习技术的升级与产业的发展,智能语音交互已成为了我们日常生活中一个重要的组成部分,并广泛应用在地图导航播报.智能客服回访.手机语音输入以及各类智能助手等应用场景中,可以说语音已成为了人与机器之 ...
- python怎么判断真假_Python不超过10行代码就可实现人脸识别,教你辨别真假
[[爱编程的南风]Python不超过10行代码就可实现人脸识别,教你辨别真假]http://toutiao.com/group/6518157903055045127/?iid=15906422033 ...
- (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
10 行代码判定色*情*图片--Python 也可以系列之二 作者:赖勇浩(http://blog.csdn.net/lanphaday) 致编辑:我已经给图片打上马赛克了,别再删除了啊,我这是纯技术 ...
- JavaCV进阶opencv图像处理:10行代码快速实现扫描识别图片中的二维码
人脸检测识别 javacv进阶opencv图像检测/识别系列目录 人脸检测识别 JavaCV进阶opencv图像处理:摄像头图像人脸检测 JavaCV进阶opencv图像处理:ffmpeg视频图像画面 ...
- (已加马赛克)10 行代码判定色 情 图片——Python 也可以系列之二
10 行代码判定色*情*图片--Python 也可以系列之二 作者:赖勇浩(http://blog.csdn.net/lanphaday) 致编辑:我已经给图片打上马赛克了,别再删除了啊,我这是纯技术 ...
- python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据
python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
作者: 龙心尘&&寒小阳 时间:2015年12月. 出处: http://blog.csdn.net/longxinchen_ml/article/details/5028124 ...
最新文章
- 魔兽War3按键精灵Ⅱ(2012-9-4)
- Java字符串就该这样设计
- 《LeetCode力扣练习》第62题 不同路径 Java
- python手机版ios-iOS 项目中如何使用 Python
- 贝叶斯统计:Tweedie公式及其证明
- 数据合并之concat、append、merge和join
- IOS开发UI篇之──自定义加载等待框(MBProgressHUD)
- sdut 活动选择问题
- 《电子基础与维修工具核心教程》——第2章 电阻2.1 电阻器介绍
- 服务器TIME_WAIT和CLOSE_WAIT分析和解决办法
- 热部署Devtools
- 【产品必备软件合集】
- 自定义DatetimePicker起始默认值
- python乘法口诀表打印
- vue项目打包App
- Charles的基本使用及教程
- perl 大小写转化
- 使用muscle多序列比对
- 你理解的「增长」真的是增长吗?
- 数据结构——二叉树的修改与构造
热门文章
- CSS清除浏览器input缓存黄色背景
- Halcon——点胶机胶水路径应用(2)
- MySQL索引原理及慢查询优化,了解一下?
- 【收藏干货】axios配置大全
- Ruby小白入门笔记之Rubymine工具的快捷键
- .net面向对象学习笔记(二)
- 【李宏毅2020 ML/DL】P15 Why Deep-
- 《强化学习》中的时序差分控制:Sarsa、Q-learning、期望Sarsa、双Q学习 etc.
- python中options类_Python的OptionParser模块
- python 制作动画片_cocos2d from python Animation 动画片的实现