专栏首页人工智能小咖计算机视觉路线图

计算机视觉路线图

简介

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

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

1. 一组图像进入系统。

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

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

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

图像进入系统

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

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

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

特征提取器

图像预处理

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

  • 点类运算符:使用图像中的所有点来创建原始图像的转换版本(以便在不更改其内容的情况下明确显示图像中的内容)。点类运算符的一些示例:强度归一化,直方图均衡化和阈值化。通常使用点类运算符来更好地可视化人类视觉图像,但这不一定为计算机视觉系统提供任何优势。
  • 组类运算符:在这种情况下,从原始图像中获取一组点,以便在图像的转换版本中创建一个点。这种类型的操作通常通过使用卷积来完成。为了获得转换后的结果,可以使用不同类型的内核与图像进行卷积(如图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]

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

图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/

原文链接:https://towardsdatascience.com/roadmap-to-computer-vision-79106beb8be4

原文作者:Pier Paolo Ippolito

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 7个使GitHub更实用的工具

    GitHub平台是最受欢迎的版本控制存储库之一。GitHub拥有不计其数、多种编程语言编写的公共项目。

    人工智能小咖
  • LINQ凭什么被誉为有史以来最好的技术?

    今天来聊一下LINQ,这是笔者最喜欢的技术之一,在艰难时刻,它总能使笔者保持积极状态。如果对其一无所知,笔者敢肯定,经过讲解,你明天就会开始使用它。

    人工智能小咖
  • 数据科学家的升职之路

    在大数据时代,每天都有大量的数据涌现出来,因此各地的企业都摩拳擦掌想从海量数据中挖宝。他们越来越依赖数据科学家利用数据创造的商业价值。

    人工智能小咖
  • 计算机视觉系统中图像究竟经历了哪些“折磨”

    如今,计算机视觉(CV)已成为人工智能的主要应用之一(例如,图像识别,对象跟踪,多标签分类)。在本文中,我们将了解构成计算机视觉系统的一些主要步骤。

    小白学视觉
  • 高糊图片可以做什么?Goodfellow等人用它生成一组合理图像

    作者:David Berthelot、Peyman Milanfar、Ian Goodfellow

    代码医生工作室
  • 高糊图片可以做什么?Goodfellow等人用它生成一组合理图像

    作者:David Berthelot、Peyman Milanfar、Ian Goodfellow

    机器之心
  • IQ1: 怎么定义图像的质量?如何评价图像的质量?

    我的这个专栏叫做图像质量评价,但是什么叫做图像的质量呢? 图像质量是一个非常宽泛的概念,在不同情况下有不同的理解。

    HawkWang
  • 干货 | 携程图像智能化建设之路

    携程技术
  • 常用图片格式

    photoshop的专用格式。 优点:完整保存图像的信息,包括未压缩的图像数据、图层、透明等信息,方便图像的编辑。 缺点:应用范围窄,图片容量相对比较大。

    Devops海洋的渔夫
  • 图解自监督学习,人工智能蛋糕中最大的一块

    如果人工智能是一块蛋糕,那么蛋糕的大部分是自监督学习,蛋糕上的糖衣是监督学习,蛋糕上的樱桃是强化学习。

    AI算法与图像处理

扫码关注云+社区

领取腾讯云代金券