基于改進Mask R-CNN的番茄側枝修剪點識別方法.pdf
第38卷 第23期 農(nóng) 業(yè) 工 程 學 報 Vol 38 No 23 112 2022年 12月 Transactions of the Chinese Society of Agricultural Engineering Dec 2022 基于改進Mask R CNN的番茄側枝修剪點識別方法 梁喜鳳1 章鑫宇1 王永維2 1 中國計量大學機電工程學院 杭州 310018 2 浙江大學生物系統(tǒng)工程與食品科學學院 杭州 310058 摘 要 為解決番茄枝葉修剪機器人無法準確識別番茄側枝修剪點的問題 提出基于改進Mask R CNN模型的番茄側枝 修剪點的識別方法 將Mask R CNN的主干網(wǎng)絡ResNet50替換為MobileNetv3 Large來降低模型復雜度和提升運行速度 并對部分特征圖添加ECA Efficient Channel Attention 注意力機制 以提升模型精度 通過改進的Mask R CNN模型預 測番茄側枝與主枝的分割掩膜和邊框位置 針對部分單根枝條被分割成多段掩膜的問題 通過掩膜邊界框?qū)捀弑葏^(qū)分側 枝和主枝 分析同一枝條相鄰掩膜約束條件 然后將符合約束條件的掩膜進行合并連接 根據(jù)修剪點在主枝附近的特點 確定修剪點所在端 確定靠近修剪端端點的中心點作為側枝的修剪點 試驗結果表明 改進的Mask R CNN模型平均分 割圖片時間為0 319 s 召回率和精確率分別為91 2 和88 6 掩膜平均合并成功率為86 2 修剪點識別平均準確率為 82 9 該研究為番茄枝葉修剪機器人的研發(fā)提供參考 關鍵詞 模型 圖像識別 目標檢測 Mask R CNN 側枝 主枝 修剪點 doi 10 11975 j issn 1002 6819 2022 23 012 中圖分類號 TP391 41 文獻標志碼 A 文章編號 1002 6819 2022 23 0112 10 梁喜鳳 章鑫宇 王永維 基于改進Mask R CNN的番茄側枝修剪點識別方法 J 農(nóng)業(yè)工程學報 2022 38 23 112 121 doi 10 11975 j issn 1002 6819 2022 23 012 http www tcsae org Liang Xifeng Zhang Xinyu Wang Yongwei Recognition method for the pruning points of tomato lateral branches using improved Mask R CNN J Transactions of the Chinese Society of Agricultural Engineering Transactions of the CSAE 2022 38 23 112 121 in Chinese with English abstract doi 10 11975 j issn 1002 6819 2022 23 012 http www tcsae org 0 引 言 番茄是世界上栽培最為普遍的果蔬之一 中國是世 界上番茄生產(chǎn)總量最多國家之一 1 2 枝葉修剪是番茄種 植過程中的重要環(huán)節(jié) 及時修剪枝葉可以改善植株通透 性 降低病害率和提高番茄經(jīng)濟效益 3 由于葉子生長在 側枝上 目前番茄枝葉修剪主要通過人工割斷或掰斷側 枝實現(xiàn) 這樣不僅增加了人工成本 在割斷或掰斷過程 中還會造成番茄植株的損傷 4 5 規(guī)?;N植的番茄植株 間的行距較為寬闊 適合枝葉修剪自動化作業(yè) 6 因此 研發(fā)番茄枝葉修剪機器人代替人工摘葉是可行且有必要 的 而要實現(xiàn)番茄枝葉修剪自動化作業(yè) 番茄側枝 主 枝的檢測與修剪點的識別十分重要 目前 學者們在植株枝條自動化修剪和果蔬采摘方 面進行了相關研究 荷蘭Priva公司在2017年發(fā)布了一 款番茄枝葉修剪機器人 可實現(xiàn)番茄枝葉自動化修剪 7 寧政通等 8 通過改進Mask R CNN對葡萄果梗進行識別 與分割 葡萄果梗的識別平均精確率為88 嚴亞飛 9 為了解決枸杞枝條自然環(huán)境下識別干擾多的問題 采用 k means 聚類分割法識別出枸杞枝條 韋錦等 10 采用 DA2 YOLOv4模型識別綠籬 檢測速度為83 1幀 s 平 均精確率為98 5 Peng等 11 采用DeepLab v3 分割荔枝 收稿日期 2022 9 16 修訂日期 2022 11 11 基金項目 國家自然科學基金資助項目 31971796 作者簡介 梁喜鳳 博士 教授 研究方向為農(nóng)業(yè)機器人 Email lxfcjlu 枝條 模型分割的平均交并比為76 5 Zhang等 12 采用 R CNN檢測蘋果分支 平均召回率與準確率分別為91 5 和85 5 Qi等 13 采用TC YOLO模型檢測茶菊花 檢 測平均精度為92 49 檢測速度為47 23幀 s 該算法在 復雜和非結構化環(huán)境下仍表現(xiàn)出較高魯棒性 馬志艷等 14 采用改進的Mask R CNN模型分割莖稈雜質(zhì) 分割識別 準確度可達91 12 平均處理時間為3 57 s Palacios等 15 結合VGG19與Segnet對葡萄花穗進行檢測與分割 F1 分數(shù)分別為0 93和0 73 Afonso等 16 建立了基于Mask R CNN的成熟番茄和未成熟番茄識別模型 識別準確率 分別為95 和94 陳鋒軍等 17 采用改進的EfficientDet 模型檢測油橄欖果實的成熟度 精確率和召回率分別為 92 89 和93 59 Liang等 18 采用YoloV3與U Net相結 合的方法檢測與分割夜間環(huán)境下的荔枝與果梗 試驗表 明精確度與魯棒性較高 上述研究表明 植株枝條自動化修剪和果蔬采摘領 域已經(jīng)有了一定的進展 而番茄側枝修剪點識別方面的 研究較少且以傳統(tǒng)圖像處理方法為主 傳統(tǒng)圖像處理方 法和卷積神經(jīng)網(wǎng)絡檢測方法是常見的目標識別方法 由 于番茄植株側枝 主枝 葉片與未成熟果實顏色相近 采用基于閾值特征的傳統(tǒng)圖像處理方法無法進行有效區(qū) 分和分割 而卷積神經(jīng)網(wǎng)絡模型可以基于目標的顏色 形態(tài)和紋理特征檢測出番茄植株的主枝和側枝 本文以規(guī)?;N植的番茄植株為研究對象 為解決 傳統(tǒng)圖像處理方法難以將枝條從近色背景中有效分割的 問題和保證不同環(huán)境下識別的魯棒性 采用 MobileNetv3 Large替換Mask R CNN模型的主干網(wǎng)絡 農(nóng)業(yè)信息與電氣技術 第23期 梁喜鳳等 基于改進Mask R CNN的番茄側枝修剪點識別方法 113 并引入ECA Efficient Channel Attention 注意力機制 以此建立了一種基于改進Mask R CNN的番茄主枝與側 枝的檢測分割模型 利用同一枝條相鄰掩膜約束合并被 分割成多段掩膜的單根枝條 通過側枝修剪點在主枝附 近的特點識別修剪點 為番茄枝葉修剪機器人修剪點的 識別提供了技術支持 1 模型檢測分割 1 1 建立數(shù)據(jù)集 圖像數(shù)據(jù)采集于杭州傳化來春農(nóng)場 在2022年4 7 月期間拍攝晴天和陰天條件下番茄植株枝條800張圖片 采樣距離為300 600 mm 圖片尺寸調(diào)整為960 704像 素 為了提升模型的泛化能力和魯棒性 通過鏡像 平 移 添加高斯噪聲的方式進行數(shù)據(jù)增強 最終得到3 200 張圖片 隨機選擇1 000張圖片作為數(shù)據(jù)集 其中800張 為訓練集 200張為測試集 番茄植株整株枝條形態(tài)不一 將植株上的所有枝條 視作一個整體進行標記不利于神經(jīng)網(wǎng)絡提取枝條的形狀 特征 所以本文采用如圖1所示的分段標記方式進行標 注 即將每根枝條視作一個單獨的標記目標 由于側枝 是修剪作業(yè)對象 主枝是作為后續(xù)修剪點識別的輔助對 象 所以選擇側枝和主枝作為標記訓練對象 類別均為 branch 側枝與主枝后續(xù)可通過邊界框?qū)捀弑葏^(qū)分 圖 1a 中番茄植株有3個標記對象 包括1個主枝和2個側枝 分段標記后生成了與枝條對應的3段標記掩碼 如圖1b a 原圖 a Original image b 枝條分段標記掩碼 b Label of marking branch separately 圖1 標記側枝和主枝 Fig 1 Mark lateral branch and main branch 1 2 改進的Mask R CNN模型 Mask R CNN 19 是何凱明提出的一種實例分割網(wǎng)絡 可用于目標檢測與分割 但該網(wǎng)絡參數(shù)過多 計算量大 因此本文提出了一種基于MobileNetv3 Large骨干網(wǎng)絡和 ECA注意力機制的改進Mask R CNN模型 其網(wǎng)絡結構 如圖2所示 注 C2 C5代表MobileNetv3 Large網(wǎng)絡特征圖 P2 P5代表經(jīng)特征金字塔網(wǎng)絡FPN特征融合后的特征圖 GAP代表全局平均池化 C代表通道數(shù) H代 表高度 W代表寬度 單位為像素 Note C2 C5 represent MobileNetv3 Large feature maps P2 P5 represent feature maps by Feature Pyramid Network feature fusion GAP represents global average pooling C represents channel H represents height W represents width and the unit is pixel 圖2 改進Mask R CNN模型結構 Fig 2 Improved Mask R CNN structure 首先將數(shù)據(jù)增強后的數(shù)據(jù)集輸入到改進的Mask R CNN網(wǎng)絡中 采用MobileNetv3 Large網(wǎng)絡對輸入的圖 像進行特征提取 獲取特征圖C2 C3 C4 C5 然后將 C3和C4輸入到ECA注意力模塊中進行特征加強 并與 特征圖C2 C5輸入到特征金字塔網(wǎng)絡FPN中對提取的 枝條特征進行融合 區(qū)域建議網(wǎng)絡RPN Region Proposal Network 分別采用卷積核大小為1 1的卷積層對興趣區(qū) 域進行分類和回歸 獲得枝條的初步候選區(qū)域 不同尺 寸的候選區(qū)域特征層通過興趣區(qū)域?qū)R調(diào)整到相同尺 寸 最后輸入到頭部網(wǎng)絡中 全連接層用于檢測側枝與 主枝的種類與邊界框回歸 全卷積網(wǎng)絡用于檢測側枝與 主枝的掩膜 農(nóng)業(yè)工程學報 http www tcsae org 2022年 114 1 2 1 主干網(wǎng)絡MobileNetv3 Large 考慮枝葉修剪機器人在移動端場景中工作 本文采 用MobileNetv3 Large替代原始Mask R CNN模型骨干網(wǎng) 絡ResNet50來降低模型復雜度 提升運行速度 MobileNetv3 Large是谷歌提出的1種輕量神經(jīng)網(wǎng)絡 模型 基本單元是深度可分離卷積 通過兩個超參數(shù) 寬 度因子 和分辨率因子 來調(diào)節(jié)網(wǎng)絡速度和準確度 20 21 該網(wǎng)絡使用1個3 3的標準卷積和多個bneck層進行特 征提取 使用1 1的卷積代替全連接層 最后通過最大 池化層完成分類 MobileNetV3 Large結構如表1所示 表1 MobileNetV3 Large結構 Table 1 MobileNetV3 Large structure 輸入 Input 操作 Operation exp size out SE NL s 2242 3 Conv2d 16 HS 2 1122 16 benck 3 3 16 16 RE 1 1122 16 benck 3 3 64 24 RE 2 562 24 benck 3 3 72 24 RE 1 562 24 benck 5 5 72 40 RE 2 282 40 benck 5 5 120 40 RE 1 282 40 benck 5 5 120 40 RE 1 282 40 benck 3 3 240 80 HS 2 142 80 benck 3 3 200 80 HS 1 142 80 benck 3 3 184 80 HS 1 142 80 benck 3 3 184 80 HS 1 142 80 benck 3 3 480 112 HS 1 142 112 benck 3 3 672 112 HS 1 142 112 benck 5 5 672 160 HS 2 72 160 benck 5 5 960 160 HS 1 72 160 benck 5 5 960 160 HS 1 72 160 Conv2d 1 1 960 HS 1 72 960 pool 7 7 1 12 960 Conv2d 1 1 NBN 1280 HS 1 12 1280 Conv2d 1 1 NBN K 1 注 Conv2d為普通卷積層 pool為池化層 benck為瓶頸層 exp size代表 膨脹系數(shù) out代表輸出特征圖的通道數(shù) SE表示是否引入注意力模塊 NL表示激活函數(shù)的類型 HS代表h swish激活函數(shù) RE代表RELU激活 函數(shù) NBN為無批標準化 s表示步長 K表示目標類別數(shù)目 Note Conv2d is ordinary convolution layer pool is pooling layer benck is bottleneck layer exp size represents expansion factor out represents channel of output feature maps SE represents whether there is a Squeeze And Excite in that block NL represents the type of nonlinearity HS represents h swish RE represents ReLU NBN represents no batch normalization s represents stride K represents number of target category bneck層繼承了MobileNet V1中的深度可分離卷積 與MobileNet V2 22 中的具有線性瓶頸的逆殘差結構 部 分bneck塊引入SE Squeeze And Excite 23 注意力機制 為了減少運算量和提升運行速度 使用h swish代替激活 函數(shù)swish 使用h sigmoid 代替激活函數(shù)sigmoid h sigmoid h swish的計算公式如下 ReLU6 min max 0 6 ReLU6 3 h swish X 6 ReLU6 3 h sigmoid 6 X XX XX 1 式中X為輸入張量 ReLU6為激活函數(shù)ReLU6 1 2 2 ECA注意力機制 為了保證模型復雜度降低的同時仍具有較高的精 度 引入ECA注意力機制對MobileNetv3 Large提取的 特征圖C3 C4中枝條特征進行加強 ECA是Wang等 24 在2020年提出的一種輕量級通道注 意力機制 能夠有效捕捉局部跨通道交互信息 ECA原理 如圖2中ECA具體結構部分 該機制不進行降維操作 直接進行全局平均池化 然后通過自適應選擇的尺寸為k 的快速一維卷積來進行局部跨通道連接 之后使用sigmoid 函數(shù)獲得每個通道權重 將原始輸入特征與通道權重結合 獲得具有通道注意力的特征 其中k的取值表示為 2odd odd log C bk t 2 式中 oddt 為離t最近的奇數(shù) C為當前總通道數(shù) 和b 為固定值 通常分別取值為2和1 2 同一枝條掩膜合并 將圖片輸入到改進的Mask R CNN模型中進行預測 部分圖片的預測結果中出現(xiàn)一根枝條被分割成多段掩膜 的情況 這會對后續(xù)枝條修剪點的識別產(chǎn)生干擾 因此 需要將屬于同一枝條的多個掩膜合并為一個掩膜 2 1 同一枝條相鄰掩膜約束分析 為了將屬于同一枝條的多個掩膜合并為一個掩膜 本文選取測試集中被分割成多段掩膜的單根枝條進行分 析 確定同一枝條相鄰掩膜約束條件 1 同一枝條相鄰掩膜重疊約束條件 同一枝條相鄰的兩個掩膜間存在重疊區(qū)域 因此 對于任意兩個掩膜A與B 若屬于同一枝條相鄰掩膜 需要滿足約束條件 存在重疊區(qū)域 該條件等價為 255 25 5Ax yB xx y y 使 3 式中x y為像素點坐標 A x y 為掩膜A二值圖象在 x y 處像素值 B x y 為掩膜B二值圖象在 x y 處像素值 2 同一枝條相鄰掩膜極點約束條件 將被分割成多段的側枝和主枝上的掩膜簡化為圖3 側枝和主枝上相鄰掩膜極點約束條件有所不同 需要分 開討論 注 MA1與MB1為一側枝上的兩個相鄰掩膜 L1 R1分別為MA1的左右 極點 L2 R2分別為MB1的左右極點 V1為MA1與MB1重疊區(qū)域 MA2與MB2為一主枝上的兩個相鄰掩膜 T1 B1分別為MA2的上下極點 T2 B2分別為MB2的上下極點 V2為MA2與MB2重疊區(qū)域 Note MA1 and MB1 are two adjacent masks on a lateral branch L1 and R1 are left and right poles of MA1 respectively L2 and R2 are left and right poles of MB1 respectively and V1 is an overlapping area of MA1 and MB1 MA2 and MB2 are two adjacent masks on a main branch T1 and B1 are the upper and lower poles of MA2 respectively T2 and B2 are upper and lower poles of MB2 respectively and V2 is the overlapping area of MA2 and MB2 圖3 同一枝條相鄰掩膜簡化 Fig 3 Simplify the same branch s adjacent masks 第23期 梁喜鳳等 基于改進Mask R CNN的番茄側枝修剪點識別方法 115 對于側枝 由圖3觀察確定了同一枝條相鄰掩膜滿 足極點約束條件 K1 2 4 式中K1為L1 R1 L2 R2在重疊區(qū)域V1上的個數(shù) 對于主枝 同理確定了同一枝條相鄰掩膜滿足極點 約束條件 K2 2 5 式中K2為T1 B1 T2 B2在重疊區(qū)域V2上的個數(shù) 2 2 同一枝條掩膜合并 基于同一枝條相鄰掩膜約束條件 本文提出了一種 同一枝條掩膜合并算法 其合并過程如圖4所示 具體 步驟如下 圖4 同一枝條掩膜合并過程 Fig 4 Merging process of masks that belong to same branch 1 將圖片輸入模型中 獲取枝條邊界框 掩膜二值 圖相關信息 計算每個掩膜邊框?qū)捀弑萵 然后對掩膜進 行分類 通過對側枝與主枝掩膜邊界框進行統(tǒng)計 結果 如圖5所示 所以確定分類依據(jù)為 當n 0 6 掩膜為 偏水平掩膜 側枝掩膜 當n 0 6 掩膜為偏豎直掩膜 主枝掩膜 寬高比n表示為 1 2 1 2 x xn y y 6 式中x1 y1為邊界框左上角頂點坐標 x2 y2為邊界框右 下角頂點坐標 2 合并被分割多次的側枝掩膜 將側枝掩膜兩兩組 合且不重復 根據(jù)式 3 初步篩選出符合重疊約束條件 的組合及獲取重疊區(qū)域 利用Opencv 25 查找初步篩選出 的組合內(nèi)每張掩膜圖的輪廓并獲取左右極點坐標 計算4 個極點在重疊區(qū)域內(nèi)的個數(shù) 根據(jù)式 4 篩選出符合極 點約束的掩膜組合并進行掩膜合并 掩膜合并表示為 1 merge maskm j j 7 式中merge為合并后掩膜 m為合并前同一枝條上掩膜 個數(shù) maskj為合并前同一枝條上第j個掩膜 3 為合并后的側枝掩膜生成新邊界框 設合并前同 一枝條上的第g g 1 2 m 個掩膜邊界框的左上角頂點 坐標 右下角頂點坐標分別為xg1 yg1 xg2 yg2 則新邊 界框生成方式表示為 a 側枝 a Lateral branch b 主枝 b Main branch 圖5 主枝與側枝寬高比 Fig 5 Aspect ratio of lateral branch and main branch 農(nóng)業(yè)工程學報 http www tcsae org 2022年 116 new1 11 21 1 new1 11 21 1 new2 12 22 2 new2 12 22 2 min min max max m m m m x x x x y y y y x x x x y y y y 8 式中xnew1 ynew1 xnew2 ynew2依次為新邊界框的左上角頂 點橫縱坐標 右下角頂點橫縱坐標 4 合并被分割多次的主枝掩膜和生成新邊界框 主 枝掩膜合并實現(xiàn)方式與步驟2 類似 但是計算對象為初 步篩選出的組合內(nèi)掩膜上下極點在重疊區(qū)域中的個數(shù) 然后對滿足式 5 的掩膜組合并進行掩膜合并 主枝新 邊界框生成式同上式 8 3 枝條修剪點識別 為確定修剪點的坐標位置 本文提出了一種基于主 枝輔助的修剪點識別方法 首先根據(jù)側枝修剪點靠近主 枝的特點確定修剪點在側枝的左端還是右端 然后在修 剪點所在端進行修剪點坐標的計算 側枝有左端點和右端點 修剪側枝哪端取決于哪個 端點在主枝附近范圍中 將模型枝條檢測結果簡化為 圖 6 對于Mask1 右端點D1在主枝附近范圍F內(nèi) 確 定修剪點J1在Mask1的右端部分 對于Mask2 左端點 E2在范圍F內(nèi) 確定修剪點J2在Mask2的左端部分 為了確保識別出更多修剪點 結合側枝掩膜分割結果 主枝附近范圍F為 F X1 70 X2 70 9 式中X1 X2分別為主枝掩膜的邊界框Box3左上角頂點 右下角頂點橫坐標 注 Mask1 Mask2為側枝的分割掩膜 Edge1 Edge2分別為對應邊緣 Box1 Box2分別為對應邊界框 J1 J2分別為對應修剪點 D1 E1為Mask1 的左右端點 D2 E2為Mask2的左右端點 S1 S2為邊緣Edge1上的2個 邊緣點 位于D1左側且水平方向上與D1間距15像素 S3 S4為邊緣Edge2 上的2個邊緣點 位于E2右側且水平方向與E2間距距離15像素 Note Mask1 and Mask2 are segmentation masks of lateral branches Edge1 and Edge2 are corresponding edges Box1 and Box2 are corresponding bounding boxes and J1 and J2 are corresponding pruning points D1 and E1 are left and right end points of Mask1 D2 and E2 are left and right end points of Mask2 S1 and S2 are two edge points on Edge1 which are located on the left side of D1 and are 15 pixels apart from D1 in the horizontal direction S3 and S4 are two edge points on Edge2 which are located on the right side of E2 and are 15 pixels apart from E2 in the horizontal direction 圖6 模型枝條檢測結果簡化 Fig 6 Simplify model detection result of branch 修剪點具體位置的確定 若修剪點在側枝掩膜右端 如圖6中點J1 修剪點坐標計算公式為 1 20 1 20 2 2 s ss t tt 10 式中s0 t0為修剪點J1的坐標 s1 t1為邊緣點S1坐標 s2 t2為邊緣點S2坐標 若修剪點在側枝掩膜左端 如圖6中點J2 修剪點 坐標計算公式為 4 53 4 53 2 2 s ss t tt 11 式中s3 t3為修剪點J2的坐標 s4 t4為邊緣點S3坐標 s5 t5為邊緣點S4坐標 根據(jù)上面原理 基于主枝輔助的修剪點識別過程如 圖7所示 具體步驟如下 圖7 修剪點識別過程 Fig 7 Pruning point recognition process 首先 按照式 9 計算主枝附近修剪點橫坐標可能 存在的范圍 然后 對每個側枝掩膜二值圖進行邊緣提 取 邊緣為黑色 按列獲取側枝輪廓邊緣點坐標 第1 個邊緣點為側枝左端端點 最后1個邊緣點為側枝右端 端點 其中邊緣點坐標滿足式 12 f x y 0 12 式中f x y 表示掩膜邊緣圖中坐標為 x y 像素點的像素值 然后 通過判斷左端端點和右端端點的橫坐標是否 在范圍F中 確定修剪點位于枝條哪端 最后 若修剪 點在側枝右端 按照式 10 計算修剪點的坐標 若修 剪點在側枝左端 按照式 11 計算修剪點的坐標 第23期 梁喜鳳等 基于改進Mask R CNN的番茄側枝修剪點識別方法 117 4 結果與分析 4 1 模型訓練 本文試驗環(huán)境為 Intel i7 10875H的CPU NVIDIA GeForce RTX 2060的GPU 運行內(nèi)存為16GB 軟件環(huán)境 為Windows10 深度學習框架Tensorflow1 16 模型訓練 方式為遷移學習 訓練初始學習率為0 001 權值衰減系 數(shù)為0 000 1 動量因子為0 9 共訓練200個epoch 4 2 模型對主枝與側枝識別評估 采用以ResNet50為主干的原始Mask R CNN模型 以MobileNetv3 Large為主干的Mask R CNN 模型和基 于MobileNetv3 Large 并添加ECA注意力機制的改進 Mask R CNN模型進行對比試驗 評價模型對主枝與側枝 識別效果的指標主要包括召回率 R 和精確率 P 各評價指標計算為 TP 100 TP FNR 13 TP 100 TP FPP 14 式中TP表示正樣本預測為正的個數(shù) FP表示負樣本預 測為正的個數(shù) FN表示正樣本預測為負的個數(shù) TN表 示負樣本預測為負的個數(shù) 模型運行速度用單張圖片平均分割時間表示 最終 得到不同模型下的側枝和主枝檢測分割效果和對比結果 如表2和圖8所示 表2 不同模型檢測對比結果 Table 2 Detection comparison result of different models 模型 Models 主干網(wǎng)絡 Backbone network 注意力機制 Attention mechanism 主干網(wǎng)絡參數(shù)量 Backbone network Parameters M 召回率 Recall 精確率 Precision 平均分割時間 Average segmentation time s Mask R CNN ResNet50 25 6 87 9 93 3 0 357 Mask R CNN MobileNetv3 Large 5 4 85 8 85 6 0 304 改進Mask R CNN Improved Mask R CNN MobileNetv3 Large ECA 5 4 91 2 88 6 0 319 測試1 Test1 測試2 Test2 測試3 Test3 測試4 Test4 a 原圖 a Original image b Mask R CNN模型 b Mask R CNN model c Mask R CNN 模型 c Mask R CNN model d 改進Mask R CNN模型 d Improved Mask R CNN model 圖8 不同模型檢測分割 Fig 8 Detection and segmentation in different models 由表2和圖8可知 原始Mask R CNN的召回率 精確率和平均分割時間分別為87 9 93 3 和0 357 s 主干網(wǎng)絡MobileNetv3 Large 參數(shù)量僅為ResNet50 的 21 1 以MobileNetv3 Large為主干的Mask R CNN 模 型相比于以ResNet50為主干的原始Mask R CNN模型召 回率 精確率和平均分割時間分別下降2 1 7 7個百分 點和0 053 s 說明僅將原始Mask R CNN模型主干 ResNet50替換為MobileNetv3 Large可以降低模型參數(shù)和 提升模型的運行速度 但是模型召回率和精確率均有下 降會影響枝條檢測 在改進主干網(wǎng)絡的基礎上進一步添 農(nóng)業(yè)工程學報 http www tcsae org 2022年 118 加ECA注意力機制最終得到改進Mask R CNN模型 改 進Mask R CNN模型相比于Mask R CNN 模型召回率 精確率和平均分割時間分別增加5 4 3 0 個百分點和 0 015 s 說明ECA注意力機制的添加可以改善Mask R CNN 模型僅改進主干網(wǎng)絡造成的召回率和精確率下 降的問題 改進Mask R CNN的召回率 精確率和平均 分割時間分別為91 2 88 6 和0 319 s 與原始Mask R CNN相比 改進Mask R CNN模型平均分割時間降低 了0 038 s 召回率提高3 3個百分點 召回率的提升使改 進Mask R CNN模型較原始Mask R CNN檢測出更多的 側枝 降低枝條漏識別情況的發(fā)生 平均分割時間的降 低使模型能更快檢測枝條 總體上 與原始Mask R CNN 相比 改進Mask R CNN在降低模型參數(shù)和速度提升的 同時對枝條仍具備較好的檢測性能 能夠更快 更多檢 測到枝條 4 3 合并效果評估 為評估單根枝條是否合并成功 即單根枝條分割掩 膜數(shù)量是否為1 本文隨機選取被模型分割成多段掩膜的 側枝和主枝 采用同一枝條掩膜合并算法合并掩膜 合 并結果和效果如表3和圖9 表3 同一枝條掩膜合并結果 Table 3 Result of merging masks that belong to the same branch 枝條種類 Branch category 枝條數(shù)量 Branch number N1 N2 N3 側枝Lateral branch 32 67 37 26 主枝Main branch 26 52 28 24 側枝 主枝 Lateral branch and main branch 58 119 65 50 注 N1 N2 N3分別表示合并前枝條掩膜 合并后枝條掩膜和合并后僅有1 個掩膜的枝條總數(shù) Note N 1 N2 N3 are total number of branch masks before merging branch masks after merging and branches with only one mask after merging 圖9 掩膜合并前后對比 Fig 9 Masks before and after the merger comparison 由表3可知 利用掩膜合并算法對被分割成多段掩 膜的側枝和主枝進行合并 側枝 主枝掩膜合并成功率 分別為81 3 和92 3 側枝合并成功率比主枝合并成功 率低主要是因為側枝的形態(tài)更具多樣性 其曲狀特征更明 顯 側枝與主枝掩膜平均合并成功率為86 2 由圖9 可知 采用同一枝條掩膜合并算法合并效果較好 可有 效避免后續(xù)修剪點識別時單根枝條因被分割成多段掩膜 而造成的存在多個修剪點的情況 4 4 修剪點識別評估 機器人末端執(zhí)行器修剪作業(yè)方式如圖10a 考慮到機器 人末端執(zhí)行器的尺寸和容錯性 確定了修剪點是否識別準 確的評價標準 1 修剪點在側枝上 2 修剪點水平方向 上距離主枝95像素以內(nèi) 滿足以上2個標準的修剪點視為 識別準確 以圖10b為例 Z3識別準確 Z1 Z2識別錯誤 注 Z1 Z2和Z3為側枝修剪點 Note Z1 Z2 and Z3 are lateral branch pruning points 圖10 修剪作業(yè)與評估 Fig 10 Operation and evaluation of pruning 第23期 梁喜鳳等 基于改進Mask R CNN的番茄側枝修剪點識別方法 119 隨機選取測試集中圖片進行修剪點識別 結果如表4 和圖11 表4 側枝修剪點識別結果 Table 4 Result of lateral branch pruning point recognition 環(huán)境 Environment 實際數(shù)目 Actual number 準確識別數(shù)目 Accurate identification number 晴天Sunny day 126 110 陰天Cloudy 90 69 晴天 陰天 Sunny and cloudy days 216 179 由表4和圖11可知 晴天和陰天條件下修剪點識別 成功率分別為87 3 和76 7 修剪點未能成功識別主要 原因為 1 部分側枝分割掩膜與側枝發(fā)生偏移 導致 識別出的修剪點不在側枝上 見圖11b中樣例1與樣例4 2 背景中的其余目標誤識別為側枝 導致修剪點在欄線 等其余目標中 見圖11b中樣例2 3 側枝遮擋過于嚴 重 導致側枝被誤判不在主枝附近而無法識別 見圖11b 中樣例3 4 被分割成多段掩膜的側枝掩膜合并失敗 導致單根側枝有多個修剪點 見圖11b中樣例2 針對修 剪點識別失敗的情況在未來可進一步研究 陰天條件下修剪點平均識別成功率較晴天低 這是 因為陰天條件下受光照強度影響枝條特征不明顯 針對 光照較弱時識別成功率下降的問題未來可從光源選擇 算法改進等角度進一步研究 晴天和陰天條件下修剪點 平均識別成功率為82 9 可為番茄植株的側枝修剪自動 化作業(yè)提供技術依據(jù) 成功樣例 Successful samples 失敗樣例 False samples a 樣例1 陰天 a Sample 1 Cloudy day b 樣例2 陰天 b Sample 2 Cloudy day c 樣例3 晴天 c Sample 3 Sunny day d 樣例4 晴天 d Sample 4 Sunny day 注 紅點為修剪點 紅色框代表識別失敗 Note Red points represent pruning points Red boxes represent false recognition 圖11 修剪點識別 Fig 11 Pruning point recognition 5 結 論 本文基于MobileNetv3 Large和ECA注意力機制提 出了一種用于枝條檢測分割的改進Mask R CNN的模型 以保證模型降低復雜度的同時具有較好的檢測性能 采 用同一枝條掩膜合并算法以解決部分單根枝條被分割成 多段掩膜的問題 最后提出一種基于主枝輔助的修剪點 識別方法確定修剪點坐標 1 原始Mask R CNN的召回率 精確率和平均分割 時間分別為87 9 93 3 和0 357 s 改進Mask R CNN 的召回率 精確率和平均分割時間分別為91 2 88 6 和0 319 s 表明改進Mask R CNN在速度提升的同時對枝 條仍具備較好的檢測性能 實現(xiàn)更快 更多的檢測枝條 2 采用同一枝條掩膜合并算法合并被分割多次的主 枝與側枝 由于側枝形態(tài)曲狀特征更明顯 主枝合并成 功率高于側枝 側枝與主枝平均合并成功率為86 2 表 明該合并算法可有效解決部分枝條被多次分割的情況 3 采用基于主枝輔助的修剪點識別方法 先確定修 剪點所在端 然后確定靠近修剪端端點的中心點作為側 枝的修剪點 對晴天和陰天條件下的圖片進行修剪點識 別測試 陰天條件下修剪點平均識別成功率較晴天低 修剪點平均識別準確率為82 9 可為番茄枝葉修剪機器 人研發(fā)提供