尚玉婷, 王 粵, 劉 彬
(浙江工商大學信息與電子工程學院,杭州 310018)
隨著我國經濟的快速發展,人們的生活水平不斷提高,對優質大米的需求也與日俱增。碎米率、黃米率、堊白粒率、堊白度是評測大米外觀品質的重要指標。在抽樣檢測臺上由于米??赡芟嗷ビ|碰、粘連,采集的圖像若不進行分割預處理會造成后續大米外觀品質評測的失誤?,F有的粘連米粒分割方法主要是基于形態腐蝕和膨脹的邊緣檢測算法、基于分水嶺變換的區域分割算法、基于輪廓分析的算法和基于凹點匹配的算法。張芹等[1]針對分水嶺算法容易產生過分割的問題,運用改進多尺度梯度圖像解決了由結構元素的尺寸增大而引起的梯度圖像邊界增大的問題,從而使米粒邊界更加清晰,更易于分割,但相比分水嶺算法增加了計算復雜性。王粵等[2]基于粘連米粒內輪廓和外輪廓線上各像素點的曲率方向特征提出一種新的獲取粘連點的方法,并根據粘連點的曲率伸展方向和粘連點之間的距離對粘連點進行配對,實現粘連米粒的分割,盡可能多地保留了米粒邊緣信息,分割準確率較高。孫志恒[3]基于全局凹點匹配方式的不足提出了一種基于局部凹點匹配的分割算法,并使用基于距離變換函數的分割算法解決孤立凹點無法匹配的問題,該算法準確率高,但耗時較久。
近年來,基于深度學習的實例分割成為計算機視覺領域的一大研究熱點。Ren等[4]以Faster R-CNN檢測算法為原型,提出了Mask R-CNN[5]實例分割算法,該算法在Faster R-CNN的基礎上增加了一個與分類和邊界框回歸分支并行的新分支用于分割任務,先通過目標檢測的方法找出每個實例所在的區域,然后在檢測框內進行語義分割,輸出實例掩膜。隨后的Mask Scoring R-CNN[6]、SOLOv2[7]、YOLACT[8]、BlendMask[9]方法在實例分割和檢測精度方面均取得了較好的效果,但大量的計算限制了其在移動終端或嵌入式設備上的部署。為了減少內存訪問成本,提高GPU計算效率,Lee等[10]提出了用于目標檢測的主干網絡VoVNet,使用OSA(One-Shot Aggregation)模塊解決密集連接帶來的特征冗余問題。Lee等[11]在VoVNet的基礎上引入了ResNet的殘差連接和SENet的eSE模塊,提出了VoVNetV2網絡,緩解了堆疊OSA模塊造成梯度反向傳播困難的問題,進一步增強特征,提升模型性能。本實驗提出了輕量級的粘連米粒實例分割網絡RiceInstNet,主干網絡由兩個改進的VoVNetV2網絡并行組成,在大規模減少網絡參數的同時加強對粘連米粒圖像的特征提取,另外在掩膜分支上增加了學習物體邊界的子網絡,利用邊界特征豐富掩膜特征并促進掩膜預測得更加精細。與Mask R-CNN相比,RiceInstNet網絡模型小,參數少,更適合集成到移動終端、嵌入式設備等。
Mask R-CNN算法通常以深度殘差網絡ResNet作為主干網絡對輸入圖像進行特征提取[12],隨著網絡層數的加深,網絡提取特征的能力也越來越高,但由于深層網絡需要大量的計算來學習參數,對硬件的要求較高??紤]到農作物外觀質量檢測通常需要在現場實地進行,而移動設備因為硬件資源和算力有限,難以運行復雜的深度學習模型。因此本實驗對現有的Mask R-CNN網絡進行調整優化,構建了一個輕量級的粘連米粒實例分割網絡RiceInstNet。主要對Mask R-CNN進行3點改進:采用2個改進的VoVNetV2并行作為Mask R-CNN的主干網絡,在大規模減少網絡參數的同時加強對粘連米粒圖像的特征提??;在掩膜分支上增加了學習物體邊界的子網絡,利用邊界特征豐富掩膜特征并促進掩膜預測得更加精細;對損失函數進行了優化。RiceInstNet網絡結構如圖1所示。

圖1 RiceInstNet網絡結構

為增強對粘連米粒圖像的特征提取,采用2個調整后的VoVNetV2網絡并行提取圖像特征得到不同尺度的特征圖,將每個VoVNetV2分支提取出來的具有相同尺度的特征圖逐元素相加,對相加后的結果采用ReLU非線性激活函數減少參數之間的相互依賴,隨后由特征金字塔網絡FPN[13]對不同尺度的特征圖進行特征融合。

表1 VoVNetV2網絡結構

圖2 OSA模塊

(1)
式中:Fb表示輸出邊界特征,f表示1×1卷積和ReLU激活函數。將最終的邊界特征與掩膜特征融合,可以利用邊界信息豐富掩膜特征,促進掩膜預測更加精確。融合機制與式(1)相同。預測器由1個2×2反卷積和1個1×1卷積構成,會為每個目標生成1個掩膜和1個邊界,得到最終輸出。
由于邊界和掩膜由2個融合塊交叉連接,聯合訓練可以增強邊界和掩膜預測的特征表示。本實驗在Mask R-CNN的基礎上添加了邊界損失Lb。由于邊界分類的訓練像素比掩膜分類的訓練像素少,而Dice loss不僅可以衡量預測值和真實值之間的重疊程度,而且對前景/背景像素的數量不敏感,能夠緩解類別不平衡問題[15]。在本實驗中,粘連大米像素點作為前景像素相對較多,僅選擇binary cross-entropy loss作為損失函數無法進行準確的分割,因此結合Dice loss和binary cross-entropy loss來優化邊界學習任務,并使用拉普拉斯算子捕捉二進制掩膜真實值中的邊界,轉換為二進制圖作為邊界的真實值。邊界損失Lb的計算如式(2)所示:
Lb(pb,yb)=LDice(pb,yb)+λLBCE(pb,yb)
(2)
LDice(pb,yb)=
(3)
L=Lcls+Lbox+Lmask+Lb
(4)
其中,Dice loss的計算如式(3)所示,H和W分別是預測邊界圖的高度和寬度,pb∈RH×W表示特定類別的預測邊界,yb∈RH×W表示相應的邊界真實值。λ是一個調整Dice loss權重的超參數(在所有的實驗中都設置了λ=1)。由此,每個樣本的損失公式如式(4)所示,其中分類損失Lcls、回歸損失Lbox和掩膜損失Lmask繼承自Mask R-CNN,掩膜損失Lmask是針對每個實例特定類別像素級的二進制交叉熵損失。
針對市面上現有的常見米粒,選取了長粒米和圓粒米對算法有效性進行驗證。使用HV1351UC大恒相機,12 mm真彩色高清攝像頭,配合環形光源,共采集了1 120張圖像,其中長粒米和圓粒米的比例約為1∶1,采集樣本的圖像分辨率為512×512,每幅圖像中的米粒粘連程度各不相同,含有米粒數在20~70顆不等,采集樣本如圖3所示。

圖3 米粒采集樣本
為了增加樣本的數量和多樣性,防止過擬合,在保持粘連米粒圖像仍具有其要表達的含義的情況下,對每幅粘連米粒圖像進行了水平/垂直翻轉、不同角度旋轉、模糊、噪聲和亮度操作,使數據集的體積增加到5 000幅樣本,將樣本按4∶1的比例隨機劃分出訓練集和測試集,得到4 000幅訓練集,1 000幅測試集。使用Labelme軟件對增強后的粘連米粒圖像進行標注,在每幅圖像中將每顆米標注為一個獨立的連通域,賦予標簽rice,圖4為標注后的米粒圖像。每標注完一幅圖像可以得到一個對應的json文件。將Labelme標注的json數據轉換成COCO數據集的格式即可開始訓練。

圖4 粘連米粒標注圖像
本實驗環境為Ubuntu18.04, 2顆8核Inter E5-2620V42.0Ghz處理器,1塊NVIDIA TITAN GPU,CUDA版本為10.1,CUDNN版本為7.6。RiceInstNet模型基于Pytorch框架實現,采用學習速率為0.002 5的隨機梯度下降(SGD)作為優化器,權重衰減率設置為0.000 1,動量因子為0.9,訓練35個epoch,每個epoch迭代500次,訓練過程共計17 500次。
本實驗在Mask R-CNN中使用不同的主干網絡對粘連米粒圖像進行了分割實驗,以平均精度AP、召回率Recall、模型大小、參數量作為衡量分割模型性能的評價指標,基于不同主干網絡的Mask R-CNN模型性能如表2所示。使用改進后的單分支VoVNetV2作為主干網絡的Mask R-CNN模型相比使用原有的VoVNetV2-19作為主干網絡的Mask R-CNN模型,其平均精度(AP)和召回率由原來的89.9%、93.4%降低到84.3%、88.6%,分別降低了5.6%、4.8%,而使用改進的雙分支VoVNetV2作為主干網絡的Mask R-CNN模型相比使用原有的VoVNetV2-19作為主干網絡的Mask R-CNN模型,其平均精度和召回率只降低了0.4%、0.8%,同時模型參數量不到原來的三分之一。說明原有的19層卷積網絡對本實驗研究的粘連米粒分割任務有較大冗余,降低其卷積層數量和通道數量并采用雙分支主干網絡并行提取圖像特征能夠在基本不影響模型性能的情況下大幅降低模型參數量。相比經典的基于ResNet-50的Mask R-CNN模型,基于改進的雙分支VoVNetV2的Mask R-CNN模型平均精度和召回率分別提高了2.3%、2.9%,同時由表2可以看出,基于ResNet-50的Mask R-CNN 模型參數量是基于改進的雙分支VoVNetV2的Mask R-CNN模型的11.7倍;此外MobileNetV2、MobileNetV3作為輕量級主干網絡的典型代表,基于二者的Mask R-CNN模型參數量分別是基于改進的雙分支VoVNetV2的Mask R-CNN模型的6.2倍和3.5倍,且分割精度和召回率均低于后者。由此可以看出本實驗提出的改進的雙分支VoVNetV2主干網絡不僅能夠提升粘連米粒實例分割模型的性能,而且整個網絡參數量較低,具備應用到移動嵌入式大米外觀品質檢測設備上的能力。

表2 基于不同主干網絡的Mask R-CNN模型 對圓粒米/長粒米的分割結果比較
基于改進的雙分支VoVNetV2的Mask R-CNN模型對粘連米粒圖像分割的可視化結果如圖5a、圖5b所示,對于圓粒米、長粒米,分割模型基本可以將米粒輪廓之間的粘連區域分割開,實現粘連米粒實例級別的分割,且分割前后米粒個數相同,不存在漏分割、誤分割的情況。此外,采用100幅含有圓粒米和長粒米的混合米粒圖像作為測試集,使用基于改進的雙分支VoVNetV2的Mask R-CNN模型進行分割,結果如表3所示,發現模型在混合米粒上也有較高的分割精度和召回率,分割可視化效果和圓粒米/長粒米的效果相似,如圖5c所示。

圖5 基于改進的雙分支VoVNetV2的Mask R-CNN 模型對不同類型的米粒分割可視化結果

表3 基于改進的雙分支VoVNetV2的Mask R-CNN模型對不同類型的米粒分割結果比較
本實驗提出的RiceInstNet模型在改進的雙分支VoVNetV2基礎上添加了邊界子網絡模塊,實驗結果如表4所示,可視化效果如圖6所示。由表4可知,RiceInstNet模型相比基于ResNet-50的Mask R-CNN模型,平均精度和召回率分別從87.2%、89.7%提升至90.4%、93.7%。相比基于改進的雙分支VoVNetV2但沒有添加邊界子網絡的Mask R-CNN模型,精度和召回率分別提升了0.9%、1.1%,模型參數量稍有增長。由可視化分割結果圖6可以看出,基于ResNet-50的Mask R-CNN模型分割結果存在較多明顯的誤差,粘連部分分割粗糙、呈鋸齒狀,基于VoVNetV2-19的Mask R-CNN模型出現欠分割、過分割的現象,基于改進的雙分支VoVNetV2但沒有添加邊界子網絡的Mask R-CNN模型則存在米粒粘連區域部分未預測現象,而本實驗提出的RiceInstNet模型在米粒粘連區域分割更加精細,預測出來的掩膜也較為完整,在大米邊緣處更加平滑。

表4 添加邊界子網絡的模型與其他模型 對圓粒米/長粒米的分割結果比較

圖6 不同分割模型的可視化結果
本實驗對損失函數進行了優化,為驗證損失函數的有效性,做了3組對比實驗,實驗結果如表5所示。結合Dice loss和binary cross-entropy loss來約束邊界損失,比單獨使用兩者中的任何一個精度均有提升,且IoU閾值越高,本實驗損失函數與其他兩種方法之間的差距越大。例如當IoU=0.5時,本實驗損失函數比其他2種損失函數高1.1%,而IoU=0.9的時候,差距擴大到4.1%,這表明損失函數可以達到預期效果。

表5 損失函數在不同IoU閾值下的精度比較/%
本實驗提出了一種輕量級的實例分割網絡RiceInstNet,它將粘連在一起的米粒分割成單顆米粒,為后續的大米外觀質量檢測提供高精度的圖像預處理技術。相比基于經典的ResNet-50的Mask R-CNN模型,RiceInstNet在不損失準確度的情況下,大大減少了網絡模型的參數量。相比基于輕量級的MobileNetV2、MobileNetV3的Mask R-CNN模型,本實驗模型分割精度更高,且分割出的米粒粘連區域更加精細、米粒輪廓更加平滑。今后可在此分割的基礎上,添加碎米率、黃米粒率、堊白粒率、堊白度等檢測模塊,從而構建一個完整的大米外觀質量檢測系統。