计算机视觉

计算机视觉是一个研究领域,旨在助力计算机使用复杂算法(可以是传统算法,也可以是基于深度学习的算法)来理解数字图像和视频并提取有用的信息。

什么是计算机视觉?

计算机视觉的主要目标是,先理解视频和静止图像的内容,然后从中收集有用的信息,以便解决越来越多的问题。作为人工智能 (AI) 和深度学习的子领域,计算机视觉可训练卷积神经网络 (CNN),以便针对各种应用场合开发仿人类视觉功能。计算机视觉包括对 CNN 进行特定训练,以便利用图像和视频进行数据分割、分类和检测。

 输入图像、卷积层、全连接层和输出类。

卷积神经网络 (CNN) 能够针对多种应用场合执行分割、分类和检测:

  • 分割:图像分割是指将像素归类为特定类别,如汽车、道路或行人。它广泛用于自动驾驶汽车应用(包括 NVIDIA DRIVE™ 软件堆栈),用于显示道路、汽车和人员。您可以将其想象成一种可视化技术,该技术能够使人们更容易理解计算机的工作。
  • 分类:图像分类用于确定图像中的内容。例如,神经网络经过训练后能够识别狗或猫,或者许多其他东西,并且具有高精确度。
  • 检测:通过图像检测,计算机可以定位对象的位置。在许多应用中,CNN 会在相关区域周围设置矩形边界框,将对象完全包含在内。检测器也可以接受训练,以便检测图像中汽车或人员的位置。

分割、分类和检测

    分割 分类 检测
    非常适合用于描述对象(object,有些地方用的是对象,有些地方用的是物体,是不是需要保持一致?) 是猫还是狗? 它存在于空间中的什么位置?
    在自动驾驶汽车中使用 精确分类 识别关乎安全的事物

计算机视觉为何重要?

体育汽车农业零售银行施工保险等行业,计算机视觉应用非常广泛。得益于目前机器用于识别物体的图像处理器 – 卷积神经网络 (CNN),各种由 AI 驱动的机器纷纷开始采用仿人眼技术来获得更多助力。CNN 已成为当今自动驾驶汽车石油勘探聚变能源研究领域的“眼睛”。它们还有助于在医学成像领域快速发现疾病挽救生命

数十年来,传统的计算机视觉和图像处理技术已经应用于众多应用和研究工作。然而,现代 AI 技术采用人工神经网络,能够实现更高的性能准确性;高性能计算依托 GPU 取得长足进步,实现超人的准确性,从而在运输零售制造医疗健康金融服务等行业广泛应用。

在将图像和视频分类为精细离散的类别和分类方面,如同医学计算机轴向断层扫描或 CAT 扫描中随时间推移而产生的微小变化,传统或基于 AI 的计算机视觉系统远胜于人类。在这个意义上,计算机视觉将人类有可能完成的任务自动化,但其准确性和速度要高得多。

当前和潜在的应用多种多样,因此计算机视觉技术和解决方案的增长预测相当惊人,这点不足为奇。一项市场调研表明,到 2023 年,该市场将以惊人的 47% 的年增长率增长,届时将在全球达到 250 亿美元。在整个计算机科学范畴内,计算机视觉是热门、活跃的研发领域之一。

计算机视觉的工作原理是什么?

计算机视觉分析图像,然后使用卷积神经网络 (CNN) 创建其“所见”的数值表示。CNN 是一类人工神经网络,使用卷积从输入中筛选出有用信息。卷积运算需要综合使用输入数据(特征图)与卷积内核(滤波器),以便生成转换后的特征图。卷积层滤波器可根据学习参数进行修改,以便为特定任务提取最有用的信息。卷积网络可根据任务自动调整,寻找最重要的特征。在执行一般的物体识别任务时,CNN 会过滤物体的形状信息;但在进行识别鸟的任务时,CNN 则会提取鸟的颜色信息。这是由于 CNN 认为,不同类的物体会具有不同的形状,而对于不同类型的鸟而言,其颜色可能要比形状的差异性更大。

深度神经网络如何“看见”

计算机视觉的行业用例

计算机视觉用例包括图像识别、图像分类、视频标记和虚拟助手。计算机视觉领域中更加流行和突出的用例包括:

  • 医学。医学图像处理需要快速提取重要的图像数据以便对患者进行正确诊断,包括快速检测肿瘤和动脉硬化。虽然计算机视觉本身无法提供诊断,但它是现代医疗诊断技术中宝贵的一部分,可以更大程度地弱化医生的想法,并且为医生提供越来越多的原本无法看到的信息。
  • 自动驾驶汽车。另一个非常活跃的计算机视觉调研领域,自动驾驶车辆可以完全由计算机视觉解决方案接管,或者其操作可以得到显著增强。目前已有的常用应用包括汽车中的早期警报系统。
  • 行业用途。制造业中有很多计算机视觉解决方案的当前和潜在用途,以支持制造流程。目前的用途包括质量控制,其中计算机视觉系统会检查部件和产品成品是否有缺陷。在农业领域,计算机视觉系统使用光学分拣去除食品中不需要的材质。

数据科学家和计算机视觉
Python 是机器学习 (ML) 领域的热门编程语言,许多数据科学家都熟悉其易用性及其大型库(其中大多数库都是免费和开源的)。数据科学家在 ML 系统中使用 Python 进行数据挖掘和数据分析,因为 Python 支持各种 ML 模型和算法。鉴于 ML 和计算机视觉之间的关系,数据科学家可以利用计算机视觉应用向各类企业的扩展,从图像和视频存储中提取重要信息,增强数据驱动的决策制定。

借助 GPU 加速卷积神经网络

在架构方面,CPU 仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU 由数百个核心组成,可以同时处理数千个线程。

 CPU 与 GPU 的区别。

由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。  这种并行性自然地会映射到 GPU,能够提供数据并行的算术架构,并且相比仅限 CPU 的训练,计算速度大幅增加。这种类型的架构对一系列图像数据执行类似的计算。GPU 的单指令多数据 (SIMD) 功能使其适合运行计算机视觉任务,这些任务通常涉及对整个图像进行类似的计算。具体而言,NVIDIA GPU 可显著加速计算机视觉操作,为其他工作释放 CPU。  此外,在同一台机器上可以使用多个 GPU,创建能够并行运行多个计算机视觉算法的架构。

NVIDIA GPU 加速的深度学习框架

GPU 加速深度学习框架为 Python 等常用编程语言提供编程接口。其还具备轻松创建和探索自定义 CNN 和 DNN 的灵活性,同时能够实现实验和工业部署所需的超高速度。NVIDIA CUDA-X AI 能够加快 CaffeMicrosoft Cognitive Toolkit (CNTK)TensorFlowTheanoTorch 等广泛使用的深度学习框架以及众多其他机器学习应用的运行速度。深度学习框架在 GPU 上的运行速度更快,并可以在单节点内的多个 GPU 间扩展。要将框架与 GPU 一起用于卷积神经网络的训练和推理过程,NVIDIA 分别提供 cuDNN 和 TensorRT™。cuDNNTensorRT 可为卷积层、池化层、归一化和激活层等标准例程实现高度调整。

单击此处查看 NVCaffe 安装步骤和使用指南。可在此处找到卷积神经网络 C++/CUDA 快速实施。

为快速开发和部署视觉模型,NVIDIA 向视觉 AI 开发者提供 DeepStream SDK。其中包含 TAO 工具包,可用于为计算机视觉领域创建准确高效的 AI 模型。

训练与推理。

NVIDIA GPU 加速的端到端数据科学

建立在 CUDA 基础上的 NVIDIA RAPIDS 开源软件库套件使您能够完全在 GPU 上执行端到端数据科学和分析流程,同时仍然使用 Pandas 和 Scikit-Learn API 等熟悉的界面。

完全在 GPU 上执行端到端数据科学和分析流程

后续步骤

有关计算机视觉主题(包括 CNN)的更多技术深入探讨和新闻,请查看我们的开发者网站

如需了解详情:

有关更多技术信息,请阅读: