陳妍伶,程良倫,吳 衡,徐利民,何偉健,李 鳳
廣東工業(yè)大學計算機學院,廣東 廣州 510006
由于不同物質(zhì)在太赫茲波段范圍內(nèi)會產(chǎn)生不同的分子振動[1],從而每種物質(zhì)在振動頻率范圍內(nèi)都會表現(xiàn)出不同的特征吸收系數(shù),因此可以通過提取這些特征對光譜進行分類。
許多太赫茲光譜物質(zhì)識別方法依賴于在太赫茲波段中尋找物質(zhì)不同光譜表現(xiàn)出的不同特征來識別特定物質(zhì),如何有效提取特征是光譜分類的關鍵。由于許多物質(zhì)在太赫茲波段內(nèi)具有明顯吸收峰[2],因此吸收峰提取法是常用的光譜特征提取算法之一。何偉健等提出了一種吸收峰混疊的太赫茲光譜區(qū)間擬合算法,通過遺傳算法得到最優(yōu)的擬合子區(qū)間組合和吸收峰頻率的近似值,實現(xiàn)了純凈物和不同含量混合物的快速分類[3]。解琪等通過提取不同場合的爆炸物特征吸收光譜進行比對,實現(xiàn)爆炸物的識別[4]。殷清燕等通過調(diào)用太赫茲光譜數(shù)據(jù)庫,采用模板匹配和吸收峰峰值, 面積比對的方法,完成混合火炸藥的太赫茲特征光譜識別[5]。通過尋找特征峰雖能有效地識別物質(zhì),但當光譜無明顯特征吸收峰或峰位、峰值相近或難以辨別時,則難以利用吸收峰特征辨別物質(zhì),并且傳統(tǒng)尋峰算法對假峰、弱峰、混疊峰的識別能力有限。相對于紅外光譜、X射線衍射以及拉曼光譜而言,太赫茲光譜更易受到外界環(huán)境波動以及分子結(jié)構改變的影響,導致峰值特性所對應的結(jié)構信息的確定性更低,且局部特征不突出。因此,利用吸收峰提取法來識別物質(zhì)存在一定的局限性。
除了吸收峰提取法外,機器學習、統(tǒng)計學習和深度學習技術也常應用于太赫茲光譜特征提取。目前,已有不少學者開展了相關的研究工作。Liu等采用遺傳算法對四種不同地區(qū)的特級初榨橄欖油的吸收光譜進行特征提取,并使用最小二乘支持向量機進行分類,準確率達96.25%[6]。該方法對于小樣本分類有較高的識別率,但是對于多樣本分類的數(shù)據(jù)集使用遺傳算法往往容易陷入局部最優(yōu)解,后期搜索特征效率低。Huang等通過對吸收光譜的特征進行采樣,得到不同的特征頻率點,結(jié)合K-均值聚類算法對16種樣品進行分類,準確率達75%[7]。該方法需要人工預先定義光譜特征,容易受到人為因素的干擾而影響分類的精確度。
小波變換是一種有效的信號分析方式,能通過變換充分突出問題某方面的特征。Lu等首先用連續(xù)小波變換法判斷一個區(qū)間內(nèi)是否存在混疊峰,存在的話使用二階導數(shù)識別其中的混疊峰,并確定混疊峰位置及數(shù)量[8]。但光譜中的噪聲也會形成極大值,對脊線形狀造成了一定的干擾。目前都是通過值比較來尋找脊線位置,這限制了該方法對弱吸收峰的檢測性能。為了避免尋找吸收峰失誤對太赫茲光譜識別的影響,本文將太赫茲光譜的吸收系數(shù)通過小波變換在頻率域上展開,得到不同的二維的頻率-尺度分布圖,又稱小波系數(shù)圖,然后利用小波系數(shù)圖的唯一性,使用卷積神經(jīng)網(wǎng)絡(convolutional neural networks, CNN)對小波系數(shù)圖進行分類,將傳統(tǒng)方法對一維光譜數(shù)據(jù)的識別轉(zhuǎn)化為對二維圖像數(shù)據(jù)的識別。相對傳統(tǒng)方法而言,小波系數(shù)圖無需經(jīng)過復雜的預處理操作,不容易受弱峰、假峰、混疊峰的影響,也不過分依賴待測樣品的成分以及含量等信息,對于其他光譜數(shù)據(jù)處理依然有良好的泛化能力。
實驗中的太赫茲吸收光譜數(shù)據(jù)由日本ADVANTEST公司的TAS7400太赫茲時域光譜儀系統(tǒng)采集,光譜儀系統(tǒng)如圖1所示。該系統(tǒng)使用兩個超短脈沖激光器(1.55 μm)做偏置輸出(太赫茲波產(chǎn)生)和信號輸入(太赫茲波探測),其中心波長為785 nm,最大輸出功率50 mW,能夠測量0.1~5 THz的太赫茲光譜。其利用太赫茲波的特性,可進行快速且多功能的光譜和成像的分析,可用于藥品等材料的非破壞性光譜分析,并且全自動系統(tǒng)保留數(shù)據(jù)。
圖1 TAS7400太赫茲時域光譜儀Fig.1 TAS7400 terahertz time domain spectrometer
實驗所選用的樣品純度均在98%以上,為了減少太赫茲波散射對采集信號的影響,在測量樣品光譜前需使用10 t千斤頂壓片機將樣品壓片成直徑約13 mm,厚約1.5 mm的圓片。完成樣品制片后在干燥環(huán)境下使用光譜儀分步測量背景和樣品。首先測量背景,當背景光譜曲線平滑,沒有明顯的吸收峰時,保存背景。調(diào)用上述保存好的背景后,接著分別測定樣品的光譜曲線,每次采集光譜后略微調(diào)整樣品的位置,每個物質(zhì)分別調(diào)整30次,每種樣品共采集到30個吸收光譜數(shù)據(jù),其中,截取了0.3~2.25 THz范圍內(nèi)光譜信號信噪比較高的頻段。實驗共測得的樣品種類為20種,其中10種物質(zhì)有明顯的吸收峰,10種物質(zhì)無明顯吸收峰或沒有吸收峰,共采集到600個太赫茲光譜數(shù)據(jù),樣品種類匯總明細如表1所示。
表1 實驗樣品匯總表Table 1 Summary of experimental sample
1.3.1 連續(xù)小波變換獲取太赫茲光譜小波系數(shù)圖
對一維的太赫茲光譜信號進行連續(xù)小波變換。在變換過程中使用不同的尺度控制小波的伸縮范圍,并與太赫茲光譜吸收系數(shù)f(x)做內(nèi)積得到小波系數(shù)矩陣, 從而將一維的頻率映射到二維的參數(shù)空間, 形成了一種能在頻率和尺度上具有變化的小波系數(shù)圖譜。小波變換(wavelet transform, WT)以母函數(shù)為基礎,通過選取小波參數(shù)將數(shù)據(jù)或數(shù)據(jù)系列變?yōu)榧墧?shù)系列從而找到其類似的頻譜特征[9]。光譜信號的連續(xù)小波變換的二維頻率-頻率表達式為
(1)
式(1)中,τ為平移因子,?(?≠0)為尺度因子,φ為小波基函數(shù),*為復共軛。f(x)為太赫茲的吸收光譜系數(shù)。Wf(?i,τi)是小波系數(shù)的二維矩陣,包含i和j個維度,i表示為分解尺度(i=1, 2, 3, …,m),j表示光譜的頻率范圍(j=1, 2, …,n),構成了m×n矩陣。
由于墨西哥帽小波(Mexican-hat,Marr)在時域和頻域范圍都具有良好的局部特性,并且對各種信號都具有高度適應性,因此選擇Marr函數(shù)作為小波母函數(shù)對光譜信號進行小波運算,通過尺度的變換和平移可以得到不同尺度范圍內(nèi)的頻率分辨率,能清晰地反映信號特征。Marr函數(shù)為Gauss函數(shù)的二階導數(shù),其表達式為
(2)
尺度參數(shù)?越小,能提取越多的光譜特征。尺度參數(shù)的最大值應比譜線的最大半高寬大1.5~2倍,尺度過大增加了計算量卻無法提高精度。由于尺度因子?范圍的設定對光譜特征的識別有一定的影響,因此將尺度因子?設置在合理的范圍之內(nèi)。結(jié)合太赫茲譜線的特性,本文將?的范圍設為[1, 40],這有利于特征的提取以及增加計算效率。
平移因子τ的選擇應遍歷整個光譜數(shù)據(jù)頻率范圍。本文截取了0.3~2.25 THz范圍內(nèi)的光譜頻段,因此平移因子τ的取值為0.3, 0.4, …, 2.25。
太赫茲光譜數(shù)據(jù)是一組包含頻率-吸收系數(shù)的離散數(shù)據(jù)組,一次循環(huán)輸入所有數(shù)據(jù)組,并將尺度參數(shù)?,平移參數(shù)τ以及Marr母小波函數(shù)代入式(1),可得到一組在(?,τ)下的小波變換系數(shù)Wf(?i,τi),最終將二維的小波系數(shù)Wf(?i,τi)輸出為光譜信號的小波系數(shù)圖。
1.3.2 基于卷積神經(jīng)網(wǎng)絡的小波系數(shù)圖識別
卷積神經(jīng)網(wǎng)絡(CNN)是一種具有深度監(jiān)督學習特性的多層神經(jīng)網(wǎng)絡,能自動提取低、中和高層特征[10]。CNN一般用于處理二維圖像數(shù)據(jù),使用卷積層,池化層和完全連接層分類數(shù)據(jù)和產(chǎn)生輸出[11]。本文采用卷積神經(jīng)網(wǎng)絡訓練模型,設計的網(wǎng)絡結(jié)構圖如圖2所示,包括3個卷積層、2個全連接層,以及1個Softmax層,其中卷積層又包括卷積層和池化層。
圖2 卷積神經(jīng)網(wǎng)絡結(jié)構圖Fig.2 Convolutional neural network diagram
使用所得小波系數(shù)圖中的隨機選取樣本{X,YP}作為卷積神經(jīng)網(wǎng)絡的訓練集對其進行訓練,其中X表示待輸入的圖像,YP表示待輸入圖像實際類別。在訓練完成后,用該網(wǎng)絡對輸入的未分類小波系數(shù)圖進行分類。其中,卷積層用m個n通道的h×w的卷積核對小波系數(shù)圖的圖像進行步幅為1的卷積,經(jīng)過卷積層的計算得到新一層的特征圖。設通道數(shù)為n,卷積核尺寸為3×3,第i個卷積核進行卷積運算的計算如式(3)
(3)
式(3)中,ωx, y, z為特征Xx, y, z的權重系數(shù),b為偏置量,f(·)為線性整流函數(shù)(rectified linear unit, ReLU),其中,ReLU的計算公式如式(4)
fx, y, z=max{0,Xx, y, z}
(4)
最大池化層采用滑動窗口分割圖像,取滑窗內(nèi)最大值作為輸出。每次取3×3濾波器尺寸進行最大池化,設置步長為2,則最大池化過程可表示為
(5)
為了增強該模型的泛化能力,對神經(jīng)網(wǎng)絡隱藏層的輸出進行局部響應歸一化操作(local response normalization, LRN)[12],計算如式(6)
(6)
式(6)中,α,k和β為超參數(shù),分別設置為e-4, 1和0.75。m為卷積核的總數(shù),t為同一位置上鄰近卷積核的總數(shù)。所有卷積完成后獲得的輸出結(jié)果作為全連接層的輸入,然后全連接層將網(wǎng)絡中每一層的所有節(jié)點與相鄰層中的所有節(jié)點連接起來。待經(jīng)過兩個全連接層處理后,再通過Softmax回歸層將輸出轉(zhuǎn)變?yōu)楦怕史植?,最終可獲得輸入卷積神經(jīng)網(wǎng)絡的小波系數(shù)圖屬于某類別的概率,實現(xiàn)太赫茲光譜物質(zhì)分類。
依次將表1中20種物質(zhì)的太赫茲光譜數(shù)據(jù)利用本文所提的小波變換方法得到小波系數(shù)圖。在這20種物質(zhì)的600個光譜數(shù)據(jù)中,從不同類別中隨機選取兩種物質(zhì)的太赫茲光譜曲線圖和小波變換圖作為對比如圖3所示。從圖3的光譜曲線圖可知,葡萄糖、麥芽糖存在吸收峰,而淀粉、硫酸鈉則不存在吸收峰。因此當使用尋峰算法來識別光譜物質(zhì)時,可能會出現(xiàn)找不到吸收峰而無法識別出物質(zhì)的情況。同時,太赫茲光譜儀在獲取時域信號的過程中易受到環(huán)境、設備以及樣品因素的影響,導致光譜中含有大量噪聲。由于不同物質(zhì)在太赫茲波段范圍內(nèi)會表現(xiàn)出不同的特征吸收系數(shù),所以一般根據(jù)峰值信息所在位置人工截取相應的太赫茲波段作為特征范圍,而這種特征范圍的選取往往是盲目的,如本文截取的0.3~2.25 THz范圍內(nèi)光譜信號頻段,這部分頻段在葡萄糖和麥芽糖具有較高的信噪比,而對于淀粉或硝酸鈉在1.5~2.25 THz波段內(nèi)卻有明顯的噪聲。對于許多太赫茲光譜特征提取算法來說這部分噪聲對光譜數(shù)據(jù)的干擾很大,因此在特征提取前往往要預先平滑數(shù)據(jù)從而減輕或消除干擾因素。而本文方法則避免了這類算法的局限性,直接將原始的光譜數(shù)據(jù)通過小波變換轉(zhuǎn)化為小波系數(shù)圖。從圖3的小波系數(shù)圖中可以看出,四種物質(zhì)的小波系數(shù)圖都是唯一的,其不受波段范圍選取以及噪聲的影響,依然具有明顯的特征。不同物質(zhì)的小波系數(shù)圖對應其頻率特征,將其放入分類器訓練能達到良好的分類效果。
圖3 太赫茲光譜曲線圖和小波系數(shù)圖Fig.3 Terahertz spectral curves and wavelet transform graph
將表1樣品的光譜數(shù)據(jù)按照有無吸收峰分成三組: 第一組包含乳糖、葡萄糖、果糖在內(nèi)的10種含有吸收峰的光譜數(shù)據(jù),第二組包含紅磷、淀粉、乙基麥芽酚在內(nèi)的10種無明顯吸收峰或不含吸收峰的光譜數(shù)據(jù),第三組為這20種物質(zhì)的吸收譜數(shù)據(jù)。每組的數(shù)據(jù)按照2∶8的比例劃分為訓練集和測試集,將這三組數(shù)據(jù)經(jīng)過小波變換得到小波系數(shù)圖后分別采用CNN、支持向量機模型(support vector machin, SVM)、多層感知模型(multilayer perceptron, MLP)對小波系數(shù)圖進行分類,得到光譜物質(zhì)的分類結(jié)果。為了驗證實驗的有效性,將原始的光譜數(shù)據(jù)輸入上面三種模型作對比。鑒于參數(shù)的選擇對模型的影響比較大,因此統(tǒng)一了模型的參數(shù)。其中,MLP和SVM模型分別調(diào)用sklearn庫里的MLPClassifier函數(shù)、svm.SVC函數(shù),參數(shù)均使用默認參數(shù)。本文的CNN模型采用學習率λ為0.005的自適應時刻估計算法優(yōu)化梯度下降。其中第1個卷積層使用64個3通道的3×3的卷積核,第2個卷積層使用32個3×3的卷積核,第3個卷積層使用16個3×3的卷積核,卷積步長設置為1。用于最大池化的濾波器尺寸均為2×2,步長設置為2。每個全連接層包含128個神經(jīng)元。每種模型獨立重復測量10次取均值作為該方法的識別率,不同方法得出的識別率如表2所示, 其中,a代表用原始數(shù)據(jù)直接在分類器里識別的結(jié)果,b為將原始數(shù)據(jù)轉(zhuǎn)化為小波系數(shù)圖后的識別結(jié)果,CNN分類模型中的b組為本文所提算法。
從表2中可以發(fā)現(xiàn),b的識別率普遍高于a,其中SVM分類器提升幅度較明顯,每組的識別率均提升了一倍以上,說明了將太赫茲光譜的一維數(shù)據(jù)轉(zhuǎn)化為二維的小波系數(shù)圖數(shù)據(jù)后識別有助于提高太赫茲光譜物質(zhì)的識別率。CNN模型上第一組的識別率均達到100%,證明了卷積神經(jīng)網(wǎng)絡對太赫茲光譜識別的有效性。由于受到吸收峰的影響,第二組數(shù)據(jù)集在三種分類器中的分類性能總體低于第一組的分類性能,但是其對b算法的影響較小,說明轉(zhuǎn)化為小波系數(shù)圖后在三種分類器中均有良好的分類性能。本文算法在三組中的識別率均達到了100%,證明了使用卷積神經(jīng)網(wǎng)絡識別小波系數(shù)圖的有效性。
表2 不同分類模型的識別率匯總Table 2 Summary of pure substances recognition results
取表1中麥芽糖、乳糖、果糖、葡萄糖、蔗糖、淀粉這六種常見糖類的太赫茲光譜數(shù)據(jù),用本文算法與小波尋峰算法作對比。在使用小波尋峰算法前,由于光譜噪聲對尋峰算法的影響比較大,首先需要對光譜進行預處理,本文選用非對稱最小二乘法預處理光譜信號,得到一組平滑后的光譜數(shù)據(jù),然后通過小波變換進行特征提取,得到二維小波系數(shù)矩陣中各行的模極值并連接成脊線,脊線中尺度最大的位置即為吸收峰的頻率位置,最后通過吸收峰頻率匹配識別算法求出每種物質(zhì)的識別率。其中,吸收頻率匹配算法是將實驗所求的吸收峰與太赫茲光譜數(shù)據(jù)庫(http://thzdb.org/)的標準吸收峰的頻率作比較得到的結(jié)果,頻率誤差均在允許范圍之內(nèi)[13]。重復20次實驗,取均值作為最終結(jié)果。本文算法采用CNN模型進行光譜分類對比,經(jīng)過150次迭代后,訓練集的精確度達到100%。對測試集的84張小波系數(shù)圖片進行分類,其中分類正確的小波系數(shù)圖有82張,準確率達到97.62%。
表3列出了兩種方法的對比結(jié)果,尋峰算法容易受到假峰、弱峰、混疊峰等因素的影響,導致識別率明顯低于本文算法。葡萄糖有三個的標準吸收峰值,分別為1.281,1.435和2.080, 蔗糖的標準吸收峰為1.442,與葡萄糖有著相似的吸收峰,對于頻率匹配算法來說影響相當大,導致蔗糖的識別率僅為25%。而本文算法幾乎不受峰頻、峰寬、峰值等因素的影響,無論是識別不存吸收峰的淀粉,還是識別相似度高的葡萄糖和蔗糖,都具有較高的識別率,證明了所提算法的準確性和有效性。
表3 兩種方法的識別率匯總Table 3 The recognition rate summary of the two methods
針對太赫茲光譜物質(zhì)識別所面臨的問題,如難以人工定義無明顯吸收峰的特征或峰位、峰值相近而難以辨別,對假峰、弱峰、混疊峰的識別能力有限等,提出了一種基于小波系數(shù)圖的光譜物質(zhì)識別方法,把原始方法對一維光譜數(shù)據(jù)的識別轉(zhuǎn)化為對二維圖像數(shù)據(jù)的識別,并通過CNN,SVM和MLP這三種不同的分類器對比驗證,結(jié)果顯示每種分類模型都達到了較高的準確率,與小波尋峰識別算法作對比,識別率遠遠超越尋峰算法,分類準確率達97.62%,從而證明本文方法的有效性和準確性。本文算法為太赫茲光譜數(shù)據(jù)識別提供了一種新思路,也可以推廣運用到其他譜圖物質(zhì)的識別中。