计算机视觉算法:您想知道的一切 [2022]
已发表: 2021-01-01了解使计算机能够感知的算法
目录
介绍
计算机视觉一词是指计算机查看和感知周围环境的能力。 计算机视觉涵盖了许多应用——对象检测和识别、自动驾驶汽车、面部识别、球跟踪、照片标记等等。 在深入了解技术术语之前,首先让我们讨论一下整个计算机视觉管道。
整个流水线分为 5 个基本步骤,每个步骤都有特定的功能。 首先,算法需要处理输入,输入可以是图像或图像流(图像帧)的形式。 下一步是预处理。 在这一步中,函数被应用于传入的图像,以便算法可以更好地理解图像。
其中一些功能涉及降噪、图像缩放、膨胀和腐蚀、去除色斑等。下一步是选择感兴趣的区域或感兴趣的区域。 在此之下是对象检测和图像分割算法。 此外,我们有特征提取,这意味着从图像中检索完成最终目标所必需的相关信息/特征。
最后一步是识别或预测,我们识别给定图像帧中的对象或预测给定图像帧中对象的概率。
例子
让我们看一下计算机视觉管道的真实应用。 面部表情识别是计算机视觉的一种应用,许多研究实验室都使用它来了解特定产品对其用户的影响。 同样,我们有应用预处理算法的输入数据。

下一步涉及检测特定帧中的人脸并裁剪该帧的该部分。 一旦实现这一点,面部标志就会被识别出来,比如嘴巴、眼睛、鼻子等——这是情绪识别的关键特征。
最后,预测模型(训练模型)根据中间步骤中提取的特征对图像进行分类。
算法
在我开始提到计算机视觉中的算法之前,我想强调一下“频率”这个词。 图像的频率是强度的变化率。 高频图像的强度变化很大。 低频图像的亮度比较均匀或强度变化缓慢。
在对图像应用傅里叶变换时,我们得到一个幅度谱,它产生图像频率的信息。 频域图像中心的集中点意味着图像中存在大量低频分量。 高频成分包括——边缘、角落、条纹等。我们知道图像是 x 和 yf(x,y) 的函数。 为了测量强度变化,我们只取函数 f(x,y) 的导数。
清醒过滤器
Sobel 算子用于图像处理和计算机视觉中的边缘检测算法。 过滤器创建强调边缘的图像。 它计算图像强度函数的斜率/梯度的近似值。 在图像中的每个像素处,Sobel 算子的输出既是对应的梯度向量,也是该向量的范数。
Sobel 算子在水平和垂直方向上用一个小的整数值滤波器对图像进行卷积。 这使得算子在计算复杂性方面成本低廉。 Sx 过滤器检测水平方向的边缘,Sy 过滤器检测垂直方向的边缘。 它是一个高通滤波器。
将 Sx 应用于图像
将 Sy 应用于图像
阅读:印度的机器学习薪资
平均滤波器
平均过滤器是一种标准化过滤器,用于确定图像的亮度或暗度。 平均滤波器逐个像素地在图像上移动,将像素中的每个值替换为包括其自身在内的相邻像素的平均值。
平均(或均值)过滤通过减少相邻像素之间的强度变化量来平滑图像。

平均滤镜,图片来源
高斯模糊滤镜
高斯模糊滤波器是一种低通滤波器,它具有以下功能:
- 平滑图像
- 阻止图像的高频部分
- 保留边缘
在数学上,通过对图像应用高斯模糊,我们基本上是将图像与高斯函数进行卷积。
上式中, x是到原点的水平距离, y是到原点的垂直距离, σ是高斯分布的标准差。 在二维中,该公式表示一个表面,其轮廓是从原点开始呈高斯分布的同心圆。
高斯模糊滤镜,图片来源
这里要注意的一件事是选择正确的内核大小的重要性。 这很重要,因为如果内核维度太大,图像中存在的小特征可能会消失,并且图像看起来会模糊。 如果太小,图像中的噪点将无法消除。
另请阅读:您应该知道的 AI 算法类型
Canny 边缘检测器
它是一种利用四个滤波器来检测模糊图像中的水平、垂直和对角边缘的算法。 该算法执行以下功能。
- 它是一种广泛使用的精确边缘检测算法
- 使用高斯模糊过滤掉噪声
- 使用 Sobel 滤波器查找边缘的强度和方向
- 应用非最大抑制以隔离最强的边缘并将它们细化为一条像素线
- 使用滞后(双阈值方法)来隔离最佳边缘
蒸汽机照片上的 Canny Edge 检测器,图片来自 Wikipedia
哈尔级联
这是一种基于机器学习的方法,其中训练级联函数来解决二进制分类问题。 该函数是从大量的正负图像中训练出来的,并进一步用于检测其他图像中的对象。 它检测以下内容:
- 边缘
- 线条
- 矩形图案
为了检测上述模式,使用了以下功能:
卷积层
在这种方法中,神经网络学习属于同一类别的一组图像的特征。 通过使用反向传播技术和梯度下降作为优化器更新神经元的权重来进行学习。
这是一个迭代过程,旨在减少实际输出与基本事实之间的误差。 在该过程中如此获得的卷积层/块充当特征层,用于区分正图像和负图像。 下面给出卷积层的示例。

卷积神经网络,图像源
完全连接的层以及最后的 SoftMax 函数将输入图像分类为它所训练的类别之一。 输出分数是一个概率分数,范围在 0 到 1 之间。
必读: ML 中的分类算法类型
结论
本博客介绍了计算机视觉中使用的最常见算法的概述以及一般管道。 这些算法构成了更复杂算法(如 SIFT、SURF、ORB 等)的基础。
如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT- B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。
图像处理和计算机视觉有什么区别?
图像处理增强了图像的原始形式以产生更好的版本。 它也用于提取主图像的一些特征。 因此,图像处理是计算机视觉领域本身的一个独特部分。 然而,计算机视觉专注于识别刺激对象以进行准确分类。 两者在他们的程序中也使用了类似的技术。 因此,图像处理可以成为计算机视觉的主要过程。 它仍然是人工智能的一个突出领域。 图像处理侧重于增强图像; 计算机视觉技术专注于详细、准确的分析,以创建更好的系统。
为什么要使用深度学习来构建计算机视觉算法?
由于严格的数据驱动研究和一致的视觉数据分析,计算机视觉使人工智能 (AI) 更加强大。 深度学习是通过神经网络连续输入数据的过程。 这些信息来源于人脑过程,以完善高效学习、处理和输出的算法。 深度学习增强了准确的数据分类,确保了可靠的 AI 模型。 计算机视觉使用这种方法将 AI 与人脑的神经网络对齐。 深度学习使可靠的系统能够帮助人类并提高他们的生活质量。
什么是低通滤波器和高通滤波器?
在计算机视觉算法中,多个过滤器从原始图像中产生所需的结果。 这些滤镜执行多种功能,可根据需要平滑、锐化和突出外观。 滤波器的频率不同,并提出不同的效果。 例如,高斯模糊滤波器本质上是通过改变图像的高频部分并保留边缘来平滑图像。 它被称为低通滤波器,因为它会减少高频位置并保持低频位置,从而使其具有更平滑的视觉效果。 在高通滤波器中,低频位置被减少,而前者被保留,从而产生更清晰的视觉效果。