上期我们一起学了CNN中四种常用的卷积操作,如下链接: CNN中常用的四种卷积详解 从这期开始,我们开始步入目标检测领域的大门,开始逐步一层一层的揭开目标检测的面纱。路要一步一步的走,字得一个一个的码。步子不能跨太大,太大容易那个啥,字也不能码太多,太多也不好消化。
目标检测是计算机视觉和数字图像处理的一个热门方向,广泛应用于机器人导航、智能视频监控、工业检测、航空航天等诸多领域,通过计算机视觉减少对人力资本的消耗,具有重要的现实意义。
因此,目标检测也就成为了近年来理论和应用的研究热点,它是图像处理和计算机视觉学科的重要分支,也是智能监控系统的核心部分,同时目标检测也是泛身份识别领域的一个基础性的算法,对后续的人脸识别、步态识别、人群计数、实例分割等任务起着至关重要的作用。
由于深度学习的广泛运用,目标检测算法得到了较为快速的发展,所以接下来的一段时间我们将和大家一起一步一步的深入了解目标检测算法的原理和应用。 在学习深度学习方面的目标检测之前,先了解下传统的目标检测的思路,这有助于我们后面对深度学习目标检测算法的理解。
传统目标检测方法
目标检测就是找出图像中所感兴趣的物体,包括物体定位和物体分类两个子任务,即不仅需要对物体进行分类,还要检测出物体的位置。通常分为单目标检测和多目标检测,如下图:
上面的检测通常分三步走:
- 选取感兴趣区域,这一步用来选取可能包含物体的区域;
- 对可能包含物体的区域进行特征提取;
- 对提取的特征进行检测分类。
滑动窗口 传统机器学习算法
传统的目标检测算法通常用滑动窗口的方式,即一个窗口,在检测图片上滑动进行依次选取感兴趣区域,如下图:
分别对滑动的每个窗口进行特征提取,比如SIFT,HOG等特征提取算法进行提取特征,之后对提取的特征利用机器学习算法,比如支持向量机等进行分类,最终得到该窗口是否包含某一类物体。如下图:
但是,我们知道,图片中的物体有大有小,尺度不同,所以用一个固定的窗口进行滑动,当物体较小的时候,会出现该窗口可能会框住很多的背景;而当物体较大的时候,会出现框住物体的局部,进而对该框的物体进行提取特征,进行分类的时候可能会产生误分类,或者出现多个正确识别的结果。
所以,在设计窗口大小的时候,得设计各种尺寸的窗口,这样就会产生大量的计算,导致运行速度慢。
总的来说,传统的目标检测算法有以下三个缺点:
- 识别效果不够好,准确率不高
- 计算量比较大,运算速度慢
- 可能会产生多个正确识别的结果
滑动窗口 卷积神经网络CNN
后来卷积神经网络出现后,利用卷积层强大的特征提取能力,以及神经网络的分类能力,对准确率进行了一定的提升。但是物体候选框还是滑动窗口的方法,所以对识别的速度并没有提升效果,甚至有些降低。
也就是说滑动窗口 CNN的方法是在传统机器学习算法上,利用卷积神经网络的卷积层对滑动窗口选取的候选框进行特征提取,来取代传统算法中SIFT,HOG等提取特征算法。利用CNN后面接的全连接层的神经网络对提取的特征进行分类,这样对准确率进行了一定的提升。如下图:
准确率是有了一定的提升,那么速度该如何提升呢?下期再跟大家一起学习。
至此,这期,我们已经简单的了解了传统目标检测算法的思路以及缺点和改进方向,有了这个传统目标检测算法的大致思路之后,后面基于深度学习的目标检测基本上都是对传统目标检测的缺点进行一个优化,后面我们慢慢学,多谢大家的支持。