馮 怡 然, 張 馨 丹, 陶 學 恒
(1.大連工業(yè)大學 遼寧省海洋食品加工技術裝備重點實驗室,遼寧 大連 116034;2.大連工業(yè)大學 工程訓練中心,遼寧 大連 116034)
目前海產品大多依靠機械分類和人工分類。為了減少勞動力需求,提高加工效率,可以將計算機視覺應用于海產品的非接觸式計算和測量,這樣可以在不損害被檢海產品的前提下提高加工效率和計算精度。在貝類識別領域已有相關研究,楊靖堯等[1]采用了極限學習機的方式實現了貝類的分類識別,但是該算法很難實現快速大批量的檢測。楊眉等[2]研究了基于BP神經網絡的扇貝識別,但無法解決畸形和遮擋等問題。里紅杰等[3]依靠計算機視覺技術達到海產品分類和質量評估,但在識別過程中圖像處理時間相對漫長。席芮等[4]提出了計算機視覺深度學習的方法,使得馬鈴薯芽眼的識別率達到96.32%,雖然識別對象單一,但大大提高了檢測精度。Costa等[5]應用計算機視覺對石斑魚的大小、性別和骨骼異常進行自動分類,基于最小二乘法建模的多元素技術將圖像分析和輪廓形態(tài)學相結合,適用于對活魚進行分類處理。
本研究在前期研究的基礎上創(chuàng)新性地引入了一種Faster R-CNN網絡[6],用于4種貝類的識別、定位和檢測,以解決在真實環(huán)境下貝類識別缺乏深度學習算法的問題[7-9]?;诟鞣N貝類的特征,對Faster R-CNN框架進行修改,通過替換特征提取方式與合并手段,并在真實環(huán)境下收集和構建貝類數據集,最終解決了遮擋、光線和多目標環(huán)境中貝類的識別和定位問題,有效地提高了貝類的識別率。
Faster R-CNN在近幾年應用非常廣泛[10],由RPN和Fast R-CNN相結合[11],本研究優(yōu)化了該算法,Faster R-CNN的3個網絡為基礎網絡特征提取、區(qū)域候選網絡(RPN)和測試網絡。貝類的顏色、輪廓、紋理等都是貝類深層次的抽象特征。這種網絡經訓練好后,可以提取輸入貝類圖片的深層次特征,經過DenseNet提取不同尺度的貝類特征圖并融合處理實現貝類精準的識別分類。對貝類的識別操作過程如圖1所示。
圖1 Faster R-CNN算法步驟
1.1.1 密集連接網絡
雖然更深的網絡可以提取更深的數據信息,但隨著網絡的加深,參數不可避免地會增加[12]。這給網絡優(yōu)化和實驗硬件帶來了一系列的問題,使優(yōu)化的運算量增大,導致硬件無法承受。針對貝類分類檢測算法建立的數據集樣本容量小,網絡訓練容易導致過擬合,使用DenseNet作為特征取網絡有助于解決的上述問題[13]。
作為一種新穎的網絡架構,DenseNet借鑒ResNet的理念[14](ResNet的網絡傳遞函數如式(1)、(2)所示)。
xl=Hl(xl-1)+xl-1
(1)
xl=Hl({x0,x1,…,xl-1})
(2)
網絡的第l層輸出等于第l-1層輸出的非線性變化加上第l-1層輸出。相比之下,DenseNet的第l層輸出是所有前一層輸出的非線性轉換的集合(如圖2所示)。
圖2 Dense Block架構
每個Dense Block中的卷積都是相互連通的[15]。H代表每個輸入都使用批量歸一化和激勵函數(ReLU)與k維3×3卷積核進行運算。k是輸出特征的深度。DenseNet的深度為32[16]。對于DenseNet,其控制模塊中間的密集連接可以合理地利用淺層和深層,其特點是確保高效率并大大減少網格的復雜性和運算量。
使用4個121層Dense Blocks組成特征提取網絡,去除全連接和分類層后,將RPN和區(qū)域興趣(RoI)池化層連接起來,完成目標識別和定位。Dense Block體系結構的主要參數如表1所示。
表1 DenseNet架構表
1.1.2 非極大值抑制
非最大抑制的目的是尋找局部最大值并抑制非最大元素,這是檢測過程中的一個重要步驟[17-18]。Faster R-CNN被轉換為圖像中的一系列檢查框B={bi,…,bN},并且相對框被劃分為分集Ci。在目標檢測的整個過程中,NMS優(yōu)化算法先選擇得分最高的復選框(M),然后對其余檢測幀進行IoU(intersection over union)測量。如果測試結果超過設置的閾值Nt,則復選框將被抑制。NMS算法為
(3)
從式(3)中可以看出,當復選框NMS的閾值與M接近或超過臨界值時,Ci將為0。假如貝類被部分遮擋,該貝類將無法被識別,從而降低檢測模型的準確性。
為了解決這一問題,傳統的NMS算法被Soft-NMS算法所取代,Soft-NMS算法根據相鄰復選框之間的大小,設計衰減函數,而不是將它們的分數設為零,從而確保對相鄰目標的準確識別。Soft-NMS算法為
(4)
為了實現真實環(huán)境下的貝類分類檢測,對Faster R-CNN檢測算法的前端特征提取器和末端回歸器進行了修改[19],算法步驟如圖3所示。
為了使實驗與實際生產相匹配,在基于深度學習的海產品分揀機器人生產線上進行貝類識別實驗。將貝類提取特征的過程進行可視化操作,原始的扇貝圖片經過過濾器也就是卷積來過濾圖像,再經過激活,最后進行池化處理,從而達到減少參數的效果,以扇貝為算例,如圖5所示,特征圖的顆粒度隨著網絡深度的加深而增強。
圖5 扇貝的算例特征圖
為了驗證實驗提出的Faster R-CNN算法的有效性[20],獨立采集了貝類數據集,這些數據集分為4個物種(扇貝、海虹、海螺和蜆子),共包含4 218張圖像(表2)。
表2 數據參數
數據特征包括不同的光強度、遮擋、復雜的背景和多個目標,以確保檢測模型涵蓋常見的現實生活中的貝類。此外,50%的數據集是鏡像的,另外50%是平動擴展的(圖6),使用LabelImg軟件對檢測的貝類進行標示。經過擴展,數據包括8 463 幅圖像,其中90%數據作為訓練集,10%數據作為檢測集。
(a)原始標示
整個訓練過程中卷積損失的全過程和檢測精度如圖7所示。約2 000次的卷積后,總偏差穩(wěn)定在0.1~0.2,檢測精度穩(wěn)定在80%。
圖7 訓練過程中卷積損失和檢測精度
使用原始算法和優(yōu)化后的算法進行卷積,依靠貝類數據集對算法進行測評。表3列出了各種算法對貝類的檢測結果,貝類多樣化的測試效果如表4所示。
表3 算法的檢測效果
表4 貝類多樣化的檢測效果對比
根據檢測結果,使用ResNet的Faster R-CNN 在各種貝類檢測中mAP值超過77%。圖8是部分檢測結果。在圖8(a)中,明顯的貝類特征和充足的光照,模型可以取得顯著的檢測性能。圖8(b)中的扇貝部分被遮擋,包含多種貝類,檢測效果較好。在圖8(c)中的海虹被遺漏。可見ResNet在復雜場景下適應性較弱。
(a)正常檢測
從測試效果來看,優(yōu)化算法的mAP值高達83%,比初始算法高出近4%。3種貝類(海虹、扇貝和蜆子)的檢測結果得到了極大的改進。這是因為這3種貝類的測試集包含了多種貝類、貝類重疊和復雜環(huán)境的特點,對DenseNet+Soft-NMS優(yōu)化后,在包含多種貝類的海虹和蜆子數據集中,檢測準確率提高了2%。所以,優(yōu)化后的算法在貝類多樣化的環(huán)境中的適應性比初始算法更好,在光線不足和貝類重疊兩類樣本的適應性有明顯改善。在多目標和復雜背景下,將改進后的Faster R-CNN算法與原始Faster R-CNN算法進行性能比較,如圖9對比所示。
圖9 原始算法與優(yōu)化后的算法對比
檢測效果由圖9(a)可見,初始算法經常導致背景多樣化下的遺漏。圖9(b)顯示了對初始算法的檢測錯誤,蜆子和海螺被錯檢為海虹。圖9(c)為遺漏的案例,檢查框架無法準確地框取貝類目標。通過比較可以看出,經過DenseNet和Soft-NMS改進后的Faster R-CNN在精度上要優(yōu)于原始算法,可以測試大量貝類目標,并且當相鄰目標之間的距離太小時可以準確地框取單個元素。改進后的Faster R-CNN主要表現出在背景多樣化和多個貝類目標下的更明顯的優(yōu)勢。
為了解決傳統的貝類識別算法在不同光線、不同背景和不同重疊條件下的問題,提出了一種用于貝類識別的深度學習算法。該算法是基于改進的Faster R-CNN,通過優(yōu)化算法和網絡架構,以提高貝類檢測的精度。同時,用Soft-NMS代替原算法對合并策略進行了優(yōu)化,從而提高了檢測的精度。結合生產實際情況建立了4種常見貝類的數據集。研究的檢測算法能夠實現海產品加工企業(yè)對貝類分類識別的需求,在光線不足、重疊等復雜條件下,比傳統模型的檢測精度提高近4%,具有較好的檢測性能。