劉勇國,高 攀,蘭 荻,朱嘉靜
(電子科技大學信息與軟件工程學院 成都 610054)
單倍體育種是一種植物育種方法,其原理是利用人工培育或自然發(fā)生的單倍體植株,通過加倍該植株染色體獲得純合的二倍體植株[1]。玉米單倍體育種[2]主要包括單倍體生產(chǎn)、單倍體鑒定、單倍體加倍產(chǎn)生單二倍體(diploid haploid, DH)系、DH 系育種幾個步驟[3],具有如下優(yōu)點:1)獲得純系快,育種周期短;2)無基因互作效應(yīng),選擇準確性高;3)所獲DH 系高度純合和穩(wěn)定[4];4)所得DH 群體遺傳類型豐富。單倍體自然發(fā)生的概率僅為0.1%[5],故實際單倍體育種均采用人工誘導單倍體技術(shù)。通過誘導劑進行人工誘導的DH 率為8%以上[6],雖然人工誘導有如此高的DH 率,但誘導后仍有問題待解決,即如何從眾多單二倍體玉米種子中鑒別出單倍體種子。
文獻[7]使用核磁共振測定玉米種子含油量,提出一種基于最小二乘誤差的單倍體和二倍體的分離方法。根據(jù)模型結(jié)果,最小二乘誤差法可在樣本較少的情況下快速確定單倍體和二倍體含油量的閾值,識別率達90%以上。文獻[8]設(shè)計了一套玉米單倍體種子的分選系統(tǒng),該系統(tǒng)包括種子輸送、圖像采集與處理、分選和系統(tǒng)控制單元,系統(tǒng)根據(jù)玉米胚和玉米胚乳頂部的顏色特征分選單倍體,能夠?qū)崿F(xiàn)500 粒/min 的分選速度,對雜合種子的正確識別率為90%,分選成功率為80%。文獻[9-10]使用從灰度共生矩陣中獲得的文體特征識別單倍體和二倍體玉米種子。這些特征被用于決策樹(decision tree, DT)、k-最近鄰和人工神經(jīng)網(wǎng)絡(luò)分類器的輸入,結(jié)果顯示,最佳結(jié)果由DT 獲得,其分類成功率達84.48%。文獻[11]使用紅外光譜儀對玉米種子的紅外光譜進行采集,然后將數(shù)據(jù)預(yù)處理后使用核變換提取特征,最后使用不同的特征提取算法建立鑒別模型。結(jié)果顯示,采用核局部投影的特征提取算法在兩組測試集的識別率分別達95.71%和96.43%。
現(xiàn)有研究中,使用傳統(tǒng)圖像處理[8]或機器學習進行圖像分類[9-10]對玉米單倍體種子進行識別的成功率不高,未超過90%。使用核磁共振[7]或紅外光譜[11]對玉米單倍體種子的識別率可達90%以上,但核磁共振儀和紅外光譜儀設(shè)備昂貴,不具備普適性。當前深度學習技術(shù)發(fā)展迅速,卷積神經(jīng)網(wǎng)絡(luò)作為深度學習的一種網(wǎng)絡(luò)結(jié)構(gòu),在圖像、聲音、語音等領(lǐng)域的研究均有很大進展。玉米種子R1-nj 基因的表達會導致花青素沉積使籽粒顯深紫色[12],單倍體只在胚乳頂端顯示深紫色而二倍體會在胚乳頂端和胚胎都顯示深紫色。使用卷積神經(jīng)網(wǎng)絡(luò)能夠提取單倍體和二倍體玉米種子的不同顏色特征,本文以玉米單倍體和二倍體種子圖像為數(shù)據(jù)集,建立卷積神經(jīng)網(wǎng)絡(luò),進行玉米單倍體種子識別。本文的卷積神經(jīng)網(wǎng)絡(luò)將在內(nèi)核選擇性網(wǎng)絡(luò)(selective kernel networks, SKNet)[13]的基礎(chǔ)上加以改進,與DenseNet[14]、ResNet[15]和VGGNet[16]進行性能比較。
本研究所使用數(shù)據(jù)集為網(wǎng)絡(luò)公開數(shù)據(jù)集,該數(shù)據(jù)集共有3 000 粒玉米種子,包括1 230 個單倍體和1 770 個二倍體。圖像中玉米種子放置為4 行5 列共20 粒,胚胎處于向上位置且彼此不接觸。所有圖像均使用Sony SLT-A58 相機和Sony SAL 100 mm f/2.8 微距鏡頭拍攝,圖像均在“M”模式下拍攝,圖像參數(shù)為100 ISO、1/125 s 的快門速度、f/9 的光圈、150 mm 焦距和55 cm 的相機距離,圖像的最終分辨率為5 459×3 632。
由于每張圖像包括20 粒玉米種子,所以最終數(shù)據(jù)集對原始圖像進行圖像分割后獲得。根據(jù)經(jīng)驗選定150 作為閾值將原始圖像進行二值化,通過使用玉米種子的輪廓線計算玉米種子的邊界框。通過二值圖和邊界框裁剪每粒玉米種子的圖像單獨存儲,如圖1 所示。
圖1 裁剪后的玉米種子圖像
數(shù)據(jù)增強是一種正則化技術(shù),用以增加數(shù)據(jù)量和數(shù)據(jù)的多樣性[17]。常用數(shù)據(jù)增強方法包括旋轉(zhuǎn)、翻轉(zhuǎn)、縮放、裁剪、位移、高斯噪聲等。原數(shù)據(jù)集包含3 000 粒玉米種子的圖像,每粒種子單獨保存為一幅圖像,即一共3 000 幅圖像。對原始數(shù)據(jù)集中的3 000 幅圖像進行數(shù)據(jù)增強,數(shù)據(jù)增強方式選擇旋轉(zhuǎn)和翻轉(zhuǎn),其中旋轉(zhuǎn)包括旋轉(zhuǎn)90°、180°和270°。通過數(shù)據(jù)增強把數(shù)據(jù)集數(shù)量擴充至15 000 張。
卷積神經(jīng)網(wǎng)絡(luò)是一種深度學習網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)由一些連續(xù)的層組成,不同的層具有不同的功能,如卷積層、池化層、Dropout 和全連接層等。卷積層是卷積神經(jīng)網(wǎng)絡(luò)的最基本層,通過卷積核與輸入特征圖進行卷積運算,抽取特征圖蘊藏的抽象特征。為降低運算復(fù)雜度和防止過擬合,卷積層后緊跟池化層,簡化特征圖的信息維度,常用池化方式包括平均池化、L2 范數(shù)池化和最大池化,其中最大池化因其速度快和收斂性好而被廣泛使用[18]。卷積神經(jīng)網(wǎng)絡(luò)通常設(shè)置全連接層,將圖像空間分布的特征映射到樣本標簽空間,通過softmax 輸出類別概率并實現(xiàn)分類。
VGG 是一個被廣泛使用的卷積神經(jīng)網(wǎng)絡(luò),主要研究卷積神經(jīng)網(wǎng)絡(luò)的深度對大規(guī)模圖像識別的精度影響[16],該模型將卷積神經(jīng)網(wǎng)絡(luò)的深度加到16~19 層,獲得了顯著的性能提升。
ResNet 模型采用殘差學習簡化網(wǎng)絡(luò)訓練[15],模型的核心問題是網(wǎng)絡(luò)的退化問題[19]。網(wǎng)絡(luò)退化是指網(wǎng)絡(luò)的訓練精度隨著網(wǎng)絡(luò)深度的增加而趨于飽和,如果繼續(xù)增加深度,訓練精度反而會下降。網(wǎng)絡(luò)退化的原因是隨著網(wǎng)絡(luò)深度的增加,梯度在傳遞的過程中逐漸消失。由于卷積神經(jīng)網(wǎng)絡(luò)中采用非線性激活函數(shù),從輸入到輸出的過程幾乎不可逆,造成許多信息損失。ResNet 通過恒等映射,把輸入的結(jié)果傳遞到輸出讓深層網(wǎng)絡(luò)至少保持淺層網(wǎng)絡(luò)的水平,使得網(wǎng)絡(luò)的深度獲得大幅提升。
DenseNet 借鑒ResNet 的思想將網(wǎng)絡(luò)分為多塊,每塊中的網(wǎng)絡(luò)均與后續(xù)每層連接,則擁有L層的塊包括L(L+1)/2 個連接。DenseNet 網(wǎng)絡(luò)減輕梯度消失問題,加強特征傳播,鼓勵特征重用,顯著減少了參數(shù)數(shù)量[14]。
SKNet 是一個輕量級的嵌入式模塊,其關(guān)鍵是選擇性內(nèi)核單元(selective kernel, SK)的構(gòu)建塊,使用基于softmax 的注意力機制融合具有不同卷積核大小的多個分支[13],對這些分支的不同注意力會產(chǎn)生不同大小的融合層神經(jīng)元有效感受野。在SK 卷積的前后分別加上一個1×1 卷積,即可構(gòu)成選擇性內(nèi)核單元,將多個SK 構(gòu)建塊堆疊而構(gòu)建的網(wǎng)絡(luò)稱為SKNet。在SK 構(gòu)建塊中,需對3 個重要超參數(shù)進行設(shè)置:SK 構(gòu)建塊需融合的分支數(shù)M,每個分支的分組卷積的分組數(shù)G,融合操作中全連接的壓縮系數(shù)r。圖2 為SKNet 的核心模塊,該模塊分為3 個部分:分離、融合和選擇。
圖2 SKNet 的核心模塊
1)分離:輸入特征X經(jīng)過兩個具有不同大小的卷積核分支,卷積獲得特征圖U? 和特征圖U?。
2)融合:不同分支的特征圖對應(yīng)元素相加,融合成特征圖U,然后對特征圖U使用全局平均池化[19],全局平均池化后特征圖大小從h×w變?yōu)?×1,可理解為特征圖從三維轉(zhuǎn)換為一維。緊接著對一維向量進行全連接操作再進行降維,使一維向量的通道數(shù)量從C降低到d,d=max(C/r,dmin),其中dmin表示d的最小值,改變r即可改變d的大小。
3)選擇:對降維的向量再進行升維,把通道數(shù)增加到特征圖U? 和特征圖U? 的通道數(shù)量,然后對向量使用softmax 獲得a、b兩個權(quán)重矩陣,使用權(quán)重矩陣對特征圖U? 和特征圖U?進行加權(quán)操作可自適應(yīng)地選取合適的特征圖。
SKNet 使用注意力機制改善網(wǎng)絡(luò)性能,不可避免地會增加網(wǎng)絡(luò)的計算復(fù)雜度。雖然在SKNet 中使用先降維再升維的操作會降低復(fù)雜度,但由于該操作中使用全連接,網(wǎng)絡(luò)的參數(shù)量依然龐大。此外,避免降維操作對學習通道注意力非常重要,適當?shù)目缤ǖ澜换タ娠@著降低模型復(fù)雜性的同時保持模型性能,ECA-Net 采用一維卷積生成通道權(quán)重以避免捕獲所有通道依賴關(guān)系導致的低效性[20]。
本文提出一個高效通道注意力(efficient channel attention, ECA)模塊替換SKNet 中的全連接層。在SKNet 的基礎(chǔ)上進行變更,對SKNet 中先降維再升維的操作進行替換,實現(xiàn)一種不降維的局部跨通道交互策略。一維卷積能以極輕量級的方式捕獲每個通道及其k個鄰居的局部跨通道交互,故采用一維卷積替換SKNet 的全連接層,如圖3 所示。ECA模塊用于減少全連接層的計算參數(shù)量,通過ECA模塊獲得網(wǎng)絡(luò)分支數(shù)對應(yīng)個數(shù)的權(quán)重矩陣用于選擇合適的特征圖,可進一步降低網(wǎng)絡(luò)參數(shù)數(shù)量,同時提升性能,將改進后的SKNet 稱為ECA-SKNet。
圖3 全連接替換為一維卷積
本實驗的硬件環(huán)境為:Intel(R) Core(TM) i5-9300H 2.4 GHz 處理器、16 GB 內(nèi)存、NVIDIA GeForce GTX 1660Ti 6 GB 顯存顯卡。使用的系統(tǒng)為Windows 10,使用PyTorch 深度學習框架進行卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建和訓練。實驗采用VGG、ResNet、DenseNet、SKNet 和ECA-SKNet進行訓練,實驗的超參數(shù)設(shè)置見表1。訓練批量大小為16,訓練周期為100,訓練初始學習率為0.001,學習率每經(jīng)過30 個周期縮小到原來的0.1 倍,優(yōu)化器使用adam 優(yōu)化器,損失函數(shù)使用交叉熵損失函數(shù)。實驗所使用的評價指標為準確率(accuracy)、精確率(precision)、召回率(recall)和F1 分數(shù)(F1 Score),計算公式分別為:
表1 實驗超參數(shù)設(shè)置
式中,TP 表示正確識別單倍體的數(shù)量;TN 表示正確識別二倍體的數(shù)量;FP 表示不正確識別單倍體的數(shù)量;FN 表示不正確識別二倍體的數(shù)量。
1)最優(yōu)模型的確定
將玉米種子數(shù)據(jù)集按7:3 的比例隨機劃分為訓練集和驗證集對VGG、ResNet、DenseNet、SKNet和ECA-SKNet 進行訓練,訓練超參數(shù)使用表1 中的設(shè)置,對于SKNet 和ECA-SKNet 的其他超參數(shù),使用默認設(shè)置。各模型的訓練準確率、訓練損失、驗證準確率、驗證損失如圖4 所示,實驗結(jié)果如表2 所示。
表2 不同模型的訓練結(jié)果 %
圖4 不同模型的訓練準確率、驗證準確率、訓練損失和驗證損失
由表2 可知,實驗?zāi)P蛯伪扼w和二倍體玉米種子的分類精度達88%以上,其中VGG、SKNet和ECA_SKNet 的分類精度達90%以上。表2 的4 個驗證指標中,準確率為最重要指標,因為其表示該模型對單倍體玉米種子的篩選精度??梢?,SKNet的實驗結(jié)果為第二優(yōu)結(jié)果,ECA-SKNet 在準確率、精確率、和F1 分數(shù)3 項評價指標上均取得最好結(jié)果。
實驗結(jié)果表明,ECA-SKNet 在對單倍體和二倍體玉米種子圖像分類上具有較好效果,驗證了ECA 模塊在避免降維和局部跨通道交互對學習通道注意的影響,即SKNet 的改進能夠進一步提升分類效果,故選定ECA-SKNet 作為后續(xù)實驗的模型。
圖5 是ECA_SKNet 模型在中間層提取出的特征圖及其對應(yīng)的原圖。可見,ECA_SKNet 關(guān)注玉米種子胚乳和胚胎的顏色特征。
圖5 ECA-SKNet 模型輸出的玉米種子和原圖像比較
2) ECA-SKNet 的超參數(shù)調(diào)優(yōu)
SKNet 中使用分組卷積降低網(wǎng)絡(luò)參數(shù)數(shù)量,ECA-SKNet 也使用分組卷積。ECA-SKNet 默認的分組卷積的組數(shù)為32,分別對組數(shù)為32、64 和128 的網(wǎng)絡(luò)進行對比實驗,實驗結(jié)果如表3 所示。
由表3 可知,當分組數(shù)為64 時,準確率為93.04%,精確率為92.70%,召回率為90.10%,F(xiàn)1 分數(shù)為91.40%。分組卷積在相同的FLOPs 下,分組數(shù)越大,通道上的密集卷積越稀疏,ECA 模塊可實現(xiàn)通道間信息的交互,促進模型精度增加。其中,分組數(shù)為64 時在準確率、精確率和F1 分數(shù)都獲得最優(yōu)結(jié)果,表明此模型對玉米種子的特征能進行更有效的提取和區(qū)分。
SKNet 使用多分支進行自適應(yīng)的特征選取,如圖2 所示為2 分支的結(jié)構(gòu),在分組數(shù)為64 的基礎(chǔ)上,對分支數(shù)為2、3、4 的ECA-SKNet 進行對比試驗,實驗結(jié)果見表4。
表4 ECA-SKNet 不同分支數(shù)的訓練結(jié)果 %
由表4 可知,當分支數(shù)為2 時,準確率和精確率為最優(yōu)結(jié)果。當分支數(shù)為3 時準確率和精確率相較于分支數(shù)為2 的模型略微下降,但F1 分數(shù)為最優(yōu)。當分支數(shù)為4 時,準確率下降明顯,模型效果與ResNet 相當。
本文使用卷積神經(jīng)網(wǎng)絡(luò)對單倍體和二倍體玉米種子進行分類識別,對比了不同卷積神經(jīng)網(wǎng)絡(luò)對單倍體和二倍體玉米種子進行分類的效果,從中選出最優(yōu)模型并進行超參數(shù)的調(diào)優(yōu),獲得以下結(jié)論。
1)在VGG、ResNet、DenseNet、SKNet 和本文改進的ECA-SKNet 中,ECA-SKNet 獲得了最優(yōu)結(jié)果。在未調(diào)優(yōu)前ECA-SKNet 獲得91.38%的驗證準確率。
2) ECA-SKNet 使用分組數(shù)為64 的模型能獲得較大的性能提升,相比于默認32 分組數(shù)量的模型準確率提高1.66%。分支數(shù)為2 和3 的模型性能相差不大,分支數(shù)為2 的模型準確率和精確率較高,分支數(shù)為3 的模型F1 分數(shù)較高。
3)本文使用ECA-SKNet 對單倍體和二倍體玉米種子進行分類的準確率達93.04%,為本研究中的最優(yōu)結(jié)果。