计算机视觉:场景识别(Scene Recognition)

  • 场景识别
    • 图像分类
    • 特征提取
    • 词袋模型
    • 集成学习分类器
  • 算法设计
  • 结果分析
  • 总结与展望
    • 总结
    • 展望

完整程序请移步至此链接下载

场景识别

在这个项目中,我将对15个场景数据库(Bedroom、Coast、Forest、Highway、Industrial、InsideCity、Kitchen、LivingRoom、Mountain、Office、OpenCountry、Store、Street、Suburb、TallBuilding)进行训练和测试,借助HOG特征提取构建词袋模型,并利用集成学习分类器将场景分为15个类别之一。

图像分类

图像分类是机器视觉中一个重要的问题,其基本概念是:通过算法自动把图像划分到特定的概念类别中。图像分类算法一般分为训练和测试两个阶段,其基本流程如下图所示。

特征提取

HOG是Histogram of Oriented Gradient的缩写,是一种在计算机视觉和图像处理中用来进行目标检测的特征描述子,其特征提取的步骤如下:
(1)图像灰度化;
(2)采用Gamma校正法对输入图像进行颜色空间的标准化;
(3)计算图像每个像素的梯度(包括大小和方向);
(4)将图像分割成cell,每个cell由若干个像素组成,统计每个cell的梯度直方图,形成每个cell的特征描述子;
(5)若干个cell组成一个block,将一个block内所有cell的特征串联并归一化梯度直方图,形成block的特征描述子;
(6)设计window通过在block间滑动,组合所有块的特征描述子,生成HOG特征向量。

词袋模型

词袋模型是一种流行的图像分类技术,其灵感来源于自然语言处理对文本的识别与分类。词袋模型将一张图像转化为若干个局部特征,忽略局部特征在图像中的空间信息,并基于视觉单词频率的直方图进行分类。视觉单词的“词汇表”是通过聚类大量的局部特征而建立的,在构建好“词汇表”后利用训练集对分类器进行训练。

集成学习分类器

利用HOG特征提取与SVM分类器进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,已经被广泛应用于图像识别中,如今虽然有很多行人检测算法不断被提出,但基本都是以“HOG+SVM”的思路为主。
在机器学习中,我们可以把多种学习器算法集中起来,让不同算法对同一种问题都进行预测,最终少数服从多数,这种方法称为集成学习。集成学习结合多个基学习器,以获得比单一学习器更加优越的泛化性能。
在设计基于词袋模型的场景识别算法中,为了融合不同分类器,将场景识别准确率较高的线性支持向量机、随机森林和直方图梯度提升分类器三者做投票(voting),设计出一个集成学习分类器。

算法设计

针对本项目,我基于HOG对图像进行特征提取,利用词袋模型构建词汇表和由随机森林分类器、直方图梯度提升分类器和线性支持向量机分类器组合而成的集成学习分类器设计了场景识别算法。
该场景识别算法主要分为以下五步:
第一步,对图像进行局部特征向量(HOG)的提取。为了取得很好的分类效果,提取的特征向量需要具备不同程度的不变性,如旋转,缩放,平移,光照等不变性;
第二步,利用上一步得到的特征向量集,通过Mini Batch K-Means聚类算法(一种能尽量保持聚类准确性下但能大幅度降低计算时间的聚类模型,由于训练样本大,特征数目较多,采用传统的K-means进行聚类会导致计算时间过长,而Mini Batch K-Means算法是在K-means的基础上对数据进行了小批量的采样)抽取其中有代表性的向量,作为单词,形成“词汇表”;
第三步,对图像进行视觉单词的统计,一般判断图像的局部区域和某一单词的相似性是否超过某一阈值。这样即可将图像表示成单词的分布,即完成了图像的表示。
第四步,设计集成学习分类器并训练,利用图像中单词的分布进行图像分类。
第五步,建立混淆矩阵,并对识别算法进行评分并可视化。

结果分析

将多个分类器用于模型的训练,并在测试集上检测其准确率。经过对比,我所设计的分类器具有最高的准确率。
最邻近分类器:准确率(55.0%)
随机森林分类器:准确率(69.1%)
直方图梯度提升分类器:准确率(72.1%)
线性支持向量机分类器:准确率(72.7%)
Ours:准确率(74.2%)

混淆矩阵是衡量分类模型准确性的最基本、最直观和最简单的方法,它是分别统计分类模型的错误类别和正确类别中的观察数量,然后将结果显示在表格中。下图为ours模型分类结果的混淆矩阵图,混淆矩阵对角线上的方格颜色越亮,其他方格颜色越暗,说明分类的结果越好。由图可以看出,Street识别准确率最高,Kitchen识别准确率最低。


将模型用于测试集,可视化其分类结果如下图所示,它总结了每个类别的准确性,并通过显示具有正确和错误识别结果的示例(包括真正例TP、假正例FP和假负例FN)来可视化结果。

总结与展望

总结

针对15个场景数据库(Bedroom、Coast、Forest、Highway、Industrial、InsideCity、Kitchen、LivingRoom、Mountain、Office、OpenCountry、Store、Street、Suburb、TallBuilding),我基于HOG对图像进行特征提取,利用词袋模型构建词汇表和由随机森林分类器、直方图梯度提升分类器和线性支持向量机分类器组合而成的集成学习分类器设计了场景识别算法,最终算法的准确率达到了74.2%。

展望

为了提高算法的准确性,可以考虑以下方面:
(1)在特征方面,考虑添加空间位置信息或提取多个特征来构建视觉单词的词汇表。
(2)在模型改进方面,考虑进一步增大数据集,并使用深度学习方法进行场景识别。

计算机视觉:场景识别(Scene Recognition)相关推荐

  1. Indoor Scene Recognition 室内场景识别数据集

    为下一步论文做准备. 有一个数据集过大,100多个G,从网上找到一个轻量级的室内场景识别数据集,MIT的,在这里留存一下.数据集下载链接: http://web.mit.edu/torralba/ww ...

  2. A Survey: Visual Place Recognition 视觉场景识别的一篇调研

    I.INTRODUCTION 一个位置识别系统需要满足和完成一些条件.其一,有一个场景的内部表示也就是地图:其二,能够得出当前视觉信息是否来自于现有地图中,如果是的那来自于哪里.目前视觉场景识别面临一 ...

  3. CV之FR:计算机视觉之人脸识别(Face Recognition)方向的简介、代码实现、案例应用之详细攻略

    CV之FR:计算机视觉之人脸识别(Face Recognition)方向的简介.代码实现.案例应用之详细攻略 目录 人脸识别简介 1.人脸识别的任务 2.人脸识别常用数据集 3.损失函数 4.网络模型 ...

  4. 室内场景数据集 Indoor Scene Recognition

    分享一个轻量级的室内场景数据集:Indoor Scene Recognition 大小仅有2.4GB,包含67个类别,共有15620幅图像.不同类别的图像数量不同,每个类别至少有100幅图像.所有图像 ...

  5. CV之FR:计算机视觉之人脸识别(Face Recognition)方向的简介、使用方法、案例应用之详细攻略

    CV之FR:人脸识别之人脸特征提取算法相关思路配图.论文集合 目录 人脸识别(Face Recognition)方向的简介 FR相关论文集合 FR相关算法配图集合 人脸识别(Face Recognit ...

  6. 【翻译】Visual Place Recognition_ A Survey视觉场景识别综述【一】

    **摘要:**因为现实环境的外观变化迥异,对基于视觉的场景识别是一个具有挑战性的难题.近年来,视觉场景识别系统有了很大的突破,原因主要包括视觉传感器环境感知能力的提高,对长期移动机器人自主性的日益关注 ...

  7. 用词袋(bag of word)实现场景识别

    前段时间在standford university的计算机视觉:算法与应用这门课上做了一个小作业--利用词袋实现场景识别(Scene recognition with bag of words),下面 ...

  8. 深度学习 场景识别_使用深度学习进行自然场景识别

    深度学习 场景识别 Recognizing the environment in one glance is one of the human brain's most accomplished de ...

  9. 基于视词袋模型的场景识别

    基于视词袋模型的场景识别 一.问题 场景内容的自动识别是计算机视觉领域的一个重要问题,对目标识别.检测基于内容的图像检索等计算机视觉方面的应用具有重要意义,最近12306的图片验证码系统就可以看做一个 ...

最新文章

  1. python执行提示包找不到的问题
  2. 安卓个人信息界面_LOL手游上架,安卓+IOS安装教程
  3. @ComponentScan.Filter type的类型
  4. 前端html5CSS3颜色表示法
  5. java base64解码出错_Java Base64解码错误及解决方法
  6. 漆桂林 | 知识图谱的应用
  7. k8s容器内的东西复制出来_容器 | Docker 如此之好,你为什么还要用k8s
  8. springboot下载TXT文件时会将后台返回的成功信息一并返回
  9. 00.Maven简介
  10. 语言学句法分析树形图怎么画_哇,好大一棵树! 如何优雅地画句法树形图 丨语言学午餐...
  11. 易语言注册机:界面绘制及皮肤模块的引用
  12. esxi安装威联通_威联通折腾篇三:Virtualization Station 安装虚拟机
  13. 云优CMS企业网站管理系统 v2.2.2 分站版
  14. qq语音聊天对方听不到我说话怎么办?
  15. python中fabs什么意思_Python中abs()和fabs()方法之间的区别
  16. 平方和立方和公式推导
  17. 运营 | 做自媒体应该从哪方面入手?
  18. 大疆校招和社招 各岗位内推码--更新20220717
  19. 当我们在谈SWIFT时,到底在谈什么?
  20. 大数据技术会偷看我们的邮件?

热门文章

  1. 亚马逊MWS开发套路演示
  2. 千兆12光8电20口管理型工业光纤环网交换机 8千兆电12千兆光工业以太网交换机
  3. Element-UI 前端UI 组件库
  4. angular基础教程:快速开始
  5. 企业信用评级对企业的好处
  6. 在CAD中如何进行连续的复制
  7. 解析几何----椭圆定点的曲率
  8. Spark-Streaming连接kafka0.8 能连接却不能消费问题
  9. 野火无刷电机驱动板pcb,原理图,电源电压检测,电机电流检测,pwm控制信号
  10. 【调剂】湖南工业大学湖南省重点实验室急招生物医学工程、计算机与基础医学相关硕士研究生...