辛泽寰,尚振宏
(昆明理工大学信息工程与自动化学院,云南 昆明 650500)
太阳暗条是在日冕中由低温高密度的等离子体组成,在日面中心呈现丝状结构[1]。暗条的尺度、活动状态各不相同,最终会消失或者爆发。暗条爆发与太阳耀斑、日冕物质抛射、磁风暴等有密切的关系,强烈的暗条爆发活动发射的等离子体在几天后抵达地球,影响地球磁层,严重时导致通信设备受损,造成通信中断、航空运输导航失效等灾难[2]。此外,暗条通常出现在光球磁场极性反转线的上方,因此,对暗条进行研究有助于探究太阳磁场的变化过程。作为相关研究的基础和前提,对暗条准确检测具有重要的科学意义。
根据光学厚的暗条物质会吸收大量光球背景辐射但发射很少这一特征,在Hα波段观测到的太阳暗条比周围背景更暗。在此基础上,大量学者对暗条自动检测方法开展了一系列研究,具体可以分为3类:(1)基于阈值检测方法。例如,文[3-4]采用全局阈值和区域增长算法自动检测暗条;文[5-7]采用局部阈值代替全局阈值改善全日面图像具有临边昏暗和亮度不均匀这一问题;文[8]利用Canny算子进行暗条边缘检测后,利用形态学腐蚀膨胀法检测暗条。此类方法计算复杂度较低,只需关注暗条图像特征,不需要人工标注数据集,但是容易将图像中的噪声点和较暗的背景误识别为暗条,检测结果精确率较低。(2)基于机器学习方法。例如,文[9-10]利用人工神经网络,通过一个预先定义的窗口逐个像素点检测暗条,对不同背景中的暗条,训练后的神经网络能够正确识别。此类方法可以有效克服对图像归一化过程的高度依赖,利用先验信息设定合适的特征提取器,特征提取效率高,模型训练速度快,但是模型泛化性较差,一些形态结构复杂的暗条不能有效地自适应建模,对弱小暗条不敏感,检测结果存在弱小暗条断裂和漏检问题。(3)基于深度学习方法。深度学习方法可以更好地学习图像特征,在天文图像处理方面取得很大成功,引起学者的广泛关注[11-12]。例如,文[13]利用Mask R-CNN检测暗条,采用印度尼西亚航空航天研究所拍摄的Hα波段全日面图像数据集,ResNet-101和特征金字塔网络作为骨干网络,训练模型进行太阳暗条检测;文[14]利用基于UNet深度学习网络识别太阳暗条,采用大熊湖天文台拍摄的Hα波段全日面图像数据集,同时在UNet网络的下采样部分加入Dropout层,在上采样部分用线性插值代替反卷积,改进后的UNet网络用于太阳暗条检测。相比机器学习方法,这类方法无需人工设计特征提取器,可以根据标签自动学习暗条的特征及细节信息,总体算法的泛化性和鲁棒性较高。但是此类方法存在标签不准确的问题,标签中存在太阳黑子及噪声点,干扰网络提取暗条特征,导致训练模型不精准。UNet网络在下采样过程中提取特征能力不够,丢失暗条的细节特征,在上采样过程中,只对网络最终输出结果进行调整,中间特征图没有得到充分训练,检测结果存在弱小暗条断裂、甚至漏检或者背景误识别等问题。
针对当前暗条检测存在的问题,为了网络能够学习更准确的暗条特征,本文首次结合太阳磁图,对数据集中的太阳暗条进行手工标注,在训练网络前对图像进行亮度归一化、去噪等预处理。VNet[15]网络具有较强的抗干扰能力,可以有效抑制背景对检测结果的影响。为了充分提取暗条的细节特征,我们对VNet网络进行改进,改进后的网络能更精确地检测弱小暗条。本文主要工作是:(1)结合太阳磁图制作了太阳暗条数据集(本文数据集公开在https://github.com/huan819/fv),相对已有的暗条数据集,该数据集制作时,根据同一时刻太阳磁图的磁场分布结构,剔除黑子和噪声,保留了弱小暗条,暗条标签更精确。(2)在网络下采样部分采用Inception模块[16]提取不同尺度特征图的特征;引入注意力机制[17],抑制背景图像中干扰特征的影响;在上采样部分引入深度监督模块[18],将不同深度特征图进行融合,提高了检测结果的准确率。最后通过实验证明,本文方法能对太阳暗条实现较高精度的检测。
暗条数据集取自美国大熊湖天文台的Hα全日面图像。由于太阳与地球之间距离变化和温度、湿度、风速等原因,导致拍摄的图像不居中,同时地面仪器还受到光线、大气抖动等复杂因素影响,造成全日面图中有噪声,亮度不均匀。这些因素在一定程度上影响网络检测结果的准确率和召回率。针对这些问题,本文首先使用霍夫圆检测法和最小二乘拟合法获得太阳中心和半径,计算图像中心点坐标和太阳圆心坐标,将太阳圆心平移到图像中心点,当两种方法相差5像素时,人工进行调整,得到太阳轮廓,并将轮廓外像素设置为灰色,避免干扰网络训练;其次利用全变分模型去除背景噪声;最后通过增强图像对比度突出暗条特征,剪切去除图像中极值像素点,剩余部分按比例重新分配。预处理前后的图像如图1,由图1可以看出,图像经过预处理后,暗条特征更加明显。
图1 (a)原始图像;(b)预处理后图像Fig.1 (a) Original image; (b) pre-processed image
数据是深度学习的血液,基于深度学习的暗条图像分割算法需要从标注好的数据中学习暗条特征信息,从而不断调节网络中每一层参数。标注数据有偏差会导致训练模型难以收敛,检测结果不精准,甚至不超过传统阈值分割法。目前公开的太阳暗条数据集来自中国科学院国家天文台[14],该数据集取自美国大熊湖天文台的Hα全日面图像,但其暗条数据集标注方法是根据暗条的亮度特征,利用图像阈值分割处理方法,图像中太阳黑子和小噪声点也同时标注,漏掉弱小暗条,网络提取到错误的特征信息,导致暗条漏检和背景误识别。图2为中国科学院国家天文台数据集中普遍存在的一些问题。图2(a)红色框处是全日面图中的太阳黑子,图2(b)红色框处是对应标签中的太阳黑子,图2(c)红色框处是全日面图中的弱小暗条,黄色框处是噪声点,图2(d)红色框处是对应标签中漏掉的弱小暗条,黄色框处是噪声点。为了提高训练准确率,进而提高模型准确率,本文制作并公开了太阳暗条数据集,该数据集包括两部分:Hα全日面图像和暗条二值标签图。Hα全日面图像取自美国大熊湖天文台2010~2020年拍摄的Hα波段全日面图像。
图2 国家天文台数据集[14]。(a)和(c)为Hα全日面图像;(b)和(d)为太阳暗条标签图
暗条与磁场有密切的关系,暗条存在于太阳磁场极性反转线的上方。极性反转线是指径向磁场在光球上正负磁场的分界线[19]。另外,太阳黑子位于单一极性区域,而非极性反转线上。利用该特征,根据同一时刻美国国立太阳天文台全球日震观测网(Global Oscillation Network Group, GONG)观测的太阳磁图中正负磁极的位置,即图3(b)中黑白相交的位置,结合暗条的亮度和纹理特征,同时利用磁图排除黑子对暗条检测结果的干扰,采用Labelme标注工具对暗条进行描点标注。图3(a)为全日面图像;图3(b)为全日面太阳磁图;图3(c)为太阳暗条标签图。图3(b)中红色线条为标注的磁中性线,与图3(a)红色框对应的图3(b)中的位置并无正负磁场出现,因此在制作标签时,该位置不存在暗条。本文数据集包含191幅全日面Hα图像,包含各类形态暗条3 372个,由于2013~2014年暗条数量较多并且具有不同的尺度,暗条特征较为完整,因此训练集图像取自2013~2014年的全日面图像共146幅。测试集图像取自其余年份的全日面图像共45幅。
文[15]提出VNet网络用于医学图像的分割,由于太阳暗条和医学图像都具有制作标签成本高、数据训练样本比较少的特点,而VNet网络只需要少量的样本就可以训练模型,并且VNet网络在上采样和下采样过程中加入残差结构,解决了深层网络梯度消失的问题。此外,VNet网络抗干扰能力较强,可以有效抑制背景对暗条检测结果的影响,因此本文采用改进原有的VNet网络检测太阳暗条。
VNet网络由上采样和下采样两部分构成,VNet算法结构如图4。下采样部分主要功能是提取图像特征,包含5个卷积单元,每个卷积单元由卷积层、池化层和激活函数组成。卷积采用5 × 5 × 5的卷积核,填充大小为2,步幅为1。池化层可以减少训练过程中的参数,减少内存占用率,提高训练速度。激活函数为PReLU[20]函数。卷积块中还加入了残差学习结构,有效缓解梯度消失的问题。下采样和上采样中间为级联。级联将下采样过程中的特征图与上采样反卷积后的特征图融合,再进行卷积操作,这样可以有效防止下采样过程中特征丢失,保留在下采样部分的目标位置信息以及图像的边缘特征。
图4 VNet算法结构图Fig.4 Structure of VNet algorithm
原始的VNet网络能够很好地抑制图像背景的干扰,但是暗条大小尺度不一,弱小暗条的特征难以提取,容易造成细节信息丢失、暗条断裂等问题。针对这些问题,本文提出一种基于改进VNet网络的暗条检测算法。网络整体分为下采样和上采样两部分,改进的VNet算法结构如图5。本文保留了VNet网络的基本结构,图像输入后,首先经过Inception模块学习不同尺度特征图的特征,并融合输入下一层,提高网络性能,并在上采样的第2和第3个卷积单元中加入注意力机制,更好地利用上下文信息,增强特征图中暗条的语义信息,提高网络对重要信息特征的学习能力。在上采样部分引入深度监督模块,充分提取太阳暗条特征,改进后的网络模型能够充分提取太阳暗条特征,提高了太阳暗条检测精度。
图5 改进VNet算法结构图Fig.5 Structure of improved VNet algorithm
太阳暗条尺度信息存在较大差异,选择合适尺寸的卷积核比较困难。大尺度太阳暗条长度可达100像素,信息分布更具有全局性,采用大尺寸卷积核提取特征比较全面,小尺度太阳暗条长度约10像素,信息分布比较局部,适合较小卷积核。为了提取更多太阳暗条的有效特征,同时减少参数量,图像输入后首先经过Inception模块[14],通过增加卷积单元个数,对较大的卷积核用1 × 1的卷积核进行降维操作,使输入图像在不同尺度上进行融合,提取不同的尺度特征,同时提高网络计算资源利用率,提高网络性能,克服数据样本较少带来训练过拟合的问题。Inception模块结构如图6。在同一层级上运行多个尺寸的滤波器,使用4个大小不同的滤波器,分别是1 × 1,1 × 1,3 × 3和5 × 5的卷积核,在3 × 3和5 × 5的卷积层前添加1 × 1卷积核,调整输入通道数量,减少参数量。在1 × 1的卷积层前加入3 × 3最大池化层提高网络训练速度,同时提高所提取特征的鲁棒性。最后,将不同卷积核获得的太阳暗条特征图进行融合,进一步提高网络泛化能力。
图6 Inception结构Fig.6 Structure of inception
下采样过程中对图像不断卷积提取图像特征,造成暗条边缘及细节信息丢失。虽然VNet网络采用跨连接融合特征图保留了一些信息,但是不同空间位置所包含信息的重要程度不一样,图像中不同位置应该具有不同权重。本文在下采样特征提取过程中加入空间注意力机制[17],增强暗条特征的同时抑制无用背景信息。
图像经过下采样过程中第2个卷积单元得到特征图,如图7。首先分别使用最大值和平均值全局池化操作,最大值池化可以突出暗条特征,平均值池化可以获取全局信息,将两种池化后的特征图按通道拼接后进行1 × 1卷积并添加非线性成分,然后通过sigmoid激活函数计算得出空间注意力权重的空间矩阵,sigmoid函数可以避免特征在传递过程中过于稀疏及权重系数过大。经过sigmoid函数得到权重系数与输入特征图相乘得到新特征图。空间注意力机制可以表示为
图7 空间注意力结构Fig.7 Structure of spatial attention
Mc(F)=σ{MLP[AugPool(F)]+MLP[MaxPool(F)]} ,
(1)
其中,Mc(F)为生成空间注意力图;c为特征图通道数;MLP表示多层感知器;σ为sigmoid激活函数;AugPool(F)和MaxPool(F)分别表示对特征图平均值全局池化和最大值全局池化。
注意力机制可以使网络更加专注于暗条特征提取,抑制背景噪声等异常特征信息,精准检出弱小暗条,提高暗条检测精度。
文[18]提出一种深度监督网络(Deeply-Supervised Nets, DSN)。深度监督能够对前面层的训练起到监督作用,从而保证整个网络的训练效果。本文采取深度监督方法调整每一层特征图参数,保证输出层和隐藏层学到该层尽可能多的细节特征,从而保证更上层网络能够使用更加精确的特征图进行训练。
深度监督模块如图8。每个上采样过程中有一个额外的分支操作,该分支操作将不同尺度特征图通过上采样放大,将图像恢复到原始图像大小,这4个分支操作分别是map1,map2,map3和map4,再将这4个阶段的分支操作进行融合。通过对特征图的监督,不同尺度特征图都能学到最准确的特征,提高网络检测准确率。
图8 深度监督模块Fig.8 Deep supervision module
所有实验在Windows10系统下进行,其中深度学习框架为keras,硬件环境:中央处理器为Intel Core i7-7800X 3.50 GHz,显卡为GTX Titan X GPU,内存32 G。本文采用自己制作的暗条数据集,并且对数据集进行预处理。太阳暗条数据集包括146对预处理图像和暗条标签。在训练阶段batch_size=2,每轮迭代300步,计划训练轮次为200轮,采用早停法控制训练过程,若函数在10个训练轮次内模型损失值没有下降则停止训练。学习率初始值0.000 1,学习率衰减策略为若3个训练轮次的损失值没有下降,则学习率减半,最终在151轮训练停止。从图9可以看出,随着训练轮次增加,损失值不断下降,曲线呈现微小波动,最后趋于水平。
图9 损失率曲线图Fig.9 Loss image
选择优化器时,在训练过程中产生大量参数,导致计算量增加。本文采用Adam优化器[21]训练网络。该算法优点是在训练过程中可以为不同的参数计算不同的自适应学习率,有利于网络优化,适用于大规模参数问题,并且对内存需求较小。
在深度学习中,训练集样本较少是造成过拟合的主要原因之一。由于太阳暗条图像人工标注成本很高,数据集较少,因此,本文在训练的同时利用keras中ImageDataGenerator图片生成器对训练图像进行旋转、垂直翻转、平移等扩充数据。146组图像经数据增强后生成26 648个训练样本,提高了模型的泛化能力和鲁棒性。
在太阳暗条检测过程中,暗条仅占整个Hα全日面图像约5%区域,在训练过程中损失函数容易陷入局部最小值,导致检测结果偏向背景,漏检弱小暗条。为了有效解决前景和背景像素严重失衡的问题,损失函数采用基于Dice系数最大化目标函数[15]优化模型,公式为
(2)
其中,P和G分别表示暗条预测结果和暗条标签;N(ΔP)和N(ΔG)表示预测结果和标签区域中像素个数;Smooth=0.001,防止分母为0。Dice数值越小,检测结果的精度越高。
判断暗条检测方法的性能需要有效的评价指标,本文将暗条检测结果与暗条标签相比,有4种检测结果:真阳性(True Positive, TP)表示检测正确的暗条像素点;假阳性(False Positive, FP)表示检测错误的暗条像素点;真阴性(True Negative, TN)表示检测正确的背景点;假阴性(False Negative, FN)表示检测错误的背景点。检测结果如表1。
通过表1的检测结果可以计算出准确率(Accruacy)、召回率(Recall)、精确率(Precision)3个衡量方法性能的指标。准确率是分类正确像素点占整个图像像素点总和的比例;召回率是检测正确的暗条像素点占真实暗条像素点总和的比例;精确率是检测正确的暗条像素点占检测暗条像素点总和的比例;F1值是对精准率和召回率的整体评价,介于0~1之间。本文暗条检测方法性能评价指标如表2。
表1 4种太阳暗条检测结果Table 1 Four results of solar filaments detection
表2 太阳暗条检测方法性能评估指标
3.5.1 算法改进前后对比
为了说明本文提出VNet网络在下采样部分采用Inception模块同时加入注意力机制,在上采样部分引入深度监督模块具有一定的优势,本文将改进前后的VNet网络在测试集上进行测试,采用人工标注暗条标签图和检测结果进行比较。表3列出了原始VNet网络,加入Inception模块后的Inception-VNet网络,加入注意力机制后的Attention-VNet网络,以及本文最终改进后VNet网络性能指标的比较结果。根据每种网络检测的结果与标签计算准确率。由于暗条占全日面图像的比重约为5%,导致检测结果准确率较高,为了更好地衡量检测结果,采用召回率、精准率、F1值评价指标。从表3可以看出,原始VNet网络准确率为0.966 1,F1值为0.816 8,说明原始VNet网络检测的结果可以较好地检出特征明显的暗条,但是针对弱小暗条,仍然出现漏检问题。加入Inception模块和注意力机制及深度监督模块后的VNet网络,准确率达到0.988 3,F1值达到0.838 5。F1值明显提高,可见改进后VNet网络在下采样过程中可以充分提取弱小暗条信息,提高检测结果的准确率。
表3 基于VNet网络不同算法性能指标比较
图10选取图像中包含弱小暗条的局部区域并放大2.5倍,本文方法对弱小暗条检测效果与暗条标签及原始VNet网络检测效果进行对比。图中红色框处是全日面图像中的弱小暗条,图10(e)~图10(h)分别是图10(a)~图10(d)放大2.5倍后的局部区域。从图10可以看出,原始VNet网络检测克服了背景干扰,但是对弱小暗条检测准确性不高,存在漏检现象。改进后的算法在下采样部分引入Inception模块和注意力机制,提升网络性能,提取更多的暗条特征;在上采样部分引入深度监督模型,将检测结果与每层特征图融合,保留了细节特征,使得网络同时兼顾语义信息和细节特征,尽可能保留弱小暗条的连续性,能够抵抗背景干扰,取得更加精准的检测效果。
图10 暗条检测结果。(a)全日面图;(b)暗条标签图;(c)VNet检测结果;(d)本文检测结果;(e)~(f)第1行对应图放大2.5倍结果
3.5.2 不同算法评估指标对比
为了进一步证明本文方法对太阳暗条图像的检测性能,使用上述评价指标将本文方法与文[14]的基于UNet暗条检测方法(UNet),以及在该方法的基础上,为捕获暗条更多的细节融入了密集跳跃连接(Resent-UNet)。表4列出了不同方法对太阳暗条检测结果。UNet网络检测的准确率达到0.958 7,F1值达到0.783 4,但受图像中亮度较低的背景区域和噪声影响严重,检测结果错误率较大,算法检出了不属于暗条的部分,抗噪声能力较弱。Resent-UNet将每个融合模块通过密集跳跃连接的方式进行特征融合,网络能捕获暗条更多的细节特征,提高了检测性能,准确率达到0.959 8,F1值到0.794 7,但精确率较低,说明网络过于敏感,将一些亮度较暗的背景误识别为太阳暗条。本文方法暗条检测平均准确率高达0.988 3,F1值达到0.838 5,高于UNet和Resnet-UNet网络平均准确率,F1值也达到了较高水平,因此本文方法更具优势。
表4 4种暗条检测方法对比
为了更直观地展示本文方法检测效果,对太阳暗条图像,在同等条件下将本文方法与上述暗条检测算法在测试集上进行主观测评,实验结果如图11。图11(a)中红色框处是全日面图像中弱小暗条,图11(b)是标签图,图11(c)是传统方法检测结果。由图11可以看出,本文方法可以检出一部分弱小暗条,但是由于背景干扰,传统阈值分割很难将背景噪声点剔除,严重影响检测结果。图11(d)是UNet网络检测结果,检测结果中背景噪声点干扰较少,但是弱小暗条漏检。图11(e)是Resent-UNet检测结果,加入残差结构后,网络提取特征能力得到加强,相比原始UNet网络可以检出更多弱小暗条,但是背景对比度较低的区域仍然存在漏检现象。图11(f)是本文检测结果,改进后的VNet网络可以有效完成太阳暗条检测任务,获得较好的性能指标,具有较高的稳定性和抗干扰能力。从图11(f)可以看出,在背景较为复杂的暗条图像检测任务中,本文算法对弱小暗条仍可以具有较好检测效果,算法具有一定的先进性。
图11 不同算法的检测结果。(a)全日面Hα图像;(b)太阳暗条标签图;(c)传统方法检测结果;(d)UNet检测结果;(e)Resent-UNet检测结果;(f)本文检测结果
本文在太阳暗条检测研究中,针对国家天文台数据集标签中存在太阳黑子和噪声干扰及遗漏弱小暗条的问题,结合太阳磁图剔除了图像中黑子和噪声干扰,制作了太阳暗条数据集,网络能学习到精确的暗条信息。针对暗条检测中存在背景干扰,弱小暗条丢失等问题,本文采用VNet网络并进行改进,引入Inception模块,得到暗条不同尺度信息,更好地利用网络内部的计算资源,提取更多图像特征;引入注意力机制,增强暗条特征的同时抑制无用背景信息;在上采样部分引入深度监督模块,使不同尺度特征图都能学到最准确的特征,提高太阳暗条检测准确率。根据暗条检测评价指标可知,本文方法的检测效果有明显提高。目前,数据集的图像较少,因此,未来工作方向是研究如何用少量图像训练出高效检测模型。