SSD与MobileNet详解
1.概述
本文档阐述SSD检测算法原理,及以MobileNet为Backbone的网络搭建方式。
十里桃园首发,转载请注明
- Why SSD?
无论是机器学习或是深度学习一般都可分为两个部分:特征提取与分类任务。
在传统的机器学习方法中,特征提取需要依据图像以及特有的检测目的抓取特有特征,如偏重物体轮廓的HOG特征,注重明暗对比的Haar特征等,特征被描述之后送入机器学习算法分类,如SVM、Adaboost等,进而判断物体的分类。将上述的流程在图像上做滑框操作或代入已图像预处理的ROI框即完成了图像检测与识别任务。
图.1 机器学习目标检测简图
在深度学习中,特征提取需要由特有的特征提取神经网络来完成,如VGG、MobileNet,ResNet等,这些特征提取网络往往被称为Backbone。通常来讲在BackBone后面接全连接层(FC)来执行分类任务。但FC对目标的位置识别乏力。经过算法的发展,当前主要以特定的功能网络来代替FC的作用,如Mask-Rcnn、SSD、SSDlite、YOLO等。
图.2 深度神经网络特征提取+SSD分类器
本文主要阐述说明以MobileNet_v2为Backbone,以SSD为分类器来执行分类任务的具体架构。
- SSD 分类框架
3.1.两种主流的深度学习目标检测分类算法
基于目标检测与识别算法分为两个类型:
1,Two-Stage方法,如R-CNN系列算法,其先产生一系列稀疏的候选框,然后对这些候选框进行分类和回归。
2,One-Stage算法,如Yolo、SSD等,其主要思路为均匀地在图片不同位置进行密集抽样,抽样时采用不同尺度和长宽比,进行分类和回归,整个过程只需一步,相应的其运行速度要远远优于Two-Stage方法
两种方法的mAP(Mean Average Precision)与运行速度如下图:
图.3 Two-Stage与One-Stage算法性能对比图
如上图,横轴为识别帧率,纵坐标为mAP。可以看出,One-Stage算法的帧率在保证mAP的前提下,普遍高于Two-Stage,更适合在嵌入式移动设备端部署。
3.2.SSD算法
和FC不同的是,SSD在多个尺度的特征图上分别执行目标检测工作。这样可以使得各个尺度的目标都能被兼顾,小尺度特征图预测大目标,大尺度特征图预测相对较小的目标。
3.2.1.感受野
感受野是指影响某个神经元的输入区域,也被称为理论感受野。
输入区域中每个像素点对输出影响的重要性不同,越靠近中心的像素点影响越大,呈高斯分布。中间一小部分区域对神经元的输出有绝对的影响,这中间一小部分被叫做有效感受野。
图.4 感受野与Default Box
如图.4,左侧整个黑色区域就是理论感受野,中间成高斯分布的白色点云区域为有效感受野。右侧图像蓝色框内对应理论感受野,绿色圆内对应有效感受野,而红色框内是Default Box大小,Default Box比理论感受野小很多,但是可以容纳大部分有效感受野内部信息。Default Box的具体含义与作用在下节给出。
3.2.2.Default Box
3.2.2.1 Default Box Acquisition
特征图是输入图像经过神经网络卷积产生的结果,表征的是神经空间内一种特征,其分辨率大小取决于先前卷积核的步长。SSD算法中共取6层不同尺度的特征图,在每层特征图的每个像素点处生产不同宽高比的框,此类的框统称为Default Box。
图.5 8*8特征图和Default Box
如上图,假定有8*8的特征图,特征图上的每个格子称为特征图小格,在每个特征图小格上面有一系列固定大小的Box,上图中每个小格上有4个Box,用虚线框标识。
泛化地来说,如果一个特征图的大小是mn,也即有mn个特征图小格。在每个小格上有k个Default Box,那么这层特征图Default Box的总数为mnk。
Default Box自身的尺度(scale)和宽高比(aspect ratio)也有特殊的规定的方式,假设一共用I个特征图做预测,对于每个特征图而言其Default Box的尺度按下面的公式计算:
尺度(scale)是相对于输入图像的分辨率,最终Default Box的实际像素尺寸需乘以输入图像的分辨率,如SDD300,则需乘以300。
3.2.3. Box regression
对于神经网络前向流动来说,需要将Prior Box与Ground Truth Box做匹配。匹配成功则说明,Prior Box所包含的是被检测的目标。但其力完整目标的Ground Truth Box还有一定的神经网络高维空间内的距离。显然地,将Prior Box的分类尽可能地通过一个高维向量分类并回归到Ground Truth Box为神经网络地最终目标之一。
在做回归之前,需先明确其要回归的内容,即有哪些数据向哪些数据回归。对于一个Prior Box 其参数如下图:
3.2.SSDlite
SSDLite 在MobileNet_v2的论文中被作者提出。其对SSD的结构进行了修改,将SSD预测层中所有的标准卷积替换为深度可分离卷积。
具体来说在进行NMS前,就是特征图的分类及位置加权均采用点卷积模式。
图.8 Original MoibleNet_v2 with SSD
依据论文,可得网络模型如上图,此图保持与论文一致,与源码略有出入。