计算机系统应用教程网站

网站首页 > 技术文章 正文

层次化的太阳黑子快速自动识别方法探究分析

btikc 2024-09-01 15:30:30 技术文章 23 ℃ 0 评论

摘要:太阳黑子的观测与识别是太阳物理学的重要任务。通过对太阳黑子的观测与分析,太阳物理学者可以更准确地分析以及预测太阳活动。随着观测仪器的不断进步,太阳全日面图像数据量也在快速增长。为了快速、准确地进行太阳黑子的自动识别和标注,本文提出了一种两层的太阳黑子识别模型。第一层模型采用深度学习模型YOLO,并使用基于交并比的k均值算法优化YOLO的参数,最终的YOLO模型能够识别绝大多数较大黑子和黑子群,仅有极少数孤立的本影较小的黑子未能识别。为进一步提高这类小黑子的识别率,第二层模型采用AGAST特征检测算法专门识别遗漏的小黑子。在SDO/HMI太阳黑子数据集上的实验结果表明,应用本文的层次化模型,各种形态的太阳黑子均能被有效识别,且识别速率高,从而能够实现实时太阳黑子检测任务。

关键词: AGAST k均值算法 YOLO 卷积神经网络 太阳黑子 目标识别

1、引言


太阳黑子是产生于太阳表面的,容易被观测的太阳活动现象,其所在的太阳区域有强磁场的聚集。对太阳黑子的观测和分析对于人类理解和研究太阳活动具有重大意义,如帮助天文学者研究耀斑的爆发与黑子群的相关性[1]。随着太阳物理学以及观测设备的发展[2,3],人们对于太阳黑子观测产生的数据量呈爆发式增长趋势。然而,早期利用人工对太阳黑子进行识别的方法已经无法满足快速增长的数据量带来的数据处理性能的需求,因此,精确并高效地对太阳黑子进行识别已成为太阳物理学的迫切需要。


深度学习是人工智能领域的一个子集,其核心模型神经网络的原理模拟了人脑思考的过程,即通过原始输入自动提取更为抽象的高层特征。深度学习中的卷积神经网络模型[4]已成功被应用于医学、生物学以及日常生活等多个领域的目标识别[5,6],因此其同样适合于太阳图像中黑子的识别。通常来说,深度学习算法具有较高的数据依赖性或数据驱动性[7],即数据量越大、数据质量越好,神经网络的训练效果便越佳。


在传统目标识别算法中,用于神经网络训练的数据通常需要由大量正样例和负样例(通常包含数万甚至数百万的图像)组成。比如,在太阳黑子识别工作中,需要将全日面图像中太阳黑子区域的图像和太阳表面区域的图像分别截取并形成单独的图像,完成网络的训练以后,通过滑动窗口的方式在全日面图像上判断每个窗口是否为太阳黑子。换而言之,传统目标识别方法是基于图像分类工作遍历整个图像,且夹杂着大量的重复计算[8]。当今互联网上公开的太阳黑子数据集皆为全日面图像,并没有单独的且高质量的太阳黑子局部图像,使用传统的目标识别算法之前还应重视数据的采集和样本扩充的过程。因此,使用传统目标识别方法进行太阳黑子识别需要手动采集大量的样本,无疑耗费了巨大的人力物力。


目前,针对太阳黑子识别问题,大多数工作主要采用传统的图像处理技术。Nguyen等[9]提出了采用聚类的方法对太阳黑子进行自动检测,将太阳黑子映射到二维笛卡尔坐标系中,再通过无监督聚类分析标记出太阳黑子群,但黑子群的分割粒度较大;赵翠等[10]通过形态学顶帽变换自适应阈值的方法识别太阳黑子;Zharkov[11]提出了一种基于边缘检测算法的太阳黑子识别方法。上述方法在数字图像处理领域被广泛采用,然而其强烈依赖于数据本身的特征信息,识别速度和精度都具有一定限制。


对于目前提出的利用深度学习进行太阳黑子检测的方法,付小娜等[12]提出了一种利用LeNet-5卷积神经网络进行自动识别的方法。其实验主要步骤包括:制作太阳黑子样本库、训练全卷积神经网络模型、检测和标记全日面图像中的太阳黑子。使用该方法可以对SDO/HMI全日面太阳图像上各类黑子进行识别,尤其是较弱的磁孔(0.88倍平均光球强度),因此证明了基于深度学习的方法检测太阳黑子是可行的。然而,该工作使用的数据集规模较小,且LeNet-5[13]网络结构单一,输入大小有限(32×32),最初仅用于手写体数字的识别,当黑子图片输入时会被压缩,因此其在进行识别工作时降低了黑子图像的分辨率,使得识别结果受到较大影响;此外,该方法需要首先进行数据集的切割工作,使得工作量较大;更为重要的是,该方法基于传统的滑动窗口,并使用非极大值抑制算法产生最佳候选框,时间复杂度很高,在实际应用中相当耗时,因而无法完成实时检测工作。


在以上研究背景下,本文提出了一种两层的层次化结构来识别各种尺度的太阳黑子。在第一层结构中,采用一种名为YOLO(youonlylookonce)的深度学习模型进行太阳黑子的识别。该模型基于回归(regression)的思想在图像中选取最佳候选框,以识别速度快著称。模型训练之前,仅需要框定出极少量图片中太阳黑子的所在位置,即可作为训练数据集,大大减少了数据集的准备工作。在通常的目标识别任务中,小物体的识别往往是一个难点。针对本影面积较小的太阳黑子,本文采用基于交并比(intersection-over-union,IOU)的k均值聚类方法,对YOLO网络中的Anchor参数进行优化,以提高小黑子的识别率。在经过第一层结构的识别后,有些较为独立的小黑子仍然会被遗漏,因此设计了第二层结构,结合数字图像处理中的自适应通用加速分割检测(adaptiveandgenericacceleratedsegmenttest,AGAST)算法,专门识别YOLO检测结果之外这类本影极小的太阳黑子。该层次化结构如图1所示。


实验使用700张源自SDO/HMI数据集中的连续谱强度图像进行标注并训练YOLO网络。最终结果表明,整个处理流程在测试数据集上取得73.41%的交并比、约98.50%的识别率和0.60%的误识别率,并且在识别速度上远超传统的太阳黑子识别算法。本文提出的方法对太阳黑子的自动识别有着非常现实的意义,可以在一定程度上减少天文工作者的工作量,文中的方法也可以直接被应用于其他太阳表面活动的识别。


2、太阳黑子识别模型


2.1 层次化识别模型


太阳黑子图像是一种多粒度的数据,在太阳全日面图像中表现为不同的大小以及颜色深度。对于本影较大的黑子或黑子群,深度学习识别模型通常能够达到较高的识别率,然而小目标的识别通常是一个难题。对于太阳黑子这一识别对象,其较难识别的小黑子通常指本影和半影较小的太阳黑子,在太阳全日面图像中表现为斑点状。为了实现大物体和小物体的识别都能达到较高的准确率,且识别过程互不干扰,本文采用一种层次化的太阳黑子识别模型。第一层模型的本质是一个基于YOLO的深度神经网络,用于识别本影较大的黑子和黑子群这类较为明显的目标;第二层模型采用数字图像处理中的AGAST算法,针对斑点状的本影较小的黑子进行专门的识别。最终汇总两层模型的识别结果形成最终完整的识别结果。


2.2 YOLO模型基本原理


YOLO的最初版本YOLOv1的思想是使用单个神经网络集成目标检测的所有组件,以达到端对端的训练目的[14]。早期的目标检测方法通常是通过提取图像的一些特征(如Haar、SIFT、HOG等),使用形变部件模型(deformablepartsmodel,DPM),并用滑动窗口的方式来预测边界框[15]。这种算法具有相当高的时间复杂度,却无法达到较高的检测精度。后来的研究中诞生了OP(objectproposal)方法,其中选择性搜索(selectivesearch)为这类方法的典型代表[16]。相比于滑动窗口的穷举方式,OP方法减少了大量的计算,同时在性能上也有很大的提高。利用选择性搜索的结果,结合卷积神经网络的R-CNN[17]出现后,目标检测的性能有了质的飞越。基于R-CNN发展出来的SPPnet[18]、FastR-CNN[19]、FasterR-CNN[20]等方法,证明了OP方法应用于目标检测的有效性。


相比于R-CNN系列的方法,YOLO提供了另一种思路,将目标检测的问题转化成一个回归问题。给定输入图像,直接在图像的多个位置上回归出目标的候选框以及其分类类别。YOLO是一个可以一次性预测多个候选框位置和类别的卷积神经网络,能够实现端到端的目标检测和识别,其最大的优势就是速度快。


YOLOv1基于GoogleNet[21]网络。其首先将输入图片输入大小压缩为448pixels×448pixels,并将输入图片划分为S×S个栅格,每个栅格负责检测中心落在该栅格中的物体。每一个栅格预测B个边界框,以及这些边界框的置信度,而置信度反映了模型对这个栅格的预测:该栅格是否含有物体,以及对应边界框坐标预测的准确度。


图1层次化的太阳黑子识别模型示意图


YOLOv2[22]在YOLOv1的基础上做了许多性能改进。首先,其使用BatchNormalization代替Dropout以提升模型收敛速度,提高了模型的泛化能力,减少了过拟合的可能性。其次,YOLOv2移除了YOLOv1中的全连接层而采用了卷积和Anchor来预测边界框。为了使检测所用的特征图获得更高的分辨率,YOLOv2还利用了DimensionClustering和Fine-GrainedFeature等技术。


YOLOv3[23]使用Darknet53作为特征提取网络,输出三个尺度的特征图进行预测。多尺度预测方式增强了YOLO对于不同尺寸的目标检测的能力。此外,YOLOv3损失函数部分修改为二值交叉熵函数,并使用逻辑回归选择评分最高的Anchor以减少损失函数的计算量。总而言之,由于YOLOv3在前两个版本上的改进,其工作过程变得更加可靠,产生的结果也更加准确。因此本文采用YOLOv3为基础模型进行太阳黑子识别的实验。


2.3 数据预处理


实验数据采用SDO/HMI[24,25]的全日面连续谱图像。该项目利用NASA太阳动力学天文台(solardynamicsobservatory,SDO)产生每小时的高分辨率太阳全日面连续谱强度图、磁图以及对比度增强的强度图像等。图2展示了SDO/HMI各种类型的太阳全日面图,本文实验选用连续谱强度图(continuumintensity)进行训练,因为其通常比其他类型的图像具有更高的分辨率,在卷积神经网络中能够提取更加鲁棒的特征。


SDO/HMI太阳全日面图像尺寸为4096pixels×4096pixels,而其中含有太阳黑子的部分所占面积比例极小。若直接将太阳全日面图像直接输入YOLO,网络首先会对输入的图像进行缩放处理,将4096的图像缩放到448pixels大小,黑子所占的像素数目也会大大减小,原有的小黑子甚至会直接消失。还有部分被缩放后的黑子与周围的图像噪声相似度较大,易受周围噪声影响。经过实验检验,在上述原因的影响下,直接输入原图像进行训练会导致训练发散,即损失函数无法到达全局最优解。为了解决这一问题,我们将4096×4096大小的图像进行切割,得到多张416×416大小的图像,再对这些图像分别进行标注并训练。训练阶段完成后,首先将目标4096×4096大小的全日面图向外扩展黑色像素形成4160×4160的图像,再将其分割为100张416大小的子图像,分割识别后再合为一张完整的图像。


由于太阳黑子存在着非常多种类的形态,如果将所有的黑子都标注为同一类别,会影响YOLO网络参数的优化方向。例如,在生活场景识别中若把“人”和“自行车”标为同种类别,将对损失函数的下降方向产生极大干扰。在太阳物理领域,目前最常用的太阳黑子苏黎世分类方法是由瑞士苏黎世天文台瓦尔德迈尔在1938年提出的[26]。他按黑子群发展过程将其分为九个类型﹐用大写拉丁字母A~J表示。然而,以苏黎世分类进行太阳黑子的标注存在两点问题:首先,许多观测到的太阳黑子的半影十分模糊,进行苏黎世类别的标注是一件困难的工作,通常需要领域专家的介入,并且会花费大量的时间;其次,由于太阳黑子的周期性变化,苏黎世分类中九个类型的太阳黑子数目并不均衡,不均衡的训练类别使得YOLO在训练过程中数据较少的类别的损失函数减少不明显,导致该类别无法达到预期的训练效果。为了削减上述两种问题的影响,我们分析了黑子形态差异,并提出将黑子标注为两类,即适当尺度的黑子群和本影部分明显的大黑子,其中黑子群中包括了一些较为孤立的小型黑子。图3展示了数据预处理的过程。


图2SDO/HMI各类型太阳全日面图


2.4 网络结构


基于YOLO模型,我们设计了如图4所示的网络结构。


该网络得到三个尺度的输出结果,大小分别为[13×13×14],[26×26×14]以及[52×52×14]。其中,每个输出的前两个维度对应网格大小,如第一个尺度的前两维代表将输入图像划分为13×13的网格,每个网格与输出结果对应位置的网格相关联。每个尺度输出的第三维的分量“14”由网络中的部件计算得到。每个尺度对应两个Anchorbox,每个Anchorbox输出7个值:x,y,w,h(中心点坐标和宽高),C(置信度)以及类别概率c1,c2,分别对应小黑子和黑子群。


2.5 优化处理及参数调整


原始YOLO的Anchor尺寸适合检测大物体、多物体,而太阳黑子中小目标偏多,因此使用k均值聚类算法获取最佳的Anchor尺寸[24]。常用的k均值算法使用欧氏距离作为优化目标,在获取Anchor尺寸时容易引发“大框优势”,故将聚类函数修改为d(bbox,ccentroid)=1-IOU(bbox,ccentroid)。多次运行聚类算法,设置不同的k值。经过多次实验进行YOLO效果的验证,最终确定k值为6。因此,最终确定的YOLO网络结构输出三个网格尺寸,每个输出分别对应两个Anchor尺寸。其中,13×13大小的网格对应[75,85]和[42,61]的Anchor尺寸,用于检测较大目标;26×26大小的网格对应[31,27]以及[22,42]的Anchor尺寸,用于检测中等体型目标;52×52大小的网格对应[11,18]和[17,42]的Anchor尺寸,用于检测较小目标。


图3数据预处理流程


图4第一层模型:基于YOLO的深度神经网络


2.6 第二层太阳黑子识别模型


经过观察,在YOLO识别结果中,存在着极少的、温度较高且本影极小的太阳黑子未能被识别。原因是这类黑子的波长与太阳表面平静区的波长相近,使得YOLO容易将其误判为太阳表面的平静区。为解决该问题,建立第二层太阳黑子识别模型,采用数字图像处理中AGAST特征检测算法[27]标定出小黑子的位置。在性能上,第二层模型以增加识别时间为代价,提高了小黑子的识别率。


第二层模型以第一层模型的识别结果作为输入,专门负责识别第一层模型中还未能被识别的小黑子。根据YOLO的识别结果,在416×416大小的太阳黑子图像中,本影较小的太阳黑子可看作图像中的特征点进行处理,符合数字图像处理中特征检测问题的基本性质。Rosten等人[27]将FAST角点定义为:若某像素点与其周围足够多的像素点处在不同范围内,则该像素点可能为角点。考虑灰度太阳黑子图像,若某一点的灰度值比其周围领域内数量较多的像素点的灰度值大或者小,则该点可能为角点,即可以被认为是本影较小的太阳黑子。FAST算法的基本原理如图5所示,首先设定阈值t,对图像中的每一个像素点p,考虑其以3为半径的圆上的16个像素点p1至p16与p的像素差异。若16个像素点中有9个及以上的像素点与p的像素差异超过t,则认为p是特征点,最终采用非极大值抑制的方法进行筛选得到结果。


根据FAST算法原理,为提升检测速度,可以使用ID3算法构建决策树。2010年Elmar和Gregory等人[28]提出了自适应通用加速分割检测(adaptiveandgenericacceleratedsegmenttest,AGAST)算法,将FAST算法中ID3决策树改造为二叉树,并能够根据当前处理的图像信息动态且高效地分配决策树,提高了算法的运算速度。为了高效率地进一步识别第一层模型遗漏的小黑子,第二层模型采用AGAST算法,识别第一层模型标定的识别框之外的特征点。经过多次对比和调试,最终选用t=35作为像素差异的阈值。


3、检测实验及分析


3.1 YOLO训练过程


按图4搭建了第一层太阳黑子识别模型后开始训练。YOLO的训练目标是最优化以下损失函数:


其中包括三个部分,前两行为坐标预测损失,第三和第四行为置信度损失,最后一行为类别损失。使用随机梯度下降优化器对损失函数进行优化:


图5FAST算法的基本原理示意图


YOLO模型完成15000轮训练过程后,其损失函数值由935.12降至0.22。图6展示了训练过程中截取的1000步训练过程损失函数的变化。


图6损失函数的部分变化过程


3.2 实验结果


训练完成后,使用SDO/HMI从2010至2014年内随机挑选的图像,截取太阳黑子较多的部分后形成416×416大小的子图进行测试。部分识别结果如图7所示。其中,绿色框代表本影和半影较为明显的大黑子,红色框代表黑子群以及部分独立的本影较小的黑子,而黄色框代表第二层模型识别出的本影较小的小黑子。


与本文假设相符,在经过第一层识别模型后,有些本影较小的黑子未能被识别。经过第二层识别模型后,约96.72%的小黑子能够被识别。最终,经过对该100张4096×4096大小的太阳全日面测试图像的结果分析,模型平均能够达到73.41%的测试交并比,约98.50%的识别率以及约0.60%的误识别率。测试交并比结果的分布如图8所示,可以看出交并比的分布基本较为稳定且均大于等于55%。交并比在图像识别领域是常用的测试标准,通常交并比大于50%时便认为是一个优秀的识别结果,因此本文太阳黑子的识别结果具有精确性和健壮性。


3.3 结果分析


从执行结果时间复杂度的角度分析,首先设M和N分别为图像的宽和高,滑动窗口的宽和高分别为m和n。YOLO对于特征图上每个位置的元素只提取一遍,时间复杂度为O(MN)。AGAST算法遍历图像中的每个像素,复杂度仍然为O(MN),因此两层结构的网络总复杂度为O(MN)。基于R-CNN[19]方法提取的像素的数量为(M-m)×(N-n)×M×N,时间复杂度为O((MN)2)。付小娜等人[12]基于滑动窗口的卷积神经网络需要控制图像的宽和高以及滑动窗口的宽和高,时间复杂度亦为O((MN)2)。因此,本文提出的两层模型结构能够在确保识别精度的条件下以非常快的速度进行太阳黑子的识别。


从执行结果的准确率(准确率=1-漏检率)来分析,98.50%的识别准确率超过了付小娜[12]约80%的识别准确率、Zhao等[10]95%的准确率以及Zharkov[13]所得到的95%~98%的识别准确率结果。层次化模型的错检率约为0.6%,效果优于Zhao等[10]1.2%的错检率,而低于付小娜等[12]没有漏检率的情况。


可以看出,在多项指标上,该层次模型均能够相对于其他工作取得更优良的效果。但该模型亦存在着一定的缺点:由于在识别时将整幅太阳黑子全日面图像等面积分为100份,因此有些较大的或狭长的太阳黑子会被截断进入不同的子图像中,该现象导致这些黑子被模型识别为两个或多个独立的黑子,这对太阳黑子的识别不利。为此提出以下解决方法:在完成100份子图像的识别后,若在某个子图像中有识别框位于该子图像边缘,则判断其所在边缘方向的相邻子图像的邻近边缘是否也有某个识别框位于边缘。若有,则合并两个子图像中的识别框;否则,继续扫描图像,直到没有这样的相邻情况。


从模型的泛化能力进行分析,由于模型的诸多参数如图片尺寸、像素差异阈值等均由实验测出,因此识别结果可能与数据的来源高度相关。尤其地,对于其他观测设备得到的不同分辨率的全日面图像,模型可能无法取得令人满意的效果。针对这一现象,应当寻找尽可能提高模型泛化能力的可行方案。如对于图片尺寸,将不同来源的数据缩放至同一大小;对于像素差异阈值,对图像进行合适的预处理,如归一化,使得不同来源图像的阈值相近;对于分辨率问题,可以进一步修正YOLO模型的损失函数,为其添加与分辨率相关的正则化项,从而解决分辨率不同的问题。


3.4 未来工作


太阳耀斑是太阳大气局部区域发生的一种剧烈的爆发现象,其在短时间内释放大量能量,引起局部区域的瞬时高温,向外发射各种电磁辐射,并伴随粒子辐射突然增强。美国宇航局(NASA)于2013年末及2014年初连续发布了其捕获的太阳耀斑数据,包括原始波长数据及转换后肉眼可观测的图像。理论上,耀斑在其形态方面与其他太阳活动可区分,但通常体积较大,因此可采用本文第一层YOLO模型重新进行耀斑的识别,无需第二层识别模型来识别极小的目标。


图7太阳黑子识别结果


除耀斑外,暗条、光斑等太阳活动均具有其独特的数据特性,并且能够在NASA发布的数据集中找到大量的训练数据,因此其在理论上是可分类的。由于YOLO模型本身可完成多分类任务,因此可在数据准备充足的情况下,将本文的范围直接扩展至其他太阳活动的识别。


4、结论


本文建立了层次化的太阳黑子识别模型。在第一层模型的识别过程中,使用700张SDO/HMI数据集中标注后的太阳黑子图像训练YOLO深度神经网络用于太阳黑子识别,并在测试集上达到了较高的分类准确率。针对小型黑子识别率低的问题,使用基于交并比的k均值算法确定了YOLO网络中的Anchor,使得网络能够识别更多的小黑子。为了进一步提升小黑子的识别率,建立了第二层太阳黑子识别过程,采用AGAST特征检测算法,专门进行本影较小的太阳黑子的快速识别。该层次化模型在测试数据集上获得了73.41%的测试交并比,约98.50%的识别率以及约0.60%的误识别率,并在识别速度(每秒帧率)上远超传统方法,甚至能够对太阳黑子进行实时检测,同时满足了准确性和高效性。文中的模型与算法可以直接被广泛应用于各大全日面太阳图像数据集的太阳黑子识别工作,并可扩展到对其他太阳活动的检测,如耀斑、暗条等。


图8测试交并比的分布

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表