辛澤寰,尚振宏
(昆明理工大學信息工程與自動化學院,云南 昆明 650500)
太陽暗條是在日冕中由低溫高密度的等離子體組成,在日面中心呈現絲狀結構[1]。暗條的尺度、活動狀態(tài)各不相同,最終會消失或者爆發(fā)。暗條爆發(fā)與太陽耀斑、日冕物質拋射、磁風暴等有密切的關系,強烈的暗條爆發(fā)活動發(fā)射的等離子體在幾天后抵達地球,影響地球磁層,嚴重時導致通信設備受損,造成通信中斷、航空運輸導航失效等災難[2]。此外,暗條通常出現在光球磁場極性反轉線的上方,因此,對暗條進行研究有助于探究太陽磁場的變化過程。作為相關研究的基礎和前提,對暗條準確檢測具有重要的科學意義。
根據光學厚的暗條物質會吸收大量光球背景輻射但發(fā)射很少這一特征,在Hα波段觀測到的太陽暗條比周圍背景更暗。在此基礎上,大量學者對暗條自動檢測方法開展了一系列研究,具體可以分為3類:(1)基于閾值檢測方法。例如,文[3-4]采用全局閾值和區(qū)域增長算法自動檢測暗條;文[5-7]采用局部閾值代替全局閾值改善全日面圖像具有臨邊昏暗和亮度不均勻這一問題;文[8]利用Canny算子進行暗條邊緣檢測后,利用形態(tài)學腐蝕膨脹法檢測暗條。此類方法計算復雜度較低,只需關注暗條圖像特征,不需要人工標注數據集,但是容易將圖像中的噪聲點和較暗的背景誤識別為暗條,檢測結果精確率較低。(2)基于機器學習方法。例如,文[9-10]利用人工神經網絡,通過一個預先定義的窗口逐個像素點檢測暗條,對不同背景中的暗條,訓練后的神經網絡能夠正確識別。此類方法可以有效克服對圖像歸一化過程的高度依賴,利用先驗信息設定合適的特征提取器,特征提取效率高,模型訓練速度快,但是模型泛化性較差,一些形態(tài)結構復雜的暗條不能有效地自適應建模,對弱小暗條不敏感,檢測結果存在弱小暗條斷裂和漏檢問題。(3)基于深度學習方法。深度學習方法可以更好地學習圖像特征,在天文圖像處理方面取得很大成功,引起學者的廣泛關注[11-12]。例如,文[13]利用Mask R-CNN檢測暗條,采用印度尼西亞航空航天研究所拍攝的Hα波段全日面圖像數據集,ResNet-101和特征金字塔網絡作為骨干網絡,訓練模型進行太陽暗條檢測;文[14]利用基于UNet深度學習網絡識別太陽暗條,采用大熊湖天文臺拍攝的Hα波段全日面圖像數據集,同時在UNet網絡的下采樣部分加入Dropout層,在上采樣部分用線性插值代替反卷積,改進后的UNet網絡用于太陽暗條檢測。相比機器學習方法,這類方法無需人工設計特征提取器,可以根據標簽自動學習暗條的特征及細節(jié)信息,總體算法的泛化性和魯棒性較高。但是此類方法存在標簽不準確的問題,標簽中存在太陽黑子及噪聲點,干擾網絡提取暗條特征,導致訓練模型不精準。UNet網絡在下采樣過程中提取特征能力不夠,丟失暗條的細節(jié)特征,在上采樣過程中,只對網絡最終輸出結果進行調整,中間特征圖沒有得到充分訓練,檢測結果存在弱小暗條斷裂、甚至漏檢或者背景誤識別等問題。
針對當前暗條檢測存在的問題,為了網絡能夠學習更準確的暗條特征,本文首次結合太陽磁圖,對數據集中的太陽暗條進行手工標注,在訓練網絡前對圖像進行亮度歸一化、去噪等預處理。VNet[15]網絡具有較強的抗干擾能力,可以有效抑制背景對檢測結果的影響。為了充分提取暗條的細節(jié)特征,我們對VNet網絡進行改進,改進后的網絡能更精確地檢測弱小暗條。本文主要工作是:(1)結合太陽磁圖制作了太陽暗條數據集(本文數據集公開在https://github.com/huan819/fv),相對已有的暗條數據集,該數據集制作時,根據同一時刻太陽磁圖的磁場分布結構,剔除黑子和噪聲,保留了弱小暗條,暗條標簽更精確。(2)在網絡下采樣部分采用Inception模塊[16]提取不同尺度特征圖的特征;引入注意力機制[17],抑制背景圖像中干擾特征的影響;在上采樣部分引入深度監(jiān)督模塊[18],將不同深度特征圖進行融合,提高了檢測結果的準確率。最后通過實驗證明,本文方法能對太陽暗條實現較高精度的檢測。
暗條數據集取自美國大熊湖天文臺的Hα全日面圖像。由于太陽與地球之間距離變化和溫度、濕度、風速等原因,導致拍攝的圖像不居中,同時地面儀器還受到光線、大氣抖動等復雜因素影響,造成全日面圖中有噪聲,亮度不均勻。這些因素在一定程度上影響網絡檢測結果的準確率和召回率。針對這些問題,本文首先使用霍夫圓檢測法和最小二乘擬合法獲得太陽中心和半徑,計算圖像中心點坐標和太陽圓心坐標,將太陽圓心平移到圖像中心點,當兩種方法相差5像素時,人工進行調整,得到太陽輪廓,并將輪廓外像素設置為灰色,避免干擾網絡訓練;其次利用全變分模型去除背景噪聲;最后通過增強圖像對比度突出暗條特征,剪切去除圖像中極值像素點,剩余部分按比例重新分配。預處理前后的圖像如圖1,由圖1可以看出,圖像經過預處理后,暗條特征更加明顯。
圖1 (a)原始圖像;(b)預處理后圖像Fig.1 (a) Original image; (b) pre-processed image
數據是深度學習的血液,基于深度學習的暗條圖像分割算法需要從標注好的數據中學習暗條特征信息,從而不斷調節(jié)網絡中每一層參數。標注數據有偏差會導致訓練模型難以收斂,檢測結果不精準,甚至不超過傳統(tǒng)閾值分割法。目前公開的太陽暗條數據集來自中國科學院國家天文臺[14],該數據集取自美國大熊湖天文臺的Hα全日面圖像,但其暗條數據集標注方法是根據暗條的亮度特征,利用圖像閾值分割處理方法,圖像中太陽黑子和小噪聲點也同時標注,漏掉弱小暗條,網絡提取到錯誤的特征信息,導致暗條漏檢和背景誤識別。圖2為中國科學院國家天文臺數據集中普遍存在的一些問題。圖2(a)紅色框處是全日面圖中的太陽黑子,圖2(b)紅色框處是對應標簽中的太陽黑子,圖2(c)紅色框處是全日面圖中的弱小暗條,黃色框處是噪聲點,圖2(d)紅色框處是對應標簽中漏掉的弱小暗條,黃色框處是噪聲點。為了提高訓練準確率,進而提高模型準確率,本文制作并公開了太陽暗條數據集,該數據集包括兩部分:Hα全日面圖像和暗條二值標簽圖。Hα全日面圖像取自美國大熊湖天文臺2010~2020年拍攝的Hα波段全日面圖像。
圖2 國家天文臺數據集[14]。(a)和(c)為Hα全日面圖像;(b)和(d)為太陽暗條標簽圖
暗條與磁場有密切的關系,暗條存在于太陽磁場極性反轉線的上方。極性反轉線是指徑向磁場在光球上正負磁場的分界線[19]。另外,太陽黑子位于單一極性區(qū)域,而非極性反轉線上。利用該特征,根據同一時刻美國國立太陽天文臺全球日震觀測網(Global Oscillation Network Group, GONG)觀測的太陽磁圖中正負磁極的位置,即圖3(b)中黑白相交的位置,結合暗條的亮度和紋理特征,同時利用磁圖排除黑子對暗條檢測結果的干擾,采用Labelme標注工具對暗條進行描點標注。圖3(a)為全日面圖像;圖3(b)為全日面太陽磁圖;圖3(c)為太陽暗條標簽圖。圖3(b)中紅色線條為標注的磁中性線,與圖3(a)紅色框對應的圖3(b)中的位置并無正負磁場出現,因此在制作標簽時,該位置不存在暗條。本文數據集包含191幅全日面Hα圖像,包含各類形態(tài)暗條3 372個,由于2013~2014年暗條數量較多并且具有不同的尺度,暗條特征較為完整,因此訓練集圖像取自2013~2014年的全日面圖像共146幅。測試集圖像取自其余年份的全日面圖像共45幅。
文[15]提出VNet網絡用于醫(yī)學圖像的分割,由于太陽暗條和醫(yī)學圖像都具有制作標簽成本高、數據訓練樣本比較少的特點,而VNet網絡只需要少量的樣本就可以訓練模型,并且VNet網絡在上采樣和下采樣過程中加入殘差結構,解決了深層網絡梯度消失的問題。此外,VNet網絡抗干擾能力較強,可以有效抑制背景對暗條檢測結果的影響,因此本文采用改進原有的VNet網絡檢測太陽暗條。
VNet網絡由上采樣和下采樣兩部分構成,VNet算法結構如圖4。下采樣部分主要功能是提取圖像特征,包含5個卷積單元,每個卷積單元由卷積層、池化層和激活函數組成。卷積采用5 × 5 × 5的卷積核,填充大小為2,步幅為1。池化層可以減少訓練過程中的參數,減少內存占用率,提高訓練速度。激活函數為PReLU[20]函數。卷積塊中還加入了殘差學習結構,有效緩解梯度消失的問題。下采樣和上采樣中間為級聯(lián)。級聯(lián)將下采樣過程中的特征圖與上采樣反卷積后的特征圖融合,再進行卷積操作,這樣可以有效防止下采樣過程中特征丟失,保留在下采樣部分的目標位置信息以及圖像的邊緣特征。
圖4 VNet算法結構圖Fig.4 Structure of VNet algorithm
原始的VNet網絡能夠很好地抑制圖像背景的干擾,但是暗條大小尺度不一,弱小暗條的特征難以提取,容易造成細節(jié)信息丟失、暗條斷裂等問題。針對這些問題,本文提出一種基于改進VNet網絡的暗條檢測算法。網絡整體分為下采樣和上采樣兩部分,改進的VNet算法結構如圖5。本文保留了VNet網絡的基本結構,圖像輸入后,首先經過Inception模塊學習不同尺度特征圖的特征,并融合輸入下一層,提高網絡性能,并在上采樣的第2和第3個卷積單元中加入注意力機制,更好地利用上下文信息,增強特征圖中暗條的語義信息,提高網絡對重要信息特征的學習能力。在上采樣部分引入深度監(jiān)督模塊,充分提取太陽暗條特征,改進后的網絡模型能夠充分提取太陽暗條特征,提高了太陽暗條檢測精度。
圖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
下采樣過程中對圖像不斷卷積提取圖像特征,造成暗條邊緣及細節(jié)信息丟失。雖然VNet網絡采用跨連接融合特征圖保留了一些信息,但是不同空間位置所包含信息的重要程度不一樣,圖像中不同位置應該具有不同權重。本文在下采樣特征提取過程中加入空間注意力機制[17],增強暗條特征的同時抑制無用背景信息。
圖像經過下采樣過程中第2個卷積單元得到特征圖,如圖7。首先分別使用最大值和平均值全局池化操作,最大值池化可以突出暗條特征,平均值池化可以獲取全局信息,將兩種池化后的特征圖按通道拼接后進行1 × 1卷積并添加非線性成分,然后通過sigmoid激活函數計算得出空間注意力權重的空間矩陣,sigmoid函數可以避免特征在傳遞過程中過于稀疏及權重系數過大。經過sigmoid函數得到權重系數與輸入特征圖相乘得到新特征圖??臻g注意力機制可以表示為
圖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]提出一種深度監(jiān)督網絡(Deeply-Supervised Nets, DSN)。深度監(jiān)督能夠對前面層的訓練起到監(jiān)督作用,從而保證整個網絡的訓練效果。本文采取深度監(jiān)督方法調整每一層特征圖參數,保證輸出層和隱藏層學到該層盡可能多的細節(jié)特征,從而保證更上層網絡能夠使用更加精確的特征圖進行訓練。
深度監(jiān)督模塊如圖8。每個上采樣過程中有一個額外的分支操作,該分支操作將不同尺度特征圖通過上采樣放大,將圖像恢復到原始圖像大小,這4個分支操作分別是map1,map2,map3和map4,再將這4個階段的分支操作進行融合。通過對特征圖的監(jiān)督,不同尺度特征圖都能學到最準確的特征,提高網絡檢測準確率。
圖8 深度監(jiān)督模塊Fig.8 Deep supervision module
所有實驗在Windows10系統(tǒng)下進行,其中深度學習框架為keras,硬件環(huán)境:中央處理器為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
選擇優(yōu)化器時,在訓練過程中產生大量參數,導致計算量增加。本文采用Adam優(yōu)化器[21]訓練網絡。該算法優(yōu)點是在訓練過程中可以為不同的參數計算不同的自適應學習率,有利于網絡優(yōu)化,適用于大規(guī)模參數問題,并且對內存需求較小。
在深度學習中,訓練集樣本較少是造成過擬合的主要原因之一。由于太陽暗條圖像人工標注成本很高,數據集較少,因此,本文在訓練的同時利用keras中ImageDataGenerator圖片生成器對訓練圖像進行旋轉、垂直翻轉、平移等擴充數據。146組圖像經數據增強后生成26 648個訓練樣本,提高了模型的泛化能力和魯棒性。
在太陽暗條檢測過程中,暗條僅占整個Hα全日面圖像約5%區(qū)域,在訓練過程中損失函數容易陷入局部最小值,導致檢測結果偏向背景,漏檢弱小暗條。為了有效解決前景和背景像素嚴重失衡的問題,損失函數采用基于Dice系數最大化目標函數[15]優(yōu)化模型,公式為
(2)
其中,P和G分別表示暗條預測結果和暗條標簽;N(ΔP)和N(ΔG)表示預測結果和標簽區(qū)域中像素個數;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模塊同時加入注意力機制,在上采樣部分引入深度監(jiān)督模塊具有一定的優(yōu)勢,本文將改進前后的VNet網絡在測試集上進行測試,采用人工標注暗條標簽圖和檢測結果進行比較。表3列出了原始VNet網絡,加入Inception模塊后的Inception-VNet網絡,加入注意力機制后的Attention-VNet網絡,以及本文最終改進后VNet網絡性能指標的比較結果。根據每種網絡檢測的結果與標簽計算準確率。由于暗條占全日面圖像的比重約為5%,導致檢測結果準確率較高,為了更好地衡量檢測結果,采用召回率、精準率、F1值評價指標。從表3可以看出,原始VNet網絡準確率為0.966 1,F1值為0.816 8,說明原始VNet網絡檢測的結果可以較好地檢出特征明顯的暗條,但是針對弱小暗條,仍然出現漏檢問題。加入Inception模塊和注意力機制及深度監(jiān)督模塊后的VNet網絡,準確率達到0.988 3,F1值達到0.838 5。F1值明顯提高,可見改進后VNet網絡在下采樣過程中可以充分提取弱小暗條信息,提高檢測結果的準確率。
表3 基于VNet網絡不同算法性能指標比較
圖10選取圖像中包含弱小暗條的局部區(qū)域并放大2.5倍,本文方法對弱小暗條檢測效果與暗條標簽及原始VNet網絡檢測效果進行對比。圖中紅色框處是全日面圖像中的弱小暗條,圖10(e)~圖10(h)分別是圖10(a)~圖10(d)放大2.5倍后的局部區(qū)域。從圖10可以看出,原始VNet網絡檢測克服了背景干擾,但是對弱小暗條檢測準確性不高,存在漏檢現象。改進后的算法在下采樣部分引入Inception模塊和注意力機制,提升網絡性能,提取更多的暗條特征;在上采樣部分引入深度監(jiān)督模型,將檢測結果與每層特征圖融合,保留了細節(jié)特征,使得網絡同時兼顧語義信息和細節(jié)特征,盡可能保留弱小暗條的連續(xù)性,能夠抵抗背景干擾,取得更加精準的檢測效果。
圖10 暗條檢測結果。(a)全日面圖;(b)暗條標簽圖;(c)VNet檢測結果;(d)本文檢測結果;(e)~(f)第1行對應圖放大2.5倍結果
3.5.2 不同算法評估指標對比
為了進一步證明本文方法對太陽暗條圖像的檢測性能,使用上述評價指標將本文方法與文[14]的基于UNet暗條檢測方法(UNet),以及在該方法的基礎上,為捕獲暗條更多的細節(jié)融入了密集跳躍連接(Resent-UNet)。表4列出了不同方法對太陽暗條檢測結果。UNet網絡檢測的準確率達到0.958 7,F1值達到0.783 4,但受圖像中亮度較低的背景區(qū)域和噪聲影響嚴重,檢測結果錯誤率較大,算法檢出了不屬于暗條的部分,抗噪聲能力較弱。Resent-UNet將每個融合模塊通過密集跳躍連接的方式進行特征融合,網絡能捕獲暗條更多的細節(jié)特征,提高了檢測性能,準確率達到0.959 8,F1值到0.794 7,但精確率較低,說明網絡過于敏感,將一些亮度較暗的背景誤識別為太陽暗條。本文方法暗條檢測平均準確率高達0.988 3,F1值達到0.838 5,高于UNet和Resnet-UNet網絡平均準確率,F1值也達到了較高水平,因此本文方法更具優(yōu)勢。
表4 4種暗條檢測方法對比
為了更直觀地展示本文方法檢測效果,對太陽暗條圖像,在同等條件下將本文方法與上述暗條檢測算法在測試集上進行主觀測評,實驗結果如圖11。圖11(a)中紅色框處是全日面圖像中弱小暗條,圖11(b)是標簽圖,圖11(c)是傳統(tǒng)方法檢測結果。由圖11可以看出,本文方法可以檢出一部分弱小暗條,但是由于背景干擾,傳統(tǒng)閾值分割很難將背景噪聲點剔除,嚴重影響檢測結果。圖11(d)是UNet網絡檢測結果,檢測結果中背景噪聲點干擾較少,但是弱小暗條漏檢。圖11(e)是Resent-UNet檢測結果,加入殘差結構后,網絡提取特征能力得到加強,相比原始UNet網絡可以檢出更多弱小暗條,但是背景對比度較低的區(qū)域仍然存在漏檢現象。圖11(f)是本文檢測結果,改進后的VNet網絡可以有效完成太陽暗條檢測任務,獲得較好的性能指標,具有較高的穩(wěn)定性和抗干擾能力。從圖11(f)可以看出,在背景較為復雜的暗條圖像檢測任務中,本文算法對弱小暗條仍可以具有較好檢測效果,算法具有一定的先進性。
圖11 不同算法的檢測結果。(a)全日面Hα圖像;(b)太陽暗條標簽圖;(c)傳統(tǒng)方法檢測結果;(d)UNet檢測結果;(e)Resent-UNet檢測結果;(f)本文檢測結果
本文在太陽暗條檢測研究中,針對國家天文臺數據集標簽中存在太陽黑子和噪聲干擾及遺漏弱小暗條的問題,結合太陽磁圖剔除了圖像中黑子和噪聲干擾,制作了太陽暗條數據集,網絡能學習到精確的暗條信息。針對暗條檢測中存在背景干擾,弱小暗條丟失等問題,本文采用VNet網絡并進行改進,引入Inception模塊,得到暗條不同尺度信息,更好地利用網絡內部的計算資源,提取更多圖像特征;引入注意力機制,增強暗條特征的同時抑制無用背景信息;在上采樣部分引入深度監(jiān)督模塊,使不同尺度特征圖都能學到最準確的特征,提高太陽暗條檢測準確率。根據暗條檢測評價指標可知,本文方法的檢測效果有明顯提高。目前,數據集的圖像較少,因此,未來工作方向是研究如何用少量圖像訓練出高效檢測模型。