国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Mask R-CNN 的蘑菇成熟度檢測方法

2022-10-21 04:39徐增丙
農(nóng)業(yè)工程 2022年7期
關(guān)鍵詞:分支卷積蘑菇

楊 亞, 徐增丙, 王 銳, 廖 劍

(1. 武漢科技大學(xué)機(jī)械自動化學(xué)院,湖北 武漢 430081; 2. 武漢科技大學(xué)冶金裝備及其控制教育部重點實驗室,湖北 武漢 430081; 3. 武漢市農(nóng)業(yè)科學(xué)院,湖北 武漢 430065)

0 引言

農(nóng)業(yè)監(jiān)測是實施智能化精細(xì)農(nóng)業(yè)的一個重要環(huán)節(jié)。在蘑菇生產(chǎn)過程中,蘑菇的采摘及分類是最后一道重要工序,傳統(tǒng)方法都靠人工判斷蘑菇是否成熟,然后再進(jìn)行采摘和分類,這不僅對人工經(jīng)驗要求極高,而且增加了勞動強(qiáng)度,不利于蘑菇智能化種植的推廣。

近年來,隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,很多研究人員將深度學(xué)習(xí)技術(shù)應(yīng)用到了農(nóng)作物的檢測和識別方面[1]?;谏疃壬窠?jīng)網(wǎng)絡(luò)(deep neural networks,DNN)的方法可以自動學(xué)習(xí)特征表示,不再需要人工提取特征。DIAS P A 等[2]使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和支持向量機(jī)(support vector machine,SVM)相結(jié)合的方法來提取復(fù)雜背景下蘋果花的特征。有學(xué)者將R-CNN(regions with CNN features)網(wǎng)絡(luò)用于溫室作物圖像中檢測成熟和未成熟的草莓[3-4]。還有學(xué)者使用Faster R-CNN 網(wǎng)絡(luò)利用RGB、NIR 圖像及它們的組合來檢測不同的水果(甜瓜、鱷梨、芒果和橙子等)[5-6]。也有學(xué)者提出基于ResNet-101 的RFCN(region-based fully convolutional networks) 網(wǎng)絡(luò)用于疏果前蘋果識別[7-8]。SONG Y 等[9]提出了一種檢測和計算溫室中辣椒數(shù)量的方法。利用上述方法雖然能較好地檢測和識別出農(nóng)作物,但精度不高,只是輸出農(nóng)作物周圍的檢測框,并沒有農(nóng)作物的具體輪廓,而且農(nóng)作物的單體分割效果不佳。

本文在做蘑菇的檢測和識別任務(wù)時,使用了Mask R-CNN 網(wǎng)絡(luò),不僅提升了蘑菇檢測的準(zhǔn)確度,能較好地區(qū)分出成熟與未成熟的蘑菇,同時由于Mask R-CNN網(wǎng)絡(luò)具有良好的實例分割性能,對有遮擋或重疊的蘑菇也能進(jìn)行精準(zhǔn)地單體分割[10]。

1 Mask R-CNN 網(wǎng)絡(luò)原理

Mask R-CNN 是由HE 等[10]在2017 年提出的一種新的目標(biāo)檢測模型,不僅能實現(xiàn)對物體的檢測,同時還能對物體實現(xiàn)精準(zhǔn)的實例分割。Mask R-CNN 算法流程如圖1 所示。首先,將輸入的彩色圖像利用ResNet50+FPN 的特征提取網(wǎng)絡(luò)來提取圖像特征。其次,將提取的圖像特征輸入到RPN(region proposal network)網(wǎng)絡(luò),RPN 網(wǎng)絡(luò)對所有的感興趣區(qū)域通過Anchor 機(jī)制進(jìn)行篩選得到最終的候選區(qū)域。然后,使用基于雙線性插值的RoIAlign 池化層,得到特征點連續(xù)的特征向量。最后,將特征向量輸入到兩個并行的結(jié)構(gòu)分支,第1 個分支經(jīng)過FC 層得到邊界框和類別,第2 個分支通過FCN網(wǎng)絡(luò)獲得Mask 圖,兩個分支合并得到最終的檢測結(jié)果。

圖1 Mask R-CNN 算法流程Fig. 1 Algorithm flow of Mask R-CNN

1.1 ResNet50+FPN 網(wǎng)絡(luò)

經(jīng)典Mask R-CNN 采用的是ResNet101+FPN 網(wǎng)絡(luò)對圖像進(jìn)行特征提取,而本文只是對同類蘑菇進(jìn)行檢測和識別,因此將ResNet101 替換為ResNet50,以減少計算參數(shù),同時防止過擬合。ResNet50+FPN 網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。

圖2 ResNet50 與FPN 網(wǎng)絡(luò)結(jié)構(gòu)Fig. 2 Network structure of ResNet50 and FPN

從結(jié)構(gòu)圖中可看出,ResNet50 分為從Stage0~Stage4 共5 個階段,每個階段經(jīng)過卷積后會輸出尺寸不同的特征圖。其中Stage0 可以看作對Input 進(jìn)行預(yù)處理,因其占用內(nèi)存過大,不參與構(gòu)建FPN 網(wǎng)絡(luò),其余4 個階段生成的特征圖M1~M4 被用來構(gòu)建FPN 網(wǎng)絡(luò),這是一個自底向上的前饋計算過程,底層的特征層通過1×1 的卷積得到與上一層相同的通道數(shù)。接著是一個自頂向下的特征映射過程,上層的特征層通過2 倍的最近鄰上采樣得到與下一層特征層一樣的寬和高,再經(jīng)過橫向連接得到融合后的新特征層。然后,將融合后的特征層經(jīng)過一個3×3 的卷積來消除上采樣的混疊現(xiàn)象。最后,對特征圖P4 采用0.5 倍的下采樣得到特征圖像P5,將P1~P5 輸入到RPN 網(wǎng)絡(luò)。

1.2 RPN 網(wǎng)絡(luò)

RPN 是在Faster R-CNN 網(wǎng)絡(luò)中首次被提出來的,它替換了之前R-CNN 和Fast R-CNN 網(wǎng)絡(luò)中選擇性搜索的算法,真正實現(xiàn)了目標(biāo)檢測中端到端的計算,在提升檢測精度的同時大大提高了檢測速度[11]。RPN 網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。首先,使用3×3 的卷積滑動窗口對特征圖上的特征點進(jìn)行掃描遍歷,每次滑動生成9 種不同大小和縱橫比的錨框,目的是盡可能多地包含該特征點所映射的目標(biāo)。接著有兩個1×1 卷積的并行分支,一個分支對錨框使用softmax 進(jìn)行二分類,判斷錨框為前景還是背景;另一個分支對錨框進(jìn)行BBox 回歸操作,對錨框的位置進(jìn)行微調(diào)。最后,Proposal 層對兩個分支的結(jié)果進(jìn)行處理,保留前景得分高的錨框,并進(jìn)行非極大值抑制處理,得到最終的RoIs。

圖3 RPN 網(wǎng)絡(luò)結(jié)構(gòu)Fig. 3 Network structure RPN

1.3 RoIAlign 層

為了保證實例分割的精準(zhǔn)度,在Mask R-CNN 中采用RoIAlign 層替代了Faster R-CNN 中的RoIPooling 層,取消了量化和整數(shù)化操作。RoIAlign 原理如圖4 所示。虛線表示feature map,實線表示RoI,可看出特征圖上的RoI 被分為2×2 個bin,在每個bin 中平均采樣得到4個點的位置,并通過雙線性插值的方法計算這4 個點對應(yīng)的像素值,然后對這4 個點的像素值進(jìn)行最大或平均池化,得到該bin 的像素值,并生成2×2 的特征圖。

圖4 RoIAlign 原理Fig. 4 Schematic diagram of RoIAlign

1.4 FCN 網(wǎng)絡(luò)

FCN(全卷積)網(wǎng)絡(luò)能夠準(zhǔn)確地分割圖像中的目標(biāo),它是一種包含卷積和反卷積的端到端、點到點的網(wǎng)絡(luò)。對輸入的圖像進(jìn)行卷積后,可通過反卷積對最后一個卷積層的特征圖進(jìn)行上采樣,使其恢復(fù)成輸入時的尺寸,從而可對每個像素點進(jìn)行分類,使目標(biāo)物體的邊緣信息更加準(zhǔn)確,以此實現(xiàn)目標(biāo)物的精準(zhǔn)分割。

1.5 損失函數(shù)

Mask R-CNN 的損失函數(shù)如式(1)所示。

損失函數(shù)是平均二值交叉熵?fù)p失函數(shù),可對每個像素采用sigmoid 函數(shù)進(jìn)行二分類。mask 分支對每一個RoI 都有k×m2維度的輸出,k為類別數(shù),m2代表二值mask 分辨率,為m×m。若某個RoI 的類別為k,則Lmask僅定義在第k個mask 上,其他類別對應(yīng)的mask 不參與損失計算。

2 模型訓(xùn)練及檢測

算法流程如圖5 所示。首先,對蘑菇圖像進(jìn)行采集,將采集到的圖像劃分為訓(xùn)練集和測試集;然后,對訓(xùn)練集進(jìn)行手工標(biāo)注,將蘑菇分為成熟和未成熟兩類,并生成json 文件開始訓(xùn)練網(wǎng)絡(luò);最后,對訓(xùn)練好的模型用測試集進(jìn)行測試,輸出結(jié)果并進(jìn)行相應(yīng)的分析。

圖5 算法流程Fig. 5 Algorithm flow

2.1 圖像獲取

以蘑菇為研究對象,為了獲得訓(xùn)練樣本,在湖北省某公司的蘑菇培育大棚中進(jìn)行蘑菇圖片的采集工作。拍攝設(shè)備為??低暺放频墓I(yè)攝像機(jī),最高像素為500 萬,為了防止拍攝過程中相機(jī)抖動造成圖片模糊,將相機(jī)布置在云臺上。本文是對蘑菇的成熟度做出預(yù)測,而蘑菇的成熟度是依據(jù)蘑菇菌褶的開傘程度決定的,菌褶開了代表蘑菇已成熟,菌褶沒開代表蘑菇未成熟,因此從圖6a 中可判斷出左邊的蘑菇未成熟,右邊的兩個蘑菇已成熟。為了得到菌褶部位的特征,將相機(jī)斜向上對蘑菇進(jìn)行拍攝,圖像分辨率設(shè)為2 448×2 448,以png 格式進(jìn)行存儲。同時,為了獲得蘑菇樣本的多樣性,到不同環(huán)境的培育棚對蘑菇進(jìn)行拍攝,獲得圖片2 000 多張,經(jīng)篩選后為2 000 張,將其中1 800 張作為訓(xùn)練樣本,200 張作為測試集。

2.2 圖像預(yù)處理

利用開源軟件Labelme 對原始圖片進(jìn)行手動標(biāo)注,圖像標(biāo)注示例過程如圖6 所示。在圖6d 中共有3 類標(biāo)簽,標(biāo)簽0 代表背景,標(biāo)簽1 代表未成熟的蘑菇,標(biāo)簽2 代表成熟的蘑菇。標(biāo)注完成后,訓(xùn)練樣本被保存為json 格式文件,再通過Labelme 軟件將json 文件轉(zhuǎn)換為訓(xùn)練時所需要的標(biāo)簽文件。

圖6 圖像標(biāo)注示例過程Fig. 6 Example process of image annotation

2.3 訓(xùn)練環(huán)境及參數(shù)

主要訓(xùn)練環(huán)境:Windows10 64 位操作系統(tǒng),處理器是Inter(R) Core(TM) i9-10900k,顯卡是NVIDIA Quadro RTX4000,Python 版本為3.6,Tensorflow-gpu 版本為1.14,Keras 版本為2.1.5,cuda 版本為10.0,cudnn版本為7.4。

主要訓(xùn)練參數(shù):學(xué)習(xí)率為0.001,動量值為0.9,學(xué)習(xí)衰減率為0.000 1,訓(xùn)練epochs 次數(shù)為20 次。為了減少對模型的計算量,在訓(xùn)練時將圖像分辨率重新標(biāo)定為1 024×800。由于顯卡顯存的限制,訓(xùn)練時每次只能對一張圖片進(jìn)行處理。

2.4 結(jié)果分析

模型訓(xùn)練完成后,挑選測試圖片對模型進(jìn)行測試,測試效果如圖7 所示。從圖中可看出右下角的蘑菇被判定為成熟狀態(tài),成熟概率為0.090 8,實際可看出該蘑菇的菌褶部位已逐漸開傘,因此判斷無誤;其余4 個蘑菇均被判定為未成熟狀態(tài),左邊2 個及上面的1 個蘑菇未成熟概率均為1,右邊的蘑菇未成熟概率為0.091 9,實際也可看出這4 個蘑菇的菌褶完全未開傘,因此判斷也無誤。同時,檢測了Mask R-CNN 的分割性能,從圖中可看出,即使有蘑菇存在重疊或遮擋現(xiàn)象,也能將每個蘑菇單獨分割出來,證明了Mask R-CNN 模型實例分割的優(yōu)越性。

圖7 Mask R-CNN 檢測結(jié)果Fig. 7 Detection results of Mask R-CNN

2.5 性能比較分析

為了說明Mask R-CNN 網(wǎng)絡(luò)能提高目標(biāo)檢測的精度和準(zhǔn)度,與Faster R-CNN 網(wǎng)絡(luò)進(jìn)行對比,用兩個模型對同一張蘑菇圖片進(jìn)行檢測,檢測效果如圖8 所示。兩圖對比可看出,Mask R-CNN 在引入mask 分支后,檢測精度和準(zhǔn)度相比于Faster R-CNN 都有所提高,F(xiàn)aster R-CNN 對有遮擋和重疊的蘑菇分割出現(xiàn)偏差。

圖8 檢測效果對比Fig. 8 Comparison of detection results

用200 張測試集圖片分別對兩種網(wǎng)絡(luò)模型進(jìn)行測試,結(jié)果如表1 所示。雖然Mask R-CNN 單圖檢測時間更長,但對蘑菇成熟度的判別精度更高。

表1 蘑菇目標(biāo)檢測統(tǒng)計結(jié)果Tab. 1 Detection statistics of mushroom target

3 結(jié)論

針對傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)對農(nóng)作物進(jìn)行檢測與識別時具有識別精度低、魯棒性差等缺點,在對蘑菇培育棚中的蘑菇目標(biāo)進(jìn)行成熟度檢測時,首次提出一種基于Mask R-CNN 網(wǎng)絡(luò)的檢測蘑菇成熟度的方法,與Faster R-CNN 對比后得出,Mask R-CNN 模型檢測、識別準(zhǔn)確率更高。同時,Mask R-CNN 在引入mask 分支后,對有遮擋或重疊的蘑菇分割更為精準(zhǔn)。

本文方法不足之處在于沒有輸出蘑菇的相關(guān)尺寸,無法利用尺寸信息判斷蘑菇的長勢,在今后的研究中,將處理這些問題。

猜你喜歡
分支卷積蘑菇
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測定
一類離散時間反饋控制系統(tǒng)Hopf分支研究
軟件多分支開發(fā)代碼漏合問題及解決途徑①
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準(zhǔn)圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
一種并行不對稱空洞卷積模塊①
含有二階冪零鞍點的雙同宿環(huán)附近的極限環(huán)分支
爆圖團(tuán)
蘑菇
蘑菇傘