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

这篇具有很好参考价值的文章主要介绍了计算机视觉:场景识别(Scene Recognition)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

场景识别

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

图像分类

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

特征提取

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识别准确率最低。

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

总结与展望

总结

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

展望

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

到了这里,关于计算机视觉:场景识别(Scene Recognition)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于计算机视觉的手势识别技术

    一个不知名大学生,江湖人称菜狗 original author: Jacky Li Email : 3435673055@qq.com Time of completion:2023.5.2 Last edited: 2023.5.2 手语是一种主要由听力困难或耳聋的人使用的交流方式。这种基于手势的语言可以让人们轻松地表达想法和想法,克服听力问题带来的障碍。 这种便捷的交流方式

    2024年02月04日
    浏览(49)
  • 目标人脸检测与识别(计算机视觉)

    通过python 语言编程设计人脸检测算法,以此人脸作为训练样本,训练目标人脸模型,进一步实现目标人脸的识别。通过上述编程促进学生理解并掌握人脸检测及识别的相关原理,同时培养学生的编程能力。 笔记本电脑,windows10系统,Visual Studio Code编辑器,opencv视觉库,nump

    2024年02月08日
    浏览(55)
  • 计算机视觉实验:人脸识别系统设计

    设计 计算机视觉目标识别系统,与实际应用有关(建议:最终展示形式为带界面可运行的系统),以下内容选择其中一个做。 1. 人脸识别系统设计 (1) 人脸识别系统设计(必做):根据课堂上学习的理论知识(包括特征提取、分类器设计),设计一个人脸识别系统,该系统具

    2024年02月14日
    浏览(55)
  • 计算机视觉 - 理论 - 从卷积到识别

    Vue框架: 从项目学Vue OJ算法系列: 神机百炼 - 算法详解 Linux操作系统: 风后奇门 - linux C++11: 通天箓 - C++11 Python常用模块: 通天箓 - python 计算机视觉系列博客分两条主线:算法理论 + opencv实操 理论来源于[计算机视觉(本科) 北京邮电大学 鲁鹏 清晰完整合集](https://www.

    2024年02月11日
    浏览(49)
  • 计算机视觉:使用opencv实现车牌识别

    汽车车牌识别(License Plate Recognition)是一个日常生活中的普遍应用,特别是在智能交通系统中,汽车牌照识别发挥了巨大的作用。汽车牌照的自动识别技术是把处理图像的方法与计算机的软件技术相连接在一起,以准确识别出车牌牌照的字符为目的,将识别出的数据传送至交

    2024年02月04日
    浏览(51)
  • 计算机视觉项目实战-目标检测与识别

    😊😊😊 欢迎来到本博客 😊😊😊 本次博客内容将继续讲解关于OpenCV的相关知识 🎉 作者简介 : ⭐️⭐️⭐️ 目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉深度学习(keras、pytorch、yolov5),python网页爬虫、机器学习、计算机视觉(OpenCV)

    2024年02月02日
    浏览(52)
  • 基于计算机视觉的学生上课姿态识别

    数据集 1.1  A VA 数据集介绍 AVA数据集为目前行为数据集中背景最复杂、人体目标最多的数据集,是由Google在2018年所发表的一个用于训练动作检测的数据集,该数据集注释430个15分钟电影切片中的80个原子视觉动作,在空间和时间上定位了动作,从而产生了1.62万个动作标签。这

    2024年02月02日
    浏览(56)
  • Python的计算机视觉与物体识别

    计算机视觉是一种通过计算机程序对图像进行处理和分析的技术。物体识别是计算机视觉中的一个重要分支,旨在识别图像中的物体、特征和属性。Python是一种流行的编程语言,拥有强大的计算机视觉库和框架,如OpenCV、TensorFlow和PyTorch。因此,使用Python进行计算机视觉和物

    2024年02月21日
    浏览(52)
  • 图像识别与计算机视觉有什么区别?

    图像识别和计算机视觉在很多方面存在差异,这些差异主要体现在以下几个方面: 1. 研究范围 图像识别是计算机视觉领域的一个子集。计算机视觉不仅包括图像识别,还涵盖了更广泛的内容,如场景理解、目标跟踪、分割、识别和解释等。简而言之,计算机视觉是一种更广

    2024年01月16日
    浏览(52)
  • 计算机视觉:从图像识别到深度学习

    💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 计算机视觉是人工智能领域中的一个重要分支,它致力于让计算机能够理解和处理

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包