耿欣 董云哲 孫玲 譚杰 徐慧磊 于海濤 李君興
(吉林省農業(yè)機械研究院,吉林 長春 130011)
玉米是我國的主要谷物類農作物,據(jù)國家統(tǒng)計局發(fā)布數(shù)據(jù),2021年全國全國谷物產量6.327億t,其中玉米產量2.725億t[1],占谷物產量的43.07%。每年到收獲季節(jié),都會產生大量的玉米秸稈,根據(jù)玉米秸稈系數(shù)1.04[2],則會產生大約2.834億t的玉米秸稈。玉米秸稈屬于農業(yè)生態(tài)系統(tǒng)中十分寶貴的生物質能資源,如何高效率、低成本利用玉米秸稈,已經成為農業(yè)科研中的研發(fā)熱點[3]。
目前國內玉米秸稈的處理和利用主要有以下方法:燃燒燃料、粉碎還田、飼料化、燃燒發(fā)電、食用菌基料、手工藝品等[4-6]。玉米秸稈含有大量的營養(yǎng)元素[7],對玉米秸稈進行精細加工處理,制作成高營養(yǎng)牲畜飼料,不僅有利于發(fā)展畜牧業(yè),而且通過秸稈過腹還田,更具有良好的生態(tài)效益和經濟效益。隨著我國畜牧業(yè)的快速發(fā)展,飼料精細化加工得到越來越廣泛的重視,廣大科研工作者為把秸稈加工成適口性好、牲畜愛吃的優(yōu)質飼料做著不懈的努力。
揉絲與切碎是玉米秸稈飼料化的重要方法之一,由于是碎片顆粒分析,本文通過張玉榮等[8]基于Python-OpenCV對小麥不完善識別的研究,辨別小麥單個籽粒的完善性;劉星星等[9]基于OpenCV的動態(tài)葡萄干色澤實時識別,研究單個葡萄干的色澤,從而對葡萄干的品質進行分類等文獻,總結出一種對秸稈碎片的分析方法。
背景選擇黑色不反光的試驗平臺,用白色紙膠帶圍成一個400mm×400mm的區(qū)域,其中中間區(qū)域有一排白色方片,尺寸分別為20mm×20mm、30mm×30mm、40mm×40mm、50mm×50mm、60mm×60mm,這些方片用作圖像尺寸標定時的參照物,如圖1所示。
圖1 試驗平臺及標定方片
光源環(huán)境為熒光燈環(huán)繞光源即可,環(huán)繞光源照射均勻,有效地解決了物體產生的陰影,但光源不可直射平臺,防止生成亮斑。
工業(yè)相機的位置為紙膠帶圍成區(qū)域的正上方,垂直照射,鏡頭平面距試驗平臺的距離為500mm,如圖2所示。
1.環(huán)繞光源;2.相機支架;3.工業(yè)相機;4.試驗平臺;5.框架
電腦CPU為Corei7-9700;編程軟件Python 3.8.10;工業(yè)攝像機及鏡頭,接口USB 3.0,免驅動,200萬像素(1920×1080),30幀·s-1。
通過圖像處理分別得到白色方片的像素尺寸和像素面積,用像素尺寸、面積比上實際尺寸、面積,求得每個方片的尺寸、面積系數(shù),5個方片的尺寸、面積系數(shù)再做平均得尺寸、面積的平均系數(shù),把平均系數(shù)代入程序中即可求得碎片的實際尺寸和實際面積。
1.3.1 計算相機像素尺寸與實際尺寸的比值
相機像素尺寸與實際尺寸的比值如表1所示。
表1 像素尺寸與實際尺寸的比值ηc
1.3.2 計算相機像素面積與實際面積的比值
相機像素面積與實際面積的比值如表2所示。
表2 像素面積與實際尺寸的比值ηm
1.3.3 計算相機像素尺寸與面積的平均換算系數(shù)
把ηc與ηm分別代入式(1)中,求得尺寸與面積的平均換算系數(shù)。
(1)
式中,ηa為平均系數(shù);ηi為每次測量得到的系數(shù);n為測量的組數(shù)。
通過式(1)計算,得圖像尺寸平均系數(shù)為2.54,即1mm≈2.54像素;圖像面積平均系數(shù)為6.32,即1mm2≈6.32像素。
隨機抓取秸稈碎片,平鋪到試驗平臺上,需要剔除絲狀碎片,以及不能代表大多數(shù)形狀的碎片,如圖4所示。因為這2種碎片形狀不規(guī)則,而且有的細絲狀碎片的寬度只占1個像素或者半個像素,造成識別錯誤,影響計算的準確性,所以該試驗要去除這2種碎片,雖然會造成取樣的不完整,但是不影響大部分碎片形狀特征的歸類。把篩選好的碎片均勻地平鋪到試驗臺上,注意碎片之間不能相連,如圖3所示。
圖3 篩選之后待實驗的碎片樣本
圖4 需要剔除碎片樣式
采集的圖片是RGB格式,為了提高計算速度,減少數(shù)據(jù)的處理量,需要把RGB格式的圖片轉化為灰度圖像?;叶葓D像與RGB圖像之間的轉化有很多方法,本文使用的是其中一種較為常用的映射關系-加權平均法。計算如下:
Gray(x,y)=0.299×R(x,y)+0.59×G(x,y)
+0.114×B(x,y)
式中,Gray(x,y)表示灰度值;R(x,y)、G(x,y)、B(x,y)表示R、G、B分量值,3個加權系數(shù)0.299、0.59、0.114是根據(jù)人的亮度感知系統(tǒng)調節(jié)出來的參數(shù),是個廣泛使用的標準化參數(shù),通過程序轉化,得到灰度圖,如圖5所示。
對獲得的灰度圖進行二值化處理,使秸稈碎片與背景分離,方便后續(xù)計算,灰度圖二值化后,圖像中只有2種灰度值,分別為0和255。
通過cv2.threshold函數(shù)的THRESH_BINARY方法,得到的二值圖,如圖6所示。
式中,dst(x,y)為輸出圖像中第x行第y列的灰度值;maxval為最大值,取值為255;src(x,y)為輸入灰度圖像中第x行第y列的灰度值;thresh為分割閾值。該公式的含義是輸入灰度圖像素的灰度值大于分割閾值,對應輸出的二值圖該像素位置灰度值為255;反之灰度值為0。該實驗分割閾值為150。
圖5 碎片樣本灰度圖
本文用cv2.findContours()函數(shù),檢測樣本中碎片所占的像素,該函數(shù)輸出的是像素坐標列表,圖7顯示的是部分像素坐標,其中每個碎片包含的像素坐標又被分成了獨立項,通過len()函數(shù)可求出該列表中獨立項的總數(shù),即秸稈碎片總數(shù)。
把碎片輪廓的像素坐標列表進行拆分,把各個項分解出來,每一項就是樣本中的一個碎片,通過cv2.contourArea()函數(shù),可求得每個碎片占多少個像素,通過前面得到的圖像面積平均系數(shù),像素數(shù)量除以6.32,可知碎片的實際投影面積,圖8為部分碎片的外形尺寸。
圖6 碎片樣本二值圖
圖7 部分碎片像素的坐標列表
圖8 部分碎片外形特征尺寸
通過cv2.minAreaRect()函數(shù)對每一個項進行處理,輸出包括最小外接矩形4點坐標(box[0]、box[1]、box[2]、box[3])等信息的列表,通過式(2)和式(3)計算最小外接矩形的長度L像素值和寬度W像素值,見圖9。通過前面得到的圖像尺寸平均系數(shù),像素數(shù)值除以2.54即可得到實際尺寸,該尺寸可以近似看作碎片的長度和寬度,同時用長度比寬度即可得到碎片的長寬比,見圖8。通過cv2.drawContours和cv2.putText函數(shù),對每個碎片的最小外接矩形進行可視化以及標記,見圖10。
(2)
(3)
式中,box[n].x代表box[n]中x坐標值;box[n].y代表box[n]中y坐標值;n=1、2、3、4。
圖9 最小外接矩形的坐標
圖10 碎片的最小外接矩形及標號
通過上述步驟,得到樣本秸稈碎片的總數(shù),以及每個碎片的長度、寬度、長寬比和面積,把每一項求和,再除以總數(shù),可得到每一項的平均值,見圖11。
根據(jù)該樣本中每個碎片面積統(tǒng)計,并設定每100mm2為一個范圍,程序自動把面積范圍分為4組,通過分類算法,計算每個碎片所在范圍,并求其范圍內的碎片總數(shù),見圖12。
圖11 所有碎片的平均數(shù)據(jù)
圖12 碎片面積范圍分布表
根據(jù)該樣本中每個碎片長寬比統(tǒng)計,并設定比值每增加1為一個范圍,程序自動把比值范圍分為15組,通過分類算法,計算每個碎片所在范圍,并求其范圍內的碎片總數(shù),見圖13。
圖13 碎片比例范圍分布表
通過python繪圖包matplotlib繪制面積及比例分布圖,見圖14、圖15。通過柱狀圖可以更直觀地看出該樣本碎片面積主要分布在0~100mm2范圍內,長寬比主要分布在2~5范圍內。
圖14 碎片面積范圍分布條形圖
圖15 碎片比例范圍分布條形圖
利用該方法,可以快速地檢測出秸稈碎片樣本的碎片總量、每個碎片的投影面積、每個碎片的最小外接輪廓的長度、寬度以及長寬比,通過程序對這些數(shù)據(jù)進行統(tǒng)計整合,可以得到樣本碎片的投影面積分布圖,長寬比分布圖。把雜亂的碎片進行數(shù)據(jù)可視化處理,可以系統(tǒng)地研究揉切機,多一個刀片、轉速慢一點或者刀片間距大一點,對產生的秸稈碎片究竟有何影響,對揉切機的改進,提供數(shù)據(jù)依據(jù)。