深度学习时代,传统 cv 是否还有用武之地?

共 3035字,需浏览 7分钟

 ·

2023-03-08 07:45

点击下方卡片,关注“新机器视觉”公众号

重磅干货,第一时间送达

来源:CV51
深度学习模型不断朝着小型化,小样本的趋势发展,硬件成本也在不断降低,那么,如果深度学习能够解决训练迭代时长以及硬件成本问题的话,传统cv是不是只能做一些简单的图像预处理工作了?那些很棒的机器学习算法(例如svm这种)是不是也就此被时代所淘汰?传统cv的优势到底在哪?还是说深度学习就是传统CV的未来?

以下回答转自自:https://www.zhihu.com/question/522409323/answer/2424409952,作者谢凌曦。声明:所有内容均只代表作者本人观点,均有可能被推翻,二次转载务必连同声明一起转载。

我希望能够通过这个回答,说明几个概念之间的关系:包括计算机视觉(CV)、传统CV算法、机器学习、深度学习,以及其他可能涉及的概念。

先说最基础的概念,计算机视觉。根据维基百科的定义:

计算机视觉(Computer vision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。

其中最后一句话,我想稍微做些扩展:计算机视觉的范畴,不仅是进行“图像处理”,还可以用于图像中的“信息抽取”,甚至是图像内容的“创造和生成”。确实,最初的计算机视觉算法,一大部分都关注于图像处理,比如将光学传感器获取的信号转换为人类容易理解的图像;时至今日,寻常场景中的图像处理算法已经非常成熟,所以计算机视觉界的研究兴趣更多地集中在高级语义理解(如分类、检测、分割等问题)甚至是更加困难的图像生成问题上。

如果题主所说的“传统CV算法”指的是这些已经被well-studied,甚至固化为硬件的算法,那么机器学习甚至深度学习(深度学习是机器学习的一个子集)就没有什么用武之地。但是题主举了个SVM的例子,于是我判断,题主也许并没有搞清楚机器学习和传统方法的分界在什么地方,以及为什么计算机视觉领域(甚至整个人工智能领域)需要引入机器学习方法来解决问题。

所有人工智能(包括计算机视觉)问题,大致都可以描述为这样一个数学问题:给定输入  和输出  ,寻找一个合适的函数  ,使得 能够最好地被满足。有些时候,这个函数很容易找出来。例如一张输入输入和输出  是一些关键点在两个不同观测视角下的坐标,而已知这两个视角之间满足某种仿射变换,那么就可以通过将定义为通用仿射变换,随后以这些采样到的关键点作为条件,求解仿射变换中的参数。在这个简单的理论基础上,发展出了若干图像配准算法,例如著名的张正友标定法[1],至今仍然被广泛应用于实际场景。这就是传统CV算法的典型案例。

那么为什么要引入机器学习呢?因为在许多情况下,这个的形式很难被手工定义出来。此时为了解决问题,人们只能进行各种假设,比如  可以通过某种函数形式 去逼近。举一个例子:我们要把一张RGB图像转化为一张灰度图像,但是没有任何方法能够建立在严格的数学证明上。此时,我们只能根据经验定义一个近似的线性函数:,然后根据经验和少量数据来确定其中的系数值  ——如今常用的一组系数是。注意,没有人证明这个线性函数一定是最优的,但是它能够在绝大部分情况下工作得很好,于是这个线性函数就一直沿用下来,成为CV通用的标准。

再说一个更复杂的例子:如果我们要从一张RGB图像 中识别它的语义标签 ,那么至少在当前的科技水平下,我们甚至连应该长什么样都不知道。于是人们采用了统计方法,从图像中抽取若干特征,然后使用来做近似,其中是可以学习的参数。由于特征的维度可能很高,因此最好能有大量的训练样本用于确定参数的值。为了降低这些依赖,人们设计了许多方法,其中题主提到的SVM就是一种基于松弛损失函数的方法,它能够很好地利用有限样本处理高维数据,减少模型的结构风险[2]以及过拟合等副作用。

最后是深度学习。上述机器学习方法,对于特征的设计提出了很高的要求。在计算机视觉领域,本世纪的前10年,见证了大量手工设计的图像特征[3][4],而这些方法在2011年前后遇到了不小的瓶颈。深度学习的思想,是采用更加自由的方式来定义 ,使得它(在数据量充足的情况下)更容易适应不同的问题。倒退10-15年,我们很难想象,一套相同的模型(卷积神经网络或者transformer)能够适应各类不同的视觉问题(如识别类、生成类、恢复类等)。这些都归功于深度学习:它提供了更大的特征空间,并且配套了一系列方法来进行复杂的优化。最后要强调的是,深度学习是机器学习的一个子集,最好不要把两者作为互斥的概念来讨论问题。

如果理解这些内容,我们就能够讨论题面了。传统CV算法和统计学习方法各有特点:前者应用范围受限,但是对数据依赖度低、求解比较稳定;而后者则恰好相反。在实际应用中需要采用什么方法,要看具体场景的特点。当然,不仅是问题本身,容错率、硬件配置、数据的数量和质量等,都会影响算法的选择;而根据场景选择方案,判断什么能做什么不能做,也是AI算法开发人员最需要的技能:这项技能比调参更难,收益也更大得多

最后我要说,CV是永恒的问题,传统方法是固化下来的方法,而统计学习是暂时性的解决方案,是当前技术水平下的无奈之举——我们很难相信,这些方法会是CV或者AI的最终解决方案。归根结底,如果一个问题能够用传统方法来解决,说明人类对它的理解已经足够深入,因而这些传统方法值得被长期沿用下去(除非某些假设被推翻或者出于计算量等考虑需要做近似)。也就是说,传统方法大概率不会被替代,而现行的统计学习方法必须被替代,只是不知道下次革命会发生在什么时候。

参考

[1]Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on pattern analysis and machine intelligence, 2000, 22(11): 1330-1334.

[2]Vapnik V. The nature of statistical learning theory[M]. Springer science & business media, 1999.

[3]Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110.

[4]Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//2005 IEEE computer society conference on computer vision and pattern recognition (CVPR'05). Ieee, 2005, 1: 886-893.


本文仅做学术分享,如有侵权,请联系删文。

—THE END—

浏览 56
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报