邱津芳,林宇航,阮志鴻,李紅云
( 泉州職業(yè)技術大學 國科數(shù)字產(chǎn)業(yè)學院,福建 泉州 362268 )
永春蘆柑是福建省永春縣的特產(chǎn),也是泉州市的一大經(jīng)濟支柱。蘆柑品質(zhì)與分級的重要依據(jù)是果徑大小、表面色澤與表皮是否損傷等。當前大多果農(nóng)和加工企業(yè)對蘆柑的分級檢測依靠人工操作完成,效率低、成本高,迫切需要符合需求的智能分揀技術與之匹配。本文針對永春蘆柑的形狀、大小、溝紋等技術指標,提出一種智能蘆柑分揀機的設計方案,利用機器視覺和機器學習技術,達到準確高效的分級目的[1]。
水果分級技術從最初的人工分級到采用傳統(tǒng)機械和各種傳感器,再到柔性非接觸式分級,凸顯出技術進步帶來的便捷和高效[2]。目前,基于OpenCV機器視覺的水果分級檢測技術呈現(xiàn)出蓬勃發(fā)展之勢[3]。王旭基于機器視覺研究了柑橘的分級技術[4];楊濤使用K-means聚類分割算法分割獼猴桃表面缺陷和通過顏色對比來提取獼猴桃的表面形狀特征,實現(xiàn)獼猴桃的無損檢測分級[5];孫海霞利用機器視覺和光譜技術對水果品質(zhì)分級方法進行了研究[6]。
機器視覺技術在農(nóng)業(yè)自動化領域中的應用得到了廣泛研究[7],本文采用基于OpenCV機器視覺與機械臂夾取裝置實現(xiàn)蘆柑檢測與分揀等功能,以樹莓派為核心控制器,通過攝像頭拍攝圖像并反饋給樹莓派;基于OpenCV機器視覺技術對蘆柑表面圖像進行檢測,樹莓派根據(jù)反饋結果確定機械手抓取和投放位置;將所得信息反饋至顯示器中,系統(tǒng)原理如圖1所示。
圖1 系統(tǒng)原理圖
設計采用六自由度的機械臂,主要包括大臂、小臂、手爪,利用SoildWorks對機械臂進行建模結構如圖2所示。
圖2 機械臂結構圖
本設計選用MG996R舵機,具有較快的響應速度,且價格經(jīng)濟。齒輪材質(zhì)為金屬,扭矩1.27 N·m,重量55 g,工作電壓4.8 V~6 V,驅(qū)動電流800 mA,舵機頻率50 Hz,抓取重量100 g;大臂與小臂采用質(zhì)量較輕的鋁合金板,連接處采用法蘭桿進行連接,MG996R舵機滿足相應要求。
舵機控制需要約20 ms時基脈沖,該脈沖高電平部分為0.5 ms∽2.5 ms角度控制脈沖部分,總間隔為2 ms。以180 °角度伺服為例,對應控制關系如圖3所示。
圖3 控制關系對應圖
由于使用了6個舵機,樹莓派僅靠Micro USB接口供電顯然不足,故在PWM控制模塊單獨提供6 V/10 A電源進行供電,開關電源如圖4所示。
圖4 開關電源
為確保不遺漏蘆柑表面的每一處圖像,設計了能夠采集蘆柑全表面圖像的結構裝置,結構示意圖如圖5所示。
圖5 結構示意圖
結構中,外殼部分由鋁合金型材組成,外表面采用黑色避光材質(zhì),確保拍攝環(huán)境的統(tǒng)一性,在攝像頭中自帶LED光源確保成像清晰可見。
鋁型材密度小、質(zhì)量輕、可塑性強、易調(diào)節(jié),故使用鋁型材作為產(chǎn)品外部框架,由其搭建一個長方體的框架結構,使用舵機、鋁合金板、法蘭桿組裝機械臂,最后將樹莓派、電源、攝像頭、機械臂、顯示器安裝至合理位置,實物如圖6所示。
圖6 實物圖
使用python語言進行程序編寫、OpenCV三方庫進行圖像處理以及識別、Numpy進行數(shù)據(jù)科學計算、PyQt5繪制GUI界面,使用高清攝像頭獲取兩張當前蘆柑圖像,使用OpenCV識別蘆柑面積以及表面瑕疵情況,推斷瑕疵比率以實現(xiàn)對永春蘆柑品質(zhì)的分級(分級:依靠隸屬函數(shù)和權重集,采用加權平均算子計算綜合分析結果,以最大隸屬度為原則確定蘆柑的等級,等級劃分為A級蘆柑、 B級蘆柑、C級蘆柑)。程序運行流程如圖7所示,軟件界面如圖8所示。
圖7 程序運行流程圖
圖8 軟件界面圖
加載彩色圖片進行色彩空間轉(zhuǎn)化后,對低于lower_red和高于upper_red值的區(qū)域,圖像值為0;于其之間的值為255,完成圖像的二值化。將處理完成后的二值圖進行物體輪廓識別,對原始圖像進行繪制邊框,使用格林公式計算面積,圖像輪廓面積分析如圖9所示。
圖9 圖像輪廓面積分析圖
設閉區(qū)域D由分段光滑的曲線L圍成,函數(shù)P(x,y)及Q(x,y)在D上具有一階連續(xù)偏導數(shù),則有:
其中,L是D的取正向的邊界曲線。
通過遍歷循環(huán)原始圖像中判定輪廓的區(qū)域內(nèi)的像素點,尋找相較于周邊色塊中的異常色塊區(qū)域并使用求最小包圍圓的算法對該區(qū)域繪制包圍圓,瑕疵點尋找結果如圖10所示。
圖10 瑕疵點尋找結果圖
已知末端位置的坐標情況下,求解機械臂中每個舵機的運動角度使其達到目標位置。將機械臂的結構在二維平面展開,如圖11所示。
圖11 機械臂二維平面展開圖
其中,各個關節(jié)的角度是未知量。P(x,y,a)為末端執(zhí)行器的位置表示,x和y為OXY平面的坐標,a為末端執(zhí)行器朝向。運動學逆解算法的核心根據(jù)已知的 L0、L1,L2求解出各個角度。
當攝像頭發(fā)現(xiàn)畫面中的被檢測的物體時,使用openCV三方庫檢查并返回一個由四個數(shù)字組成的數(shù)組,四個數(shù)字代表了物體在圖片位置的相對距離,數(shù)組順序
[top,right,left,buttom]
top:物體最上部距離圖片上邊框的距離,單位:px(像素)
right:物體最右部距離圖片右邊框的距離,單位:px(像素)
left和buttom同理
得到蘆柑在機械臂坐標系下的坐標,進行運動學逆解的求解??刂芇WM輸出機械臂兩端舵機能使機械臂末端達到相應位置,從而實現(xiàn)蘆柑的分揀。
為了提高算法的普適性,在確保同時擁有A級、B級、C級果的情況下挑選了400個蘆柑作為實驗樣本,在四核64位的ARM Cortex-A72架構CPU,Raspberry Pi OS系統(tǒng)和Python3.7的編譯環(huán)境基礎上,對本文算法進行驗證。為了測試算法的有效性,本文與傳統(tǒng)的手工分揀依照吻合度的情況進行分析,實驗結果如表1所示。
表1 實驗結果
定義吻合度(C)計算公式為:
通過表 1 中數(shù)據(jù)對比可以看出,人工選擇結果與機器識別結果的吻合度依次為:A級果的吻合度為 93.33 %;B級果的吻合度為 94.33%;C級果的吻合度為 90.26 %。3種蘆柑等級的吻合度平均值達92.64 %。
實驗結果表明:基于OpenCV的蘆柑分級技術的準確度已經(jīng)接近人工挑選的水平。
為驗證機器識別分級系統(tǒng)的效率優(yōu)勢,將實驗時間設定為1 h,與人工分級進行對比(挑選 5 個果農(nóng)進行人工分級)。
實驗結果表明,機器分級數(shù)量約為人工分級的 1.5 倍,即機器分級速度約為人工分級的7.5 倍,效率得到大幅提升。
針對傳統(tǒng)蘆柑人工分揀方法效率低的問題,提出了一種智能蘆柑分揀機的設計方案。通過鋁合金型材與黑色避光材質(zhì)搭配下的框架,完成了蘆柑的表面圖像采集;其次,通過OpenCV,完成了蘆柑表面瑕疵的檢測,最后,運用運動學逆解算法,完成了機械臂對蘆柑的抓取與投放。通過與實際的人工分揀進行對比實驗,證明本文提出的設計在分揀速率方面優(yōu)于人工分揀方法。