计算机视觉 - 简介

什么是计算机视觉?

计算机视觉是一门让计算机能够查看和理解图​​像和视频的科学。它专注于通过获取、处理、分析和理解数字图像来复制人类视觉系统的各个部分。

历史背景

计算机视觉自诞生以来已经取得了长足的进步。以下是其发展简史 −

  • 早期起步(20 世纪 60 年代):计算机视觉的早期阶段始于 20 世纪 60 年代,当时研究人员开始寻找让机器理解图片的方法。算法思想最初仍然相当基于几何形状和模式识别。
  • 特征检测和识别(20 世纪 70 年代):边缘检测和特征提取技术领域的工作仍在继续。研究人员设计了识别简单形状的算法,为更高级的分析奠定了基础。
  • 机器学习时代(20 世纪 80 年代 - 90 年代):这个时代标志着重点转向机器学习。首次采用统计模型来增强物体识别。开发了更强大的算法来处理图像中的真实变化。
  • 神经网络:神经网络越来越受欢迎,尤其是随着过去十年深度学习的兴起。卷积神经网络 (CNN) 的深度成为图像分类和物体检测的强大工具之一,提高了精度和效率。
  • 当前趋势(2010 年代至今):如今,计算机视觉是人工智能研究和应用的领先领域,影响着各个行业。当前趋势由硬件开发(例如 GPU)和可用于模型训练的大型数据集驱动。主要应用包括实时视频分析、面部识别和自主系统。

计算机视觉的应用

计算机视觉在许多不同领域都有广泛的应用,其中包括−

  • 医疗保健:通过研究医学图像来诊断疾病。
  • 自动驾驶汽车:帮助自动驾驶汽车识别物体、行人和路标。
  • 安全和监控:监控视频源以检测可疑活动。
  • 零售:视觉搜索和自动结账系统,以提高客户体验。
  • 制造:装配线上的产品检查,以确保质量控制。

计算机视觉如何工作?

计算机视觉系统通过一系列步骤来处理和解释视觉数据 −

  • 图像采集:使用相机或传感器捕获图像或视频。
  • 预处理:增强图像质量,例如调整亮度或去除噪声。
  • 特征提取:这意味着找到图像中有助于表示的重要部分,如边缘、纹理或形状。
  • 物体检测和识别:查找和分类图像中的物体/物体的一部分。
  • 理解和解释:根据识别出的物体做出决策或预测。

图像采集

在计算机视觉中,初始阶段是图像采集。图像采集仅涉及使用相机、智能手机或其他专用传感器捕获图像。

在此阶段捕获的图像质量对计算机视觉的后续部分有很大影响。

预处理

预处理是指在将数据输入算法之前对其应用的转换。

在 Python 中,我们通常使用 scikit-learn 库执行预处理。该库提供了类 sklearn.preprocessing 用于预处理数据。
  • 降噪:消除图像中不需要的随机波动。
  • 对比度增强:调整亮度和对比度以突出显示重要特征。
  • 图像调整大小:更改图像大小以满足分析算法的要求。

许多现代物体检测算法都依赖于将图像调整为预定大小作为其预处理步骤的一部分。我们将从从图像中提取两个特征开始:图像中存在的线条和颜色像素。为此,我们需要了解什么是线,什么是像素。

您需要了解的第一件事是,每当我们谈论从图像中识别或提取某些东西时,它基本上意味着我们正在尝试获取有关该事物的一些有意义的信息(特征)(例如身高、体重、坐标)。我们不是在谈论制作像休·杰克曼或汤姆·克鲁斯这样的三维人!

例如,我们人类有眼睛,对吧?是的!但是自古以来,没有人切开我们的头骨并弄清楚我们的眼睛内部是什么样子……对吗?

特征提取

特征提取就是找到图像中那些可以帮助我们解决手头问题的部分。一些常见特征是 −

  • 边缘:颜色或强度发生急剧变化的线条。
  • :图像中两个边缘相交的位置。
  • 纹理:局部强度变化的重复模式。

物体检测与识别

物体检测涉及在图像中查找物体并在其周围绘制边界框。物体识别更进一步,识别这些物体是什么。所用技术如下所示 −

  • 模板匹配:将图像的各个部分与一些预定义的模板进行比较。
  • 机器学习:一些算法在大量带标签的图像上进行学习。
  • 深度学习:利用神经网络自动学习特征并对物体进行分类。

理解与解释

最后一步是解释识别出的物体并根据它们做出决策。这可能涉及 −

  • 计数对象:确定图像中某些类型对象的数量。
  • 跟踪运动:跟踪视频中一系列帧中的对象运动。
  • 场景理解:分析图像的整体背景以了解正在发生的事情。

计算机视觉技术

计算机视觉中使用各种技术来分析和解释视觉数据 −

  • 机器学习:在大型数据集上训练算法以识别模式并做出预测。
  • 深度学习:使用神经网络,尤其是卷积神经网络 (CNN),来处理和分析视觉数据。
  • 图像过滤:通过应用过滤器消除噪音并突出显示重要特征来增强图像。
  • 边缘检测:识别图像中对象的边界。

计算机视觉中的挑战

尽管计算机视觉取得了进步,但它仍面临着一些挑战,这些挑战可能会阻碍准确的图像分析和解释 −

  • 图像中的多变性:图像的质量、光照、角度和背景可能有所不同,因此很难进行分析。
  • 遮挡:图像中的对象可能被其他对象部分隐藏,从而使检测和识别变得复杂。
  • 实时处理:实时分析图像和做出决策需要大量的计算资源。