游江川
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
隨著望遠鏡和計算機的快速發(fā)展,大量的天文觀測數(shù)據(jù)產(chǎn)生,人們對太陽活動特征也越來越感興趣。太陽活動中的耀斑、日冕物質(zhì)拋射(Coronal Mass Ejection,CME)及日珥的形成與太陽暗條密切相關(guān),因此暗條的形成和運動是用來解釋太陽上許多其他現(xiàn)象的重要因素。太陽暗條是由較冷、較高密度的客體形成的長薄形結(jié)構(gòu),位于磁場極性反轉(zhuǎn)線上,比周圍寒冷,因此當以太陽日面為背景時,它們通常呈現(xiàn)暗黑色。當沿著太陽輪廓分布時,太陽暗條可形成令人眼花繚亂的突起結(jié)構(gòu),此時又被稱為日珥。暗條和許多人類領(lǐng)域息息相關(guān),比如無線電短波通信、磁暴、極光現(xiàn)象、地球自然環(huán)境以及自然災(zāi)害等,基于此,太陽暗條的自動檢測是一項非常重要的任務(wù)。
多年來,許多學者已經(jīng)提出了較多檢測太陽暗條的方法,但其中大多數(shù)是基于傳統(tǒng)圖像處理的方法。本文提出一種可靠的方法,使用改進的U-Net來識別Hα全日面太陽圖像的暗條。首次用于生物醫(yī)學圖像分割的U-Net[1]在本文中是研究太陽物理學中暗條分割的一種新方法。本文通過此新的方法可以在帶噪聲的圖像中更準確地識別出暗條位置。
本節(jié)將介紹語義分割提出的全卷積網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN),之后展示改進的U-Net網(wǎng)絡(luò)架構(gòu)。其中,在網(wǎng)絡(luò)中添加了幾個dropout層以使其能夠完成關(guān)于暗條識別的任務(wù)。此外,還采用了插值方法代替反卷積以減少訓練時間。
在文獻[2]提出FCN之前,實現(xiàn)圖像端到端學習的像素級分割仍然是一個問題,大多數(shù)研究集中在使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN,也稱為“convnet”)進行圖像分類。文獻[2]首次使用全卷積層代替全連接層實現(xiàn)像素級圖像分割,另一個重要貢獻是定義了可以將來自深層的粗略信息與來自淺層的詳細信息相結(jié)合的設(shè)計架構(gòu)。與CNN對圖像進行分類不同,F(xiàn)CN可以對圖像中的每個像素進行分類以實現(xiàn)圖像識別。FCN將經(jīng)典CNN分類網(wǎng)絡(luò)[3]的5個卷積層和3個全連接層改為全卷積網(wǎng)絡(luò),由卷積、池化及激活函數(shù)組成,如圖1所示。

圖1 全卷積網(wǎng)絡(luò)(FCN)的架構(gòu)
卷積的目的是通過卷積核從先驗中提取特征圖,激活函數(shù)“Rectified Linear Unit”[4]用于向特征圖添加非線性元素,特征圖中的位置元素s(i,j)可以通過以下方式計算:

式中:ReLU(x)=max(0,x);N是輸入層的總通道數(shù);Xk是第k個輸入通道;Wk是其中一個輸入通道的第k個卷積核;b代表可調(diào)偏置。“ReLU”的基本功能是將這些負值設(shè)為0,卷積層旨在從前一層提取多維特征圖。
為了獲得更突出的特征信息,在平移不變性的作用下,特征圖的分辨率在池化層被壓縮。一般有“平均”池化和“最大”池化兩種池化操作。FCN選擇“最大”池化作為其池化策略。第l個池化層中位置(i,j)處的值可以表示為

式中:mn是第(l-1)個卷積層中池化內(nèi)核的重疊區(qū)域,池化核的大小為3×3,步幅為1。池化層的主要作用是減小上層特征圖的大小,降低網(wǎng)絡(luò)的計算復(fù)雜度。
盡管FCN可以在語義分割等像素任務(wù)進行有效學習,但原始FCN還不夠完美,因為它的分割結(jié)果仍然很粗糙。因此,人們做了大量的研究來提高圖像分割的精度,一般來說,有兩種方法來處理這個問題。第一種方法是在標準卷積層后面添加擴張卷積以避免在池化過程中丟失信息[5],并改進擴張卷積,如空間金字塔池化[6]以及全連接條件隨機場(Conditional Random Field,CRFs)[7]。第二種方法是在最大池化層和上采樣層之間建立跳躍連接,如DeconvNet[8]、SegNet[9]以及U-Net[1]。由于U-Net的高效性和準確性,本文計劃將其進一步改進并應(yīng)用于太陽暗條的分割任務(wù)。
U-Net是基于FCN提出的,研究者們修改和擴展其網(wǎng)絡(luò)框架,使其可以使用有限數(shù)量的訓練圖像來獲得更準確的識別結(jié)果。它的架構(gòu)包括一個收縮路徑,其中特征圖的維度由于最大池化而減少;還包括一個擴展路徑,其中特征圖與相應(yīng)位置的上采樣圖相結(jié)合[1]。
通常,暗條在太陽日面上占據(jù)的區(qū)域很小,直接使用U-Net很難對暗條進行精確分割。因此,基于經(jīng)典的U-Net,本文在前4個下采樣塊中的兩個卷積層后面加入了dropout層[10]。此外,本文采用具有最近鄰插值功能的上采樣操作,如圖2所示。

圖2 改進后的U-Net網(wǎng)絡(luò)架構(gòu)
第一個下采樣塊包含兩個具有“ReLU”激活函數(shù)的卷積層和一個最大池化層。前兩個卷積層有64個卷積核,大小為3×3,步長為1。在接下來的下采樣塊中,卷積核的數(shù)量是前者的兩倍,內(nèi)核大小保持不變。為了防止過擬合,本文在前4個下采樣塊中的兩個卷積層之后添加了幾個dropout層。dropout層的公式為:

式中:p是丟棄神經(jīng)元的概率,一般設(shè)為0.5;B函數(shù)隨機生成0或1。第(l+1)層的神經(jīng)元yi可以計算為:

它旨在以50%的概率丟棄每個神經(jīng)元。
在上采樣塊中,本文使用最近鄰插值來調(diào)整圖像大小而不是去卷積,以保證結(jié)果可靠,同時提高訓練速度。由于通過對前一個特征層進行插值來近似調(diào)整,因此特征具有代表性和可靠性。原始圖像的寬度和高度分別為w1和h1,縮放后的圖像的寬度和高度分別為w2和h2。縮放圖像的坐標可以計算為:

式中:縮放圖像中的(x0,y0)等于原始圖像中的(x,y)。
本文從數(shù)萬張來自BBSO的圖像中選擇了30對典型的圖像作為原始訓練集,其中20對被選為驗證集,10對被選來測試所提出方法的性能。從原始圖像中去除太陽輪廓變暗,以避免引入過多的噪聲和其他不良因素;太陽日面外的所有像素都設(shè)置為灰色;使用Labelme軟件將原始圖像中的暗條標記,形成標簽文件。當少量訓練圖像可用時,數(shù)據(jù)增強對于網(wǎng)絡(luò)不變性和魯棒性也很重要,翻轉(zhuǎn)、平移以及旋轉(zhuǎn)不變性是主要方法。為了獲得可用的模型,只選擇那些具有不同特征的圖像作為訓練樣本。最后,從30張高質(zhì)量的Hα全日面太陽圖像生成6 040個訓練樣本。
所提出的方法將Hα全日面太陽圖像和標簽文件作為輸入,將其大小調(diào)整為512×512并輸入到改進的U-Net架構(gòu)以生成合適的權(quán)重模型,該模型用于分割Hα全日面太陽圖像中的暗條。改進的U-Net網(wǎng)絡(luò)可以快速訓練少量的圖像。
由于實驗的硬件限制,輸入圖片被縮放到512×512。對于GeForce 1070Ti GPU,如果batch大小設(shè)置為4或更大,會耗盡內(nèi)存,因此batch設(shè)置為2。本文選擇“Adam”作為優(yōu)化器[11],學習率為0.000 1,beta1為 0.9,beta2為0.999,所有權(quán)重由“He”初始化器[12]初始化,均值為0,標準差為sqrt(2/fan_in),所有偏差初始化為0。在訓練任務(wù)中,U-Net將太陽日面劃分為暗條區(qū)域和非暗條區(qū)域。sigmoid函數(shù)S(x)用于對結(jié)果進行排序,它是一種邏輯函數(shù),將所有結(jié)果轉(zhuǎn)換為(0,1)內(nèi)的概率,它的表達式為:

式中:x是上述網(wǎng)絡(luò)的處理結(jié)果,其值越接近1,該像素就越有可能是目標對象。二值交叉熵作為網(wǎng)絡(luò)的損失損函數(shù),其中yi是預(yù)測結(jié)果,y^i是真實結(jié)果。

在不使用預(yù)訓練模型的情況下,本文的方法可以使用GPU在大約49.3 min內(nèi)訓練一個出色的模型,而對于CPU,訓練一個可用模型大約需要57.1 h。
本文使用Dice系數(shù)(Dice Similariy Coefficient,DSC)、相似性度量以及來自常見語義分割評估方法的真陽性率(True Positive Rate,TPR)對暗條分割進行評估。對于檢測到的暗條,DSC衡量了標簽文件標記的真實結(jié)果與檢測結(jié)果之間的重疊部分,即:

式中:TP、FP及FN分別表示真陽性、假陽性及假陰性測量值。此外,真陽性率(TPR)、假陽性率(False Positive Rate,F(xiàn)PR)的計算公式如下:

訓練的損失和準確率如圖3所示,它描述了這個深度神經(jīng)網(wǎng)絡(luò)的訓練過程。如圖3(a)所示,所提出網(wǎng)絡(luò)架構(gòu)的訓練集的損失在前5個epoch急劇收斂,并在20個epoch后穩(wěn)定在0.005,驗證集的損失呈現(xiàn)出整體下降的趨勢。對于圖3(b),訓練集的準確率迅速增加,在第5個epoch時達到0.997,在第20個epoch后穩(wěn)定在0.998左右,驗證集的準確率總體呈上升趨勢。因此,在所提出的網(wǎng)絡(luò)的訓練過程中將訓練epoch設(shè)置為20是合理的。

圖3 網(wǎng)絡(luò)訓練過程中的損失和準確率
本文選擇10對包含各種形狀的暗條圖像作為本文的樣本來評估所提出的網(wǎng)絡(luò)架構(gòu)的性能。由于分割結(jié)果是一個概率圖,因此不同的概率閾值對最終的分割精度會有不同的影響。本文使用ROC曲線[13]來評估改進的U-Net模型性能,它通過在各種閾值設(shè)置下繪制TPR和FPR來繪制。本文對每個概率圖中的非零概率值進行遞增排序,然后將它們分成10組,每組概率值的最大值作為候選的概率閾值,得到每個概率圖的10組暗條分割結(jié)果。10個測試樣本的ROC曲線如圖4所示。

圖4 10個測試樣本的ROC曲線
在圖4中,根據(jù)分割結(jié)果和真實標簽之間計算的TPR和FPR,繪制了所選測試集的ROC曲線。對于每個概率圖,靠近ROC圖左上角的點就是合適概率閾值的點。從圖4可看出,本文的方法可以實現(xiàn)非常低的FPR和非常高的TPR。如果訓練集中真實標簽的人工標注更加準確,分割的準確率可能會進一步提高。理論上,當大暗條周圍這些小區(qū)域的預(yù)測概率低于ROC曲線上適當?shù)母怕书撝禃r,它們將被忽略。但需要注意的是,這些強度較低(預(yù)測概率較高)的小區(qū)域仍然可以被識別。通常,圖4的概率閾值必須滿足FPR盡可能小而TPR盡可能大的要求,靠近圖4左上角的位置是合適的概率閾值,分割結(jié)果最好。在10個樣本中,最高TPR達到0.964 2,而對應(yīng)的最低FPR達到0.000 2,平均TPR為0.914 5,平均DSC為0.894 4,這些都表明本文的方法是太陽暗條識別的可行策略。另外,還能發(fā)現(xiàn)暗條越大,分割精度越高;反之,暗條越小越分散,分割精度越低。這是因為,對于大暗條,可以很容易地檢測到那些明顯的特征。
使用改進的U-Net網(wǎng)絡(luò)的分割結(jié)果如圖5所示,同時,也將傳統(tǒng)數(shù)字圖像處理產(chǎn)生的結(jié)果與本文所提出的方法進行了比較。如圖5(d)所示,傳統(tǒng)的圖像處理方法產(chǎn)生了大量的噪聲點,需要在后續(xù)操作中去除,因此也可能同時去除暗條周圍的一些暗條碎片部分。結(jié)果表明,本文的方法用于全日面Hα太陽圖像中的暗條分割是一種可行的方法。

圖5 使用改進的U-Net網(wǎng)絡(luò)的分割結(jié)果
本文提出了一種使用改進的U-Net深度卷積網(wǎng)絡(luò)對Hα全日面太陽圖像的全自動暗條檢測和分割的方法。實驗結(jié)果證明,與傳統(tǒng)圖像處理方法相比,本文的方法可以提供有效的分割。此外,改進的U-Net網(wǎng)絡(luò)可以直接分割暗條,避免了大量噪聲點的產(chǎn)生,并可以在不到一個小時的時間內(nèi)獲得可用的模型。
盡管本文取得了不錯的成果,但目前的工作仍然存在一些局限性。首先,對于太陽日面上強度明顯不均勻的圖像,模型可能會將那些強度過低的位置識別為暗條,這些位置的強度特征與典型的暗條具有很強的相似性,這可能會導致網(wǎng)絡(luò)的錯誤識別,對此可以采用擴大網(wǎng)絡(luò)深度或增加訓練集的多樣性的有效方法。其次,網(wǎng)絡(luò)存在陷入局部最優(yōu)的風險,在這種情況下,必須重新訓練模型,固定的學習率可能是此問題的原因,對學習率的自適應(yīng)調(diào)整是解決此類問題的一種可能策略,也是未來的研究方向。