龙空技术网

传统图像算法和深度学习图像处理的区别

马士兵AI程序员 2714

前言:

此时兄弟们对“图像处理算法常用于哪些领域”大体比较关怀,兄弟们都需要分析一些“图像处理算法常用于哪些领域”的相关知识。那么小编同时在网上网罗了一些有关“图像处理算法常用于哪些领域””的相关知识,希望各位老铁们能喜欢,朋友们快快来学习一下吧!

前言

刚入门图像那会儿,我记得当时有个疑问就是传统图像处理算法和深度学习卷积神经网络的区别到底在哪,在这打算用比较通俗的解释和浅显的例子对这个问题做个解释,希望可以帮助到有需要的同学。

一、传统图像处理算法

说到传统图像算法,相信大家第一想到的可能是openCV这个开源库,但其实这个库里面目前已经引入了很多深度学习算法例如YOLO、SSD等,但对于刚使用openCV不久的同学们来说应该是对其中一些常用的API函数比较熟悉,例如:Sift、HOG、Harris等算法,这些都是比较常见的传统图像处理算法。当然传统图像算法也包括一些经典的机器学习算法例如支持向量机、主成分分析等。

传统图像算法在AlexNet出现之前是人们运用图像处理的主要手段,传统图像处理算法注重于“算法”二字,说白了就是重点通过计算来处理图像矩阵。

举例:

试卷上有一道几何题,小明需要判断题中的几何图形是个什么类型的角:

这时小明想到了用量角器来判断角度:

所以小明通过量角器最终判断出了是个直角。

那么如上的例子说明的就是个传统图像算法的过程。

二、深度学习卷积神经网络

我们常说的深度学习在计算机视觉中的运用常指DCNN(深度卷积神经网络),而DCNN的开端可以从2012年的AlexNet开始算起,后来快速在全球流行起来,后来陆续出现一系列计算机视觉的强力引擎(backbone)例如VGG、ResNet、darknet等网络框架。

DCNN处理图像逐渐在很多领域替代了传统图像的一些算法,用深度学习来处理图像注重于“学习”二字,机器开始用现成的东西去判断图像的信息,而不是单纯的通过算来判断图像了,当然在机器学习的过程中也要通过算来处理(例如convolution、inconvolution等算子),但我们在这里理解为学习更加直观。

于是机器有了判断图像中特征的能力(先学习再判断):

通常来说DCNN在图像中的运用过程分为四步:收集数据、定义模型、训练、预测

而在上图中的训练便是计算机进行学习的过程,计算机通过一张张贴了标签的图片数据知道了哪些图片对象是狗;哪些对象是猫,从而记住了这些对象的特征从而存储在自己的“知识库”中。

最后通过学习的知识库对不同的对象进行分类:

通俗举例解释

试卷上还是这道几何题,要小明需要判断题中的几何图形是什么类型的角:

而这次小明想到了课堂上学习过直角三角板的一个角是直角,而且小明一眼看到题目中需要判断的角和直角三角板的一个角很像,于是通过比对发现这两个角是一样的,所以推断出这是个直角。

其实这就是个深度学习图像处理的过程,在判断图形的过程中,小明甚至不需要知道直角是90度,也不需要计算测量,小明只需要跟已学过的知识进行比对配对,便可以判断出这是个什么角。而在此例子中,三角板便可以看作是数据集,直角三角板可以看作是标签,上图可以看作是一个预测分类过程。

总结

这两种算法都有自己的优劣,例如传统算法计算过程过于繁琐,运用的函数复杂性远高于DCNN,而DCNN深度学习需要丰富的数据集和超强的算力才足以支持其在现实中的运用。

而目前之所以深度学习图像处理的热度要比传统算法高很多是因为目前传统图像算法的进步速度要低于DCNN的进步速度,这让DCNN更受大公司们的青睐。

标签: #图像处理算法常用于哪些领域 #图像算法笔试题 #计算几何算法分析与设计的区别