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图象集分类和识别...相关推荐

  1. matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...

    在Matlab2017中,完成一个使用CNN网络进行分类的示例非常简单.为了便于创建图像集,Matlab2015引入了ImageDatastore对象,实现函数为imageDatastore,该函数可 ...

  2. Matlab:连续按键、移动鼠标、鼠标点击、鼠标连点、输入字符,10行代码即可。

    Matlab也可以实现按键J灵的一些基本功能,比如:连续按键.移动鼠标.鼠标点击.鼠标连点和输入字符!其中, "连续按键":指间隔一定的时间(如:0.1s)按一下某个按键(如:键盘 ...

  3. 业界首个声纹识别与音频检索系统,10分钟搭建产业级应用

    随着深度学习技术的升级与产业的发展,智能语音交互已成为了我们日常生活中一个重要的组成部分,并广泛应用在地图导航播报.智能客服回访.手机语音输入以及各类智能助手等应用场景中,可以说语音已成为了人与机器之 ...

  4. python怎么判断真假_Python不超过10行代码就可实现人脸识别,教你辨别真假

    [[爱编程的南风]Python不超过10行代码就可实现人脸识别,教你辨别真假]http://toutiao.com/group/6518157903055045127/?iid=15906422033 ...

  5. (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二

    10 行代码判定色*情*图片--Python 也可以系列之二 作者:赖勇浩(http://blog.csdn.net/lanphaday) 致编辑:我已经给图片打上马赛克了,别再删除了啊,我这是纯技术 ...

  6. JavaCV进阶opencv图像处理:10行代码快速实现扫描识别图片中的二维码

    人脸检测识别 javacv进阶opencv图像检测/识别系列目录 人脸检测识别 JavaCV进阶opencv图像处理:摄像头图像人脸检测 JavaCV进阶opencv图像处理:ffmpeg视频图像画面 ...

  7. (已加马赛克)10 行代码判定色 情 图片——Python 也可以系列之二

    10 行代码判定色*情*图片--Python 也可以系列之二 作者:赖勇浩(http://blog.csdn.net/lanphaday) 致编辑:我已经给图片打上马赛克了,别再删除了啊,我这是纯技术 ...

  8. python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据

    python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...

  9. 手把手入门神经网络系列(2)_74行代码实现手写数字识别

    作者: 龙心尘&&寒小阳  时间:2015年12月.  出处:  http://blog.csdn.net/longxinchen_ml/article/details/5028124 ...

最新文章

  1. 魔兽War3按键精灵Ⅱ(2012-9-4)
  2. Java字符串就该这样设计
  3. 《LeetCode力扣练习》第62题 不同路径 Java
  4. python手机版ios-iOS 项目中如何使用 Python
  5. 贝叶斯统计:Tweedie公式及其证明
  6. 数据合并之concat、append、merge和join
  7. IOS开发UI篇之──自定义加载等待框(MBProgressHUD)
  8. sdut 活动选择问题
  9. 《电子基础与维修工具核心教程》——第2章 电阻2.1 电阻器介绍
  10. 服务器TIME_WAIT和CLOSE_WAIT分析和解决办法
  11. 热部署Devtools
  12. 【产品必备软件合集】
  13. 自定义DatetimePicker起始默认值
  14. python乘法口诀表打印
  15. vue项目打包App
  16. Charles的基本使用及教程
  17. perl 大小写转化
  18. 使用muscle多序列比对
  19. 你理解的「增长」真的是增长吗?
  20. 数据结构——二叉树的修改与构造

热门文章

  1. CSS清除浏览器input缓存黄色背景
  2. Halcon——点胶机胶水路径应用(2)
  3. MySQL索引原理及慢查询优化,了解一下?
  4. 【收藏干货】axios配置大全
  5. Ruby小白入门笔记之Rubymine工具的快捷键
  6. .net面向对象学习笔记(二)
  7. 【李宏毅2020 ML/DL】P15 Why Deep-
  8. 《强化学习》中的时序差分控制:Sarsa、Q-learning、期望Sarsa、双Q学习 etc.
  9. python中options类_Python的OptionParser模块
  10. python 制作动画片_cocos2d from python Animation 动画片的实现