侍國忠,陳 明,張重陽
(1.上海海洋大學 信息學院,上海 201306;2.農業部漁業信息重點實驗室,上海 201306)
河蟹隸屬于甲殼綱、十足目、方蟹科、絨螯蟹屬,俗稱大閘蟹、螃蟹;其肉味鮮美、營養價值高,具有較高的經濟價值,是優質水產養殖品種[1]。但是,近年來,隨著河蟹養殖業的快速發展,相繼而來的河蟹質量安全問題也逐漸增多,影響著河蟹行業的可持續發展。一方面,在河蟹養殖過程中存在亂用、濫用藥物的現象,嚴重影響商品河蟹的品質和食用安全[2]。另一方面由于陽澄湖大閘蟹的知名度和高價位,其他湖泊的蟹也順著攀上高枝,太湖、揚州、蘇北等江蘇地區的湖蟹、塘蟹在上市前運送至陽澄湖里泡上一個月,搖身一變就成了正宗陽澄湖出產的大閘蟹,其身價也翻了數倍[3]。為解決上述問題,目前商品河蟹溯源的途徑主要有3種,即生物溯源、化學溯源、信息溯源[4]。生物溯源主要包括DNA溯源技術,它可以從本質上實現溯源,具有準確性高的特點,但操作復雜、鑒定時間長。化學溯源包括質譜技術、光譜技術和分離技術,相比生物溯源,它具有較快速、較準確的特點,但局限于實驗室環境無法大規模推廣。信息溯源主要有標簽溯源技術,如條形碼、二維碼、電子標簽、防偽蟹扣等[5-6],使得消費者可以通過移動端直接進行驗證并溯源,具有方便、準確、可移動性高的特點,是今后溯源的主要發展方向。陸軍等[7]采用為每只河蟹生成一個二維碼的方式開發了基于Web的河蟹養殖質量安全信息可追溯系統源平臺。周興國等[8]結合RFID和二維碼技術,實現了海參的防偽溯源。張炳良等[9]提出一種結合二維碼和河蟹甲殼圖像相結合的雙重防偽體系,但是僅提出了思路,并未給出結果和驗證。從上述文獻可知,雖然信息溯源技術已經取得了一些研究成果,但驗證的并非河蟹本體,而是綁縛在蟹螯上的可移動標識物,存在人為偽造、回收可移動標識物等問題,使得假蟹冒充真蟹驗證后賣出,造成真假蟹混淆而無法溯源。
特征提取是圖像識別最重要的步驟,提取特征的好壞將直接影響識別效果。主要有幾何特征方法[10]、局部特征描述方法[11-12]、子空間方法[13]、和深度學習方法[14],近年來隨著深度學習的不斷發展,其在人臉識別領域以99.7%的識別精度取得了巨大成功[15],此外相關研究表明,一方面,蟹殼表面分布著豐富的凸起、溝、脊、紋理等性狀且并不會受生活場景的影響,表現出較高的穩定性[16];另一方面,河蟹無論是在自然條件下還是在養殖環境中,喜歡攀爬、掘洞、潛伏于沙或泥中,但因為個體生活習性的不同而出現蟹殼圖案不同程度的磨損,進而增大河蟹個體蟹殼圖案的差異性[17]。但如果直接使用深度殘差網絡提取蟹殼特征進行識別溯源,存在特征維度大,識別時間長,無法實時溯源的問題。因此本文提出基于改進深度殘差網絡的河蟹精準溯源系統。
該溯源系統的總體架構如圖1所示,由養殖環節、檢測環節、銷售環節、溯源環節4部分組成。養殖環節是指河蟹準備上市時,養殖戶先通過攝像機采集每一只河蟹的蟹殼圖片,再將蟹殼圖片、養殖環境數據、水質數據、河蟹生長數據、藥物使用數據等養殖相關信息提交到溯源系統,溯源系統收到養殖信息后,首先使用訓練后改進深度殘差網絡提取蟹殼圖片的156維特征,再將蟹殼圖片,156維特征、養殖相關信息保存到溯源數據庫,數據庫存儲數據后返回每只河蟹唯一的編號和批號,最后將返回的編號和批號以自鎖式扎帶作為載體附著在河蟹蟹螯上。檢測環節是指檢測中心對每一批河蟹進行質量抽檢,再將抽檢河蟹蟹螯上的編號、批號,檢測結果、檢測單位等檢測相關信息存入溯源數據庫。銷售環節是指河蟹批發商或者經銷商將銷售河蟹蟹螯上的編號、批號,商家信息、銷售去向、銷售時間等銷售信息存入溯源數據庫。溯源環節是指養殖者、監管者、消費者將使用手機或攝像機拍攝的蟹殼圖片通過溯源APP或者在線溯源網站提交到溯源系統,溯源系統使用基于改進深度殘差網絡的河蟹識別技術,識別溯源數據庫中是否存在待溯源河蟹。如果存在則輸出溯源數據庫中對應河蟹在養殖、檢測、銷售環節的信息,否則輸出該河蟹不屬于本系統。最終實現河蟹從養殖者、監管者、消費者到養殖場的追溯跟蹤。

圖1 溯源系統總體架構Fig.1 Tracing system overall architecture
上述系統的關鍵是基于改進深度殘差網絡的河蟹識別技術,識別流程如圖2所示,由特征提取模型訓練和識別兩部分組成。特征提取模型訓練指使用91 000張蟹殼圖像數據集訓練采用增加一層全連接和Dropout層的改進深度殘差網絡,提取具有泛化能力且能區分每只河蟹的蟹殼特征。河蟹識別由圖像預處理、特征提取、相似度計算、相似度判定4部分組成。圖像預處理指將待溯源河蟹蟹殼圖像尺寸縮小為128×128;特征提取指使用訓練后改進深度殘差網絡提取預處理后蟹殼圖像的156維特征向量;相似度計算指使用余弦相似度計算待溯源河蟹蟹殼圖像特征向量和溯源數據庫中河蟹蟹殼圖像特征向量相似度,相似度判定指如果相似度大于90%,輸出兩幅蟹殼圖片屬于同一只河蟹,識別成功,否則繼續搜索,直至遍歷完溯源數據庫也沒有找到相似度大于90%的蟹殼圖片特征向量,輸出識別失敗。

圖2 基于改進深度殘差網絡的河蟹識別流程Fig.2 Crab identification process based on improved depth residual network
深度殘差網絡(Resnet網絡)由何凱明等于2015年提出,解決了神經網絡隨著層數增加而帶來的梯度消失和梯度爆炸問題,使得網絡的性能隨著深度的增加同時得到提升[18]。圖3所示為Resnet101結構圖,其中包含100個卷積層和1個全連接層,第二至第五階段中的IDBLOCK×n表示n個具有相同維度的殘差塊,CONVBLOCK表示卷積核設置為固定尺度的殘差塊,每個殘差塊包含3個卷積層,所以卷積層個數為1+3×(3+4+23+3)=100。

圖3 Resnet101網絡結構圖Fig.3 Resnet101 network structure
卷積層的主要功能是對輸入圖像提取特征。如圖4所示,輸入蟹殼圖像的尺寸為128×128,經過第一階段7×7卷積核與輸入圖像卷積后得到一幅64×64的特征圖,并輸入到后續階段繼續提取高層特征,將各階段部分特征圖可視化,如圖4所示,第一階段卷積層類似于邊緣檢測的功能,隨著層數加深提取的特征抽象程度越高,識別精度越高。


圖4 卷積特征可視化Fig.4 Convolution feature visualization
雖然深度殘差網絡能自動學習具有泛化能力的河蟹蟹殼特征,但存在提取的特征,類間間距不足夠小,從而導致錯誤接受或者錯誤拒絕。因此張楓等[19]提出采用結合中心損失函數[20]與交叉熵損失函數共同監督網絡訓練,使同一只河蟹蟹殼圖像提取的特征盡可能聚集,而不同只河蟹蟹殼圖像提取的特征盡可能遠離。中心損失函數與交叉熵損失函數結合的定義,如式(1)所示:

(1)
式中:xi為第i個樣本的特征,屬于yi類,Wj是全連接層權重參數,n和m分別為類別數和樣本數。
如圖5所示,如果直接將Flatten層輸出的2 048維特征向量作為提取的蟹殼特征,設溯源數據庫中蟹殼圖片數量為1 000,則識別一只待溯源河蟹需要1 000×2 048的計算量,當溯源數據庫非常大時,無法達到實時性要求。因此本文提出在Flatten層[21]后增加一層全連接層和Dropout層,全連接層,不僅能增強網絡的非線性映射能力,同時可以降低特征維度,提高識別速度和精度。Dropout層,訓練時按照20%舍棄部分神經元,利用這種方式不僅可以防止模型過擬合,也可以提高模型泛化能力。最后將新增全連接層輸出的156維特征向量作為提取的蟹殼特征記為C:
C=[c1,…,c156].
(2)

圖5 改進后Resnet101網絡結構圖Fig.5 Improved Resnet101 network structure
如圖5所示,Flatten層神經元個數為2 048記為n,新增全連接層神經元個數為156記為l,輸出層神經元個數為訓練集螃蟹個數記為m。Flatten層與新增全連接層的權重為wij,新增全連接層到輸出層的權重為wjk,Flatten層與新增全連接層間的偏置為aj,新增全連接層與輸出層間的偏置為bk,新增全連接層取ReLU激活函數,如式(3)所示:

(3)


(4)
輸出層取Softmax激活函數,如式(5)所示:

(5)
則輸出Ok可表示為式(6):

(6)
最后使用中心損失與交叉熵計算Ok的損失并用梯度下降算法對整個改進后Resnet網絡進行訓練。
設兩幅蟹殼圖像經過Resnet網絡提取后的特征表示為二元組(x1,x2),使用余弦相似可以得到兩幅蟹殼圖像的相似度,如式(7)所示:

(7)
式中:d表示特征向量的維度,x1,x2表示提取的特征向量。
實驗材料為養殖的河蟹,其中雄蟹46只,雌蟹45只共91只。雌蟹體質量130.0 ~ 150.0 g,殼長74.0 ~100.0 mm,殼寬70.0 ~120.0 mm;雄蟹體質量180.0~205.0 g,殼長85.0 ~115.0 mm,殼寬98.0 ~130.0 mm。將上述河蟹以1~91順序編號并將編號牌統一固定在右側蟹螯上。隨即開始下一步相關的圖像采集。

(a)同一只河蟹不同分辨率圖片(a)Same river crab different resolution pictures

(b)同一只河蟹不同角度圖片(b)Same river crab different angle pictures

(c)同一只河蟹不同尺度圖片(c)Same river crab different scale pictures圖6 測試庫部分蟹殼圖片集Fig.6 Picture set of test library part crab shell
將上述91只河蟹,用SONY-ILCE-6000相機為每只河蟹采集1張蟹殼圖像并按河蟹編號命名共91張組成樣本庫。使用5種主流相機分辨率的手機(3 876×2 584、3 072×2 304、2 580×1936、1 600×1 200、1 200×1 100)為每只河蟹采集5種不同分辨率蟹殼圖像并按河蟹編號加流水號命名共455張組成不同分辨率蟹殼圖像庫。將手機以72度為單位旋轉5次,為每只河蟹采集5種不同角度蟹殼圖像并按河蟹編號加流水號命名共455張組成不同角度蟹殼圖像庫。將手機從不同高度,為每只河蟹采集原圖像不同倍數的5種不同尺度(0.1,0.2,0.3,0.4,0.5)蟹殼圖像并按河蟹編號加流水號命名共455張組成不同尺度蟹殼圖像庫。將不同分辨率、角度、尺度蟹殼圖像庫合并,共1 365張組成測試庫,為提取魯棒性更強的蟹殼特征以適應用戶拍攝時的復雜環境,使用翻轉、隨機修剪、色彩抖動、平移變換、尺度變換、對比度變換、噪聲擾動、旋轉變換、反射變換進行圖片擴充,擴充后測試庫包含91 000張圖片,其中每只螃蟹1 000張,部分測試庫蟹殼圖片如圖6所示。
4.3.1 改進深度殘差網絡訓練
從測試庫中選取81只河蟹的81 000張蟹殼圖片集,并按8∶2拆分為訓練集和驗證集,訓練改進深度殘差網絡。實驗設定學習率為0.05,優化器為SGD,大小2 000,迭代次數為5 000,得到訓練結果如圖7、8所示。

圖7 改進深度殘差網絡準確率變化曲線Fig.7 Improved depth residual network accuracy curve

圖8 改進深度殘差網絡損失值變化曲線Fig.8 Improved depth residual network loss value curve
由圖7、8知,訓練集迭代1 100次時開始收斂并穩定在100%,驗證集隨著訓練集損失的不斷下降,迭代3 000次時開始收斂并穩定在98%。該實驗結果達到了河蟹識別對提取蟹殼特征的高可區分性要求。
4.3.2 訓練后改進深度殘差網絡提取蟹殼特征泛化性測試
將測試庫中剩余10只河蟹的10 000張蟹殼圖片,使用訓練后改進深度殘差網絡提取蟹殼156維特征向量。再使用T-SNE流形學習[22]通過降維實現特征向量分布可視化,繪制出提取蟹殼特征分布情況,其中數字為河蟹編號,不同顏色代表不同只河蟹。如圖9所示,從10只河蟹10 000張蟹殼圖片中提取的蟹殼特征,較好地聚成了10類,類內緊湊,類間差異明顯,因此訓練后改進深度殘差網絡提取的蟹殼特征具有很好的辨識和泛化能力。

圖9 蟹殼特征分布Fig.9 Crab shell feature distribution
4.3.3 識別結果對比
使用本文提出的基于改進深度殘差網絡的河蟹識別技術將測試庫中的蟹殼圖片在樣本庫中進行匹配識別實驗,得到的結果如表1所示。由表1知基于改進深度殘差網絡的河蟹識別技術與改進前相比,雖然識別正確率相差不大,只提高了0.3%,但識別耗時降低了92%,更加符合溯源系統對實時性的要求。
表1 測試庫與樣本庫識別結果
Tab.1 Identification results of test library and sample library

螃蟹編號識別正確數/%識別次數正確率耗時/s深度殘差網絡83 58891 00091.8%4.3改進深度殘差網絡83 81191 00092.1%0.33
本文針對深度殘差網絡提取特征維度大的問題,提出在Flatten層后新增一層全連接和Dropout層,將提取的蟹殼特征向量從2048維降至156維,使得識別時間降低了92%,識別準確率為92.1%。由于蟹殼表面存在大量特征且無法偽造,因此提出基于改進深度殘差網絡的河蟹識別技術,以替代傳統的通過驗證可移動的條形碼、二維碼或防偽蟹扣等標識物進行溯源,實現每一只商品河蟹從消費者到養殖場的精準溯源追蹤,解決了人為偽造、回收標識物,造成真假蟹混淆而無法溯源的問題。