首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机视觉路线图

计算机视觉路线图

作者头像
人工智能小咖
修改2020-04-26 10:11:17
9900
修改2020-04-26 10:11:17
举报
文章被收录于专栏:人工智能小咖人工智能小咖

简介

如今,计算机视觉(CV)已成为人工智能的一项重要应用(例如,图像识别、对象跟踪、多标签分类)。本文将引导你完成搭建计算机视觉系统的一些主要步骤。

计算机视觉系统的标准工作流程是:

1. 一组图像进入系统。

2. 为了对这些图像进行预处理并提取特征,使用特征提取器。

3. 机器学习系统利用提取的特征来训练模型,并做出预测。

接下来,将简要介绍数据可能在这三个不同步骤中的一些主要过程。

图像进入系统

在尝试实现计算机视觉系统时,需要考虑两个主要组件:图像采集硬件和图像处理软件。构建计算机视觉系统要满足的一个主要要求是测试其鲁棒性。实际上,系统应该能够适应环境变化(例如光源、方向、缩放比例的变化),并能够重复执行其设计任务。为了满足这些要求,可能有必要对系统的硬件或软件进行某种形式的约束(例如,远程控制光照环境)。

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

图1:RGB 和 HSV 色彩空间[1]

特征提取器

图像预处理

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

  • 点类运算符:使用图像中的所有点来创建原始图像的转换版本(以便在不更改其内容的情况下明确显示图像中的内容)。点类运算符的一些示例:强度归一化,直方图均衡化和阈值化。通常使用点类运算符来更好地可视化人类视觉图像,但这不一定为计算机视觉系统提供任何优势。
  • 组类运算符:在这种情况下,从原始图像中获取一组点,以便在图像的转换版本中创建一个点。这种类型的操作通常通过使用卷积来完成。为了获得转换后的结果,可以使用不同类型的内核与图像进行卷积(如图2所示)。一些例子是:直接平均、高斯平均和中值滤波器。结果,对图像进行卷积运算可以减少图像中的噪声并改善其平滑度(尽管这也会导致图像变得稍微模糊)。由于使用一组点来在新图像中创建单个新点,因此新图像的尺寸将必然小于原始图像的尺寸。解决此问题的其中一种方法是应用零填充(将像素值设置为零)或通过在图像的边界使用较小的模板。使用卷积的一大主要限制是在处理大模板大小时其执行速度,对此问题的一种可行解决方案是改为使用傅立叶变换。

图2:内核卷积
图2:内核卷积

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

特征提取

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

  • 全局特征:将整个图像作为一个整体进行分析,然后从特征提取器中提取单个特征向量。全局特征的一个简单例子可以是合并像素值的直方图。
  • 基于网格或基于块的特征:将图像分为不同的块,并从每个不同的块中提取特征。为了从图像块中提取特征而使用的一种主要技术是密集 SIFT(尺度不变特征转换)。这种类型的功能通常用于训练机器学习模型。
  • 基于区域的特征:将图像分割为不同的区域(例如,使用阈值或 K-Means 聚类等技术,然后使用连通域将其连接为片段),然后从每个区域中提取特征。可以通过使用区域和边界描述技术(例如“矩”和“链码”)来提取特征。
  • 局部特征:在图像中检测到多个单个兴趣点,并通过分析邻近兴趣点的像素来提取特征。可以从图像中提取的兴趣点的两种主要类型是角点和斑点,可以使用诸如 Harris&Stephens 角点检测算法和高斯拉普拉斯算子等方法来提取它们。最后,可以使用诸如 SIFT(尺度不变特征转换)之类的技术从检测到的兴趣点中提取特征。通常使用局部特征来匹配图像以构建全景图/ 3D 重建或从数据库中检索图像。

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

机器学习

在计算机视觉中用于对图像进行分类的一个主要概念是视觉词袋模型(BoVW)。为了构造视觉词袋模型,首先需要通过从一组图像中提取所有特征(例如,使用基于网格的特征或局部特征)来创建词汇表。接下来,可以计算提取的特征在图像中出现的次数,并根据结果构建频率直方图。使用频率直方图作为基本模板,最终可以通过比较图像的直方图来根据图像是否属于同一类进行分类(如图3所示)。

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

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

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

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

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

图3:视觉词袋模型[2]
图3:视觉词袋模型[2]

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

图4:计算机视觉工作流程[3]
图4:计算机视觉工作流程[3]

在这种情况下,深度学习算法结合了计算机视觉工作流程的特征提取和分类步骤。当使用卷积神经网络时,神经网络的每一层在向密集层分类器提供特征向量之前,在其描述中应用不同的特征提取技术(例如,第1层检测边缘,第2层发现图像中的形状,第3层分割图像等)。

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

参考书目

[1] Modular robot used as a beach cleaner, Felippe Roza. Researchgate. Accessed at: https://www.researchgate.net/figure/RGB-left-and-HSV-right-color-spaces_fig1_310474598

[2] Bag of visual words in OpenCV, Vision & Graphics Group. Jan Kundrac. Accessed at:https://vgg.fiit.stuba.sk/2015-02/bag-of-visual-words-in-opencv/

[3] Deep Learning Vs. Traditional Computer Vision. Haritha Thilakarathne, NaadiSpeaks. Accessed at: https://naadispeaks.wordpress.com/2018/08/12/deep-learning-vs-traditional-computer-vision/

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 图像进入系统
  • 特征提取器
    • 图像预处理
      • 特征提取
        • 机器学习
        相关产品与服务
        图像处理
        图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档