張立婷 鐘楊福 雷偉君 黃輝 陳劍鋒
摘 要:隨著電商平臺的發(fā)展,快遞行業(yè)的整體規(guī)模迅速壯大,在物流成交量比較高的狀態(tài)下,極容易出現(xiàn)“錯件”分揀、快遞分揀速度慢等問題,將嚴(yán)重影響快遞包裹分揀。現(xiàn)對工業(yè)機(jī)器人分揀系統(tǒng)的性能、功能等方面進(jìn)行研究,用機(jī)械臂代替人工分揀,設(shè)計出一種基于OpenCV圖像識別的工業(yè)機(jī)器人分揀系統(tǒng),進(jìn)一步提升了工業(yè)機(jī)器人分揀水平。
關(guān)鍵詞:OpenCV;目標(biāo)檢測;圖像處理;tesseract-OCR;機(jī)器人分揀系統(tǒng)
中圖分類號:TP242;TP391.4? 文獻(xiàn)標(biāo)志碼:A? 文章編號:1671-0797(2023)09-0034-04
DOI:10.10.19514/j.cnki.cn32-1628/tm.2023.09.010
0? ? 引言
隨著各大電商的快速發(fā)展,我國快遞行業(yè)的整體規(guī)模迅速壯大,包裹數(shù)量逐年增多,快遞的錯派、丟件等問題也日漸凸顯,傳統(tǒng)人工分揀已經(jīng)無法適應(yīng)當(dāng)前的分揀需求,亟需一種用于自動檢驗(yàn)、工件加工和裝配自動化以及生產(chǎn)過程的控制和監(jiān)視的圖像識別機(jī)器,按任務(wù)需要從原始圖像數(shù)據(jù)中提取有關(guān)信息、高度概括地描述圖像內(nèi)容,以便對圖像的某些內(nèi)容加以解釋和判斷。
目前,針對機(jī)器人分揀系統(tǒng)的方案研究成為眾多學(xué)者關(guān)注的熱點(diǎn)。韋志文[1]基于機(jī)器視覺設(shè)計了一種輕量化的分揀機(jī)器人,搭建了實(shí)驗(yàn)平臺并完成了小型鑄件的分揀。李殷[2]基于深度學(xué)習(xí)提出了工業(yè)機(jī)器人物品識別分揀系統(tǒng)設(shè)計,在建模解析分類之后工業(yè)機(jī)器人對物品進(jìn)行實(shí)踐分揀操作。馬澤明等人[3]將視覺技術(shù)、搬運(yùn)機(jī)器人和無線控制網(wǎng)相結(jié)合,設(shè)計了一種智能搬運(yùn)機(jī)器人的實(shí)驗(yàn)平臺。王連慶等人[4]構(gòu)建了一套針對無序來料的定位系統(tǒng),引導(dǎo)機(jī)械手對無序物料進(jìn)行精確抓取和有序擺放。
本文設(shè)計的工業(yè)機(jī)器人分揀系統(tǒng)與工業(yè)相機(jī)的快速拍照功能相結(jié)合,可實(shí)現(xiàn)包裹讀碼后的快速分揀及信息記錄交互等功能,大量減少了分揀過程中的人工需求,提高了分揀效率及自動化程度,并大幅度提高了分揀準(zhǔn)確率。
1? ? OpenCV圖像識別
圖像處理技術(shù)是用計算機(jī)對圖像信息進(jìn)行處理的技術(shù),通過圖像處理可以提取圖像中的有用信息并精簡數(shù)據(jù)量,是決定分揀過程是否能夠達(dá)到精準(zhǔn)且高效的關(guān)鍵。本設(shè)計采用OpenCV[5]對原始圖像進(jìn)行預(yù)處理,提取圖像特征,進(jìn)行圖像識別。本項(xiàng)目通過掃描物流包裹上的數(shù)字,對包裹進(jìn)行識別,構(gòu)建坐標(biāo)系對機(jī)械臂完成協(xié)同控制,實(shí)現(xiàn)在復(fù)雜環(huán)境下的包裹分揀,提高了分揀過程中機(jī)械臂末端執(zhí)行器的效能,物流快遞包裹可進(jìn)行有效分揀,達(dá)到快速分揀的目的,提高了工業(yè)生產(chǎn)效率,降低了工作成本。OpenCV圖像處理流程圖如圖1所示。
1.1? ? 基于OpenCV的OCR文字識別
傳統(tǒng)的條形碼雖然識別簡單,但是需要學(xué)習(xí)多種編碼方式。識別條形碼下方數(shù)字單號可以直接把數(shù)據(jù)錄入計算機(jī)進(jìn)行數(shù)據(jù)處理,得到快遞信息。
OCR文字識別是指對圖像文件進(jìn)行分析識別處理,獲取文字及版面信息的過程。首先,對快遞信息進(jìn)行圖像讀取及圖像預(yù)處理,再用OpenCV內(nèi)置的圖像檢測算子進(jìn)行檢測,最后傳入tesseract-OCR進(jìn)行識別。這種方法不僅速度快,而且抗外部干擾能力也比較好,可以準(zhǔn)確識別快遞的相關(guān)數(shù)字信息。OCR的技術(shù)路線如圖2所示。
1.2? ? 圖像預(yù)處理
圖像預(yù)處理是在圖片識別之前對圖片進(jìn)行前期處理,抑制圖片中的無關(guān)信息,增強(qiáng)開發(fā)者想要的重要信息。
1.2.1? ? 圖像灰度化
圖像灰度化是將一張彩色圖像向灰色圖像轉(zhuǎn)化的過程。相比于彩色圖像,灰色圖像更容易處理,可以消除顏色干擾。原圖像如圖3所示,灰度圖像如圖4所示。cv2.cvtColor()函數(shù)是顏色空間轉(zhuǎn)換函數(shù),可以實(shí)現(xiàn)圖像的灰度化,代碼如下:
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
1.2.2? ? 圖像掩膜
圖像掩膜是用選定的圖形對需要處理的圖像(局部或全部)進(jìn)行遮擋,來處理圖像特定區(qū)域的處理過程。提取感興趣區(qū),用預(yù)先制作的感興趣區(qū)掩膜與待處理圖像相乘,得到感興趣區(qū)圖像,感興趣區(qū)內(nèi)圖像值保持不變,而區(qū)外圖像值都為0。掩膜圖像如圖5所示。
1.2.3? ? 黑帽操作(突出更黑暗的區(qū)域)
黑帽運(yùn)算就是取出圖片中亮度低的地方,即突出更黑暗的區(qū)域。黑帽操作圖像如圖6所示。morphologyEx()是形態(tài)學(xué)操作函數(shù),可以方便地對圖像進(jìn)行黑帽操作,代碼如下:
heiphat = cv2.morphologyEx(gray, cv2.MORPH_BLACKHAT, rectKernel)
1.3? ? 文字檢測
1.3.1? ? 邊緣檢測
圖像邊緣檢測可以大幅減少數(shù)據(jù)量,并剔除可以認(rèn)為不相關(guān)的信息,保留圖像重要的結(jié)構(gòu)屬性?;诓檎业姆椒?,通過尋找圖像一階導(dǎo)數(shù)中的最大和最小值來檢測邊界,通常是將邊界定位在梯度最大的方向。Canny算子邊緣檢測函數(shù)的目標(biāo)是找到一個最優(yōu)的邊緣檢測算法,從而檢測出圖像邊緣,代碼如下:
edged = cv2.Canny(gray, 75, 200)
1.3.2? ? 獲取輪廓
cv2.findContours()函數(shù)用于查找檢測物體的輪廓,cv2.drawContours()函數(shù)用于在圖像上繪制輪廓。代碼如下:
(1)檢測輪廓:
cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
(2)繪制輪廓:
cv2.drawContours(image, [screenCnt], -1, (0, 255, 0), 2)
1.4? ? 文本識別
文本識別采用tesseract-OCR識別技術(shù),tesseract-OCR是由Tesseract Google開發(fā)并維護(hù)的OCR開源庫,有著極高的精確度和靈活性,它可以通過訓(xùn)練識別出任何字體,也可以識別出數(shù)字和字符。識別出的輪廓圖如圖7所示,文本識別圖如圖8所示。
2? ? 分揀機(jī)器人系統(tǒng)
2.1? ? 系統(tǒng)整體方案
本文對小型工業(yè)機(jī)械臂進(jìn)行了運(yùn)動學(xué)分析,并使用計算機(jī)建模軟件(UG)對工業(yè)機(jī)器人及其運(yùn)動空間進(jìn)行了建模。該工業(yè)機(jī)器人分揀系統(tǒng)[6]采用樹莓派和Arduino開發(fā)板作為控制單元,兩個控制芯片以串口連接進(jìn)行通信,樹莓派用于對圖像進(jìn)行處理與識別;Arduino開發(fā)板用于控制步進(jìn)電機(jī)、舵機(jī)和超聲波紅外測距模塊。其中舵機(jī)用于控制機(jī)器人的轉(zhuǎn)向,也用于控制機(jī)械夾爪的張合;超聲波紅外測距模塊用于檢測與物體的距離。整體流程圖如圖9所示。
2.2? ? 機(jī)械結(jié)構(gòu)
機(jī)械臂各部件通過UG建模,采用3D打印技術(shù)打印。在結(jié)構(gòu)設(shè)計時使用平面軸承、滾動軸承、線性軸承等一系列標(biāo)準(zhǔn)件,具有增加精度、減少摩擦力等作用。機(jī)械臂底座采用鋁板與機(jī)械臂連接,一定程度上減少了機(jī)械臂前傾現(xiàn)象。機(jī)械臂Z軸的上下移動采用絲桿傳動,傳動軸向力大、可自鎖、定位精度高。使用同步帶傳動,避免步進(jìn)電機(jī)在低轉(zhuǎn)速下產(chǎn)生振動及噪聲。機(jī)械臂整體裝配圖如圖10所示。
2.3? ? 硬件系統(tǒng)設(shè)計
2.3.1? ? 主控電路
本系統(tǒng)由Arduino開發(fā)板和Arduino CNC電機(jī)擴(kuò)展板組成,Arduino CNC電機(jī)擴(kuò)展板直接連接在Arduino開發(fā)板上即可。主控芯片圖如圖11所示。
2.3.2? ? 超聲波測距模塊
超聲波測距模塊采用的是HC-SR04,可提供約2 cm的非接觸式距離感測功能,機(jī)械臂可以及時感測與快遞包裹的距離,抓取物體。如圖12所示,超聲波測距模塊包括VCC供5 V電源、GND地線、Trig觸發(fā)控制信號輸入、Echo回響信號輸出等4個接口端。
2.4? ? 軟件系統(tǒng)設(shè)計
首先,通過OpenCV圖像處理技術(shù)識別快遞單上的數(shù)字串和快遞的坐標(biāo),判斷快遞運(yùn)往方向;再由樹莓派通過串口發(fā)送信息給Arduino Uno開發(fā)板,Arduino Uno開發(fā)板逆運(yùn)動求解出各電機(jī)旋轉(zhuǎn)角度;然后,控制各電機(jī)旋轉(zhuǎn)角度到達(dá)目標(biāo)位置,打開夾爪,當(dāng)機(jī)械臂的Z軸下降到合適位置時,閉合夾爪,夾取快遞;當(dāng)夾取動作完成后,機(jī)械臂的Z軸上升,移動到快遞發(fā)往地,將物品放到相應(yīng)位置。主控流程圖如圖13所示。
3? ? 結(jié)語
本文設(shè)計了一種基于OpenCV的機(jī)器人分揀系統(tǒng),運(yùn)用OpenCV對快遞信息進(jìn)行圖像讀取及圖像預(yù)處理,再用OpenCV內(nèi)置的圖像檢測算子進(jìn)行檢測,最后傳入tesseract-OCR進(jìn)行識別,協(xié)同控制機(jī)械臂,實(shí)現(xiàn)在復(fù)雜環(huán)境下的包裹分揀。該設(shè)計大量減少了分揀過程中的人工需求,提高了分揀效率及自動化程度,并大幅提高了分揀準(zhǔn)確率。同時,將視覺技術(shù)應(yīng)用到工業(yè)分揀中,提高了企業(yè)運(yùn)營效率,降低了企業(yè)生產(chǎn)成本,能夠促進(jìn)工廠和企業(yè)的升級,因而具有較好的應(yīng)用前景。
[參考文獻(xiàn)]
[1] 韋志文.基于機(jī)器視覺的分揀機(jī)器人設(shè)計與研究[D].淮南:安徽理工大學(xué),2022.
[2] 李殷.基于深度學(xué)習(xí)的工業(yè)機(jī)器人物品識別分揀系統(tǒng)設(shè)計[J].湖北農(nóng)機(jī)化,2019(20):159.
[3] 馬澤明,俞曉丹,鄧雨晴,等.基于機(jī)器視覺的物體分揀系統(tǒng)設(shè)計[J].科學(xué)技術(shù)創(chuàng)新,2022(36):159-162.
[4] 王連慶,錢莉.基于視覺引導(dǎo)的工業(yè)機(jī)器人無序抓取系統(tǒng)設(shè)計[J].制造業(yè)自動化,2022,44(3):86-89.
[5] 胡文,馬玲玉.基于OpenCV手機(jī)拍照快遞單文字識別的研究[J].哈爾濱商業(yè)大學(xué)學(xué)報(自然科學(xué)版),2015,31(5):564-568.
[6] 金高威,董錚.基于Arduino的六自由度機(jī)械臂控制系統(tǒng)設(shè)計[J].科學(xué)技術(shù)創(chuàng)新,2019(35):64-65.
收稿日期:2023-02-09
作者簡介:張立婷(2002—),女,安徽人,研究方向:機(jī)器人工程。