APP下载

基于关键点的实验鼠视觉检测研究①

2020-12-28王明阳王江涛

关键词:实验鼠中心点损失

王明阳, 王江涛,b,*, 刘 琛

(a.淮北师范大学物理与电子信息学院;b.淮北师范大学信息学院;安徽 淮北 235000)

0 引 言

在生命科学、医学等领域中实验鼠一直扮演着不可或缺的角色,比如在生物医学研究中实验鼠主要用于药物评价和毒性实验等。实验鼠是医药等科学研究必备的实验动物,使用程度较高,使用范围较广,为避免人工记录造成的实验误差与人力的大量投入,通过计算机对实验鼠进行检测,分析视频记录,给实验者提供更精准和详细的实验鼠运动信息具有重要的应用价值和广阔的应用前景[1]。实验鼠的研究可能需要在多个场景与多种环境下进行,复杂的环境使得在检测实验鼠时有诸多的难点,比如实验鼠的遮挡问题或实验鼠的伸展性与多动性等都会给实验鼠的目标检测带来挑战。

随着深度学习的兴起,目标检测领域实现了突破性的发展,基于深度学习的目标检测算法已成为该领域中非常重要的一类算法,主要分为两类,一类是以RCNN[2]为代表的基于Region Proposal的目标检测算法[3],包括 Fast-RCNN[4],Faster-RCNN[5],R-FCN[6]和Mask R-CNN[7]等,这类算法属于Two-stage算法,实时性低但准确率高;以YOLO[8]为代表的基于回归的目标检测算法[9],包括SSD[10]等,这类算法属于One-stage算法,实时性高但准确率较低,与传统的目标检测算法相比,基于深度学习的目标检测算法的准确性和实时性都有了极大的提高。在基于anchor box的目标检测算法被广泛使用的同时,一种新的目标检测算法逐渐出现在人们的视野中,基于关键点的目标检测算法以其独特的思想越来越受到人们的关注,主要有CornerNet[11]、ExtremeNet[12]和CenterNet[13]等,基于关键点的目标检测算法不再需要anchor机制,是目标检测领域的一种新思想。

由于在应对检测实验鼠这种单目标时,原网络的训练时间长,算法复杂度高,无法用于真正的实验环境中,而且在检测实验鼠目标时,因目标本身较小,如果卷积层数过多会导致目标容易丢失一部分特征信息,针对上述问题,本文提出了改进CenterNet的目标检测方法,该方法重新设计了主干网络并且在网络结构中加入注意力机制,最后在实验鼠数据集上对改进后的网络进行训练和验证。

1 CenterNet算法介绍

CenterNet算法是由Zhou X等人提出,网络的中心思想是预测目标的中心点,通过中心点再回归目标的其他属性,例如尺寸、3D位置等。CenterNet的输入图像经过Backbone Network(Hourglass Network or Resnet or DLA-34)生成Center heatmap、中心点偏置和目标的宽高信息,目标的宽高信息由每个峰值点周围的图像特征信息得到,再通过中心点偏置来修正中心点位置,不需要NMS(非极大值抑制)后处理。CenterNet的检测性能可以在MS COCO数据集上达到45.1%的AP值。图1网络结构中的Backbone Network以ResNet为例。

图1 网络总体框架

由图1可知,网络的输入图片的分辨率为384×384,经过layer1的4层卷积层,再经过layer2、layer3和layer4的带有残差块的卷积层,得到分辨率为12×12的特征图,这时再经过Deconv layer进行上采样,得到分辨率为96×96的特征图,最后经过卷积层分别得到Center heatmap、中心点偏置和目标的宽高信息。

2 轻量化CenterNet算法改进

2.1 简化CenterNet网络

图1所示的网络结构与原网络结构中的其它主干网络(Hourglass Network和DLA-34)相比,网络层数相对较浅,网络的参数量与计算的复杂度相对较低,但是在面对检测实验鼠这样一个单一且相对简单的目标检测任务时,此网络还是较显冗余,因此,本文在原网络结构基础上重构主干网络,减少网络的计算复杂度,并且为了在浅层网络下也能保证模型的准确率,在网络中添加SENet注意力模块。

本文按照CenterNet的网络框架重新组构了主干网络,如图2所示,考虑到网络深度对检测效果的影响,理论上来说,在一定范围内网络层数越多,深度越深,准确率就会越高,但网络深度在达到一个阈值后,虽然准确率还在增加,但增加的非常缓慢,而网络的参数量却一直在上升,并且要符合原网络4倍下采样的要求,因此,在综合考虑并且实验验证下,本文所改进的主干网络选用9层卷积层和1层池化层,在此改进结构下,模型在保证准确率的同时,最大限度的简化了模型的结构。

图1与图2进行相比,图2中简化的网络结构舍弃了图1中原网络的残差结构和上采样层,将网络压缩到9层卷积层和1层池化层,减少了网络的参数量与计算量。

图2 简化的CenterNet结构

2.2 SENet注意力模块

SENet(Squeeze-and-Excitation Networks)[14]是ImageNet2017的冠军模型,SENet模型参数少,复杂度低,并且在一定程度上减少了模型的错误率,模型结构如图3所示,SENet主要由Squeeze和Excitation两部分组成,可以获得更大的感受区域面积和不同重要性的特征通道。在网络结构中,使用SENet注意力模块可以得到具有不同权值的特征通道,根据这些带权值的特征通道可以抑制某些无效的特征信息,避免了特征图信息以同等的重要性作为下一层的输入,可以提高网络模型学习的效率。

图3 SENet结构图

2.3 改进的网络结构

改进后网络结构如图4所示,输入图片大小为384×384,网络通过4倍下采样得到Heatmap、中心点偏置(x和y)和目标预测的宽与高,经过SENet注意力模块赋予通道的不同权值,并将此输出作为下一层的输入,更有利于网络学习实验鼠的特征,提高网络的准确率。

图4 改进后的网络架构

由图4可知,改进后的网络结构有9层卷积层、1层池化层和SENet注意力模块,通道注意力模块放在maxpool层之后,卷积层之前,将注意力模型产生的具有不同权值的特征通道作为输入再进行卷积,进一步提升对检测有用的特征,并相应抑制对当前任务作用小的特征。

2.4 损失函数

损失函数由三部分组成,分别是中心点预测的损失函数、中心点偏置损失函数和目标的宽高损失函数。

中心点预测的损失函数采用Focal Loss,公式(1)为Focal Loss损失函数的具体形式:

Lk=-

(1)

在上式中,α=2与β=4为设置的超参数,N为图像中的关键点数量,其中Yxyc高斯核函数生成的热点图,此处的损失函数可以抑制训练过程中简单样本的训练比重,增加困难样本的训练比重,有利于网络更好的学习。

中心点偏置损失采用L1损失函数,公式(2)为L1损失函数的具体形式:

(2)

目标大小的损失函数也使用L1损失函数,公式(3)为目标大小的损失函数:

(3)

整体的损失函数为目标中心点损失、中心点偏置损失和目标大小损失的和,公式(4)为整体的损失函数形式:

L=Lk+λsizeLsize+λoffLoff

(4)

其中λsize=0.1,λoff=1。

3 实验结果与分析

3.1 实验环境与数据集

本次实验在Linux操作系统Ubuntu16.04 LTS上完成,在基于Pytorch框架上搭建网络,其中Pytorch版本为0.4.1,开发语言为Python 3.6,GPU型号为GTX1660Ti,显存为6G,batch_size为32。

实验数据采用实验鼠数据集,为避免训练时网络出现过拟合现象,本算法选用多种场景下实验鼠的多种状态作为数据集,并且在训练时会随机进行翻转或裁剪等操作,提高了训练样本的数据量,同时提高了模型的鲁棒性。

3.2 训练数据分析

训练时中心点的Heatmap由图5表示,热点图由高斯核函数生成,取值范围为[0,1],其中1代表目标的中心点,Heatmap是在下采样之后生成的,原图像分辨率为320×240,进行训练的图片分辨率为384×384,Heatmap的分辨率为96×96。

图5 Heatmap示例图

在网络模型训练的过程中,学习率持续过大会导致模型无法收敛,达不到一个最佳效果,一般来说,模型的学习率要先大后小,因此,在本实验中,根据训练的轮数进行更换学习率,学习率的曲线如图6所示:

图6 学习率曲线

训练过程中记录了各个损失函数的Loss值曲线,包括中心点损失、中心点偏置损失、目标宽高损失以及整体损失,其中横坐标为训练的轮数,纵坐标为具体损失函数数值,各种损失的Loss值曲线如图7所示:

图7 损失函数曲线

由图7中的各损失函数的曲线可以看到在训练到70轮左右时,损失函数迅速减少,后面损失函数逐渐趋于稳定。

3.3 实验效果

图8为实验鼠图片经过改进后并且完成训练的模型所产生的相关热点图与实验效果图,具体如下图所示:

图8 相关热点图与效果图

其中上图中a图的分辨率为320×240,b图的分辨率为384×384,为网络的输入图片分辨率,c图为网络产生的热点图,可以看到图中的高亮部分即为预测出的实验鼠的中心点,d图为网络最终检测效果图。

图9为原网络与改进后的网络检测实验鼠图片的对比,下图为对比效果图,其中左图为原网络检测结果,右图为改进后网络的检测结果,可以看出改进后的网络具有更好的检测效果。

图9 效果对比展示图

3.4 测试结果

为表明重构后网络的可行性与有效性,本文也在SSD和YOLOV3网络下训练了相同的实验鼠数据集,得到了不同的网络模型,并在相同的测试集下进行测试,下表为不同网络下的模型权重文件大小与AP值的比较:

表1 不同模型在实验鼠数据集上的数据比较

从上表中网络模型权重文件的大小来看,重构后的网络模型权重文件大小相比原网络减少了近13倍,而且重构出的网络在实验鼠数据集上的AP值相比于SSD、YOLOV3和原网络三者都要高,表明了本文中检测实验鼠方法的可行性和有效性。

表2为SENet注意力模块对重构网络的影响,主要通过模型权重文件的大小与在实验鼠测试集上的AP值进行比较,具体数据如下表所示:

表2 SENet注意力模块对模型的影响

由上表可知,因为SENet注意力模块是一个轻量级的模块,新增参数和计算量小,因此是否加入SENet注意力模块对网络模型权重文件的大小几乎没有什么影响,但SENet注意力模块的加入使得AP值增加了2.4%,提高了模型的准确率。

4 结 论

在研究CenterNet网络基础上,重新设计了主干网络用来提取目标特征信息,在减少主干网络层数的前提下,为增加网络模型的准确率,添加SENet注意力模块,通过实验验证,表明了该改进网络既减少了网络的参数量和计算的复杂度,并且提升了模型的准确率。

猜你喜欢

实验鼠中心点损失
胖胖损失了多少元
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
吃夜宵可能让人越来越笨
如何设置造型中心点?
玉米抽穗前倒伏怎么办?怎么减少损失?
爱吃咸与基因有关
合成气味可让老鼠恐惧
菜烧好了应该尽量马上吃
寻找视觉中心点