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

?

基于實(shí)例分割的柚子姿態(tài)識別與定位研究

2021-04-27 07:13曾鏡源洪添勝楊洲
關(guān)鍵詞:柚子實(shí)例像素

曾鏡源,洪添勝,楊洲

(1.廣東省山區(qū)特色農(nóng)業(yè)資源保護(hù)與精準(zhǔn)利用重點(diǎn)實(shí)驗(yàn)室,廣東 梅州 514015;2.嘉應(yīng)學(xué)院計(jì)算機(jī)學(xué)院,廣東 梅州 514015;3.華南農(nóng)業(yè)大學(xué)工程學(xué)院,廣東 廣州 510642)

柑橘是中國第二大水果,其中柚子是柑橘中的重要品種[1]。由于中國的柚子主要種植在偏遠(yuǎn)山區(qū),在生產(chǎn)的各個(gè)環(huán)節(jié)中,機(jī)械化和智能化水平較低,勞動力成本較高,迫切要求引入機(jī)械化和智能化設(shè)備[2]。在采摘和分揀柚子階段需要投入大量的人力,而基于機(jī)器視覺農(nóng)業(yè)裝備能夠在復(fù)雜場景中代替人執(zhí)行相關(guān)操作,可有效減少勞動力投入,降低勞動強(qiáng)度。如采摘機(jī)器人[3]、農(nóng)產(chǎn)品分揀[4]、果園車輛導(dǎo)航[4]、水肥藥精準(zhǔn)作業(yè)[5-6]、蟲害監(jiān)控等[5-6]、作物生長監(jiān)測[7]等。

目標(biāo)識別是這些設(shè)備在獲取圖像后首先面臨的問題,對用戶關(guān)注的目標(biāo)采用各種算法從圖像中識別、定位、分離和像素分割[8-9]。由于待識別目標(biāo)的復(fù)雜性,所以當(dāng)前的目標(biāo)識別算法都是以深度學(xué)習(xí)為基礎(chǔ)的[10]。目標(biāo)識別的相關(guān)方法主要分雙階段和單階段2類,雙階段以R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、Mask R-CNN為代表[11-13],單階段以SSD、YOLO為代表[14-16]。雙階段方法在檢測精度上有優(yōu)勢,而單階段方法則在速度上有優(yōu)勢。雙階段算法代表Mask R-CNN是在Faster R-CNN基礎(chǔ)上定義了新的損失函數(shù),采用RoIAlign獲取特征圖,以及對深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),最終在COCO2016數(shù)據(jù)集上取得當(dāng)前最好的成績[13]。單階段的YOLOv3是在YOLOv2基礎(chǔ)上,采用了新的激活函數(shù)和多尺度訓(xùn)練等方法,進(jìn)一步提高了檢測速度[16]。2種代表性的算法都有識別并分割出每一個(gè)目標(biāo),即實(shí)例分割(Instance Segmentation)。實(shí)例分割算法是目標(biāo)檢測算法中最精細(xì)的分支,可在對目標(biāo)分類的基礎(chǔ)上,將同一類目標(biāo)的每一個(gè)體分割出來。應(yīng)用場景(如柚子分揀和智能采收裝備)中往往存在多個(gè)同類個(gè)體,實(shí)例分割算法的應(yīng)用有助于實(shí)現(xiàn)智能設(shè)備對其中的某一個(gè)體進(jìn)行操作。

在果實(shí)與背景顏色接近,同一幅圖像中出現(xiàn)多個(gè)個(gè)體,以及個(gè)體顏色和體積差異較大等問題的應(yīng)用場合,傳統(tǒng)的方法難于準(zhǔn)確地從復(fù)雜背景中分離出柚子相關(guān)目標(biāo),是柚子智能采摘[3]、蟲害檢測[5]、作業(yè)機(jī)械智能路徑規(guī)劃[4]、精準(zhǔn)噴藥和生產(chǎn)加工等的一個(gè)技術(shù)瓶頸[7]。新的計(jì)算技術(shù),其處理能力和網(wǎng)絡(luò)架構(gòu)為實(shí)例分割方法的應(yīng)用提供了計(jì)算能力、數(shù)據(jù)通道和安全保障等[17-19]。針對上述問題,本研究主要采用深度學(xué)習(xí)中的2種實(shí)例分割算法進(jìn)行微調(diào)(Fine-tune)遷移和對比測試,研究從果樹和分揀場景中分離和分割柚子的方法,實(shí)例分割算法在柚子應(yīng)用中的關(guān)鍵問題,以及算法輸出結(jié)果的應(yīng)用。分割出的目標(biāo)可以進(jìn)行目標(biāo)姿態(tài)和外形檢測,為許多應(yīng)用提供關(guān)鍵操作。針對柚子建立分割模型,并研究模型應(yīng)用中的關(guān)鍵技術(shù)問題,為柚園監(jiān)控的結(jié)構(gòu)化傳輸和存儲提供依據(jù)。

1 訓(xùn)練Mask R-CNN和YOLOv3柚子檢測模型

由于Mask R-CNN是雙階段實(shí)例分割算法的代表,而YOLOv3單階段算法的代表,所以柚子檢測模型基于此2種算法進(jìn)行數(shù)據(jù)集制備。訓(xùn)練柚子相關(guān)目標(biāo)檢測模型,并將凍結(jié)后的模型應(yīng)用于后續(xù)檢測。

深度學(xué)習(xí)要求數(shù)據(jù)集(本研究指柚子相關(guān)圖片)覆蓋面越廣,訓(xùn)練出來的模型泛化能力越強(qiáng)。訓(xùn)練未采用數(shù)據(jù)增強(qiáng)(Data Augmentation)技術(shù),用于訓(xùn)練和測試的圖片均為原始圖片,以便與后續(xù)試驗(yàn)對比。由于柚子從采摘到后續(xù)分揀和加工等不同時(shí)期,其顏色、表面紋理甚至外形都有較大的變化,故為豐富樣本集,試驗(yàn)圖片部分來自現(xiàn)場拍攝,部分來自互聯(lián)網(wǎng)。

試驗(yàn)收集到柚子相關(guān)原始圖片422幅,樣本量不能滿足深度學(xué)習(xí)從頭開始訓(xùn)練時(shí)需要的數(shù)量要求,但可以采用微調(diào)的方法進(jìn)行遷移學(xué)習(xí)。將收集到的圖像數(shù)據(jù)分為3個(gè)數(shù)據(jù)集:①訓(xùn)練集(Train Dataset):選取359幅作為訓(xùn)練集,用于反復(fù)計(jì)算網(wǎng)絡(luò)權(quán)重;②評估集(Evaluate Dataset):選取46幅作為評估數(shù)據(jù)集,用于評估第1步計(jì)算出的權(quán)重,如果評估未滿足要求,對訓(xùn)練集繼續(xù)訓(xùn)練;③測試集(Test Dataset):將選擇有代表性的17幅圖片。

上述數(shù)據(jù)集互不重疊,且為提高測試效果,選擇測試集中的圖像涵蓋了不同的背景復(fù)雜度、清晰度、目標(biāo)類型、目標(biāo)數(shù)量、遮擋、人工添加圖案等類型。用于訓(xùn)練模型的樣本圖像(即訓(xùn)練集和驗(yàn)證集) 和測試集的部分圖片如圖1所示。

圖1 柚子圖像樣本集Fig.1 Pomelo images dataset

為方便后續(xù)柚子姿態(tài)和品質(zhì)檢測的研究需求[20-23],本研究設(shè)置的目標(biāo)類別包含pomelo、pomelo_leaf、pomelo_handle、rot、spot和pomelo_tail共6個(gè)類別,分別代表柚子、柚子葉、柚子果柄、表皮腐爛、表皮有斑點(diǎn)和柚子臍部,通過LabelMe工具對上述目標(biāo)類型進(jìn)行標(biāo)注。

相關(guān)算法采用GPU加速,主機(jī)的軟硬件配置對訓(xùn)練和檢測(推斷)速度有較大的影響。本試驗(yàn)的主機(jī)主要硬件和軟件配置如下:CPU:Intel i5-4460(4核@3.2 GHz);內(nèi)存:24 GB (8GB×3);GPU:NVIDIA GeForce GTX 1 070(顯存8 GB);系統(tǒng)和應(yīng)用軟件均采用64位版本;編程語言:python3.7.1。

本研究采用基于Microsoft COCO 數(shù)據(jù)集上的預(yù)訓(xùn)練模型進(jìn)行微調(diào)(Fine-tune),配置文件采用基于Google的TensorFlow開源框架中的Object Detection API的模型文件。

由于2種算法對數(shù)據(jù)集的制備方法不一樣,所以需要對數(shù)據(jù)集進(jìn)行預(yù)處理。為便于比較兩種算法在柚子圖像上的測試效果,模型訓(xùn)練的采用同一套原始圖像和標(biāo)注文件,然后根據(jù)模型需要,對數(shù)據(jù)集進(jìn)行訓(xùn)練。數(shù)據(jù)集制備流程圖如圖2所示。

圖2 數(shù)據(jù)集制備流程Fig.2 Dataset generation flow

采用TensorFlow提供的訓(xùn)練工具訓(xùn)練,訓(xùn)練20萬步結(jié)束。Mask R-CNN訓(xùn)練時(shí)間為11 h,YOLOv3需要0.5 h,然后凍結(jié)訓(xùn)練模型供后續(xù)使用。

TensorFlow采用張量和計(jì)算圖的形式編程,以適合多處理器并行處理。采用前面訓(xùn)練并凍結(jié)后的模型,應(yīng)用于測試圖像的實(shí)例分割,并將檢測到的目標(biāo)的輪廓以Mask形式顯示。

為保證測試和運(yùn)行環(huán)境的一致性,Mask R-CNN和YOLOv3的檢測模型都是基于TensorFlow框架的Object Detection API。對2種算法的通用模型進(jìn)行微調(diào)訓(xùn)練后,采用凍結(jié)的模型對測試樣本進(jìn)行實(shí)例分割。2種檢測方法的檢測結(jié)果的部分圖像對比如圖3所示。

圖3 Mask R-CNN與YOLOv3模型測試Fig.3 Model test for Mask R-CNN and YOLOv3

圖3訓(xùn)練模型檢測出每個(gè)目標(biāo)(實(shí)例)并進(jìn)行標(biāo)注,并輸出目標(biāo)類別、邊框坐標(biāo),其中MaskR-CNN可選擇輸出像素級的Mask位置信息。2種微調(diào)模型對17張測試集圖像進(jìn)行測試,對檢測結(jié)果進(jìn)行計(jì)算和對比發(fā)現(xiàn):①圖3(a)與(b)對比,Mask R-CNN模型的邊框定位精度和目標(biāo)檢測數(shù)量上有優(yōu)勢。邊框比較準(zhǔn)確,但Mask與目標(biāo)重疊區(qū)域有偏差,越小的目標(biāo),偏差越大,邊緣也不平滑。YOLOv3檢出率比Mask R-CNN少30%以上,包圍框(bounding box)的定位精度比Mask R-CNN目標(biāo)偏離10%以上;②從圖3(c)可以看出,大目標(biāo)的分割效果較理想,提取的Mask像素與人工標(biāo)注出的樣本邊界比較,柚子的重疊面積(Intersection of Union,IoU)可達(dá)85%以上,小目標(biāo)如葉子,IoU偏差較大,在45%~70%之間。③Mask R-CNN推斷幀速率為0.5~2 FPS,YOLOv3為18~20 FPS。

由于訓(xùn)練是基于預(yù)訓(xùn)練模型進(jìn)行的微調(diào),所以檢測結(jié)果理論上是比預(yù)訓(xùn)練模型的效果差(Mask R-CNN在COCO數(shù)據(jù)集上平均IoU達(dá)到75%以上),特別是Mask的邊緣變化較大。要提高檢測精度,可以采取數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充數(shù)據(jù)。擬檢測目標(biāo)在圖像中的位置、姿態(tài)、尺度、整體圖片明暗度等變化不會影響分類結(jié)果,故可以通過圖形圖像的仿射變換技術(shù)(平移、旋轉(zhuǎn)、縮放等)、直方圖均衡化、切割等方法將圖像庫成倍擴(kuò)展,用擴(kuò)展的圖像庫訓(xùn)練模型,可以進(jìn)一步提高分類效果[24-25]。

2 基于Mask的柚子外形估算

對柚子品質(zhì)的評價(jià),一般是依據(jù)柚子重量與體積的比值來衡量柚子果肉的品質(zhì),比值越大,則可以預(yù)測品質(zhì)越好。柑橘的尺寸檢測除了物理尺子直接測量外,也有采用圖像處理的方法進(jìn)行估算[26-28]。在柚子分揀設(shè)備上,柚子的重量直接由重量傳感器獲得,所以只需要計(jì)算出柚子的體積,就可以初步預(yù)測其品質(zhì)[29]。由于Mask R-CNN上目前檢測精度最高的實(shí)例分割算法,由其提供的Mask,可以得到最精確的目標(biāo)外形。

在工程應(yīng)用上,攝像頭離流水線的柚子的距離是固定的,所以可以根據(jù)柚子的圖像來估算其體積。標(biāo)準(zhǔn)的柚子形狀如圖4所示。

圖4 標(biāo)準(zhǔn)的柚子形狀Fig.4 Standard shape of pomelo

圖4中,x為圖像像素的寬,nx為當(dāng)前高度的水平直徑,hx為總高度,據(jù)此計(jì)算出體積V。通過這些參數(shù),結(jié)合稱重傳感器的值m,可以預(yù)測柚子品質(zhì)。定義柚子品質(zhì)評價(jià)指標(biāo)Qp為:

(1)

設(shè)柚子水平切面為圓,則可依據(jù)像素估算體積,即:

(2)

式中:h和n由目標(biāo)的Mask經(jīng)像素分割后確定。式(1)中的Qp直接計(jì)算涉及到像素長度x的標(biāo)定,精確的長度標(biāo)定甚至還需要線紋尺,不但成本高,而且步驟復(fù)雜。由于同一批次的柚子之間比較更有實(shí)際意義,所以合格品質(zhì)的指標(biāo)可由現(xiàn)場實(shí)際測出,設(shè)人工選取的標(biāo)準(zhǔn)樣本品質(zhì)評價(jià)指標(biāo)為Qs,則:

(3)

同理可得標(biāo)準(zhǔn)樣本的體積為:

(4)

則Qp與Qs的比值Rp為:

(5)

設(shè):

(6)

由于在特定測試批次上,Ap其為常數(shù)。則令:

(7)

式中:

(8)

公式(8)中的n和h由Mask R-CNN的推斷(Inference)結(jié)果中提取。此式中不再需要像素標(biāo)定,簡化了分揀設(shè)備的操作步驟,也減少了運(yùn)算量。質(zhì)量由稱重傳感器測出來,運(yùn)行時(shí)只需要計(jì)算Vt,時(shí)間復(fù)雜度為T(n)。要計(jì)算Vt,首先要從原始圖像中提出RoI圖像及其對應(yīng)的Mask,然后根據(jù)Mask圖像的數(shù)據(jù)進(jìn)行計(jì)算。本文拍攝了6個(gè)柚子的原始圖片,采用Mask R-CNN推斷,根據(jù)推斷結(jié)果截取RoI和生成Mask中圖,運(yùn)行結(jié)果如圖5所示。

圖5 Mask R-CNN推斷產(chǎn)生RoI和Mask Fig.5 RoI and Mask generated by Mask R-CNN Inference

由圖5的Mask,由可以統(tǒng)計(jì)出Mask中每一行白色像素的數(shù)量n(nx/2等效于半徑),并計(jì)算出Vt的值。nx/2和Vt計(jì)算結(jié)果如圖6所示。

圖6 Vt值輸出 Fig.6 Output of Vt

此外,n和h的準(zhǔn)確性與柚子的姿態(tài)有直接的關(guān)系。旋轉(zhuǎn)柚子至合適的姿態(tài),不僅可以得到準(zhǔn)確的n和h值,由此得到精確的nx/2系列,可有效地用于柚子的外形分揀[21-23]。

3 基于RoI圖像的柚子采摘點(diǎn)計(jì)算

由于采摘、路線規(guī)劃、除草等需要,果園現(xiàn)場的智能設(shè)備需要識別特定目標(biāo)的姿態(tài)。傳統(tǒng)的方法主要是采用基于顏色直方圖的閾值法,自適應(yīng)閾值法(OSTU),Sobel算子提取邊緣。這些方法只能應(yīng)用在簡單、一致性好的背景中效果較好。改進(jìn)的OSTU、貝葉斯分類法、K-means法和演化算法雖然可以分割稍微復(fù)雜的背景中的對象,但附加了較多的先驗(yàn)知識,且不適用于目標(biāo)與背景顏色較接近、特別是邊緣模糊的場合,因?yàn)槠溟撝挡缓么_定[30-32]。從前面模型測試結(jié)果來看,YOLOv3適用這種不需要Mask的場景,可以快速地從復(fù)雜場景中識別、定位和分割目標(biāo)。

對于已訓(xùn)練好的模型,旋轉(zhuǎn)角度是一種有效的數(shù)據(jù)增強(qiáng)方法[33]。通過旋轉(zhuǎn)圖像時(shí)檢測結(jié)果對比,檢測出的矩形框面積最小時(shí),一般其縱向?yàn)殍肿宇^部(果柄)的朝向。測試結(jié)果如圖7所示。

圖7 第9號測試圖旋轉(zhuǎn)檢測效果 Fig.7 Rotate test results for image No.9

圖7的復(fù)雜背景不影響目標(biāo)檢測和實(shí)例分割,且不同的旋轉(zhuǎn)角度檢測的目標(biāo)合并,可以增加檢出目標(biāo)的數(shù)量,故旋轉(zhuǎn)圖像是一種快速的提高檢出率的數(shù)據(jù)增強(qiáng)方法。利用檢測結(jié)果中的柚子果實(shí)和果柄的包圍框位置和大小信息進(jìn)行柚子角度估算,其檢測和計(jì)算結(jié)果如表1所示。

表1中計(jì)算了柚子角度,計(jì)算方法為:

(7)

式中:py:柚子矩形框中心縱坐標(biāo);px:為其橫坐標(biāo);hy為果柄矩形框中心縱坐標(biāo);hx為其橫坐標(biāo)。

從表1的計(jì)算結(jié)果可以看出,3個(gè)旋轉(zhuǎn)角度檢測數(shù)據(jù)計(jì)算出來的柚子角度,因?yàn)闄z測精度的關(guān)系,產(chǎn)生誤差,動態(tài)范圍為±5°,對于包裝、品質(zhì)預(yù)測等應(yīng)用是可以接受的。

表1 柚子目標(biāo)測試數(shù)據(jù)和角度計(jì)算 Table 1 Pomelo object test data and angle calculate

4 結(jié)論

基于Mask R-CNN和YOLOv3的預(yù)訓(xùn)練模型進(jìn)行微調(diào)得到自定義的模型,能夠識別目標(biāo)并分割出來。其中YOLOv3模型在速度上優(yōu)于Mask R-CNN,但檢出目標(biāo)的數(shù)量比后者少30%以上,目標(biāo)的定位精度比后者偏離目標(biāo)至少10%以上,跟YOLOv3的文獻(xiàn)實(shí)驗(yàn)相比差距較大。研究結(jié)果表明,YOLOv3需要更大的樣本量進(jìn)行訓(xùn)練,才能得到更好的檢測效果。

處理速度測試表明,YOLOv3模型的FPS為16~20左右,與檢測出的數(shù)量有關(guān),但動態(tài)變化范圍約為(18±2)FPS,而Mask R-CNN的動態(tài)變化范圍可達(dá)(2±1.5)FPS,甚至更大。測試結(jié)果說明YOLOv3在指定的硬件平臺上,處理速度比較穩(wěn)定。

在Mask的精確性上,占圖像總面積大的目標(biāo)(如柚子)的IoU可達(dá)85%以上,而小目標(biāo)(如葉子)的IoU偏差較大,在45%~70%之間。訓(xùn)練的模型檢測精度比公開的大規(guī)模數(shù)據(jù)集訓(xùn)練結(jié)果低,還有較大的提升空間。由此結(jié)論可知,拍攝時(shí)提高目標(biāo)占整體圖像比例,有利于檢測識別,并且提取的精度可以得到大幅度提升。

基于Mask R-CNN的Mask圖像直接得到柚子的外形,提出估算柚子品質(zhì)的新的方法,避免像素標(biāo)定,減少計(jì)算量,時(shí)間復(fù)雜度為T(n)。基于YOLOv3檢測的柚子果實(shí)和果柄的包圍框,并采用數(shù)據(jù)增加的方法,計(jì)算柚子角度,角度誤差可以控制在±5°以內(nèi)。

綜上所述,根據(jù)2種模型的特征,Mask R-CNN適合在柚子分揀加工的場合,而YOLOv3更適合在果園現(xiàn)場實(shí)施。

猜你喜歡
柚子實(shí)例像素
像素前線之“幻影”2000
“像素”仙人掌
柚子燈
柚子,變變變
高像素不是全部
完形填空Ⅱ
完形填空Ⅰ
一地柚子
您的像素,飽和嗎?[上]
寿宁县| 冕宁县| 保亭| 游戏| 临高县| 正宁县| 高邮市| 静宁县| 沽源县| 临海市| 兴义市| 曲麻莱县| 瓦房店市| 汝阳县| 琼海市| 宜宾县| 久治县| 体育| 定边县| 金阳县| 恩平市| 德兴市| 武陟县| 平陆县| 吴忠市| 高唐县| 商都县| 凤庆县| 襄樊市| 车致| 靖安县| 西乡县| 淮安市| 石阡县| 肇州县| 鹤峰县| 曲麻莱县| 固阳县| 普陀区| 厦门市| 宝丰县|