馮裕清,楊信廷,徐大明,羅 娜,陳 楓,孫傳恒
(1 上海海洋大學信息學院,上海 201306;2 國家農業信息化工程技術研究中心,北京 100097;3 農產品質量安全追溯技術及應用國家工程實驗室,北京 100097)
中華絨螯蟹(Eriocheirsinensis)又稱河蟹、大閘蟹,是中國主要的水產經濟作物之一[1]。2019年全國大閘蟹的年產量達77萬t,總產值逾越600億元[2]。江蘇是大閘蟹養殖主產地,產量約占全國的50%,特別是陽澄湖大閘蟹,因其青殼白肚、肉味鮮美而聞名[3],在餐飲市場中,單只陽澄湖大閘蟹的價格在幾十乃至上百不等。大閘蟹作為水產商品商標注冊過百件,品牌多、品牌雜[4],并且物流銷售渠道錯綜復雜,目前溯源方式難以快捷有效地追溯到個體,對消費者食用安全以及供應商品牌價值建立產生消極影響。
目前,企業的個體河蟹溯源方法主要是在河蟹蟹鉗上綁縛印有條形碼或者二維碼等標識的蟹扣[5],消費者通過移動終端設備掃描這些驗證標識獲取河蟹的產品信息[6],這種方式對于個體河蟹,追溯成本高、環保性差,而且蟹扣存在被不良商家回收利用的情況。一些研究表明,河蟹形態的生長會受到周圍環境影響,其背甲易留下形態各異的溝壑、凸起、紋理等特征[7-8],因此可以從河蟹本身的形態特征進行個體驗證[9]。張炳良等[10]提出了一種基于河蟹背甲圖像與二維碼結合的雙重防偽驗證模型,從河蟹本身的生物信息進行驗證,但是識別過程依靠人眼比對判斷,普通消費者并不具備甄別能力。邰偉鵬等[11]使用SURF和FLANN算法[12]提取并匹配河蟹背甲的特征點,實現了河蟹個體的識別,結果表明河蟹個體背甲特征存在一定的差異性,但是該方法易受到光照不均、噪聲等外部條件的干擾,算法的魯棒性較差。因此,對于河蟹的個體識別需要一種更便捷、更可靠的認證方式。
深度學習作為人工智能領域的一個重要分支,在計算機視覺、圖像處理和自然語言處理等方面展現出最先進的性能[13],它將原始數據作為算法的輸入,通過算法分層抽象將數據一層一層地抽象成為自身任務所需要的特征表示,整個過程不需要人為干預[14]。近年來深度學習在人臉識別[15]、醫學圖像[16]識別和其他領域識別[17]取得了一系列的研究成果[18],尤其是以AlexNet、VGGNet、GoogLeNet、ResNet以及DenseNet[19]等為代表的卷積神經網絡模型。一些研究表明,卷積神經網絡已經應用于奶牛個體[20-21]和豬個體的識別[22],對于奶牛個體軀干圖像識別準確率達到90%以上,而對于豬臉個體的識別準確率達到99%。河蟹背甲形態各異,并且布滿溝壑和紋理等生物性狀,相比于人臉特征易被表情因素影響,蟹背堅實牢固,除非受到毀滅性打擊,不然背甲形態不會輕易變化,因此,蟹背特征是一種潛在的進行河蟹個體自動識別的依據。
本研究提出了一種金字塔卷積結構的深度殘差網絡精準識別單體河蟹的方法,使用金字塔卷積層替換普通卷積層,可以在不增加額外計算成本的同時獲取多尺度的圖像細節信息,模型訓練使用遷移學習方式彌補數據樣本量不足以及訓練時間較長的問題,最終實現河蟹的精準個體識別。研究結果為河蟹個體身份快捷可靠識別提供參考。
河蟹圖像數據取自陽澄湖成年大閘蟹共100只,蟹殼尺寸在60~70 mm之間。為了數據能夠較好地適應真實的光照條件,數據采集場所選取在明亮的室內(日光燈或自然光),由于拍攝時間包含早晨、中午、傍晚以及夜晚,因此采集的圖像需要適應各種復雜光照條件。采集過程中,選用MER-2000-5GC/P工業相機采集數據,圖像分辨率為5 496×3 672,相機固定在支架臺上,每只河蟹采集5張蟹背甲上方不同角度圖像,圖像需要展現清晰完整的河蟹背甲輪廓、溝壑、凸起和紋理,河蟹背甲特征細節如圖1所示。

圖1 蟹背特征示例圖
個體河蟹樣本數量過少會影響模型訓練效果,為了提取每只個體河蟹可辨識的生物特征,需要對原始數據進行預處理和擴充。河蟹數據集制作流程如圖2所示。

圖2 河蟹數據集制作流程
通過對每張預處理后的圖像進行旋轉變換(30°、45°、75°、90°)、翻轉變換(垂直翻轉、水平翻轉)、亮度調節、高斯擾動、椒鹽噪音和色彩抖動,數據集最終擴充至52 000張圖像并將圖像格式統一轉化為JPG格式,有效增強了數據集的多樣性,降低訓練階段過擬合的可能性,使得最終模型的泛化能力得到提高。數據集按照6∶2∶2劃分訓練集、驗證集和測試集。
金字塔卷積結構包含n個不同類型卷積核的卷積層[23],在不增加計算成本和參數數目的前提下,不同尺度卷積核處理輸入的特征圖,不同類型核具有不同的空間分辨率和深度,以捕獲更加詳細的信息,較小字段的內核可以專注細節信息,增加內核大小可以提供上下文之間更可靠的信息[24]。隨著空間大小的增加,卷積核的深度從第一級減少到第n級別,最后形成多個卷積分支。特征映射通過不同的卷積分支進行分組卷積,最后將不同分支的特征進行級聯拼接形成一個融合特征。金字塔卷積結構如圖3所示。

圖3 金字塔卷積結構圖

(1)
(2)

與標準卷積相比,金字塔卷積層可以在沒有額外成本的情況下擴大核的接受域,它也適用于并行的不同類型的內核,具有不同的空間分辨率和深度。因此,金字塔卷積層會在多個尺度上解析輸入,以捕獲更詳細的信息。這些不同類型的金字塔卷積層內核帶來互補信息,有助于提高網絡的識別性能。具有較小接受域的內核可以專注于細節,捕獲關于較小的對象和/或部分對象的信息,同時增加內核的大小可以提供更可靠的細節。
Resnet是一種集圖像、自動化編碼和分類為一體的深度卷積神經網絡,它通過使用特征傳輸來防止梯度消失。本研究使用基于金字塔卷積結構的殘差瓶頸塊代替Resnet的殘差塊,將標準殘差塊中的3×3的卷積核替換成不同內核級別(9×9、7×7、5×5、3×3)的金字塔卷積層,其中內核的深度在每個級別都有所不同。遷移學習[25]是運用之前模型已存有的知識對不同領域問題進行求解的一種新的機器學習方法,兩領域共享的因素越多,則遷移學習的效果越好。于是,對于新的網絡模型只需要訓練很少的訓練輪次就可以完成新的分類識別任務[26]。一些研究表明,遷移學習方法[27]已經在農作物病蟲害圖像識別中取得較好的效果[28-29]。遷移學習的實現方法有樣本遷移、特征遷移、模型遷移和關系遷移,本研究選擇模型遷移,相比于全新學習,模型遷移只需要對預訓練好的網絡參數進行微調,有助于網絡模型訓練快速收斂。由于ImageNet數據集樣本量大,存在許多通用的邊緣、紋理特征,因此可以將ImageNet中學習到的通用特征遷移到河蟹個體識別模型中。
基于遷移學習的模型訓練架構如圖4所示。首先,將大型數據集ImageNet輸入進金字塔卷積結構的Resnet進行預訓練,隨后從預訓練中得出的權重作為當前河蟹個體識別網絡的初始參數。

圖4 基于遷移學習和金字塔卷積層的模型訓練架構
使用金字塔卷積層的深度殘差網絡結構圖如圖5所示。
網絡結構主要由卷積層、金字塔瓶頸構建塊、全局池化層、全連接層和Dropout層構成。其中Conv1由一個卷積核為7×7的卷積層構成,金字塔卷積塊(PyConvBlock)從具有4個核大小級別開始,每個層的卷積深度隨著級特征映射的空間減少而減少,其中G的數量代表該卷積層分組卷積的數目。在最后一個階段,網絡最終只有一個層次的金字塔卷積塊,變為普通卷積層。每個卷積層之間使用批歸一化(Bach-Normalization,BN)和修正線性單元(Rectified Linear Unit,ReLU)激活函數,批歸一化通過固定減小均方差值來幫助網絡加快訓練速度,并且有助于梯度傳播,在反向傳播時幫助更新參數,幫助網絡克服梯度消失的問題。
圖5右側展示了pyconvresnet34和pyconvresnet50的卷積模塊的參數,其中pyconvresnet34的每個金字塔瓶頸構建塊比pyconvresnet50的減少一個1×1的降維卷積塊。

圖5 基于金字塔卷積結構的深度殘差網絡
由于河蟹數據集是人工構建,數據樣本構成存在缺陷,因此在全連接層后加入Dropout層[30],在一次循環中先隨機選擇神經層中的一些單元并將其臨時隱藏,然后進行該次循環中神經網絡的訓練和優化過程。在下一次循環中,又將隱藏另外一些神經元,如此直至訓練結束。可以比較有效地緩解過擬合的發生,在一定程度上達到正則化的效果。
學習器選擇隨機梯度下降(stochastic gradient descent,SGD)的梯度下降方式進行算法優化,本模型使用牛頓動量梯度下降(Nesterov Momentum)進行參數更新,該方法可以加快模型收斂速度,抑制梯度下降時上下震蕩,預防模型陷入局部最優解。學習率衰減量為1e-6,Momentum參數更新動量設為0.9。
損失值計算選擇交叉熵函數,交叉熵刻畫的是實際輸出概率與期望輸出概率的距離,加快模型收斂速度。損失函數見式 (3) :

(3)
式中:l為損失值,p為期望分類輸出,q為實際分類輸出,x為批次輸入樣本。
使用Softmax函數,又稱歸一化指數函數,返回與待識別河蟹相似概率最大的類別作為預測結果,如果預測結果與真實結果相同,則判定識別正確,反之,則識別錯誤。Softmax函數公式如下(4):
(4)
式中:Zi為第i個節點的輸出值,C為分類類別個數。
深度學習一直被稱為“黑盒子”,內部算法不可見,但CNN卻能夠被可視化,通常,一幅圖像經過卷積神經網絡提取特征后,隨著層次的深入,可視化結果會變得越來越模糊和抽象。圖6為河蟹圖像經過4個殘差瓶頸塊處理后的特征圖。從第一階段到第四階段可以看出,隨著網絡深度的增加,從提取邊緣輪廓特征到提取紋理特征,模型提取的特征越來越抽象,通過殘差瓶頸塊1和2卷積后,特征圖可以提取蟹背邊緣輪廓的特征信息,經過第3個殘差瓶頸塊卷積后,特征圖可以提取蟹背溝壑和凸起的特征信息,最后由第4個殘差瓶頸塊可以提取出蟹背的紋理特征信息。綜上,蟹背識別模型通過層層卷積提取的特征具有一定深度和區別性,實現了河蟹單體的準確識別。

圖6 卷積層特征可視化
2.4試驗平臺
2.4.1 試驗平臺搭建
模型訓練與測試均在Pytorch1.7框架下完成。硬件環境:處理器使用英特爾Core i7-9700K @ 3.60GHz 八核,內存32GB,顯卡使用Nvidia GeForce RTX 2080Ti。
軟件環境:CUDA Toolkit 11.2,CUDNN V11.2;Python 3.6.0;Pytorch 1.8.0;Windows 10 64bit操作系統。
模型訓練時的batchsize為128,訓練集和驗證集輸入圖像采用均值分別為0.485、0.456、0.406,標準差分別為0.229、0.224、0.225的參數進行標準化變換,統一輸入進網絡的圖像尺寸并轉化為3通道的灰度圖,模型初始學習率設置為0.05。
2.4.2 模型測試標準
為了分析河蟹識別模型性能,測試集的10 400張圖像采用準確率(accuracy)作為評價標準,當且僅當圖像編號識別與真實個體相同時,才判定識別正確,例如1號河蟹的40號圖像識別為1號,則判定識別正確,否則識別錯誤。其中,對于識別模型的混淆矩陣中的變量定義如下(5):
(5)
式中:A為準確率,Ncorrect為預測正確數目,Ntotal為總數目。
如圖7所示,其中PC(Pyramid convolution)表示金字塔卷積層,輸入不同尺寸的數據集圖像會大程度地影響識別結果,大尺寸的圖像數據集可以提取更多更深層圖像特征。當輸入圖像尺寸224×224時,模型識別的各項指標大幅提升,模型驗證集準確率為99.87%,相比圖像輸入尺寸為128×128時的驗證集準確率提高4.76%,并且識別時間只增加了0.067 s。如下表1,展示了不同圖像輸入尺寸下的模型性能,圖像尺寸為224的模型準確率比較圖像尺寸128的模型提升了10.19%,而識別時間無明顯變化。

圖7 兩種尺寸的輸入圖像的模型訓練對比

表1 兩種尺寸的輸入圖像的模型性能比較
將預處理后的河蟹圖像數據集作為輸入分別輸入進使用普通卷積層結構和改進后基于金字塔卷積結構的深度殘差網絡,其中網絡深度選取34層、50層和101層。圖8為不同卷積結構和不同網絡深度的模型訓練對比圖,可以看出,所有模型的損失值呈現下降趨勢,準確率都呈現上升趨勢并在99%的時候趨于收斂,以虛線為標記的改進后的網絡模型驗證集準確率和損失函數值的收斂速度要略快于使用普通卷積層的網絡模型。

圖8 不同卷積結構和不同網絡深度的模型訓練過程對比
隨著模型網絡深度的增加,50層和101層的訓練效果明顯好于深度為34層網絡的訓練效果,而改進后的34層的深度殘差網絡、50層和101層網絡模型各個模型的準確率曲線和損失值曲線幾乎一致,因此,當使用改進后的34層的網絡模型或者使用模型網絡深度達到50層時,模型已經具備較強的學習能力。
表2為不同卷積結構和不同網絡深度下模型性能對比。

表2 不同模型的性能比較
結果表明使用金字塔卷積結構的深度殘差網絡在網絡深度為34層時提升較為明顯,此時模型準確率提高了5.49%;當網絡深度達到50層時,模型的準確率提高了1.3%;而當網絡深度為101層時,模型的準確率不再提高,此時網絡深度的加深不再影響模型的性能。
使用金字塔卷積層的Resnet50網絡作為遷移學習的基準模型,圖9展示了使用遷移學習時的網絡模型在訓練過程中準確率和損失值的變化曲線。借助遷移學習的優點,模型在早期就獲得了較高的精度,并且損失值在較小的迭代輪次下趨于收斂。從圖9可以看出,全新學習的訓練曲線需要近20輪的迭代學習才能收斂,而使用遷移學習方法后,只需要5輪的迭代學習即可收斂,時間花費不足半小時,模型驗證集準確率和損失函數曲線收斂速度提升近4倍。此時,使用遷移學習方式模型的準確率為98.88%,模型保持較高的識別準確率。

圖9 不同學習方式下模型訓練對比
提出了一種基于金字塔卷積層的河蟹個體識別算法,數據集采集模擬真實復雜的光照條件,通過3個模型性能指標比較模型的識別性能。改進后的網絡比改進前的網絡有顯著提升,當網絡深度為34層和50層時,模型的準確率分別提升了5.49%、1.3%;而當網絡深度為101時,模型性能不再有提升,說明模型已經有足夠的學習能力,不需要運算量更大、層次更深的網絡進行訓練學習。比較了金字塔卷積結構的50層的殘差網絡在不同輸入圖像尺寸下的模型性能,當輸入尺寸為224×224時,模型性能全面高于輸入尺寸為128×128時的模型性能,而識別時間只增加了0.067 s,滿足了個體河蟹識別快捷性和實時性的要求。比較了全新學習和遷移學習的模型性能,遷移學習方法在樣本量較少的情況下明顯減少了模型訓練時間,同時保持98.88%的高準確率。本研究下一步將探索通過深度網絡模型提取出個體河蟹的背甲特征向量,并將個體特征向量作為河蟹廠商的關鍵追溯依據,最終形成一個完整的河蟹個體追溯系統。
□