,,,,
(青島農業(yè)大學 機電工程學院,山東 青島 266109)
隨著電子技術和計算機技術的發(fā)展,智能采摘機器人作為高科技的產物,在果蔬收獲這項勞動密集型工作中的應用越來越廣泛,它是實現(xiàn)農業(yè)現(xiàn)代化的重要手段之一,使得農業(yè)生產更加精準、更加高效,也是實現(xiàn)果蔬收獲自動化、智能化的重要標志。近年來,農業(yè)果蔬采摘機器人的研究受到了很多國家的關注,并獲得了許多成果,主要任務是對水果和蔬菜完成果實的采摘、分級、運輸?shù)热蝿誟1-3]。
目前無花果果實主要依靠人工采摘,無花果生長勢強,并有多次生長習性,所以存在著采摘時間長、勞動強度大等問題。隨著科技的進步,使用采摘機器人代替人工作業(yè)將成為可能。無花果每年結果2次。春果的結果部位均為上年生枝未曾結果的葉腋, 而夏、 秋的結果部位均為當年生枝,夏果著生于春梢葉腋,秋果著生于秋梢葉腋。因此對果實成熟度的判別就顯得尤為重要。
熟透的無花果極不易保存,所以采摘時只能選擇八分熟的果實進行采摘,八分熟的無花果表面還比較綠,但沒有光澤,捏起來比較硬,扔在筐里會彈起來,適合長途運輸,這也就是我們市場上的無花果,這種果子掰開后邊緣立刻會有許多白色的湯汁滲出,果肉松散成顆粒狀,不是特別飽滿,在生產地這類果子是不適合生吃的,而運往外地的這類果子,經過一段時間的折騰,基本就變軟了,也就成了市場意義上的熟果。而采摘九分熟甚至十分輸?shù)墓樱仨氁涍^冷庫降溫預冷,然后用冷鏈運輸才可以運出去,否則果子在運輸途中很容易因高溫而導致變質。
本文用Matlab2014b軟件平臺設計實現(xiàn)一個數(shù)字圖像處理界面系統(tǒng),此系統(tǒng)是以可視化界面的方式展現(xiàn)在用戶面前。圖像處理模塊是本系統(tǒng)的核心,此模塊所實現(xiàn)的主要功能是用算法處理圖像,再對處理后的圖像進行觀察分析。
Matlab的r2014b版本為許多處理圖像領域的從業(yè)人員貢獻了特殊的處理圖像工具箱和相應的系統(tǒng)模塊。通常這些工具箱都是為專門從事圖像處理領域的人士設計的,而用戶可以直接拿過它進行學習和使用,不需用戶再寫入圖像處理程序。由于優(yōu)秀的圖像處理能力以及對相關數(shù)據(jù)進行分析的能力,Matlab的應用涉及到圖像處理領域的方方面面。比如概率的統(tǒng)計和算法的優(yōu)化、數(shù)據(jù)庫的接口和信號的控制、神經網絡和嵌入式系統(tǒng)開發(fā)方面等諸多領域的應用。
Matlab廣泛地應用在圖像的處理方面,剛開始開發(fā)Matlab軟件的初衷就包括方便進行數(shù)據(jù)的可視化,這樣就可以通過圖形把矩陣向量在Matlab軟件中表示,并且對顯示出來的圖像進行文字標記等操作。最近開發(fā)的Matlab軟件完善并改進了圖形的處理功能方面,使它不只在多維曲線的處理和操作方面具有一般的圖像處理軟件都有的功能,而且在圖形的光線照射處理、四維數(shù)據(jù)的表現(xiàn)和色差方面的處理上增添了新的功能[4]。
無論一幅數(shù)字圖像是對一幅模擬圖像的量化和采樣的結果還是已經生成數(shù)字形式了,它都可以用一個2-D的實數(shù)矩陣來表示。根據(jù)預設數(shù)據(jù)類型的變化能夠分辨每個區(qū)域的最大最小值,當數(shù)據(jù)類型是unit8時范圍為0(黑)到255(白),當數(shù)據(jù)類型是double時數(shù)據(jù)類型是0.0(黑)到1.0(白)。一種顏色的本質是一個2-D的數(shù)組,編程易操作的原因是Matlab能夠把矩陣數(shù)組當成Matlab軟件自身建立的一個數(shù)據(jù)模型。
在Matlab軟件的編程操作中,所有二值圖像的像素要么是“0”,要么是“1”,也就是說,利用黑色跟白色這兩種顏色可以構成二值圖像。“0”和“1”這兩個值分別代表了關閉和打開,“0”表示了此像素代表了背景,而“1”表示了此像素代表了前景,通過這種方式對圖片的結構方式可以更方便的識別。一幅二值圖像只能返回與這幅圖像相關的結構和信息,如果要對其他圖像也要進行操作,就必須將圖像轉變成二進制的圖像形式。二值圖像的處理有重要的作用,首先用戶需要得到二值化圖像之前,就必須先將灰度圖像進行二值化的處理。其次,對圖形進行二值處理使圖形變得簡單,圖片的存儲空間變小,能夠更加容易的凸顯用戶所想要圖片外部輪廓和特征。
用戶可以利用下述的下面幾種公式得到Gray后,統(tǒng)一利用Gray把原來程序中(R,G,B)中的R,G,B進行替換,形成新的的顏色RGB(Gray,Gray,Gray)就是灰度圖了[5]。圖1顯示出了一幅無花果的二值化圖像。
圖1 二值化圖像
圖像的獲取是對果實成熟度識別的重要前提,圖像的預處理工作是圖像處理技術在應用中十分關鍵的一環(huán),因為圖像信息在拍攝過程中會存在干擾和噪聲,我們?yōu)榱吮WC或者提高圖像的質量,對圖像進行邊緣檢測、圖像分割和形態(tài)學處理,增強了圖像中有價值的信息。
邊緣檢測屬于機器視覺中圖片操作時進行特征值提取的一個方面,它的目的是對用戶處理的圖像中明暗變化相對明顯的點進行標記[6]。通過邊緣檢測可以去除與用戶操作內容不相關信息的同時還保留了圖像的基本結構,而且可以縮減數(shù)據(jù)量,因此更加節(jié)約空間。現(xiàn)在一般有兩類進行尋找邊緣的類型:一類是利用穿過的邊緣檢測方法,它尋找這幅圖像的邊界的方法主要是利用尋找圖像的二階導數(shù)的0穿越,一般是利用非線性差分表示的零點或者是利用laplacian通過零點。另一類是在查找邊緣基礎上的檢測方法,它通常在梯度的最大方向上定位出邊緣,利用查找圖像的的一階函數(shù)求導的極值點來尋找這幅圖像的邊緣部分。
當確定出用哪種邊緣檢測的算法以后,接下來的關鍵一步就是選擇一個闕值來確定邊緣的位置。如果用戶選擇一個過小的闕值,用戶會檢測出較多的邊界,用戶得到的結果容易受到噪聲的影響。但是當用戶選擇一個高的闕值的時候雖然不容易受到噪聲的影響,但是會檢測不到物體輕微的邊緣,這就需要用戶選擇一個更加合適的闕值。
羅伯茨邊緣檢測算子,即用戶進行圖邊界檢測中最便捷的一種邊界檢測算子,它采用了差分算子的部分化來進行邊緣的檢測,把相對方向兩個相近的像素的差表示這個梯度檢測幅值的邊緣,如圖2所示。
圖2 Roberts算子分割圖像
prewitt邊緣檢測算子,即可以去除掉一部分處理圖像的偽邊緣,可以去除圖像中出現(xiàn)的噪聲。prewitt算子的實質是在圖像的空間上通過模板與兩個方向的模板(檢測水平和垂直的邊緣)進行鄰域的卷積,一個數(shù)字圖像可以用prewitt算子定義方式定義,如圖3所示。
圖3 prewitt算子分割圖像
Canny邊緣檢測算子,目的是尋找一種最好的邊界檢測的方法,盡可能找到一個清晰地尋找圖像邊界,所標出的邊界部分要盡量的與實際的圖像的邊緣相似,在canny算法中運用了可以尋找滿足一個可以實現(xiàn)一定功能的變分法,運用canny算子進行邊緣檢測時用四個指數(shù)相加表示,它與高斯函數(shù)的一階導數(shù)相類似。canny算子檢測的一般步驟是首先要去掉噪聲,然后在圖像中尋找一個亮度的梯度,最后在圖像中進行邊緣跟蹤,如圖4所示。
圖4 Canny算子分割圖像
圖像分割是圖像處理到分析的重要的步驟,它就是要求用戶把所要求的處理的圖像分解成幾個特定的、具有特定特點的區(qū)域,并對這些域進行一系列的處理。圖像分割處理有多種方法,但是利用邊緣的切割和闕值的切割、利用區(qū)域的切割和特定理論的切割方法是用戶常用的幾種方法。進入到21世紀以來,很多科學家,研究員不斷地改進圖像分割的理論和研究的新方法來進行圖像分割。用戶通過圖像分割提取到的目標區(qū)域同樣能用于圖像的語音識別跟圖像的搜索等領域,如圖5所示。
圖5 灰度直方圖
直方圖閾值得到一個找到最合適閾值的方法是通過分析處理圖像的灰度直方圖進行處理。在根據(jù)用戶需要的實驗結果確定合適的方法之前,需要利用直方圖閾值法通過直方圖的分析來判斷用戶處理的圖像是單雙峰或者多峰[7]。如圖6。
圖6 閾值分割圖像
圖像的處理中有一個分支被稱做數(shù)字形態(tài)學,它可以用來為描述、表達和分析一幅圖像中的狀態(tài)提供完整的工具。除此之外,數(shù)字形態(tài)學還被應用在對感興趣形狀圖像的預處理上面。
數(shù)字形態(tài)學的基本原理是利用一個結構元素進行變換,從一個不知道的圖像中過去幾何以及拓撲的信息[8]。在用戶進行的圖像的形態(tài)學的處理中,對圖像的形狀和尺寸的設計使用戶進行操作的關鍵部分,如圖6所示。
膨脹是用戶進行形態(tài)學處理中的一種形態(tài)操作,膨脹產生的效果是“擴大”或者“粗化”處理一幅用戶二值圖像的目標區(qū)域,需要利用結構類型的相關尺寸和形狀來控制圖像粗化的范圍和方向,如圖7所示。
圖7 膨脹后圖像
與膨脹操作一樣,腐蝕也是一種形態(tài)操作,腐蝕的效果是“細化”或者“收縮”,用戶進行處理的這幅二值圖像中的目標區(qū)域。這個細化或收縮的范圍和方向被結構元素的形狀和尺寸所控制著,如圖8所示。
圖8 腐蝕后圖像
直方圖的均衡化處理就是把所處理圖像的直方圖的一個聚集的灰度分布區(qū)處理為全部灰度級并進行平均的分布。用戶將待處理的圖像進行非線性的伸長伸直等操作,并對重新分配圖像中的像素值。直方圖的均衡化對于圖像的前景色跟背景色都很有效,并且直方圖均衡化是一個可逆的技術,當用戶知道均衡化的函數(shù),用戶就可以恢復圖像原始的直方圖,如圖9所示。
圖9 直方圖均衡化圖像
平滑濾波是空間域濾波技術的一種,可以把低頻率進行加強處理。進行平滑濾波的目的主要是使用戶待處理的圖像變的模糊或者消除上面的噪音。用戶一般采用簡單平均法進行處理,用戶需要求相鄰像素像素點的平均亮度值。用戶選取的鄰域的面積與處理的平滑濾波結果有密切的聯(lián)系,選取的鄰域越大用戶處理的效果越好。圖10是不同模板下的平滑濾波。
圖10 平滑濾波圖像
進行圖像的銳化處理是的目的是使用戶待處理的模糊圖像的邊界表達的更清晰。圖像銳化與圖像模糊相反,所以必須使用圖像模糊的逆運算,例如微分等方法。圖像模糊是因為其圖像中高頻部分的分量被減弱,可以運用高通濾波器進行處理的原因是從頻率域的角度進行考慮。用戶要進行圖像銳化的前提是處理的圖像必須要有比較高的信噪號和噪聲的比例,不然會降低處理后圖片的信號和噪聲噪的比例,所以先進行去除噪聲噪,再進行圖像的銳化處理,如圖11所示。
圖11 銳化后圖像
由于并不是所有的無花果成熟之后都是紅色,所以我們不能單純的用顏色作為唯一判別依據(jù),而且無花果成熟的判斷其實比較復雜。
大田栽培的無花果可分為夏果和秋果[9]。北方設施栽培的無花果,由于冬季對樹干進行極重短截的“平茬”管理模式,因此果實都著生在當年枝條上,于夏季成熟并能延長到秋末冬初。無花果的果實是由花序軸及其上著生的小花發(fā)育而來的假果,果實內部的花發(fā)育過程不能從外部直觀觀察到,其形態(tài)結構還不清楚。隨著果實發(fā)育,果實外部顏色從綠色,逐漸發(fā)生褪綠至變白,隨后迅速膨大著色至成熟;果實內部顏色從白色小花變?yōu)榧t色小花,最后小花頂部花柱和柱頭由紅色變?yōu)辄S色。而從視覺識別的角度來看,現(xiàn)實中人們是靠著經驗,從果實的色澤、大小、裂口、飽滿程度甚至硬度來判斷。程榮花等[10]采用主成分析的方法得到相關信息,以高達93%的識別率來實現(xiàn)水果圖像準確辨識,。
本系統(tǒng)設計了兩種算法對果實進行判別。
無花果出現(xiàn)裂口是果實成熟的標志,因此可以通過識別無花果裂口處的像素點來進行判斷。思路是裂口處的像素點比其他的地方密集,利用掩模運算對圖像上某些區(qū)域作屏蔽,使其不參加處理或不參加處理參數(shù)的計算,得到感興趣區(qū)圖像進行判斷,界面如圖12所示。
圖12 裂口識別界面
大多數(shù)種類的無花果成熟后會變深色。像布蘭瑞克成熟后是古黃銅色,金傲芬和美麗亞是金黃色,波姬紅是鮮紅或紫紅,紫陶芬和蓬萊柿是紫紅至褐色。而青皮、長江七號、綠抗一號等,即使成熟也是綠色,只是形態(tài)上發(fā)生變化。所以在顏色上,識別出這些暖色調就判斷未成熟。
做了大量實驗分析,發(fā)現(xiàn)單純用RGB區(qū)分效果并不好,LAB顏色空間也不行,而用HSI效果很好,首先將RGB顏色空間映射到HSI空間,h是色調,s是飽和度,I是亮度。我們來識別h分量,得到h分量的直方圖,如果沒有成熟,直方圖分布都在0.6以下,成熟了的在0.7以上也會有分布,統(tǒng)計hsi顏色映射空間h分量值大于0.7的個數(shù)。有裂口的或者紅了的,在h分量力有個明顯的規(guī)律,h值靠近1而遠離0,界面如圖13所示。
圖13 顏色識別界面
將這兩種算法合并在一起,界面上沒有把掩模體現(xiàn)出來,識別正確率提高了很多,以500張照片為實驗對象,正確率達到88.6%,最終識別界面見圖14。
圖14 最終識別界面
本設計是基于Matlab圖像處理技術,做了一個判別無花果果實成熟度的系統(tǒng),根據(jù)無花果成熟的標準研究了識別算法,利用RGB顏色空間映射到HSI空間,直方圖分布在0.7以上有分布時說明根據(jù)顏色判斷,果實是成熟的,同時利用掩模判別選定區(qū)域中裂口像素點,這個相對區(qū)域內密集的像素點就是果實裂口;一定區(qū)域像素點個數(shù)大于預設值時就認定為成熟,然后進行計數(shù)處理,完成識別率測試,取得不錯的實驗結果,此設計為以后無花果的智能采摘提供了研究基礎, 順應農業(yè)發(fā)展趨勢,具有現(xiàn)實意義。