zoukankan      html  css  js  c++  java
  • 计算机视觉解析力

    计算机视觉解析力

    视觉的解析力,常常是指视觉语义,视觉特征,视觉场景理解,视觉目标检测,视觉变化,视觉运动状态理解等等。

    比如说,关于分辨率和清晰度,经常还可以见到清晰度,分辨力,分辨率,解析力,解析度,解像力,解像度这些词语。对于这些词语分别的含义和所指的具体内容是什么,怎样使用才合适,目前流行的看法是很不统一的。

    图像进入系统

    在尝试实现计算机视觉系统时,需要考虑两个主要组件:图像采集硬件和图像处理软件。构建计算机视觉系统要满足的一个主要要求是测试其鲁棒性。

    实际上,系统应该能够适应环境变化(例如光源、方向、缩放比例的变化),并能够重复执行其设计任务。为了满足这些要求,可能有必要对系统的硬件或软件进行某种形式的约束(例如,远程控制光照环境)。

    从硬件设备获取图像后,可以使用多种方法在软件系统中以数字方式表示颜色(颜色空间)。两种最著名的颜色空间是 RGB(红色、绿色、蓝色)和 HSV(色调、饱和度、值)。使用 HSV 颜色空间的一个主要优点是:仅考虑 HS 分量,就可以使系统照明保持不变(如下图所示)。

     RGB 和 HSV 色彩空间

     

     特征提取器

    图像预处理

    一旦图像进入系统并使用颜色空间表示,便可以在图像上应用不同的运算符以改善其表示情况:

    1.点类运算符:使用图像中的所有点来创建原始图像的转换版本(以便在不更改其内容的情况下明确显示图像中的内容)。点类运算符的一些示例:强度归一化,直方图均衡化和阈值化。通常使用点类运算符来更好地可视化人类视觉图像,但这不一定为计算机视觉系统提供任何优势。

    2.组类运算符:在这种情况下,从原始图像中获取一组点,以便在图像的转换版本中创建一个点。这种类型的操作通常通过使用卷积来完成。为了获得转换后的结果,可以使用不同类型的内核与图像进行卷积(如下图所示)。

    一些例子是:直接平均、高斯平均和中值滤波器。结果,对图像进行卷积运算可以减少图像中的噪声并改善其平滑度(尽管这也会导致图像变得稍微模糊)。由于使用一组点来在新图像中创建单个新点,因此新图像的尺寸将必然小于原始图像的尺寸。

    解决此问题的其中一种方法是应用零填充(将像素值设置为零)或通过在图像的边界使用较小的模板。使用卷积的一大主要限制是在处理大模板大小时其执行速度,对此问题的一种可行解决方案是改为使用傅立叶变换。

     内核卷积

    一旦对图像进行了预处理,便可以应用更高级的技术,以尝试通过使用一阶边缘检测(例如 Prewitt 算子,Sobel 算子,Canny 边缘检测器)和霍夫变换等方法来提取图像的边缘和形状。

    特征提取

    对图像进行预处理后,可以使用特征提取器从图像中提取四种主要类型的特征形态:

    · 全局特征:将整个图像作为一个整体进行分析,然后从特征提取器中提取单个特征向量。全局特征的一个简单例子可以是合并像素值的直方图。

    · 基于区域的特征:将图像分割为不同的区域(例如,使用阈值或 K-Means 聚类等技术,然后使用连通域将其连接为片段),然后从每个区域中提取特征。可以通过使用区域和边界描述技术(例如“矩”和“链码”)来提取特征。

    · 基于网格或基于块的特征:将图像分为不同的块,并从每个不同的块中提取特征。为了从图像块中提取特征而使用的一种主要技术是密集 SIFT(尺度不变特征转换)。这种类型的功能通常用于训练机器学习模型。

    · 局部特征:在图像中检测到多个单个兴趣点,并通过分析邻近兴趣点的像素来提取特征。可以从图像中提取的兴趣点的两种主要类型是角点和斑点,可以使用诸如 Harris&Stephens 角点检测算法和高斯拉普拉斯算子等方法来提取它们。

    最后,可以使用诸如SIFT(尺度不变特征转换)之类的技术从检测到的兴趣点中提取特征。通常使用局部特征来匹配图像以构建全景图/ 3D重建或从数据库中检索图像。

     一旦提取了一组判别特征,就可以使用它们来训练机器学习模型进行推理。使用OpenCV之类的库可以轻松地在 Python中应用功能描述符。

    机器学习

    在计算机视觉中用于对图像进行分类的一个主要概念是视觉词袋模型(BoVW)。为了构造视觉词袋模型,首先需要通过从一组图像中提取所有特征(例如,使用基于网格的特征或局部特征)来创建词汇表。

    接下来,可以计算提取的特征在图像中出现的次数,并根据结果构建频率直方图。使用频率直方图作为基本模板,最终可以通过比较图像的直方图来根据图像是否属于同一类进行分类。

     此过程可以概括为以下几个步骤:

    1.首先通过使用特征提取算法(例如 SIFT 和 Dense SIFT)从图像数据集中提取不同的特征来构建词汇表。

    2.其次,使用 K-Means 或 DBSCAN 等算法对词汇表中的所有特征进行聚类,并使用聚类质心来总结数据分布。

    3.最后,可以通过计算词汇中不同特征出现在图像中的次数从每个图像构建频率直方图。

    然后,通过对要分类的每个图像重复相同的过程,然后使用任意分类算法,找出词汇表中哪个图像与测试图像最相似,可以对新图像进行分类。

     视觉词袋模型

    如今,由于创建了诸如卷积神经网络(CNN)和递归人工神经网络(RCNN)的人工神经网络体系结构,可以为计算机视觉提出一个替代的工作流程。

     计算机视觉工作流程

    在这种情况下,深度学习算法结合了计算机视觉工作流程的特征提取和分类步骤。当使用卷积神经网络时,神经网络的每一层在向密集层分类器提供特征向量之前,在其描述中应用不同的特征提取技。

    不止于此,机器学习在计算机视觉中的进一步应用包括多标签分类和对象识别等领域。多标签分类中将构建一个模型,该模型能够正确识别图像中有多少个对象,以及它们属于哪个类。而在对象识别中,通过识别图像中不同对象的位置,将进一步发展这一概念。

     

  • 相关阅读:
    【NOIP2009】【Vijos1752】潜伏者
    【NOIP2008】【Vijos1493】传纸条
    【NOIP2007】【Vijos1378】矩阵取数游戏
    【NOIP2006】【Luogu1063】能量项链
    【NOIP2004】【Luogu1091】合唱队形
    【NOIP2004】【Luogu1089】津津的储蓄计划
    【NOIP2005】【Luogu1052】过河
    【NOIP2004】【Luogu1090】合并果子
    【NOI2002】【Luogu1196】银河英雄传说(并查集带边权)
    【POJ3190】Stall Reservations
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12859617.html
Copyright © 2011-2022 走看看