基于OpenCV的機器人分揀系統(tǒng)設計
引言
隨著各大電商的快速發(fā)展,我國快遞行業(yè)的整體規(guī)模迅速壯大,包裹數(shù)量逐年增多,快遞的錯派、丟件等問題也日漸凸顯,傳統(tǒng)人工分揀已經無法適應當前的分揀需求,亟需一種用于自動檢驗、工件加工和裝配自動化以及生產過程的控制和監(jiān)視的圖像識別機器,按任務需要從原始圖像數(shù)據中提取有關信息、高度概括地描述圖像內容,以便對圖像的某些內容加以解釋和判斷。
目前,針對機器人分揀系統(tǒng)的方案研究成為眾多學者關注的熱點。韋志文基于機器視覺設計了一種輕量化的分揀機器人,搭建了實驗平臺并完成了小型鑄件的分揀。李殷基于深度學習提出了工業(yè)機器人物品識別分揀系統(tǒng)設計,在建模解析分類之后工業(yè)機器人對物品進行實踐分揀操作。馬澤明等人將視覺技術、搬運機器人和無線控制網相結合,設計了一種智能搬運機器人的實驗平臺。王連慶等人構建了一套針對無序來料的定位系統(tǒng),引導機械手對無序物料進行精確抓取和有序擺放。
本文設計的工業(yè)機器人分揀系統(tǒng)與工業(yè)相機的快速拍照功能相結合,可實現(xiàn)包裹讀碼后的快速分揀及信息記錄交互等功能,大量減少了分揀過程中的人工需求,提高了分揀效率及自動化程度,并大幅度提高了分揀準確率。
1 OpenCV圖像識別
圖像處理技術是用計算機對圖像信息進行處理的技術,通過圖像處理可以提取圖像中的有用信息并精簡數(shù)據量,是決定分揀過程是否能夠達到精準且高效的關鍵。本設計采用OpenCV對原始圖像進行預處理,提取圖像特征,進行圖像識別。本項目通過掃描物流包裹上的數(shù)字,對包裹進行識別,構建坐標系對機械臂完成協(xié)同控制,實現(xiàn)在復雜環(huán)境下的包裹分揀,提高了分揀過程中機械臂末端執(zhí)行器的效能,物流快遞包裹可進行有效分揀,達到快速分揀的目的,提高了工業(yè)生產效率,降低了工作成本。OpenCV圖像處理流程圖如圖1所示。
1.1基于OpenCV的OCR文字識別
傳統(tǒng)的條形碼雖然識別簡單,但是需要學習多種編碼方式。識別條形碼下方數(shù)字單號可以直接把數(shù)據錄入計算機進行數(shù)據處理,得到快遞信息。
OCR文字識別是指對圖像文件進行分析識別處理,獲取文字及版面信息的過程。首先,對快遞信息進行圖像讀取及圖像預處理,再用openCV內置的圖像檢測算子進行檢測,最后傳入tesseract一OCR進行識別。這種方法不僅速度快,而且抗外部干擾能力也比較好,可以準確識別快遞的相關數(shù)字信息。OCR的技術路線如圖2所示。
1.2圖像預處理
圖像預處理是在圖片識別之前對圖片進行前期處理,抑制圖片中的無關信息,增強開發(fā)者想要的重要信息。
1.2.1圖像灰度化
圖像灰度化是將一張彩色圖像向灰色圖像轉化的過程。相比于彩色圖像,灰色圖像更容易處理,可以消除顏色干擾。原圖像如圖3所示,灰度圖像如圖3所示。c42.c4tCv1vr()函數(shù)是顏色空間轉換函數(shù),可以實現(xiàn)圖像的灰度化,代碼如下:
1.2.2圖像掩膜
圖像掩膜是用選定的圖形對需要處理的圖像(局部或全部)進行遮擋,來處理圖像特定區(qū)域的處理過程。提取感興趣區(qū),用預先制作的感興趣區(qū)掩膜與待處理圖像相乘,得到感興趣區(qū)圖像,感興趣區(qū)內圖像值保持不變,而區(qū)外圖像值都為Y。掩膜圖像如圖4所示。
1.2.3黑帽操作(突出更黑暗的區(qū)域)
黑帽運算就是取出圖片中亮度低的地方,即突出更黑暗的區(qū)域。黑帽操作圖像如圖5所示。mvrphv1vgyEx()是形態(tài)學操作函數(shù),可以方便地對圖像進行黑帽操作,代碼如下:
1.3文字檢測
1.3.1邊緣檢測
圖像邊緣檢測可以大幅減少數(shù)據量,并剔除可以認為不相關的信息,保留圖像重要的結構屬性?;诓檎业姆椒?通過尋找圖像一階導數(shù)中的最大和最小值來檢測邊界,通常是將邊界定位在梯度最大的方向。Canny算子邊緣檢測函數(shù)的目標是找到一個最優(yōu)的邊緣檢測算法,從而檢測出圖像邊緣,代碼如下:
1.3.2獲取輪廓
cv2.findContours()函數(shù)用于查找檢測物體的輪廓,cv2.drawContours()函數(shù)用于在圖像上繪制輪廓。代碼如下:
(1)檢測輪廓:
cnts=cv2.findContours(edged.copy(),cv2.RETR一1IT,
cv2.CsH1AHNNRoxI1MN一E)
(2)繪制輪廓:
cv2.drawContours(image,[screenCnt],-1,(0,255,0),2)
1.4文本識別
文本識別采用tesseract-OCR識別技術,tesseract-OCR是由TesseractGoog1e開發(fā)并維護的OCR開源庫,有著極高的精確度和靈活性,它可以通過訓練識別出任何字體,也可以識別出數(shù)字和字符。識別出的輪廓圖如圖7所示,文本識別圖如圖8所示。
圖7 輪廓圖
2分揀機器人系統(tǒng)
2.1系統(tǒng)整體方案
本文對小型工業(yè)機械臂進行了運動學分析,并使用計算機建模軟件(UG)對工業(yè)機器人及其運動空間進行了建模。該工業(yè)機器人分揀系統(tǒng)采用樹莓派和Hrduino開發(fā)板作為控制單元,兩個控制芯片以串口連接進行通信,樹莓派用于對圖像進行處理與識別:Hrduino開發(fā)板用于控制步進電機、舵機和超聲波紅外測距模塊。其中舵機用于控制機器人的轉向,也用于控制機械夾爪的張合:超聲波紅外測距模塊用于檢測與物體的距離。整體流程圖如圖9所示。
2.2機械結構
機械臂各部件通過UG建模,采用3D打印技術打印。在結構設計時使用平面軸承、滾動軸承、線性軸承等一系列標準件,具有增加精度、減少摩擦力等作用。機械臂底座采用鋁板與機械臂連接,一定程度上減少了機械臂前傾現(xiàn)象。機械臂Z軸的上下移動采用絲桿傳動,傳動軸向力大、可自鎖、定位精度高。使用同步帶傳動,避免步進電機在低轉速下產生振動及噪聲。機械臂整體裝配圖如圖10所示。
2.3硬件系統(tǒng)設計
2.3.1主控電路
本系統(tǒng)由Hrduino開發(fā)板和HrduinoCAC電機擴展板組成,HrduinoCAC電機擴展板直接連接在Hrduino開發(fā)板上即可。主控芯片圖如圖11所示。
2.3.2超聲波測距模塊
超聲波測距模塊采用的是sC-IR04,可提供約2cm的非接觸式距離感測功能,機械臂可以及時感測與快遞包裹的距離,抓取物體。如圖12所示,超聲波測距模塊包括VCC供5V電源、GAD地線、Trig觸發(fā)控制信號輸入、Echo回響信號輸出等4個接口端。
2.4軟件系統(tǒng)設計
首先,通過openCV圖像處理技術識別快遞單上的數(shù)字串和快遞的坐標,判斷快遞運往方向:再由樹莓派通過串口發(fā)送信息給ArduinoUno開發(fā)板,ArduinoUno開發(fā)板逆運動求解出各電機旋轉角度:然后,控制各電機旋轉角度到達目標位置,打開夾爪,當機械臂的Z軸下降到合適位置時,閉合夾爪,夾取快遞:當夾取動作完成后,機械臂的Z軸上升,移動到快遞發(fā)往地,將物品放到相應位置。主控流程圖如圖13所示。
3結語
本文設計了一種基于openCV的機器人分揀系統(tǒng),運用openCV對快遞信息進行圖像讀取及圖像預處理,再用openCV內置的圖像檢測算子進行檢測,最后傳入tesseract-OCR進行識別,協(xié)同控制機械臂,實現(xiàn)在復雜環(huán)境下的包裹分揀。該設計大量減少了分揀過程中的人工需求,提高了分揀效率及自動化程度,并大幅提高了分揀準確率。同時,將視覺技術應用到工業(yè)分揀中,提高了企業(yè)運營效率,降低了企業(yè)生產成本,能夠促進工廠和企業(yè)的升級,因而具有較好的應用前景。