李 震,王秀玲,王傳璽,羅志華,王 雪,董玉華,孫炎輝
(1.大連民族大學 信息與通信工程學院,遼寧 大連 116605;2.科德數(shù)控股份有限公司,遼寧 大連,116600)
如何檢測混合氣體,對動物和人類通過嗅覺系統(tǒng)識別嗅覺痕跡進行研究,嗅覺器官細胞感知嗅覺環(huán)境中的氣體或揮發(fā)性有機物,然后大腦神經(jīng)元系統(tǒng)可以對某些氣體做出反應,并根據(jù)經(jīng)驗分析其信息[1]。受動物和人類嗅覺的啟發(fā),有人提出了“電子鼻(EN)”或“人工嗅覺系統(tǒng)(AOS)”的概念[2, 3]。電子鼻是一種用于測量和監(jiān)測既定環(huán)境中混合氣體的儀器,它通常結(jié)合了氣體傳感器陣列、模式識別算法和傳感器陣列信號處理方法,用于目標氣體的檢測、識別和量化[4-11]。傳感器陣列是依據(jù)每個傳感器針對混合氣體中的某個氣體產(chǎn)生響應而設(shè)計的[12],所以傳感器的輸出對應目標氣體的濃度。但是有些環(huán)境下需要同時檢測多種氣體,所以基于傳感器陣列需要提出一種有效的能識別混合氣體環(huán)境中目標氣體的種類和濃度的識別算法[13]。
為了進一步優(yōu)化電子鼻的應用,利用現(xiàn)有模塊設(shè)計了一個三隱層卷積神經(jīng)網(wǎng)絡(luò),其中卷積層采用卷積、歸一化和ReLU激活函數(shù),并使用一維卷積層來提高模型的輕量化程度,從而達到更好的訓練效果。最后將模型在PC端訓練后遷移到樹莓派中,對氣體進行有效識別。
以氨氣、丙酮和甲醇的混合氣體為目標,進行了收集數(shù)據(jù)集的相關(guān)實驗。實驗裝置由氣體傳感器陣列、密閉實驗箱和數(shù)據(jù)收集系統(tǒng)組成。其中密閉實驗箱含有一個注液口、一個加熱臺、兩個風扇。測試時,先打開風扇,確保密閉空間氣體均衡,等密閉實驗箱中的每個氣體傳感器達到穩(wěn)定狀態(tài)之后,通過注液口將目標氣體的液態(tài)物注射到加熱臺,注射過程中,打開加熱臺進行加熱,等待目標氣體的液態(tài)物迅速蒸發(fā)為氣態(tài),風扇的持續(xù)運作,會使傳感器陣列得到均勻的氣體信號,最后將氣體信號傳輸?shù)絇C端,按時序進行保存,重復90次,最終得到90組1~1 000 s左右的傳感器陣列數(shù)據(jù)。實驗溫度在20 ℃ ± 2 ℃,濕度在60 % ± 5 %,這與實際環(huán)境是類似的,能夠保證實驗數(shù)據(jù)的有效性和真實性。
實驗對三種氣體單獨和兩兩混合氣體進行測量, 8個氣體傳感器在單一氣體環(huán)境中的響應如圖1a,兩種混合氣體環(huán)境中的響應如圖1b,這樣分為了6個類別,分別為純氨氣、純丙酮、純甲醇、氨氣和丙酮混合,氨氣和甲醇混合,丙酮和甲醇混合。每種氣體濃度選擇也分了6個類別,分別為0、5、10、20、30、50 ppm的氣體濃度,根據(jù)響應時間與恢復時間,每組實驗測試1 000 s左右,一共得到90組數(shù)據(jù),每組數(shù)據(jù)以時間序列進行保存。數(shù)據(jù)包含8個傳感器的0~1 000 s左右的響應、混合的氣體類別和混合不同氣體的濃度。
b)在兩種混合氣體環(huán)境中的響應圖1 8個氣體傳感器在氣體環(huán)境中的響應
a)在單一氣體環(huán)境中的響應
每個目標氣體的每個濃度都被集中測量。因此,通過氣體傳感器陣列獲得504 000個數(shù)據(jù)。以大約1 Hz的采樣頻率獲取原始響應數(shù)據(jù),并從基線值中減去該數(shù)據(jù),以消除基線值的影響。采集的數(shù)據(jù)約為0~1 000 s,取響應開始之后的700 s數(shù)據(jù)作為有效數(shù)據(jù),每個實驗得到一組尺寸為(700,8),整體數(shù)據(jù)集維度為(90,700,8)該數(shù)據(jù)作為每個實驗類別X,每個氣體的濃度值為Y1(90,1)和Y2 (90,3),然后采用公式(1)方法對數(shù)據(jù)進行標準化,以標準化數(shù)據(jù)作為輸入特征進行模型訓練。
(1)
式中:Xij為傳感器i對樣本j的響應;μi為傳感器i響應的平均值;σi為傳感器i響應的標準差。
通過實驗驗證KNN模型對本研究的數(shù)據(jù)集并不合適,因為數(shù)據(jù)特征較少,且數(shù)據(jù)量較少,分類準確率不足25%,因此KNN不適用本研究。BPNN與CNN通過訓練分類準確率最高可達100%。
使用全連接神經(jīng)網(wǎng)絡(luò)對混合氣體進行分類與預測,不需要將標簽轉(zhuǎn)為換為One-hot 編碼,將預處理后的數(shù)據(jù)以數(shù)組形式進行輸入,通過模型訓練后,以數(shù)組形式輸出對應三種氣體的濃度。最終訓練模型為同一個,改變輸入輸出即可完成分類與預測任務,本文使用Keras的Sequential類定義一個BPNN模型,包括3個隱藏層和1個輸出層, BPNN模型如圖2。
圖2 BPNN模型
為了幫助模型學習非線性的特征和模式,提高模型的表達能力,其中每個隱藏層都使用ReLU作為激活函數(shù)其公式為
f(x)=max(0,x)。
(2)
為了解決混合氣體中多分類問題,輸出層使用Softmax作為激活函數(shù)。使用Compile函數(shù)編譯模型,梯度下降優(yōu)化算法為Adam,其具體公式如下:
首先定義一階矩估計(mean)和二階矩估計(variance)分別為
mt=β1mt-1+(1-β1)gt。
(3)
式中:mt表示對應的一階矩陣;β1是衰減率;gt表示當前的梯度。
(4)
式中:gt表示當前的梯度;vt表示二階矩陣;β2是衰減率。為了消除一開始時對估計不準的影響,需要對mt和vt進行偏差校正,即
(5)
(6)
(7)
式中,θt是學習率,ε是一個非常小的常數(shù),用于防止除數(shù)為0。損失函數(shù)為二元交叉熵,最終以損失值和準確率來評估模型的性能。
使用卷積神經(jīng)網(wǎng)絡(luò)進行了成分識別和濃度估計。為了分類3種氣體(NH3、CH3OH和CH3COCH3),并定量每種氣體的濃度。該網(wǎng)絡(luò)由三個卷積塊和六個完全連接的層(致密)組成。利用3個卷積塊(8×3)計算特征提取的卷積,對所有層進行批處理歸一化,并使用校正線性單元(ReLU)函數(shù)作為激活函數(shù),使用兩種輸出方式,在輸出層中使用Softmax函數(shù)進行分類,在輸出層不使用激活函數(shù)直接輸出每種氣體的濃度,模型如圖3。
圖3 卷積神經(jīng)網(wǎng)絡(luò)整體模型
卷積是將二維矩陣中的每個元素添加到其局部領(lǐng)域中的過程,并通過核進行加權(quán)。假設(shè)輸入矩陣A具有維數(shù)(Ma,Na),而核矩陣B具有維數(shù)(M,N)。當塊計算全輸出大小時,離散卷積的方程可以表示為
(8)
式中,0≤i 圖4 卷積操作 在實驗中使用的卷積均為一維卷積[14],對于混合氣體分類任務是能夠有較好應用的[15-17]。 本文研究的卷積神經(jīng)網(wǎng)絡(luò)由三個卷積塊和一層線性層組成,單個卷積塊如圖5。利用3個卷積核(8×3)提取特征,并使用校正線性單元(ReLU)函數(shù)作為激活函數(shù),對所有層進行批處理歸一化,針對混合氣體類別進行分類,在輸出層中使用Softmax函數(shù)進行分類,對混合氣體進行濃度預測時直接使用梯度下降方式,輸出三種對應氣體的濃度。為了簡化計算,并方便應用,卷積塊的第一層使用一維卷積,為了提高特征表示能力,一維卷積和批處理歸一化操作以及激活函數(shù)一起組成了一個卷積塊[10]。 圖5 卷積塊 基于卷積層數(shù)問題,本研究為了尋求最優(yōu)層數(shù)的卷積神經(jīng)網(wǎng)絡(luò),設(shè)置了對比試驗,訓練次數(shù)設(shè)置為100,實驗結(jié)果見表1。 表1 不同層數(shù)的卷積神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)集中的訓練效果 通過實驗發(fā)現(xiàn),訓練時間并不是嚴格隨著卷積層數(shù)的增加而增加,出現(xiàn)了先減小后增加的情況,通過對卷積的特點分析,在兩層卷積的網(wǎng)絡(luò)結(jié)構(gòu)中,相比一層卷積的結(jié)構(gòu),多了一層卷積層,這樣可以更好地提取特征,減少了全連接層的參數(shù)數(shù)量,從而降低了模型的復雜度,因此訓練時間會相對較短。同樣的,隨著卷積層數(shù)增加,準確率出現(xiàn)了先提升后下降的情況,這是因為隨著卷積層數(shù)的增加,網(wǎng)絡(luò)的復雜度和參數(shù)量也會增加,這會導致模型出現(xiàn)過擬合的情況。此外,還可能由于層數(shù)過多,出現(xiàn)梯度消失或者爆炸情況,這會導致梯度在反向傳播時逐漸變小或變大,進而導致梯度消失或爆炸的情況,從而使訓練過程不穩(wěn)定。因此通過本次實驗認為三卷積層的CNN綜合訓練效果最佳。模型訓練的超參數(shù)設(shè)置見表2。 表2 CNN的訓練超參數(shù) 在此基礎(chǔ)上,三層卷積的CNN能夠確保分類準確率達到98.88%,且參數(shù)量較小,模型較輕量化。 使用三種模型進行對比見表3。將混合氣體進行分類,BPNN與CNN分類效果均能夠達到100%。對混合的不同氣體濃度進行預測,通過十折交叉驗證后平均均方差能夠達到3.89和2.47。 表3 模型對比結(jié)果 表3中的結(jié)果是在CPU型號為AMD Ryzen 7 5800H with Radeon Graphics,主頻3.20 GHz,內(nèi)存16G的計算機上訓練,模型訓練在Jupyter Notebook環(huán)境中執(zhí)行,執(zhí)行1 000次Epoch所用時間,經(jīng)過十折交叉驗證最終得到的模型訓練準確率與損失值的平均數(shù)。為了驗證CNN訓練過程的效果如圖6??梢钥闯鯟NN損失值下降較快。 (9) 為了保證訓練時間穩(wěn)定,以98.88%為閾值,通過對比BPNN與CNN的訓練時間發(fā)現(xiàn)當分類訓練達到98.88%時,CNN比BPNN訓練速度要快約58%,見表4。通過分析BPNN與CNN的參數(shù)量與浮點數(shù),可以得知BPNN模型參數(shù)量大,訓練更加耗費資源。 表4 模型訓練參數(shù) 為了能夠?qū)崿F(xiàn)傳感器陣列系統(tǒng)的離線測量,使用單片機作為核心處理器,半導體電阻式氣體傳感器作為組成陣列的傳感器,樹莓派作為數(shù)據(jù)推理端和顯示端,制作了一個可以實時采集混合氣體的系統(tǒng)。使用8個金屬氧化物電阻式傳感器組合成傳感器陣列,通過濾波電路,將信號傳輸至STM32單片機中,在單片機中對數(shù)據(jù)進行預處理后,通過串口將數(shù)據(jù)傳送至樹莓派中,并在樹莓派中進行推理與顯示。硬件系統(tǒng)框圖如圖7。 圖7 硬件系統(tǒng)框圖 根據(jù)所測氣體的種類和特性,采用了由8個費加羅公司生產(chǎn)的金屬氧化物傳感器組成的傳感器陣列對混合氣體進行測試,傳感單元中所包含的傳感器見表5。這些傳感器被專門用來檢測大量特殊的化學品[18],如:甲烷、一氧化碳、VOC等。 表5 傳感單元中包含的金屬氧化物傳感器 為了能夠?qū)崿F(xiàn)電子鼻離線測量,使用單片機作為核心處理器,制作了一個可以實時采集混合氣體的設(shè)備,半導體電阻式氣體傳感器的結(jié)構(gòu)原理圖如圖8。半導體電阻式氣體傳感器的原理基于半導體材料對氣體吸附或氧化的靈敏度不同。當氣體吸附或氧化到半導體表面時,會改變半導體的電阻值,這種電阻值變化與氣體濃度成正比。因此,通過測量半導體電阻值的變化,可以確定氣體濃度。又因為制造成本較低,外形小巧,所以適合集成在微型設(shè)備中。所以本文使用8個半導體電阻式傳感器組合傳感器陣列,結(jié)合STM32F103CET6單片機,對混合氣體進行采集,得到數(shù)據(jù)。 圖8 半導體電阻式傳感器的結(jié)構(gòu)原理圖 將模型代碼導入樹莓派中,并進行離線訓練。選用的樹莓派采用4核64位的ARM Cortex-A72架構(gòu)CPU,型號為博通BCM2711 SoC,為訓練模型提供了很好的硬件支持。通過網(wǎng)線使計算機與樹莓派建立鏈接,建立局域網(wǎng),使用VNC viewer通過IP訪問樹莓派,并傳輸網(wǎng)絡(luò)模型程序與E-nose軟件到樹莓派中。其中網(wǎng)絡(luò)模型程序中相關(guān)路徑提前設(shè)置為樹莓派的相關(guān)路徑。 將模型移植到樹莓派后,使用樹莓派訓練,訓練1 000次需要767 s,且準確率只能達到50%,通過與PC端訓練環(huán)境對比分析,在不同的硬件平臺上,CPU和內(nèi)存的性能、速度等方面都有所不同,這會影響訓練模型的速度和效果。另外,在PC端和樹莓派上,運行的操作系統(tǒng)和環(huán)境也有所不同,這也會影響訓練模型的準確率。因此,要提高識別準確率,將在PC端訓練好的模型遷移到樹莓派中,再對混合氣體進行識別,以此保證對混合氣體識別效果與PC端相同,此過程需要使用模型轉(zhuǎn)換工具將模型格式從原來的格式.h5轉(zhuǎn)換為適合在樹莓派上運行的格式.tflite。最后可在樹莓派上運行訓練好的模型。當識別率降低時,模型需要進一步訓練,可在樹莓派中引入模型,通過定義編譯參數(shù)和訓練數(shù)據(jù),進一步對模型進行訓練。 對神經(jīng)網(wǎng)絡(luò)與傳感器陣列在嵌入式平臺的應用進行了研究,使用三種網(wǎng)絡(luò)對自測數(shù)據(jù)集進行訓練得到模型,發(fā)現(xiàn)KNN的分類準確率只有24%,并不適用于本研究。而BPNN與CNN分類準確率最高均可達到100%,預測濃度效果通過使用MSE進行評估,在訓練1000次時損失值分別為21.36和20.69,均方差均在4以下,但是當訓練分類模型時,BPNN的訓練時間相較于CNN超出56%,訓練預測模型時,訓練1 000個epoch時間超出33.5%。通過對在計算機上與嵌入式處理器上訓練模型,發(fā)現(xiàn)硬件的訓練環(huán)境對結(jié)果影響較大,應用輕量化模型更為有效,所以相較于KNN與BPNN,使用CNN在嵌入式處理器中應用效果更好。通過設(shè)計原理圖實現(xiàn)了離線采集混合氣體的數(shù)據(jù),最終將CNN網(wǎng)絡(luò)模型與傳感器陣列應用到嵌入式處理器中能夠?qū)崿F(xiàn)離線采集并訓練模型,可得到便攜式的電子鼻系統(tǒng)。2.3 模型效果對比
3 硬件平臺的實現(xiàn)
3.1 傳感器陣列設(shè)計
3.2 算法在樹莓派中的移植
4 結(jié) 語