1 传统CV和深度学习方法的比较-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

传统CV和深度学习方法的比较

新机器视觉 来源:新机器视觉 作者:新机器视觉 2022-11-29 17:09 次阅读

摘要:

深度学习推动了数字图像处理领域的极限。但是,这并不是说传统计算机视觉技术已经过时了。本文将分析每种方法的优缺点。本文的目的是促进有关是否应保留经典计算机视觉技术知识的讨论。本文还将探讨如何将计算机视觉的两个方面结合起来。评论了几种最近的混合方法论,这些方法论证明了改善计算机视觉性能和解决不适合深度学习的问题的能力。例如,将传统的计算机视觉技术与深度学习相结合在新兴领域(例如全景视觉和3D视觉)中很流行,而对于这些领域,深度学习模型尚未完全优化。

1. 介绍

深度学习被使用在数字图像处理中,解决困难问题,比如图像着色,分类,分割和检测。CNN使用大量数据和大量的计算资源来实现预测的性能,一些被认为无法解决的问题实现了超过人类的精度的解决方案。

是不是深度学习就可以解决所有问题呢?是不是它就比传统计算机视觉方法好呢?但是深度学习无法解决所有的问题,在一些问题上,具备全部特征的传统技术仍是更好的方案。此外,深度学习可以和传统算法结合,以克服深度学习带来的计算力,时间,特点,输入的质量等方面的挑战。

这篇论文会提供对比在DL统治计算机视觉之前的传统方法和深度学习的比较。这篇论文会总结传统算法,一些可以作为DL有力的补集,去完成DL不能解决的问题。这篇论文然后会总结一些最近的结合DL和CV的研究,如3D感知,或者说3D点云物体定位,物体检测,语义分割等。最后,使得3D深度学习获得在2D上一样成功的可能发展方向将会被讨论。

2. DL和传统计算机视觉的比较

2.1 什么是深度学习?

要获得对DL的深刻理解,我们需要去考虑描述分析和预测分析。

描述分析:涉及到定义了一个可理解的数学模型,模型描述了我们希望观察到的现象。模型包括了对过程收集数据,形成对模式(pattern)的假设,通过比较描述模型的结果和真实的结果验证假设。但是总是有风险,因为对某些复杂的,隐藏或者非直觉性的理解不到位,科学家和工程师会忽略了某些变量,使其没有包含进模型中。

预测分析:包括发现一些规则,这些规则支持一种现象,形成一个预测模型可以最小化真实结果和预测结果之间的误差,当考虑到所有可能的影响因素时。

2.2 深度学习的优势

DL的快速发展和设备能力(包括计算能力,内存容量,功率消耗,图像传感器分辨率和光学)的提高使得基于视觉的应用快速传播。和传统CV比较,DL有更好的精度,并且需要更少的专家分析和调参,同时可以利用如今容易获得的大量的视频数据。同时,DL有很好的灵活性,因为CNN模型和框架可以使用新的自定义数据重新训练,相比较于更局限领域的传统的图像处理技术。

在DL出现前,传统的CV方法时通过特征提取,比如目标检测时,通过对图像的特征描述向量检索,如果很大一部分特征时重复的,则一副图像就分类含有一种特殊的物体。传统CV的难点在于必须选择哪一种特征时最重要的在每张图片中。这很大程度上依赖于工程师的判断和长时间的调试的误差处理,来决定哪一个特征可以区分不同类型的物体。同时,特征的定义也需要工程师调参得到。

DL引入了端对端(end-to-end)学习,即机器只是获得了已经被标记上物体类型的图像数据集。因此,DL模型再给定数据上被训练,其中神经网络得以找到背后的模式,自动找到最具有描述性和明显的特征。传统的提取手动特征的专业知识已经被通过迭代在DL架构的知识和专业性代替。如下图所示。

c21fe0b0-6d8f-11ed-8abf-dac502259ad0.png

CNN使用核,也叫做滤波器,在整幅图中检测特征。CNN空间上在一个给定图片上卷积这个核,去确认要检测的特征是否存在。卷积操作通过计算滤波器和给定滤波器覆盖区域的点积实现。

为了促进权重的学习,卷积层输出相加添加一个偏置项,然后输入到一个非线性激活函数,如Sigmoid,TanH,ReLU。基于数据和不同的分类任务,激活函数选择有所不同。

为了加速训练过程和减少内存消耗,卷积层后面经常添加池化层来去除输入特征的多余(Redundancy)。如图2,一般来说,深层神经网络也许会有多对卷积层和池化层。最后,一个全连接层展开之前层体积,为一个特征向量,然后输出层计算得分(置信度或者可能性。)。输出结果一个回归函数,比如softMax,其映射所有值到一个向量,其总和为1。

c2433aec-6d8f-11ed-8abf-dac502259ad0.png

但是DL仍然是一个CV的工具。最常见的neural networkCNN中的卷积,就是在图像处理技术中广泛使用的技术。

2.3 传统机器学习的优势

传统的机器学习分类算法使用特征描述子,再结合SVM,KNN等机器学习分类算法解决CV问题。

DL有时候矫枉过正,传统算法可以解决一个问题以更简单,更少的代码。传统的算法很简单,只是颜色阈值或者像素技术,但是他们可以非常通用,在各种图像上表现相同。可以对比的是,DL学习到的特征只能基于训练集,不能再除训练集以外的图像中表现很好。所以,SIFT等算法经常用在图像拼接和3D网格重建中。还有例子,比如分别两个不同颜色的物体,DL需要构造训练集,然而简单的颜色阈值就可以实现。一些问题可以通过简单和更快的技术,而不是DL。

如果一个DNN在训练集以外表现很差?如果训练集很小,机器可能会过拟合训练数据,不能通用化这个任务。在这种情况时,DL模型被批评为黑匣子。传统CV有着完全的透明性,可以判断算法是否在训练环境外。工程师具备对于问题的见解,可以转换算法,如果失败,可以调整参数在更大的图片集中表现出更好的参数。

如今,传统算法可以被使用,当问题被简化到可以布置到低消耗的控制器或者通过加强特征限制问题对于DL的使用。之后我们会讨论一些传统的技术,如何使用来提高网络训练。最后,还有很多问题在CV中:机器人技术 ,增强现实,自动全景拼接,虚拟现实,3D建模,运动估计,视频稳像,运动捕捉,视频处理,场景理解,这些问题无法使用DL轻松的解决,但是可以从传统CV中获得帮助。

3.传统计算机视觉的挑战。

3.1 混合手动调整方法和DL获得更好的表现

这里在传统CV和基于学习的方法之间有清晰的权衡。传统计算机视觉是完善的,透明的,对于表现和功率效率优化过的,尽管DL以大数量计算资源的代价提供更好的精度和通用性。

混合方法结合传统CV和深度学习方法,提供了两种方法的优点。这种结合在需要快速处理的高性能系统中很实用。

机器学习和深度网络的融合已经变得非常流行,因为这样可以产生更好的模型。混合视觉处理实施可以引入性能优点,可以实现在多累积操作中130X-1000X倍的减少,大约10X的帧率的提高,想比较于单纯的DL。进一步的说,这种混合系统只需要一般的内存容量,只需要更低的CPU资源。

3.2 克服DL的挑战

DL也存在挑战。最新的DL方法可以实现更好的精度,但是这种提升需要以百万次更多的数学操作和对于处理能力的要求增加。

使用DL的视觉处理结果也依靠于图像分辨率。在物体分类实现足够的性能,需要一个高分辨率的图像和视频,也导致了需要处理的数据增加。图像分辨率对于远处物体检测和分类的一些应用非常重要。使用sift或者光流的帧减少技术(frame reduction),可以首先识别感兴趣区域,减少训练需要的处理时间和数据量。

DL需要大数据。当大的数据集或者高的计算能力不可获得时,传统的方法可以参与进来。训练DNN需要很长的时间。需要很多次迭代,不同的参数获得的误差完全不一样。最常见的技术,用于减小训练时间的是迁移学习。传统的CV技术,比如离散傅里叶变换,证明可以用来使用加速卷积。

但是领域特殊更简单的任务一般不需要太多数据。在预处理过程中,传统CV方法用来增加训练样本。预处理步骤中可以变换数据,使得关系或者模式,在训练模型前能够更简单的描述。数据增强是一种常见的预处理任务,用于当训练数据很少的时候,包括实现随机旋转,位移,剪切,用来增加训练集。

3.3 利用边缘计算

如果在边缘运行算法和神经网络推理,与基于云的方法比较,可以较少延迟,成本,云储存和处理需求及带宽需求。通过避免在网络上传输敏感或者可识别的数据,边缘计算同样可以满足私密和安全要求。

混合或者组合的方法,涉及传统CV和DL利用了边缘的异构计算能力。一种异构的计算架构,由CPU组合和微控制器核心处理器组成。DSPfpgaAI加速设备可以分配不同的工作负载,实现最有效率的计算引擎。测试效果显示,挡在DSP和CPU上面执行DL推理时,对象检测的延迟减小了10倍。

多种混合CV方法已经证明了在边缘应用的优势。比如,脸部表情识别有一种新的特征损失,它添加了人工特征到训练的过程中,这是尝试去减小人工特征和学习得到特征之间的差别。使用混合的方法同样显示了其利用来自其它传感器数据的能力的优势。

3.4 不适合DL的问题

机器人,增强现实,自动全景拼接,虚拟现实,3D建模,运动抑制,视频稳定,运动捕捉,视频处理和场景理解,这些领域不能直接使用DL的方法,但是需要结合传统技术来解决。

DL方法在解决闭环(close end)问题时表现优秀,这些问题中潜在的信号可以被映射到一个限制的类别中,同时有足够的可以获得的数据,训练集和测试集的数量十分相似。但是当偏离以上假设时,就会导致问题,所以明确哪些问题是DL不擅长解决十分重要的。DL必须要得到其它技术的支持。

其中一个问题时DL算法学习视觉关系时局限的能力。比如识别一幅图像中的多个物体是否时同样或者不同的。一些文献证明了包括注意力和感知组是实现这种抽象视觉推理的关键计算组成。

同样的,ML模型很难处理具有先验的模型,意味着不是所有都可以从学习中获得,所以一些先验比如植入到模型中。比如3D视觉具有强的先验才能有效,比如基于图像的3D建模要求光滑性,轮廓和照明信息

3.5 3D视觉

3D视觉系统已经变得更容易接触,因为3D卷积神经网络的极大发展。这个新出现的领域称为几何深度数学(Multiple Deep Learning),应用方向包括:视频分类,计算图形学,视觉和机器人技术。

c26fa834-6d8f-11ed-8abf-dac502259ad0.png

输入的尺寸在内存上而言比传统RGB图像大得多,kernel卷积计算在3D空间中进行。因此,在分辨率上计算复杂度立方增长。3D CV难度在于引入了更多维度,带来了更多不确定性,比如离散采样,噪声扫描,遮挡和混乱的场景。

c297e4d4-6d8f-11ed-8abf-dac502259ad0.png

基于FFT的方法可以优化3D CNN可以减少计算量,但是以增加的内存需要为代价。WMFA(Winograd Minimal Filtering Algortihm)实现了两倍的加速,相比较于cuDNN,并且没有增加内存。

几何深度学习处理深度学习技术的到3D数据的扩展。3D数据可以分为欧几里得和非欧几里得。

3D欧几里得有底层的网格结构,这允许全局参数化和像2D一样有常见的坐标系统。这使得2D深度学习样式可以同样使用在3D数据中,所以欧几里得更适合分析简单的网格物体,如椅子,平面。

3D非欧几里得数据没有网格化结构,其中没有全局参数化。因此,扩展经典DL技术对于这种表示,是一种挑战的任务,仅仅最近被PointNet实现。

连续的形状信息,这种有用的信息总是在转换到体素表示时损失掉。

3.6 SLAM

视觉SLAM是SLAM的一个子集,其中视觉系统替代雷达作为组成场景地标定位。视觉SLAM具有摄影测量的优势,丰富视觉数据,低成本,轻便和低能源消耗,没有后处理中相关的繁重的计算工作。视觉SLAM包括环境感知,数据匹配,运动估计,场景更新和新地标定位。

建立一个视觉物体如何在不同的条件下出现,如3D旋转,尺度变换,光照变化,从那些代表的变换,会使用较强形式的迁移学习去实现零击或一击(zero-shot one-shot)学习。特征提取和数据表示方法对于减少ML训练样本是有用的。

一种两步方法常常使用在基于图像的定位中,场景识别后做姿态估计。场景识别一般是计算每一幅图像的全局描述子,然后聚类局部描述子,使用bag of words的方法。然后每一幅的图像全局描述子,在词袋中搜索,最匹配的全局描述子提供了一个查询图像的大致的定位在参考地图中。在姿态估计中,查询图像精确的姿态通过一些算法,比如PnP和几何验证算法,实现更精确的计算。

基于图像的场景识别很大程度上依赖于提取图像特征描述子的能力。不幸的是,对于LiDAR扫描中,没有一个类似SIFT算法提取局部描述子。

另外一个方法,从RGBD数据中构建了多模态特征,而不是深度处理。对于深度处理部分,他们采用了有名的基于表面向量的colouration方法,因为这种方法已经被证明是有效和鲁棒的。另外一个方法是利用传统技术,如Force Histogram Decomposition,一种基于图的等级描述子,可以使得在结构子部分的空间关键和形状信息被特征化。

3.7 360度相机

360相机(也称为全向或球形或全景相机)是一种在水平面中具有360度视场,或者具有(大约)覆盖整个球体的视野的相机。全向摄像机在需要大视野覆盖的机器人等应用中很重要。360摄像机可以代替多台单眼摄像机,并消除盲点,这显然对全向无人地面飞行器(UGV)和无人飞行器(UAV)有利。由于球形摄像机的成像特性,每个图像都可以捕获场景的360°全景图,从而消除了对可用转向选择的限制。球形图像的主要挑战之一是由于超广角鱼眼镜头造成的镜筒变形,这使传统的人类视觉启发方法(例如车道检测和轨迹跟踪)的实现变得复杂。通常需要额外的预处理步骤,例如事先校准。

全景拼接是另外一个开放的研究问题。实时拼接方法使用一组可变形的网格和最终图像,并使用鲁棒的像素着色器组合输入。另一种方法将几何推理(线和消失点)提供的准确性与DL技术(边缘和法线贴图)实现的更高水平的数据抽象和模式识别相结合,以提取结构并生成室内场景的布局假设。在稀疏结构的场景中,基于特征的图像对齐方法通常会因缺少独特的图像特征而失败。相反,可以应用直接图像对准方法,例如基于相位相关的方法。

3.8 数据集标记和加强

有很多对于CV和DL的结合的争论,最后总结到结论是我们需要重新评估我们从基于规则和数据驱动的方法。传统CV中,我们知道操作的意义,但是DL导致我们需要的只是更多的数据。这也许是进步,也可能是退步。

最基础的问题是,目前的研究中,对于特殊的应用中的先进的算法或者模型,没有更多足够的数据。将自定义的数据集和DL模型结合在一起回事未来需要研究论文的主题。所以许多研究者的输出不仅包括DL算法,也包括数据集或者收集数据的方法。数据标记会是DL工作流程的瓶颈,因为这需要大量的人工标记。主要是在语义分割应用中,每个像素都需要精确的标记。这里也有很多有用的工具用于半自动化这种过程。

最简单和最常用的方法来克服限制的数据集,减小模型的过拟合是通过人工扩大数据集,方法是使用保持标记的转换(label-preserving transformations)。比如使用裁剪,尺度变换,旋转图像来人工生成数据。数据增强过程需要非常少的计算并且可以在DL训练流水线内实现,从而不需要将转换后的图像存储在磁盘上。用于数据集扩充的传统算法方法包括主成分分析(PCA),添加噪声,在特征空间中的样本之间进行内插或外推以及根据分割注释对对象周围的视觉环境进行建模。

结论

只知道CV的DL方法,会很大程度上限制CV工程师的解决方案类型。学习DL之前的CV技术,可以提供一些直觉方面的认识和掌握一些有用的工具。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机视觉
    +关注

    关注

    8

    文章

    1698

    浏览量

    45970
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132557
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121109

原文标题:传统CV和深度学习方法的比较

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    的是Haar特征人脸检测,此外OpenCV中还集成了深度学习方法来实现人脸检测。 【参考资料】 使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度
    发表于 11-15 17:58

    NPU在深度学习中的应用

    设计的硬件加速器,它在深度学习中的应用日益广泛。 1. NPU的基本概念 NPU是一种专门针对深度学习算法优化的处理器,它与传统的CPU和G
    的头像 发表于 11-14 15:17 497次阅读

    Pytorch深度学习训练的方法

    掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练。
    的头像 发表于 10-28 14:05 192次阅读
    Pytorch<b class='flag-5'>深度</b><b class='flag-5'>学习</b>训练的<b class='flag-5'>方法</b>

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 642次阅读

    基于Python的深度学习人脸识别方法

    基于Python的深度学习人脸识别方法是一个涉及多个技术领域的复杂话题,包括计算机视觉、深度学习、以及图像处理等。在这里,我将概述一个基本的
    的头像 发表于 07-14 11:52 1249次阅读

    深度学习中的时间序列分类方法

    的发展,基于深度学习的TSC方法逐渐展现出其强大的自动特征提取和分类能力。本文将从多个角度对深度学习在时间序列分类中的应用进行综述,探讨常用
    的头像 发表于 07-09 15:54 871次阅读

    深度学习中的无监督学习方法综述

    应用中往往难以实现。因此,无监督学习深度学习中扮演着越来越重要的角色。本文旨在综述深度学习中的无监督
    的头像 发表于 07-09 10:50 670次阅读

    基于AI深度学习的缺陷检测系统

    在工业生产中,缺陷检测是确保产品质量的关键环节。传统的人工检测方法不仅效率低下,且易受人为因素影响,导致误检和漏检问题频发。随着人工智能技术的飞速发展,特别是深度学习技术的崛起,基于A
    的头像 发表于 07-08 10:30 1357次阅读

    深度学习与nlp的区别在哪

    深度学习和自然语言处理(NLP)是计算机科学领域中两个非常重要的研究方向。它们之间既有联系,也有区别。本文将介绍深度学习与NLP的区别。 深度
    的头像 发表于 07-05 09:47 907次阅读

    深度学习的基本原理与核心算法

    随着大数据时代的到来,传统机器学习方法在处理复杂模式上的局限性日益凸显。深度学习(Deep Learning)作为一种新兴的人工智能技术,以其强大的非线性表达能力和自
    的头像 发表于 07-04 11:44 1972次阅读

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的一个重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度
    的头像 发表于 07-02 14:04 949次阅读

    深度学习的模型优化与调试方法

    深度学习模型在训练过程中,往往会遇到各种问题和挑战,如过拟合、欠拟合、梯度消失或爆炸等。因此,对深度学习模型进行优化与调试是确保其性能优越的关键步骤。本文将从数据预处理、模型设计、超参
    的头像 发表于 07-01 11:41 796次阅读

    深度学习传统机器学习的对比

    在人工智能的浪潮中,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器学习的范畴,但
    的头像 发表于 07-01 11:40 1322次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度
    发表于 04-23 17:18 1282次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    请问初学者要怎么快速掌握FPGA的学习方法?

    对于初学者 FPGA的编程语言是什么? FPGA芯片的基础结构也不了解. FPGA开发工具的名称和使用方法都不知道. 要学的很多啊,请问有什么自学的学习方法么?
    发表于 01-02 23:01