原创 | 文 BFT机器人
深度学习 (DL) 在数字图像处理中用于解决难题(例如,图像着色、分类、分割和检测)。卷积神经网络 (CNN) 等深度学习方法通过使用大数据和丰富的计算资源提高预测性能,突破了可能性的界限。
深度学习是机器学习的一个子集。
人工神经网络 (ANN) 是一种受人脑功能启发的计算范式,是深度学习的核心。它包含许多计算单元或“神经元”,它们执行简单的操作并相互交互以做出决定,就像人脑一样。深度学习是关于准确、高效、无监督学习或跨越许多神经网络层的“信用分配”
由于处理硬件的进步,它最近引起了人们的兴趣。自组织和利用小型单元之间的交互已被证明比中央控制执行得更好,特别是对于复杂的非线性过程模型。可以实现更好的容错性和对新数据的适应性。
深度学习是否导致传统计算机视觉(CV) 技术过时?深度学习是否取代了传统的计算机视觉?当 DL 看起来如此有效时,是否还有必要研究传统的 CV 技术?这些都是近年来社会上提出的问题。这篇文章将提供深度学习和传统计算机视觉的比较。
01
深度学习的优势
深度学习和设备功能(例如计算能力、内存容量、图像传感器分辨率、功耗和光学)的快速进步提高了基于视觉的应用程序的性能和成本效益,加速了它们的传播。
与传统的 CV 技术 (SLAM) 相比,DL 允许 CV 工程师在图像分类、语义分割、对象检测以及同时定位和映射方面实现更高的准确性。因为 DL 应用程序使用经过训练而非编程的神经网络。他们通常需要较少的专家分析和微调,并且可以利用当今系统中可用的海量视频数据。
与更多领域特定的 CV 算法相比,我们可以以移动机器人上的目标检测问题为例来比较这两种计算机视觉算法:对于目标检测,传统方法是使用成熟的 CV 技术,如特征描述符(SIFT、SURF、BRIEF 和很快)。
在 DL 出现之前,特征提取用于图像分类等任务。特征是图像中“有趣的”、描述性的或提供信息的小块。此步骤可能涉及各种 CV 算法,例如边缘检测、角点检测或阈值分割。分析图像的尽可能多的特征,这些特征用于为每个对象类创建一个定义(称为词袋)。在部署阶段在其他图像中搜索这些定义。
传统方法的问题在于它需要确定每个图像中哪些特征是重要的。
随着要分类的类别数量的增加,特征提取变得越来越困难。为了确定哪些特征最能描述不同类别的对象,CV 工程师必须使用他或她的判断并经历漫长的试错过程。此外,每个特征定义都需要管理大量参数,CV 工程师必须对所有这些参数进行微调。
端到端学习是由 DL 引入的,其中机器只是简单地获得一个图像数据集,并用每个图像中存在的对象类别进行注释。
众所周知,DNN 优于传统算法,尽管需要在计算要求和训练时间方面做出权衡。所有最先进的 CV 方法都使用这种方法,CV 工程师的工作流程发生了巨大变化,提取手工制作特征的知识和专业知识被迭代深度学习架构的知识和专业知识所取代。
近年来,CNN 的发展对 CV 产生了巨大的影响,并导致物体识别能力的显着提高。计算能力的提高和可用于训练神经网络的数据量的增加使得这种进步得以实现。
开创性论文 ImageNet Classification with Deep Convolutional Neural Networks 已被引用超过 3000 次,这表明最近 CV 的各种深度神经网络架构呈爆炸式增长并得到广泛采用。CNN 使用内核(也称为过滤器)来检测整个图像的特征(例如边缘)。
内核只是经过训练以检测特定特征的值的加权矩阵。
顾名思义,CNN 背后的主要思想是在给定输入图像上对内核进行空间卷积,以查看是否存在它应该检测的特征。
卷积运算通过计算核与核重叠的输入区域的点积来执行,以提供一个值,该值表示存在特定特征的置信度(核正在查看的原始图像区域是称为感受野)。卷积层的输出与偏置项相加,然后馈送到非线性激活函数以帮助学习内核权重。
这些激活函数是根据数据的性质和分类任务来选择的。例如,ReLU 被认为具有更高的生物学表现(大脑中的神经元要么放电,要么不放电)。因此,它产生更稀疏、更有效的表示,并且不易受消失梯度问题的影响,从而为图像识别任务带来更好的结果。
池化层经常跟在卷积层之后,以去除输入特征中的冗余,从而加快训练过程并减少网络消耗的内存量。
例如,Max-pooling 在输入上移动一个窗口并输出该窗口中的最大值,从而有效地减少图像的重要像素。卷积层和池化层可以在深度 CNN 中以多对形式找到。
最后,全连接层将前一层的体积扁平化为特征向量,然后是使用密集网络计算输出类/特征的分数(置信度或概率)的输出层。然后将此数据输入回归函数(如 Softmax),它将所有内容映射到具有一个元素的向量。
然而,DL 仍然主要是一种 CV 工具;例如,CV 中最常见的神经网络是 CNN。但是,卷积到底是什么?这是一种流行的图像处理方法(例如,Sobel 边缘检测)。DL 的好处是显而易见的,对最新技术的回顾超出了本文的范围。深度学习不是解决所有问题的灵丹妙药;在一些问题和应用中,更传统的 CV 算法更合适。
02
传统计算机视觉的优势
传统的基于特征的方法(例如下面列出的方法)有助于提高 CV 任务的性能:
-
尺度不变特征变换 (SIFT)。
-
加速稳健特征 (SURF)
-
加速分段测试 (FAST) 的功能
-
霍夫变换
-
几何哈希
像SIFT和SURF这样的特征描述符通常与传统的机器学习分类算法如支持向量机和KNearest Neighbors相结合来解决CV问题。
传统的 CV 技术通常可以比 DL 更有效地解决问题,并且代码行数更少,因此 DL 有时有点矫枉过正。SIFT 甚至简单的颜色阈值和像素计数算法都不是类特定的;他们处理任何图像。另一方面,从深度神经网络学习的特征是特定于您的训练数据集的,如果构建不当,则不太可能对训练集以外的图像表现良好。
因此,图像拼接/3D 网格重建经常使用 SIFT 和其他不需要特定类别知识的算法来执行。大型数据集可用于完成这些任务。然而,这需要大量的研究,这对于封闭的应用程序是不可行的。在决定为特定的 CV 应用程序采取哪条路径时,请使用常识。
例如,在流水线传送带上,对两个产品类别进行分类,一个使用红色油漆,另一个使用蓝色油漆。如果可以收集足够的数据进行训练,深度神经网络就会起作用。另一方面,简单的颜色阈值处理可以达到相同的结果。可以使用更简单、更快速的方法来解决一些问题。
如果 DNN 在训练数据之外表现不佳会怎样?如果训练数据集太小,机器可能会过度拟合数据,无法泛化到手头的任务。由于 DNN 具有数百万个相互关系复杂的参数,因此手动调整模型的参数太困难了。DL模型以这种方式被批评为黑匣子。传统的 CV 是完全透明的,允许您评估您的解决方案是否适用于训练集之外。如果出现任何问题,可以调整参数以在更广泛的图像范围内表现良好。
当问题可以简化以部署在低成本微控制器上或通过突出数据中的某些特征、扩充数据或协助数据集注释来限制深度学习技术的问题时,今天使用传统技术。我们将在本文后面介绍各种图像转换技术,以帮助您改进神经网络训练。
最后,CV 中许多更难的问题,如机器人、增强现实、自动全景拼接、虚拟现实、3D 建模、运动估计、视频稳定、运动捕捉、视频处理和场景理解,都无法通过深度学习轻松解决,但受益于使用“传统”技术的解决方案。
文章参考:《Deep Learning Vs. Traditional Computer Vision – A Comparison》
更多精彩内容请关注公众号:BFT机器人
本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。