深度学习技术最近被证明在多个领域比最先进的机器学习方法表现得更好,计算机视觉是最著名的例子之一。
卷积神经网络、深度玻尔兹曼机、深度信念网络和堆叠式降噪自动编码器是计算机视觉领域深度学习中一些最著名的算法。
描述了它们如何应用于各种计算机视觉任务,包括对象识别、人脸识别、动作和活动识别以及人体位置估计。本文简要总结了为计算机视觉应用构建深度学习技术所涉及的障碍。
什么是计算机视觉中的深度学习?
计算机视觉是机器学习的一个分支,专注于分析和理解图片和视频。它用于教育计算机如何“查看”和使用视觉数据来完成人类可以通过视觉完成的任务。
为了翻译视觉数据,计算机视觉模型需要在训练期间发现的特征和上下文数据。模型可以理解照片和视频以执行预测或决策任务。
尽管它们处理的是视觉数据,但图像处理和计算机视觉是不同的。图像处理需要更改或编辑照片以创建新的结果。它可能涉及提高分辨率、增强亮度或对比度、模糊精细信息或裁剪。图像处理和计算机视觉的不同之处在于前者并不总是需要识别内容。
深度学习如何应用于计算机视觉任务?
计算机视觉需要大量数据,而深度学习可以在这种情况下提供帮助。重复数据分析,直到系统能够区分项目和识别图像。用于实现此目的的两种主要方法是深度学习(一种特殊类型的机器学习)和卷积神经网络(一种重要的神经网络变体)。
自动化机器学习系统可以学习如何使用预编程的计算框架来解释视觉输入。如果给定足够大的数据集,该模型可以学习区分相似图像。由于算法,该系统可以自行学习,这使其能够在图片识别等活动中占据人类的位置。
计算机视觉中的深度学习起着至关重要的作用。卷积神经网络通过将图像分解成更小的、可标记的部分来帮助深度学习和机器学习模型理解。它在标签的帮助下执行卷积,然后使用三级函数深入了解它正在观看的场景。神经网络在每个周期中进行卷积并评估其建议的准确性。那时,它开始像人类一样感知和识别图像。
在现实世界中,拼拼图类似于计算机视觉。计算机视觉中的深度学习可以帮助所有这些拼图拼图拼凑成一幅真实的图像。计算机视觉系统的神经网络就是这样运作的。计算机可以通过一系列过滤器和操作将图像的所有组成部分放在一起,然后独立思考。但是,计算机不仅会收到一张拼图图片,还会经常收到数千张图片,教它检测特定物品。
例如,软件开发人员上传并向计算机提供数百万张猫的照片,而不是教它寻找猫的特征,例如尖耳朵、长尾巴、爪子和胡须。这使计算机能够理解猫的各种特征并立即识别它们。
一些关键的计算机视觉挑战,以下是计算机视觉挑战:
硬件不足
在计算机视觉技术中实施深度学习涉及使用软件和硬件。公司必须设置高分辨率摄像头、传感器和机器人,以保证系统的有效性。这种昂贵的技术可能无法正确安装,从而导致盲点和 CV 系统薄弱。
一些 CV 系统还需要支持物联网的传感器;例如,一项研究展示了如何使用支持物联网的洪水监测传感器。
要成功安装 CV 硬件,应考虑以下因素:
这些摄像机提供必要的每秒帧数 (FPS) 速率并且具有高清晰度。
摄像机和传感器覆盖所有监视位置。
所有感兴趣的东西都被定位覆盖了。例如,在商店环境中,摄像头应捕捉货架上展示的所有物品。
通过正确配置每个设备来避免盲点。
沃尔玛的货架扫描机器人是不适合 CV 硬件的典型例子。沃尔玛终止了与供应商的关系,并召回了货架扫描机器人。该公司发现,由于机器人的大小,客户可能会觉得机器人很奇怪,因此找到了其他更有效的方法,即使机器人中的 CV 系统运行完美。
光照条件
照明极大地影响了物体的清晰度。照明将对相同物体的观看或感知方式产生影响。
低质量
经过标注和注释的数据集是CV模型有效训练和应用的基础。找到用于计算机视觉的通用公共数据集并不难。但是,由于隐私问题(例如 CT 扫描或 X 射线图像),特定行业(例如医疗保健)的企业经常需要帮助来确保高质量照片的安全。其他时候,可能很难找到大量真实世界的视频和照片(例如车祸和撞车的镜头)。
另一个常见的障碍是需要在公司内部建立数据管理策略,这使得从分隔系统中获取机密信息以改进公共数据集和收集额外信息以进行再培训具有挑战性。
选择模型架构不充分
通常,大多数企业需要更多的训练数据和/或 MLOps 成熟度,以持续开发符合行业基准的尖端计算机视觉模型。相比之下,在收集项目需求时,业务线领导者经常为数据科学团队制定过于雄心勃勃的目标,而没有考虑实现这些目标的可能性。
计算机视觉中的高级深度学习方法
先进的深度学习技术使更精确、更复杂的计算机视觉模型成为可能。随着这些技术的进步,计算机视觉应用程序的结合变得越来越有益。以下是深度学习如何应用于增强计算机视觉的一些示例。以下是计算机视觉中的一些高级深度学习方法:
物体识别与定位
查找图像中项目的位置是通过图像定位完成的。被识别后,项目被标记为边界框。通过对识别出的项目进行分类,对象检测以此为基础。此方法基于 CNN,如 Fast RCNN、Faster RCNN 和 AlexNet。
对象检测和定位技术可以识别复杂场景中的多个对象。然后可以将其用于读取医学影像以进行诊断等功能。
语义划分
与对象检测相反,语义分割(也称为对象分割)基于与对象关联的精确像素。这消除了对边界框的需要,并允许更精确地定义图像对象。全卷积网络 (FCN) 或 U-Net 经常用于语义分割。
语义分割经常用于训练自动驾驶车辆。这种方法允许研究人员使用具有明确定义的对象边界的街道或通道的照片。
姿势评估
姿势估计是一种用于识别人或物体照片中关节位置以及这些位置表示什么的技术。它适用于 2D 和 3D 图像。PoseNet 是一种基于 CNN 的架构,是用于姿势估计的主要方法。
姿势估计可用于通过预测不同身体部位将出现在照片中的位置来为人类创建逼真的姿势或运动。此功能经常用于步态分析、增强现实和复制机器人运动。
运动监测
任何监控系统的一个重要组成部分是运动检测。这可能用于启动警报、通知某人或只是记录事件以供日后研究。
使用识别图像流帧之间变化的运动检测器是一种识别运动的技术。阈值处理是最基本的运动检测方法。该技术为帧中的每个像素分配一个预定值(阈值)。它评估像素是否已从其初始值充分改变以被视为已显着改变。
边缘检测方法也可以用于运动检测。边缘检测工具扫描图像的边缘,然后检查被指定为与周围像素不同的像素。
人脸识别
类似的基本思想适用于对象识别和人脸识别。关键区别在于,现在关注的是识别图片或视频中人脸所需的细节。为此,使用了一个大型人脸数据库。该算法检查面部轮廓、双眼间距、耳朵和颧骨的大小和形状,以及其他细节。
在不同的光照条件下、不同的视角下或戴着面具或眼镜时识别相同的角色是该过程中最具挑战性的部分。现在正在训练卷积神经网络使用 3D 人脸的低维表示进行预测。这种方法可能比使用 2D 图像更准确,并且比直接的 3D 识别更快。