机器学习个人学习总结-目标检测篇
机器学习个人学习总结-目标检测篇
摘要:
如今计算机视觉技术在工业和城市安防等领域通过不断的发展,其能力不断得到挖掘,不断取代人工,能够更加高效的完成一些检测任务。其中目标检测作为其中一门技术十分适用于工业生产中的质量检测这一工作,在物体检测相关场合发挥了重大的作用,随着计算机计算能力的不断提升以及更加高效的检测算法不断提出并应用于实际场合。目标检测技术从最开始的基于简单低维特征分割技术,不断像更加高维的特征提取,图像融合等方法再通过svm进行分类分割方向发展,再后来跨越到基于深度学习的深层网络,实现自动提取图像特征,实现端到端的预测网络,经过不断的发展,如今的目标检测技术,已经完全适用于绝大多数场合。
学习概述:
寒假期间,以缸体内壁检测为基础任务,调研了不同检测模型的检测能力。最开始的简单图像阈值分割技术应用于简单场景尚有一战之力,但由于工业领域往往存在高噪声,具有目标信息弱等难以增强目标信息的特点,通过阈值或者简单的梯度信息,难以将其目标与背景完整的分割出,这种提取简单特征而不是高级特征的方法,越来越难应用于目标检测领域。随着卷积神经网络的提出,给人们提供了一种高效的提取高维图像信息的方法,CNN再结合深层次网络结构,赋予了其强大的学习提取特征,总结特征能力,与传统方法不同,可以通过学习时优化器不断调整参数,让网络更加有目标性的自动提取适用于该任务的特征信息。深度学习的发展也就在近十年突飞猛进,一种新型的网络提出后,之后会有成千上百的研究者对其进行研究和改进,不断有新的网络通过其合理的设计不断提高检测的准确率和速度。使用深度学习进行目标检测任务越来越成为当今的主流。
任务背景:
想要解决一个任务,必须明确的任务的难点是什么,才能选择合适的方法,在前人的基础上,结合自己的研究,创建一个适用于缸体缺陷检测的模型。经过一段时间使用传统图像处理方法的研究探索之后,个人总结了一些缸体检测的难点,如下:
-
缺陷类型多
具有缩孔、砂眼、气孔、麻点、刀痕、碰伤、漏加工共计7种缺陷,在进行分类任务时,有些缺陷样本由于数量占比过少,难以进行正确分类。
-
缺陷尺寸具有多尺度
要求检测的缺陷最小直径为0.5mm,而样本具有尺寸高达几厘米的缺陷目标,如何设计一个网络同时适用于大目标和小目标的检测,是一个需要研究的问题。
-
缺陷尺寸过小
缺陷尺寸最低0.5mm,以目前的像素分辨率0.02mm/px,约为25px像素宽度,而整张图像尺寸为2048×2448,占比为1/100,以目前主流小目标判定方式,绝对尺寸小于32×32px,亦或是相对尺寸小于图像尺寸的1/10,缸体小缺陷都属于典型的小目标检测,小目标由于其尺寸小,含有更少的特征信息,难以进行正确分类。而且通过卷积神经网络不断降采样,最后特征层的感受野远远大于小目标的尺寸,这会导致预测位置的偏差严重。
-
噪声干扰
我主要将噪声分为两类,一是由于缸体内壁表面本身就具有很多自然纹理和图案,如铸造网纹,有些网纹由于拍摄光源角度的问题,和划痕缺陷很类似,影响检测,第二种噪声是缸体生产过程中,经过清洗之后在缸体内壁留存大量清洗液水渍,影响检测,可能会造成误检。
方法探索:
1.人工提取特征通过滑窗搜索的SVM预测方法
在传统图像处理领域如LBP算子 HOG算子等都是很好的可以反应图像局部梯度特征信息的一种图像增强方式,LBP算子具有很好的灰度不变性和旋转不变性的显著优点,HOG算子可以很好反映边缘信息,因此可以描述图像局部的形状信息,同时对局部区域进行归一化直方图,还可以部分抵消光照对图像照成的影响。
还有很多算子可以很好的反映目标信息,通过直方图进行提取,或者直接输入到svm中进行预测都是一种不错的方法。但随着噪声和分类问题的难度等影响,该种简单提取低维特征信息的方法,无法完全表达出目标蕴含的信息,难以做到分类准确,同时目标检测的位置无法准确获得,也就是无法解决定位问题,通过滑窗方法,对滑窗的尺寸步长等设置很难调试,且其速度慢,难以适用于真实的工业场景。
2.RCNN和FastRCNN
在之前也有深度学习方法应用于目标检测,为OverFeat,其已经完成了计算机视觉的三个阶段的任务:分类、定位、检测。通过CNN网络提取特征,还能实现ConvNet中多尺度滑动窗口方法。但是滑窗式的方法仍然需要耗费大量的时间,其速度令人堪忧。RCNN的提出是第一个可以“真正可以工业级应用的解决方案”。其不像之前各种模型方法的暴力滑窗搜索,而是创建区域生成网络(RPN),有选择的提取建议框,实现初步定位工作,可以说改变了目标检测领域的主要研究思路,紧随其后的系列文章:Fast-RCNN ,Faster-RCNN都沿袭R-CNN的思路。
RCNN主要步骤如下:
1.首先进行SS(selective search)抽取2000个推荐区域
2.通过缩放,将2000个候选区域ROI,调整为同一个尺寸
3.通过特征提取网络CNN,提取高维特征信息
4.对特征提取后的矩阵通过SVM进行分类,计算得分
5.进行非极大抑制,去除多于推荐框
6.对推荐框进行微调,获得预测框
RCNN虽然对比overfeat有了很大的进步,但是其仍然具有很多缺点:
●训练阶段多:步骤繁琐: 微调网络+训练SVM+训练边框回归器。
●占用磁盘空间大:上面提到的特征存于磁盘中,每个图片会有2000个候选区域
●训练耗时
●处理速度慢
这些原因导致RCNN在实际场景中无法得到很好的运用。之后提出的FastRCNN主要对RCNN的特征提取网络和预测网络进行了很大的修改,之前经过SS算法之后,对多达2000个推荐框进行特征提取十分消耗时间,FastRCNN直接生成一个共享特征层,只需要提取依次特征,各个推荐框共享一个特征层,只需要在其上截取,进行后续分类定位任务即可,且弃用了SVM,将微调网络和分类网络集合成一个网络,便于训练,提高预测速度,可以说FastRCNN相比RCNN有了很大的进步,这样就能应用于工业场景了吗,答案是不行的。FastRCNN的后半部分预测可以达到单张零点几秒的速度,但是前半部分SS算法仍然需要消耗大量的硬件资源和时间成本,一张标准图片需要用掉2s的时间,这个耗时意味着其无法应用于实时检测领域。
3.FasterRCNN-实时检测网络
要想达到实时检测,必须解决SS,采用新的区域生成网络,FasterRCNN创新的提出了生成Anchor box的区域生成网络。

浙公网安备 33010602011771号