基于深度学习的目标检测与识别算法
2021-11-18黄镜尘李光李敏
黄镜尘 李光 李敏
摘要:随着科技的不断发展,基于深度学习的目标检测与识别算法已经可以应用于各种不同的场景之中。本文从当下比较流行的两大类算法出发,分别从算法的原理介绍以及基本的工作流程进行介绍,将五类识别算法优缺点进行逐一分析。对今后的学术研究方便进行合适的选择。
关键词:目标检测;算法;目标识别
目标识别一般要求研究系统具有较高的识别准确度,这是进行识别最基本的要求,精确识别样品中的目标数量是根本所在,识别系统的一切基础功能包括其拓展都是建立在成功识别出一个个目标模型之上建立的。二是拥有较快的识别速度[1],由于现在的目标识别工作都有着大量的计算量,放在正常的PC设备上面处理这些数据集需要有很多繁琐的步骤需要一步步进行处理,更何况是把这些处理放在树莓派中进行,每一个部分都需要花费巨大的时间,因此在保证识别准确性和精准度的同时,能否拥有一定的识别速度就成为一个很重要的问题。三是目标识别技术的出现在有众多便利的同时,其安全性稳定性也是一个需要我们考虑的重要因素,如何保证系统可以长时间稳定运行也是该项目顺利完成的一个重要诉求。
1.R-CNN基本原理及工作流程
首先需要获取所要检测的图像,需要使用选择性搜寻,然后大约选择2000个上下的无关类的待选择的区域;把上一步选择的区域进行转化,转变为大小统一的图片类,并且会使用卷积神经网络模型将每一个区域的特征进行提取收集;将每一个候选区域借由使用特定类型的线性支持向量器分类器来进行分类,并且通过线性回归的方法,对获得的坐标边框进行精致修正。
2.Fast R-CNN
(1)原理介绍
Fast R-CNN相对于R-CNN的变化,关键在于是实现了对后者的加速处理,首先是学习了有关SPP Net的方法,成功研究提出了ROI池化层的简易版本,并且也实现了候选框的映射,正是这些改进让网络实现了反向传播的功能,在SPP训练层面来讲,也很好的攻克了其整体网络训练的一些难题。其次是关于多任务Loss层的变化,R-CNN是使用支持向量器進行多分类工作,而Fast R-CNN实现这一功能的却是逻辑回归模型[9],还有就是之前的使用边框回归也是让SmoothL1Loss进行代替。
(2) 基本工作流程
首先第一步工作同R-CNN相同,都是先需要获取一个待识别的对象, 接下来就是使用选择性搜寻选择好候选区域;识别对象要进行特征提取,这一步是通过卷积操作然后得到特征图;先要找到一个个的候选框关于特征图的映射修补,然后将每个修补作为其候选框的特征量,将一个个特征量进行输入,放到ROI的池化层以及后面的层;把之前候选框的特征量输入,特征量进入到逻辑回归模型分类器中,通过逻辑回归模型分类器进行一系列分类工作;对候选框位置进行整理,通过进行SmoothL1Loss的回归方案来达到对位置调整的结果。
3.Faster R-CNN
(1)原理介绍
Faster R-CNN算法相较于Fast R-CNN算法的最大进步就是其区域候选的选择是使用区域候选网络实现的。Faster R-CNN还通过把区域候选网络合并到卷积神经网络中,真正意义上将端到端的目标检测进行了实现,Faster R-CNN主要由卷积层、ROI池化层、风险系数、回归和分类几类构成。
(2)基本工作流程
将全部的待检测样品进行输入,放到卷积神经网络中,从而获取特征图;为了得到候选框里面的一系列信息量,需要把卷积神经网络获取的特征输入到区域候选网络中;将候选框里面的特征量信息进行分类,并且判断出这些特征量能不能归于同一类别,将每一个候选框的特征信息进行提取分类后,在使用回归器将其整理到正确的地方。
4.YOLO
(1)原理介绍
One-stage这一算法的提出首先是在YOLO上面实现的,由:卷积层,目标检测层,NMS筛选层三个部分组成整个系统,而YOLO的检测网络主要是由2个全连接层和24个卷积层构成的,在YOLO中,全连接层的作用是辨识图像所处位置以及有关类型的概率值的工作,而卷积层则是负责待检测样品的特征信息的提取工作。
(2)基本工作流程
不同于R-CNN系列要将样品分为2000个区域,YOLO可以将待识别样品划分为S*S个任意区域。接下来需要格子进行预测X个边界框,这些边界框在回归到自己的位置的同时,还需要顺便预测一个值,我们称之为confidence值。 这个值表示边界框中预测目的的可信程度以及边界框预测信息的准确度,接下来就是将一个个所得图像进行分类。
5.SSD
(1) 原理介绍
SSD和YOLO的相同点是都使用一个卷积神经网络来进行对样品的检测活动,不同点是SSD的特征图拥有多个尺度。SSD由三部分组成分别是卷积层、目标检测层还有非极大值抑制筛选层[8]。
(2) 基本工作流程
SSD算法是在以前的传统VGG网络里面加入了5个特征图尺寸依次减小的卷积层[17],这样做可以对每个特征图的输入使用不同的核心进行卷积,并且使得得到的输入量进行不同的工作中,其中的一个输出量给confidence用于分类,使每个默认框生成不同类别的confidence;剩下的输出值给localization用于回归,这一使每个默认框得4到个坐标值。最后将每一个特征图上面得到的最终结果进行整理合并后送达到Loss层里面。
6.总结
R-CNN:R-CNN基于深度学习的目标检测中最早应用卷积的特性的,由于R-CNN需要将每个检测样品都分成2000待检测区域,使算法所需时长大大增加。Fast R-CNN模型是在R-CNN和SPP-NET这两种模型的基础上提出的,依旧采用selective search来提取特征区域,所耗费时间较长的情况依旧没有得到好转。
Faster R-CNN采用了直接回归的方式进行时设计,可以较快的检测出目标样品,在面对一些尺寸较小的样品的时候无法成功检测。
SSD算法成功的将R-CNN系列以及YOLO系列的特点长处融合在了一起,使的边界框的定位不准的问题在SSD中也得到了很好的解决,并且在面对一些难以分辨的检测样品的情况下,也保有了一定的成功率。
参考文献:
[1] 徐浩浩. 基于Python深度学习的人脸识别方法探究[J]. 现代信息科技,2019,3(17):88-90
[2] Girshick R B, Donahue J, Darrell T, et al. Region- based convolutional networks for accurate object detection and segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 38(1): 142-158
(作者简介:黄镜尘1999.07,山东交通学院本科学生,指导老师:李光、李敏)