计算机视觉分析图像,然后使用卷积神经网络 (CNN) 创建其“所见”的数值表示。CNN 是一类人工神经网络,使用卷积层从输入中筛选出有用信息。卷积运算需要综合使用输入数据(特征图)与卷积内核(滤波器),以便生成转换后的特征图。卷积层滤波器可根据学习参数进行修改,以便为特定任务提取最有用的信息。卷积网络可根据任务自动调整,寻找最重要的特征。在执行一般的物体识别任务时,CNN 会过滤物体的形状信息;但在进行识别鸟的任务时,CNN 则会提取鸟的颜色信息。这是由于 CNN 认为,不同类的物体会具有不同的形状,而对于不同类型的鸟而言,其颜色可能要比形状的差异性更大。
计算机视觉的行业用例
计算机视觉用例包括图像识别、图像分类、视频标记和虚拟助手。计算机视觉领域中更加流行和突出的用例包括:
- 医学。医学图像处理需要快速提取重要的图像数据以便对患者进行正确诊断,包括快速检测肿瘤和动脉硬化。虽然计算机视觉本身无法提供诊断,但它是现代医疗诊断技术中宝贵的一部分,可以更大程度地弱化医生的想法,并且为医生提供越来越多的原本无法看到的信息。
- 自动驾驶汽车。另一个非常活跃的计算机视觉调研领域,自动驾驶车辆可以完全由计算机视觉解决方案接管,或者其操作可以得到显著增强。目前已有的常用应用包括汽车中的早期警报系统。
- 行业用途。制造业中有很多计算机视觉解决方案的当前和潜在用途,以支持制造流程。目前的用途包括质量控制,其中计算机视觉系统会检查部件和产品成品是否有缺陷。在农业领域,计算机视觉系统使用光学分拣去除食品中不需要的材质。
数据科学家和计算机视觉
Python 是机器学习 (ML) 领域的热门编程语言,许多数据科学家都熟悉其易用性及其大型库(其中大多数库都是免费和开源的)。数据科学家在 ML 系统中使用 Python 进行数据挖掘和数据分析,因为 Python 支持各种 ML 模型和算法。鉴于 ML 和计算机视觉之间的关系,数据科学家可以利用计算机视觉应用向各类企业的扩展,从图像和视频存储中提取重要信息,增强数据驱动的决策制定。
借助 GPU 加速卷积神经网络
在架构方面,CPU 仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU 由数百个核心组成,可以同时处理数千个线程。
由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。 这种并行性自然地会映射到 GPU,能够提供数据并行的算术架构,并且相比仅限 CPU 的训练,计算速度大幅增加。这种类型的架构对一系列图像数据执行类似的计算。GPU 的单指令多数据 (SIMD) 功能使其适合运行计算机视觉任务,这些任务通常涉及对整个图像进行类似的计算。具体而言,NVIDIA GPU 可显著加速计算机视觉操作,为其他工作释放 CPU。 此外,在同一台机器上可以使用多个 GPU,创建能够并行运行多个计算机视觉算法的架构。