基于改进SSD模型的牛脸检测

2020-04-24 03:07苟先太刘琪芬
计算机工程与设计 2020年3期
关键词:残差卷积聚类

苟先太,黄 巍,刘琪芬

(西南交通大学 电气工程学院,四川 成都 611756)

0 引 言

随着我国畜牧业逐渐走向规模化,牲畜牛的急剧增加的数量为其健康监测带来巨大的挑战。牛脸检测是健康监测中的一个主要步骤,检测效果的好坏与效率的高低会直接影响健康监测的最终效果。

目前牛脸检测的难点有两个:一个是多牛场景。需要对图像中每头牛的牛脸进行高精度的检测。另一个是模型速度。为了保证牛脸采集效率,模型需要部署在移动端或者嵌入式设备,这对于模型速度有着极高的要求。传统的目标检测方法包括SIFT[1](scale-invariant feature transform)、HOG[2,3](histogram of oriented gradient)等特征提取算法。在速度和精度上,传统方法都不太满足本文牛脸检测的要求。

基于深度学习的目标检测模型包括one-stage方案,如SSD[4]、YOLO[5](you only look once)等。与之对应的two-stage方案包括RCNN[6]、Fast-RCNN[7]、Faster-RCNN[8]等模型。考虑到牛群健康监测系统对牛脸检测模型速度上的要求,本文选择使用SSD模型,并在原有模型的基础上进行优化:使用轻量级网络MobileNet v2[9]作为SSD的基础网络以提高模型速度;使用K-Means[10]聚类方法取代先验对检测框高宽比进行设置。从实验结果来看,改进之后的SSD模型在速度以及精度上均有一个较大的提升。

1 SSD模型网络结构分析

1.1 基础网络模型

图1 SSD模型结构

SSD模型使用VGG-16[11]作为基础网络[4]。在VGG-16的基础上,SSD将最后的全连接层替换为3×3的卷积层和1×1的卷积层收缩特征图尺度。在尾部继续添加卷积层进一步收缩特征图以获得不同尺度的特征图进行预测。模型结构如图1所示。

1.2 默认框机制

在检测过程中,SSD使用了被称为默认框(default box)的机制[4],即生成一些预选框,和图像中的物体进行匹配,匹配到物体之后,使用softmax分类和边界框回归得到物体的种类与位置。边界框回归可以对默认框进行位置和大小的微调,得到SSD模型最终的检测框。默认框匹配步骤如图2所示。在同一个栅格(cell),SSD会使用4~6个高宽比不同的默认框进行匹配,匹配到物体之后,再进行之后的分类和回归操作。

图2 默认框匹配步骤

1.3 损失函数

SSD模型需要对边界框进行回归,还需要对物体的种类进行预测,所以SSD模型的损失函数由两部分构成:分类置信度损失Lconf和坐标误差Lloc[4]

在上式中,N是默认框的个数,α是坐标误差的权重参数,通过更改α可以改变坐标误差在梯度下降过程中的重要程度。

SSD模型的分类置信度损失Lconf使用的是softmax loss,softmax loss普遍用于多分类问题,但与经典的softmax loss不同,分类置信度损失既考虑了正样本,也考虑负样本

SSD模型的坐标误差Lloc采用的是Smooth L1 loss,和传统的平方损失函数相比,Smooth L1 loss对于离群点的敏感度不高,不容易出现梯度爆炸的情况

式中:g指的是训练样本的ground truth,l指的是模型的预测框,cx、cy、w、h分别指的是默认框的中心点坐标以及宽和高。

2 改进SSD模型结构

图3 改进模型结构

虽然经典SSD模型[4]在精度和速度上都达到了较高水平。但在速度和精度上依然有可以提升的空间。首先VGG-16有138 M个参数[11],过多的参数量意味着更多的计算量。考虑到牛脸检测对模型速度的要求,本文使用MobileNet v2替换VGG-16作为改进SSD模型的基础网络,选取MobileNet v2中的layer_15和layer_19作为第一二层特征提取层。另一方面,经典SSD模型默认框的高宽比采用的是3组互为倒数的高宽比[4],目的是尽可能覆盖公共数据集中的所有种类的高宽比,但是这种设置方法对于本文的牛脸检测任务缺乏特异性。为了得到更为合理的高宽比设置,本文使用K-Means聚类算法对样本高宽比进行聚类,得到的聚类中心即为高宽比设置。实验对比结果表明,使用K-Means聚类得到的默认框高宽比设置对于模型的精度、速度均有一定的提升。改进模型结构如图3所示。

2.1 MobileNet v2结构特点

MobileNet v2结构主要有两个特点,一是使用了深度可分离卷积[9];二是使用了倒置残差块[9]。就是这两个特点,让MobileNet v2在使用极少的参数量的条件下依然保持较高精度。

和标准卷积相比,深度可分离卷积对特征图的某一通道进行卷积,之后使用1×1卷积进行特征融合,其性能和标准卷积相似,但参数量得到了极大的减少。深度可分离卷积如图4所示。

图4 深度可分离卷积

图4中,Dk为深度可分离卷积的卷积核大小,通常Dk=3, 即使用3×3的深度可分离卷积进行特征提取,M为深度可分离卷积的卷积核个数,通常M和输入特征图的通道数相等,N为1×1卷积核的个数,故输出特征图的通道数也为N。

倒置残差块(inverted residual block)使用了shortcut连接,使模型可以搭建得更深而不会出现梯度消失的问题。和标准残差块相比,倒置残差块先使用1×1的卷积升通道数,之后进行深度可分离卷积提取特征,最后再使用1×1的卷积恢复之前的通道数[9]。这个过程刚好和标准残差块相反。同时,为了解决MobileNet v1[12]出现的特征退化问题,倒置残差块最后一个激活函数采用线性激活[9]。标准残差块和倒置残差块如图5和图6所示。

图5 标准残差块

图6 倒置残差块

2.2 K-Means聚类算法

K-Means[10]是一种常用的、基于原型的目标函数聚类算法。通常K-Means使用的距离量度为欧氏距离,但在SSD模型中,默认框和ground truth匹配是参照两个框的交并比(intersection-over-union,IoU)大小,交并比超过阈值,则认为匹配成功。

考虑到交并比对默认框匹配结果的影响,本文使用的距离度量如下式所示

distance=1-IoU

其中,IoU指的是参与聚类的样本高宽比和聚类中心的交并比。

K-Means聚类算法的处理流程较为简单,通过不断地计算样本点到聚类中心的距离,按照最小距离对样本点进行划分,之后更新聚类中心的位置,如此反复,直到更新不再出现变化为止。其流程伪代码见表1。

表1 K-Means聚类伪代码

3 实验结果与分析

3.1 数据集准备

本文的牛脸样本主要来自imageNet[13]、Pascal VOC等公开数据集中标注为“cattle”或者“cow”的样本。考虑到本文提出的模型所面向的场景通常为养牛场,为使模型的训练样本和现实场景中的牛脸保持独立同分布,本文在牛脸样本中选择黄牛作为主要研究对象,同时,本文也使用google图片获得了在养牛场场景下的牛脸图片。经过筛选,数据集样本大约为3800张,按照9∶1比例划分训练集和测试集,数据集均使用三维标注软件labelimg进行标注。

3.2 实验平台配置

本文实验使用的开发平台为Ubuntu 18.0。平台具体配置见表2。

表2 实验平台配置

3.3 模型训练

模型输入图片尺寸为300×300。batch size设置为32。优化器使用的是RMSProp,其优点是可以自己调整学习率[14],所以设置初始学习率为0.001,之后就不再需要对学习率进行任何衰减操作。训练数据预处理使用了随机裁剪、随机padding、随机镜像以及色彩扭曲。

3.4 模型实验结果与分析

3.4.1 K-Means聚类结果与分析

K-Means聚类实验的评价标准是聚类簇中心与ground truth的平均交并比,平均交并比越高,效果越好。分别令k=1…9进行聚类,实验结果如图7所示,由结果可知,使用K-Means极大地提升了平均交并比,意味着模型使用K-Means聚类方法得到的高宽比可以更好地适应样本。考虑到模型速度与精度,最终模型默认框高宽比使用的是k=4 时,K-Means的聚类结果,平均交并比为70.63%。按照聚类得到的高宽比效果如图8所示。

图7 K-Means聚类结果

图8 聚类的高宽比效果

3.4.2 改进模型牛脸检测结果与分析

改进模型牛脸检测使用的评价指标为精确率(precision,P)以及召回率(recall,R)。计算公式如下所示

在速度上,本文使用FPS(frames per second)以及检测框个数作为评价指标。FPS表示每秒模型可处理的图片张数,检测框个数表示在模型生成的默认框的总个数,通常检测框越多,速度越慢。为了提升实验的对比度,除了经典SSD网络,本文还选取了基于SqueezeNet、ShuffleNet等3种轻量级网络的SSD模型进行对比实验,实验结果见表3,根据实验结果绘制柱状图,如图9所示。在测试集上测试模型检测效果,如图10所示。

由对比实验结果可知,针对不同基础网络的SSD模型,使用K-Means聚类算法设置默认框高宽比对于模型的精确率、召回率以及FPS均有一定的提升。说明针对具体的牛脸检测场景,使用合理的默认框高宽比对于提升模型性能十分重要。在模型表现上,本文给出的改进模型在各个指标均略高于其它模型。

表3 对比实验结果

图9 模型性能对比

图10 牛脸检测效果

4 结束语

本文给出的改进SSD模型,使用了MobileNet v2作为基础网络并且使用K-Means对样本高宽比进行聚类。在速度上、精度上均超过经典SSD模型。通过对比实验,改进SSD模型在精确率、召回率以及FPS上均优于基于其它轻量级网络的SSD模型。针对不同的应用场景,按照不同需求对模型进行相应的改进与优化,这也为之后人工智能项目的落地提供了一定的思考与参照。

猜你喜欢
残差卷积聚类
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于K-means聚类的车-地无线通信场强研究
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于高斯混合聚类的阵列干涉SAR三维成像
基于Spark平台的K-means聚类算法改进及并行化实现