侯義鋒,錢俊,王梁,賀杰,閉耀鋒
(1. 廣西民族大學電子信息學院,南寧市,530006; 2. 梧州學院廣西機器視覺與智能控制重點實驗室,廣西梧州,543002)
中國是農業大國,黨的十八大以來,為了消除絕對貧困,各地區針對各自地理條件進行特色化種植和養殖,其中水果的種植和發展是各個地區首選,因此水果的種植面積大大提高。廣西的水果產量在2018年躍升為全國第一位,到2020年領先第二位達6 300 kt,其中柑橘產量已領先第二位省份7 000 kt。而砂糖橘是柑橘中的一個品種,汁多味甜很受歡迎,也常常被選作發展農村經濟的首選種植果樹,其規模化種植面積激增。在此背景下,為了提高農村收入,振興鄉村,在加強種植面積的同時,加強農業機械的自動化勢在必行。
隨著農業生產的現代化,為了農業增收,提高采摘效率,降低經濟成本,很多學者在采摘機器人各個細節方面進行了研究:如李贇釗等[1]研究出一種適合地壟式種植模式的草莓采摘的機器人行走機構;楊延麗[2]開發了溫室番茄采摘機器人系統,該番茄采摘機器人系統主要由末端執行器、機器視覺、機器人載體和控制系統構成;魏博等[3]設計了一款欠驅動式柑橘采摘末端執行器,該執行器通過三指充分抓握與偏轉的融合控制,實現對不同大小及橢圓形的柑橘的穩定采摘;馮柯茹[4]建立了基于4自由度的獼猴桃采摘機器人的運動學模型和動力學模型,并以降低能耗為目的進行了采摘軌跡規劃;劉校峰等[5]研究了可伸縮、定力矩、自運輸式蘋果高效采摘機械手;成亮等[6]設計了一種自適應多功能水果采摘裝置。但是對砂糖橘采摘機器人的研究較少,基于此,本文結合前期研發[7],以自動分揀成熟砂糖橘果實為研究對象,設計一款基于機器視覺技術的成熟砂糖橘果實目標識別、檢測與分揀的裝置。
砂糖橘(Citrus reticulate Blanco,Shatangju)果實色澤鮮艷,皮薄肉甜,汁液鮮美,深受廣大消費者的喜愛。砂糖橘的果實大小不僅影響其貯藏性,而且影響果實風味,在消費市場上人們比較喜歡中果或小果[8]。而根據文獻[9]和文獻[10]的結果,小果和中果砂糖橘的貯藏效果較大果好,而且果實的營養與風味也好于大果。因此本文砂糖橘的分級按果實的大小進行。
為了減少系統的計算量,提高系統的實時性,把OpenMV測砂糖橘大小做了簡化處理,圖1為測量砂糖橘直徑近似幾何示意圖,左邊為攝像頭,右邊為砂糖橘。

圖1 幾何示意圖Fig. 1 Geometric diagram
由圖1左邊的攝像頭里的幾何關系可知
(1)
(2)
(3)
由圖1右邊的幾何關系可得
(4)
代入式(1)可得
(5)
式中:R——砂糖橘的真實半徑;
Y——攝像頭中砂糖橘直徑所占的像素;
a——1/2最大視角;
b——實測物體邊緣與中心線的夾角;
X——固定的像素;
L——攝像頭距砂糖橘的長度。
感光元件是由很多個感光點構成的,每個點就是一個像素,把每個點的像素收集整理起來,就是一幅圖片。當攝像頭固定安裝好后,攝像頭和砂糖橘間的距離就是一個定值,攝像頭的視角a也就固定了,此時式(5)右邊近似為一常量,設為K,即
(6)
式(5)可簡化為
R=K×Y
(7)
其中K可以看作比例系數。通過實際測量一個砂糖橘半徑R,將砂糖橘放入測試區,測出視覺模塊中砂糖橘的像素值Y,通過式(6)可得K的值。
根據參考文獻[11]可知在柑橘類果實成熟的過程中,隨著成熟度的增加,果皮色澤由綠色轉為淺黃色,最后轉為橙黃色。因此成熟度主要通過顏色識別,本系統由OpenMV獲取圖像,進行二值化處理,通過OpenMV IDE軟件中的閾值編輯器設置LAB數值為(76, 97, 10, 30, 8, 66),則可以得到橙黃色砂糖橘的二值化圖像,其中括號中的數據是L、A、B分量最小值和最大值(minL, maxL, minA, maxA, minB, maxB),L代表像素的亮度,取值范圍從0~100,為純黑色到純白色的變化;A代表顏色范圍從深綠色到深紅色的變化,取值范圍從-128~+127,負值代表綠色,正值代表紅色;B代表從深藍色到深黃色的范圍,取值范圍為-128~+127,負值代表藍色,正值代表黃色[11-13]。
控制系統的電路主要組成部分包括:單片機模塊、視覺識別模塊、步進電機驅動模塊、舵機模塊、人機交互模塊、液晶顯示模塊,系統總體結構如圖2所示。

圖2 系統總體結構圖Fig. 2 Overall structure of the system
1) 單片機:此系統采用STC89C51單片機,該單片機相對來說性價比高,適用于計算量不是特別大的系統中,它具有全雙工可編程串行端口,可實現8位并行數據的串行傳輸和接收。16位定時器/定時器T0和T1分別對應于兩個8位寄存器TL0,TH0和TL1,TH1。本機構中的計算量和控制端口要求不是很高,該單片機作為該部件的控制核心已足夠,其電路圖如圖3所示。

圖3 最小系統電路圖Fig. 3 Minimum system circuit diagram
2) 視覺模塊:本機構采用OpenMv模塊,電路圖如圖4所示,可以借助于該模塊識別砂糖橘的顏色和大小。

圖4 視覺模塊電路圖Fig. 4 Visual module circuit diagram
其主要是通過IDE的幀緩沖區窗口中將采集到的砂糖橘彩色圖片轉換為LAB色彩模型[14],再調用尋找色塊函數,設置好顏色的閾值為黃色,并設置函數查找的色塊像素值范圍為大于等于1 000,該函數返回的是多個色塊的列表,包含目標區域的坐標和長寬值。隨后采用像素統計函數,得到LAB色彩空間的直方圖及L、A、B分量的眾數值,通過比較眾數值可以判別顏色[15-16]。
由于搜尋顏色的時候采用矩形框標記出目標顏色區域,而標顏色區域的直徑占的像素可以近似為該區域高和寬占像素值的均值[17-18]。則該目標顏色區域的直徑像素
Y=(b[2]+b[3])/2
(8)
式中:b[2]——目標區域寬的像素值;
b[3]——目標區域高像素值。
將Y代入式(7)可得所測砂糖橘的大小[19]。
3) 傳動機構:砂糖橘檢測到分類的整個傳動結構采用3個舵機和1個步進電機的組合,電路圖如圖5和圖6所示,結構圖如圖7所示。

圖5 部分舵機電路圖Fig. 5 Partial steering gear circuit diagram

圖6 步進電機驅動電路Fig. 6 Stepping motor drive circuit

圖7 傳動機構示意圖Fig. 7 Schematic diagram of transmission mechanism
步進電機的作用是將采摘后待被分揀的砂糖橘傳送到識別區域,經識別后通過舵機轉動進行顏色和大小分揀(為了驗證本文的設計適合黃色砂糖橘的分揀,設置了簡單的紅色、藍色、黃色和綠色四種進行實驗),1號舵機負責分揀橙黃色大果砂糖橘,2號舵機負責分揀橙黃色色中果砂糖橘,3號舵機負責分揀橙黃色小果砂糖橘3個分裝區域,傳送帶終點則為不合格砂糖橘的分裝區域。本設計中采用的舵機為MG996舵機,該舵機力矩大,有足夠的力量把砂糖橘撥到對應的分揀區域。舵機有三根導線,橙色導線是信號線,紅色導線是電源線,棕色導線是地線。電源線和地線用于提供直流電機和轉向器內信號線所需的能量。電壓通常在3.5~6 V之間。轉向器內部有一個參考電壓。當給定一特定的電壓,通過內部伺服電壓與內部參考電壓進行比較,得到電壓差輸出。單片機通過發送0.5~2.5 ms的PWM控制舵機工作。
具體分揀步驟如下:首先設置橙黃色砂糖橘代表為已經成熟的砂糖橘,所有采摘的砂糖橘經過傳送帶送到識別區,經過顏色檢測,如果不是符合要求的橙黃色砂糖橘,則直接認定為不符合要求的砂糖橘,所有舵機及其紅外對管不工作,直接隨傳送帶到終點的不合格分裝區;如果砂糖橘顏色檢測符合要求,則進行大小的分類,當檢測的大小直徑大于42 mm時候,該砂糖橘隨傳送帶到達1號舵機位置,該處紅外對管檢測到砂糖橘則1號舵機旋轉,將砂糖橘推入大果分裝區;如果檢測的大小直徑在36.5~42 mm之間時,該砂糖橘隨傳送帶到達2號舵機位置,該處紅外對管檢測到砂糖橘則2號舵機旋轉,將砂糖橘推入中果分裝區;如果檢測的大小直徑小于36.5 mm時候,該砂糖橘隨傳送帶到達3號舵機位置,該處紅外對管檢測到砂糖橘則3號舵機旋轉,將砂糖橘推入小果分裝區。
4) 液晶顯示模塊:為了更加明確的顯示所檢測分揀的結果,本系統采用一塊LCD12864作為顯示器件,該液晶屏具有128×64個像素點陣,內置8 192個漢字和 128個ASCII字符集。該模塊的最大優點是接口方式簡單、操作指令方便,可構成 中文、數字、字符的直觀界面。
該系統的軟件設計分為步進電機舵機、液晶顯示、OpenMV識別等。其中顯示部分和控制部分都采用C語言編程,編程軟件為keil uvision4。識別部分采用Python語言編程,編程軟件為OpenMV IDE。在電腦上編譯后分別下載到單片機和OpenMV中,對砂糖橘的顏色和大小進行識別,識別后發送數據到單片機。
整體流程如圖8所示。

圖8 系統軟件總體流程圖Fig. 8 Overall flow chart of system software
首先對砂糖橘的顏色進行識別,尋找視野中是否出現設置的色塊,然后判斷色塊顏色,接著判斷識別到的色塊的大小[20],檢測砂糖橘果實的顏色是否為橙黃色,如果不是,則為不合格果實,無需測試大小。如果該果實為橙黃色,則進行果實直徑檢測程序,分級標準為:果實直徑大于42 mm為大果;果實直徑在36.5~42 mm之間為中果;果實直徑小于36.5 mm為小果[9],先判斷果實直徑是否大于42 mm,如果是,則為大果;如果不是,則判斷該果實直徑是否小于36.5 mm,如果成立則為小果,否則為中果。
本設計采用的步進電機為八拍逆時針運行方式:A-AB-B-BC-C-CD-D-DA,順時針方式則反轉。八拍模式控制順序如表1所示,根據步進電機工作原理可得步進電機正反轉控制對應數組表如表2所示。

表1 步進電機八拍模式控制順序表Tab. 1 Control sequence of eight beat mode of stepper motor

表2 步進電機正反轉控制對應數組表Tab. 2 Corresponding array of stepper motor forward and reverse control
本設計采用的步進電機的參數如表3所示,該步進電機的步進角度為5.625°,即單片機給一個脈沖電機的轉子旋轉5.625°,而該電機采用八拍運行方式,也就是八個脈沖構成一個周期,即一個周期步進電機的轉子旋轉45°,旋轉一周則需要8個周期。而步進電機的減速比是1∶64,即輸出軸旋轉一周需要512個周期。

表3 步進電機參數表Tab. 3 Parameters of stepper motor
步進電機的整個程序設計流程如圖9所示。

圖9 步進電機程序流程圖Fig. 9 Control program of step motor
本設計中舵機的轉動控制是單片機通過產生PWM進行控制,先設置舵機的初始角度為0°,即高電平時間為0.5 ms的PWM;舵機旋轉180°,則單片機需提供高電平時間為2.5 ms的PWM。首先,程序初始化,配置定時器參數,輸出PWM波,再設置對應的占空比,保證輸出符合參數要求的PWM波形,通過PWM波形控制舵機轉動的角度,其流程如圖10所示。

圖10 舵機程設計流程Fig. 10 Steering gear program
本設計中通過LCD12864液晶用于顯示分揀出的砂糖橘信息,LCD12864采用串行顯示,根據手冊編程出LCD12864的驅動程序。程序首先初始化液晶顯示屏,再設置要顯示砂糖橘信息的對應變量,將收到變量的對應數據轉換成ASCII碼,最后通過LCD12864液晶顯示顯示分揀出的砂糖橘大果、中果、小果信息,流程圖如圖11所示。

圖11 總體流程圖Fig. 11 System flow chart
試驗地點為科研實驗室,實驗室照明條件是LED燈,攝像頭距離測試物體的距離為4 cm,砂糖橘的分揀速度設為120個/min,此時程序中的K值經過測試后定為0.16。通過視覺模塊OpenMV測出砂糖橘的顏色和大小。再測試該系統對于各個顏色的識別能力,先找到一塊邊長為5 cm的正方形紙張上均勻涂寬為1 cm的紅色、藍色、橙黃色和綠色的色條,而各色條的長度依次遞減,分別是紅色色條長5 cm,藍色色條長4 cm,橙黃色色條長3 cm和綠色色條長2 cm,將上述紙張放在攝像頭前進行測試,分別測試各個色條的長度和寬度,如果測試的數據和實際的色條尺寸基本吻合,則能識別該顏色,具體測試結果見表4所示。最后進行砂糖橘直徑測試,測試結果如表5所示。

表4 系統顏色測試結果表Tab. 4 System color test results

表5 橙黃色砂糖橘大小檢測結果表Tab. 5 Orange sugar orange size test results
從表4可以看出,只要顏色的閾值設置合理,該系統的顏色識別比較準確,由于現實生活中砂糖橘的銷售主要是通過肉眼分辨顏色,因此對砂糖橘的顏色分辨率不是很高,通過表4可以看出該系統可以分辨顏色,足以分辨橙黃色砂糖橘。表5是分揀速率設定為120個/min時,采用不同大小但是顏色都差不多是橙黃色的砂糖橘進行實際測試的結果,可以看出,大小識別雖然誤差參差不齊,但是誤差不大。
表6中分別采集5組橙黃色滿足大果、中果、小果的砂糖橘各100個進行分揀測試,測試結果表明,該系統對果實的分類分揀準確率達到95.4%,對不合格果實檢測率達到97.2%。

表6 橙黃色砂糖橘分揀結果Tab. 6 Results of sorting orange Shatangju
綜上可以看出,該方案識別的砂糖橘大小比較精確,誤差不太大,對于現實中分級要求不是非常高的砂糖橘已經足夠了;而該系統只要顏色閾值設置合理,對顏色的識別也可以做到比較精確。
造成上述誤差的原因有以下幾點:(1)上述檢測的樣本是采用天然果實進行測試,在樣本選取的時候,每個果實的顏色通過肉眼看起來都是橙黃色,其實有深有淺差別較大,再加上砂糖橘果實本身不完全是圓形,實際測量也有些誤差,所以會造成參差不齊的誤差。(2)本設計的測試區域環境需要特別注意,顏色識別很容易受到外界的干擾,本設計檢測區域底色為黑色,要做到測試誤差小,需要選擇測試物體的顏色和底色對比度高的場景,同時可以外加光源增加清晰度。
1) 本文以自動分揀成熟砂糖橘果實為研究對象,設計了一款基于機器視覺技術的成熟砂糖橘果實目標識別與檢測分揀裝置,解決了目前我國砂糖橘分揀過程中存在果實分類大小差異較大、人力成本大,自動化水平低的問題,有效提高了分揀成熟砂糖橘果實的精確度,保證了分揀出的每一類砂糖橘果實色彩一致,大小均勻,保證了果實的賣相好看,降低了砂糖橘的生產成本。
2) 在砂糖橘果實的分揀裝置中應用了機器視覺技術,采用機器視覺模塊OpenMV獲取砂糖橘果實圖像,進行圖像二值化處理,再通過OpenMV IDE軟件中的閾值編輯器設置代表成熟砂糖橘果實的顏色的LAB數值,通過比對得出砂糖橘果實的顏色是否是成熟砂糖橘的顏色。通過顏色識別實驗,測試各個色塊:紅色(長5 cm,寬1 cm)、藍色(長4 cm,寬1 cm)、橙黃色(長3 cm,寬1 cm)和綠色(長2 cm,寬1 cm),結果表明,該系統對顏色的識別準確。
3) 為了簡化單片機的運算量,砂糖橘果實直徑的測量是由砂糖橘果實的像素和果實直徑的關系式計算得到,經測試,可知誤差在1.6 mm內,精度達到96.19%,對果實的分類分揀準確率達到95.4%,對不合格果實檢測率達到97.2%。測試結果表明,該裝置測試精度高、穩定性好,能夠解決砂糖橘采摘機器人自動分揀歸類的問題,為砂糖橘采摘機器人的發展提供了新的方案,有一定的參考價值。