基于改进Faster R-CNN的超新星目标检测方法

2020-10-15 08:32高宏伟韩晓红周稻祥
计算机工程 2020年10期
关键词:超新星卷积特征

高宏伟,韩晓红,周稻祥

(太原理工大学 大数据学院,太原 030000)

0 概述

近年来的一个重大科学发现是宇宙正在高速膨胀,通过测量一个物体与超新星的距离和红移可以探索宇宙膨胀的历史,因此,超新星引起了研究人员的广泛关注,寻找超新星并研究其细节特征已经成为宇宙学与天文学中的一个重要课题。

超新星检测方法主要分为2种类型,即传统机器学习与图像处理相结合的算法以及基于卷积神经网络(CNN)的目标检测算法。传统机器学习方法包括基于支持向量机(SVM)的超新星识别算法[1]、基于机器学习的光度超新星分类算法[2]等,这些算法通过图像处理方法,人工提取光度与几何等特征,然后将采用SVM[3]、梯度提升树[4]等机器学习方法提取的特征作为输入,通过训练分类器以最终识别目标。特征提取的过程人工成本比较大,需要大量的先验知识,而且提取的特征对于背景复杂的超新星目标检测效果较差。

随着GPU、TPU计算能力的不断提高,深度学习模型得到快速发展,学习和使用深度学习模型不需要丰富的网络先验知识,也不会耗费大量的训练时间。文献[5]通过将CNN集成到标准光度法中[6]以实现超新星识别,该方法避免了复杂的光度测量,但是不足之处在于无法精确定位超新星。基于CNN的目标检测方法在实际中得到广泛应用[7-8]。常见的基于深度学习的目标检测方法[9]有R-CNN、Fast R-CNN、Faster R-CNN和SSD等。文献[10]提出R-CNN算法,该算法使用选择性搜索(Selective Search,SS)算法[11]提取图像的候选区域,利用CNN分别提取每个候选区域的特征,然后使用SVM对特征进行分类,利用边界框回归算法得到目标位置。但是,针对每个候选区域运行卷积将非常耗时,而且SVM不利于多分类。文献[12]提出Fast R-CNN算法,其将SS提取的候选区域一起映射到特征图上,并用Softmax替换SVM分类算法,由于候选区域共用特征图,因此,该算法提高了检测速度,但是SS的使用仍然比较耗时。文献[13]提出Faster R-CNN算法,该算法在Fast R-CNN的基础上使用区域建议网络(Region Proposal Network,RPN),直接在特征图上提取候选区域,其检测速度大幅提高,成为目前平衡速度与准确率效果较好的算法。文献[14]提出单次目标检测器SSD,通过在不同阶段的特征图上生成特征网络,直接进行边界框回归与分类,由于其将所有的操作整合到某一阶段的卷积层中,因此检测速度高于R-CNN类算法,但是由于缺少了候选区域生成步骤,导致该算法准确率相对较低。

针对Faster R-CNN算法准确率较低的问题,国内外学者进行了很多改进。文献[15]通过调节学习率、迭代次数等改进ResNet-50网络,但是其实质上并未改变网络结构。文献[16-17]都通过连接特征图进行预测,但是未在各个层级实现独立预测,没有充分利用各个层级的优势。文献[18]利用K-means聚类确定锚点大小,缩短了检测时间,但是对于目标大小单一的图像并没有优势。文献[19]通过在卷积层与池化层中增加正则化项来避免模型过拟合问题。

本文基于超新星数据集的特点,提出一种基于改进Faster R-CNN的超新星检测算法。在数据合成方面,原始Faster R-CNN算法对单幅图像直接进行训练与预测,本文将新图、旧图与差值图合成为一张图像再进行训练与预测,以提高网络的学习能力。在特征提取网络优化方面,原始Faster R-CNN算法将网络最后一层作为特征图生成锚点,在本文算法中,由不同层网络融合生成5层强语义信息特征图并分别生成锚点,以充分利用不同卷积层的优势。在不平衡数据处理方面,原始Faster R-CNN算法选择固定比例数量的正负样本进行训练,本文算法选择全部样本进行预训练,并筛选固定数量的高损失样本再次训练,以在处理数据不平衡问题的同时提高网络训练的针对性。

1 Faster R-CNN算法

本文采用Faster R-CNN算法实现超新星目标检测,图1所示为算法框架。该算法主要包括4个部分:

图1 Faster R-CNN算法框架Fig.1 Faster R-CNN algorithm framework

1)卷积层(Convolutional layer,Conv),采用ResNet-101提取输入图像的特征。

2)RPN层,该层通过滑动窗口生成一系列锚点,然后通过Softmax判断锚点属于正例还是负例,并利用边界框回归修正锚点获得最终的候选区域,也称感兴趣区域(Region of Interest,RoI)。

3)感兴趣区域池化(Region of Interest pooling,RoI pooling)层,该层将RoI映射回Conv,综合提取候选区域特征,输入后续卷积层。

4)分类层,该层利用候选区域特征计算候选区域类别,同时再次使用边界框回归获得候选区域的精确位置。

Faster R-CNN算法中使用的多任务损失函数主要分为分类损失与回归损失2个部分,如式(1)所示:

(1)

(2)

(3)

Lreg中的smoothL1(x)定义如式(4)所示:

(4)

在边界框回归中,使用式(5)中的4个公式,其中,(x,y)为框的中心坐标,w、h为框的宽度与高度。X、xa、x*分别为预测框、锚点框与真实区域坐标(y、w、h同理)。

tx=(x-xa)/wa,ty=(y-ya)/ha

tw=loga(w/wa),th=loga(h/ha)

(5)

2 Faster R-CNN模型改进

2.1 图像合成

在原始的超新星检测数据集中,每组图像由新图、旧图和差值图3幅图组成。每幅图都是单通道的灰度图,本文通过实验发现将新图或者旧图单独训练将无法对比,即难以发现超新星,同时差值图由于噪声、背景复杂等原因导致检测准确率较低。因此,本文将新图、旧图和差值图3幅图像分别作为一个通道进行合成,既增加了数据特征,网络也更容易学习不同通道之间的差异。图像合成过程如图2所示。

图2 图像合成过程Fig.2 Image synthesis process

2.2 特征金字塔网络

超新星目标普遍较小,且容易与背景混淆,浅层特征图包含许多局部信息,有助于目标的准确定位,仅使用深层特征会使检测的位置不准确。本文使用残差网络(Residual Network,ResNet)[20]提取特征。为了充分利用不同卷积层的优势,特征金字塔网络(Feature Pyramid Network,FPN)[21]采用了自顶向下与横向连接结构,以融合具有高分辨率的低层特征与具有丰富语义信息的深层特征。如图3所示,将2倍上采样之后的深层卷积特征与1×1卷积之后的低层卷积特征横向连接。其中,1×1卷积是为了减少特征图个数,2倍上采样用以保持横向连接时特征图两两大小统一,而在卷积特征进行横向连接之后增加1个3×3的卷积操作以降低上采样的混叠效应。

图3 改进后的算法架构Fig.3 Improved algorithm architecture

图3中{P6,P5,P4,P3,P2}即为最终的特征金字塔,其中,P6是由P5进行2倍下采样得到,用来产生512×512大小的锚点。在产生特征图之后即可应用RPN,RPN针对5个特征图定义5种大小,分别应用3种比例共产生15种锚点。在进行RoI pooling之前还会根据RoI的大小映射到不同Conv,映射公式如式(6)所示:

(6)

其中,k0为4。

2.3 在线难例挖掘

在模型训练的过程中每幅图像都会产生大量的候选区域,在原始Faster R-CNN算法中,会随机选择正负样本按照1∶3比例进行采样,样本总数设置为256,如果正样本不够,会用负样本进行补充。在本文的数据集中,每幅图像只有1个、2个目标,因此,会存在大量的负样本,数据的不均衡会使算法倾向于将样本预测为负样本。为解决该问题,本文引入在线难例挖掘(Online Hard Example Mining,OHEM)[22],如图3所示,其使用2个RoI网络,第一个RoI为只读网络,所有正负样本都会通过该网络进行前向操作,最后选取前B个损失函数最高的难例进入另一个RoI网络,该网络用于前向传播与反向传播。通过该方法对所有样本实现前向操作,并对难例进行重新训练以提高训练模型的性能,其中,RCNN在此指通过全连接层和Softmax对RoI进行分类,并再次对RoI实现边界框回归的过程。

3 实验设置

3.1 数据集与评价指标

本文实验使用的数据全部来自中国虚拟天文台和星明天文台联合发起的公众超新星搜寻项目,训练集为2019年“未来杯”高校AI挑战赛“图像-发现超新星”中的af2019-cv-training-20190312,共6 287组数据,测试集为969组数据,来自af2019-cv-final-dataset-201801~201808数据集。每组图像只含有1个、2个目标,目标为超新星或者非超新星。训练集为jpg图像与json文件,为了便于算法训练,将目标中心周围30像素×30像素的空间作为目标框,若目标框越界,则会舍去越界部分,并将目标框与图像信息一起保存为json文件,jpg图像则为合成图。

对于超新星目标检测,本文采用AI挑战赛官方评价指标Score评估算法性能,其计算公式如式(7)所示:

(7)

其中,Score为最终得分,N表示存在疑似星体的图片组数,ti的值表示是否存在预测正确的坐标,有则为1,反之为0。F1为精确率P和召回率R的调和平均数(在0~1之间取值),计算公式如式(8)所示:

(8)

每组图像需要提交3个预测结果的中心坐标,任意一个中心坐标与超新星中心坐标欧几里得距离在15像素之内的即为预测正确,欧几里得距离公式如式(9)所示:

(9)

其中,x为预测目标中心坐标,y为超新星中心坐标。

3.2 实验环境及参数设置

本文实验使用的仿真平台为Red Hat 4.8.5-28,gcc-5.4.0,显卡采用Tesla P100 16 GB,利用CUDA 10.0以及CUDNN 7.5.0加速深度学习计算,使用的深度学习框架为Pytorch 1.1,运行环境为Python3.6,预训练模型采用ImageNet-1k数据集进行权重初始化,learning rate为0.005,batch size为4,迭代90 000次。模型训练时的损失函数变化曲线如图4所示,算法在迭代60 000次后开始收敛。

图4 损失函数变化曲线Fig.4 Loss function change curve

4 实验结果分析

将本文算法与原始Faster R-CNN算法从数据处理、网络架构和数据集方面进行对比,以验证本文算法的性能优势。

4.1 数据处理实验对比

该组实验采用ResNet-101与FPN进行特征提取。在图像合成后,数据增强之前(原始Faster R-CNN算法)与之后(本文算法)的Score相对图像合成前分别提高了28.29%与31.80%,同时F1提升也较为明显。如图5所示,差值图容易误检,合成图使网络更容易学习数据特征。由于输入图像对检测模型的性能影响非常明显,因此本文针对训练集采用翻转方式进行数据增强,通过扩充数据集来提高算法的鲁棒性。在数据增强之后,使用差值图与合成图的Score相对数据增强之前分别提高了7.20%与3.44%。因此,针对数据集的数据增强有利于提高算法的检测效果。接下来的实验也都建立在图像合成基础之上,数据处理实验结果对比如表1所示。

图5 不同算法的数据检测结果Fig.5 Data detection results of different algorithms

表1 数据处理实验结果对比Table 1 Comparison of experimental results of data processing %

4.2 网络架构实验对比

为了提取更深层次的特征语义信息,本文不选择ZF[23]和VGG16[24]等浅层网络,而使用ResNet-50与ResNet-101作为特征提取器,并引入FPN、OHEM策略训练数据集。实验结果对比如表2所示,其中,—表示原始Faster R-CNN算法,√表示本文算法使用了该策略,×表示本文算法未使用该策略。从表2可以看出,在引入FPN之后,Score平均提高0.84%,在结合浅层特征与深层特征后,利用浅层特征的细节信息提高了定位精度。在引入OHEM之后,Score平均提高了1.78%,体现了OHEM在不平衡数据集训练中的重要性。通过使用FPN可以显著降低本文算法的训练与检测时间,原因是特征维度由原来的1 024降为256,同时预测头网络由Conv5变为更加轻量的全连接层,OHEM使用了全部样本但并未增加时间损耗。

表2 不同架构的实验结果比较Table 2 Comparison of experimental results of different architectures

4.3 不同算法实验对比

将本文改进算法分别与原始Faster R-CNN算法、SSD算法以及R-FCN[25]算法进行对比。在相同参数设置的基础上,本文算法使用了数据合成、数据增强、FPN、OHEM等,4种算法的比较结果如表3所示。从表3可以看出,本文改进算法的Score与F1都明显高于其他算法,速度也有所提升。从图5可以看出,SSD算法误检很严重,改进后的Faster R-CNN对于提高超新星检测效果具有较高的可行性。

表3 不同算法性能比较Table 3 Performance comparison of different algorithms

4.4 不同数据集实验对比

为了验证本文改进算法的泛化能力,实验选取PASCAL-VOC 2012数据集进行验证,该数据集共有20类,训练集为5 717幅图像,测试集为5 823幅图像。该组实验在Faster R-CNN基础上,采用ResNet-50特征提取器,其余参数设置与4.3节相同,评价指标采用mAP。实验结果如表4所示,从表4可以看出,本文算法的mAP相比原始Faster R-CNN算法平均提升了9.32%,在采用OHEM后算法对各类别的整体检测效果均有提升,体现了高损失样本针对性训练的优势。

表4 PASCAL-VOC 2012数据集检测结果Table 4 Test results of PASCAL-VOC 2012 dataset %

5 结束语

本文针对超新星检测时图像对比不明显、特征提取难度大等问题,从图像合成、特征提取网络优化和不平衡数据处理方面对Faster R-CNN算法进行改进,提出一种超新星目标检测方法。实验结果表明,在超新星测试集上该方法的Score可达到85.81%,PASCAL-VOC 2012数据集上的实验结果验证了其良好的检测性能与泛化能力。下一步将根据漏检情况从图像处理和特征提取等方面进行优化,以提高本文方法的超新星检测能力。

猜你喜欢
超新星卷积特征
根据方程特征选解法
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
超新星爆发极其明亮 孕育绝大多数重金属元素
抓住特征巧观察
黑洞也爱吃点心
创造生命的它,会灭绝地球生命吗?