鄭連鴻 肖銘涵 王思帆 鄧定南
嘉應學院物理與電子工程學院 廣東梅州 514015
近年來我國快遞行業發展迅速[1],全國已超過九成的鄉鎮設立快遞服務網點。隨著快遞數量的激增,我國物流自動化水平也取得較大的提升。其中自動分揀技術在物聯網、深度學習和相關電子硬件的飛速發展下不斷取得突破。
從最開始的人到貨前分揀,到現在普遍的機器送貨至人面前分揀,甚至小部分分揀點的全自動分揀[2],分揀技術在實際生產中不斷得到改進和成熟。目前全自動分揀的機器,如以PLC、光電傳感器和變頻器等器件構建的交叉帶分揀機、擺臂分揀機和雙層直線分揀機等自動化設備已應用于實際分揀場景。同時由機器視覺和傳統電子傳感器組成的智能分揀機器人也開始得到應用[3]。隨著人工神經網絡技術的發展,人工神經網絡與機器視覺的結合也更加普遍[4],進一步提升了機器視覺獲取和判斷信息的能力,促使自動分揀系統向著更通用、更可靠的方向發展,進一步提升分揀效率和節約人工成本。
本文提出一種基于機器視覺的分揀系統設計方案。利用Long Short-Term Memory (LSTM)神經網絡訓練中文字符庫。搭建基于機器視覺的檢測系統,具有識別精度高且能耗低等優點。結合視覺系統和神經網絡構建OCR檢測系統和機械臂控制系統,避免了電子傳感器構成的自動化系統中存在的檢測距離近、檢測的物件形狀受限和高精度的電子器件價格昂貴等問題,所設計系統具有通用性強、可靠性高等優點。
本設計的目的是結合數字圖像處理和神經網絡檢測出快遞物件上的文字信息,在程序內部對檢測的信息進行分類并輸出相應的結果,控制機械手系統執行對應的正確動作。本設計的自動檢測和分類系統具體流程圖如圖1所示。所設計系統主要分為視覺系統和機械手系統兩部分,利用串口通信的方式保證兩個系統協調。其中視覺系統的構建主要是在PC端使用C++語言編寫,結合OpenCV和Tesseract進行構建。機械手系統利用STM32微控制芯片構建運動控制系統。視覺系統端輸出的數據內容為物件中心坐標(x,y)、物件高度H和文字識別結果,這些數據通過串口通信的方式統合并發送給機械手系統,利用STM32芯片對得到的數據進行后處理,實現對應的分揀動作。

圖1 所提系統具體流程示意圖
視覺系統是整個檢測系統中最關鍵的部分,由前景提取、雙目測距、OCR檢測等模塊組成,各模塊之間的關系示意圖如圖2所示。前景提取模塊中主要功能是將物件從復雜的背景當中提取出來,并向雙目檢測模塊輸入物件中心坐標。基于快遞物件的流動性大,但其分揀的環境固定的特性,前景提取模塊使用的算法為BSM背景差分法[5],其好處是能夠將快遞件從背景當中較為完整地提取出來,方便后續的程序識別。

圖2 視覺系統各模塊關系示意圖
雙目測距模塊[6]使用了USB雙目攝像頭,其作用在于能對輸入的中心點坐標進行深度的檢測,獲取到攝像頭到物件中心點的距離信息。但是USB雙目攝像頭在讀取外部的環境信息后,由于一些制造缺陷,會導致獲得的圖像帶有徑向和切向畸變,會干擾到深度信息的獲取,使最后的結果出現偏差而導致系統不能正確運行。因此在進行雙目測距前需要先對雙目攝像頭進行矯正和共面操作[7]。利用MATLAB中自帶的雙目攝像頭矯正工具箱進行自動校正,從而獲取標定矩陣、畸變參數和旋轉與平移向量,隨后反饋回視覺系統設計中。所提系統所使用的攝像頭具體參數如圖3所示。矯正畸變后,將雙目相機放置在固定的位置,通過雙目攝像頭可以獲取深度的作用來獲取當前快遞的真實位置,利用雙目攝像頭構建的視覺系統對于不同高低和大小的快遞件的分揀的能力具有一致性。

圖3 雙目相機矯正參數
圖像的預處理主要功能是將圖片變成適合Tesseract識別的圖片。通過灰度化、二值化和直方圖均衡化等圖像強化處理增強快遞件上的文本信息,去除掉非必要的信息,提高下一步文本識別的正確率。視覺方案設計中選擇OpenCV4.0.0和Tesseract5.0兩個開源項目的相關庫共同進行開發[8]。為了提高識別精度,對Tesseract的語言包進行重新訓練,利用LSTM神經網絡對帶有文字的快遞件圖片進行訓練,強化當前環境下識別的適配性。從物件出現在圖像當中到最終被分類的過程中,視覺系統可以準確提取出物件標簽上的中轉站地名、物件在圖像當中的位置和物件高度信息。隨后提取的數據將通過串口通信的形式發送到STM32,執行相應的控制操作。
機械手系統部分采用STM32做芯片構建整個硬件控制系統,系統測試實物圖如圖4所示。機械臂使用六個舵機構成六軸移動系統[9],該系統能夠對XYZ和θx、θy和θz實現自由移動的設計。對于快遞分類多樣化使用場景,六軸機械手能夠最大程度地控制快遞物件的分類走向。機械手的程序設計當中,充分發揮STM32系統資源豐富的特性,采用六路PWM方波分別控制舵機的轉向,從而控制機械手的姿態動作。方案設計中,首先設定某一靜止零位作為機械手的待機位置,然后通過STM32上的串口中斷功能接受來自視覺系統識別的物件三維位置和文字信息。STM32對接收到的信息進行處理,按設定的方向和設定的分類結果動作夾取快遞件并將其分類[10]。在做完分類的動作后,STM32將控制機械手復位至待機位置,重新開啟串口中斷,等待下一個物件的進入和視覺系統的識別結果。
視覺系統中利用Tesseract進行OCR識別結果如圖5所示。從雙目攝像頭讀取的一張圖像經過預處理后,其進入OCR檢測階段的圖像就如圖5的右側輸入框中所示,其識別結果如左側的終端打印的中文字符所示。

圖5 OCR識別結果
另外,為了驗證自訓練語言包在連續識別情況下的有效性,對Tesseract-OCR識別系統的準確度和運行速度進行測試。通過對150張包含地址信息的圖片進行識別測試,結果如圖6所示。在150張圖片當中有2張圖片無法得到正確識別結果,其正確率在98%左右,運行速度約為每秒10幀。

圖6 OCR識別正確率測試結果
為了驗證前景提取模塊中BSM算法的有效性,進行了模擬測試。前景提取模塊測試運行時引入的背景如圖7所示。物體進入雙目攝像頭的視場時,在程序進行前景和背景分類后的結果如圖8所示。實驗結果表明,利用BSM算法能準確分離出前景物體。從圖8左側結果可以看出,前景提取模塊可以對進入視場的物體進行中心點計算,其計算的中點打在了物件的幾何中心處。

圖7 背景引入測試結果

圖8 前景物體提取結果
在雙目測距中,對圖8利用SGBM雙目視覺匹配方法[11]得到的真實深度圖如圖9所示。由于攝像頭分辨率和抗干擾程度的影響,其計算得到的深度圖存在較多的空洞。為了降低攝像頭噪聲或算法引入的物件深度計算誤差,所提系統在執行物件位置獲取的取點操作時,可以通過開運算、閉運算等形態學操作填充空洞。

圖9 深度圖計算結果
機械手系統設計中選擇STM32芯片上的PA2、PF6、PF7、PF8、PF9和PB14作為控制六個舵機的PWM方波控制口。STM32芯片通過串口中斷接收視覺系統傳遞過來的物件坐標和OCR識別信息,在機械手的程序中驅動舵機使其轉到特定的角度并做出相應的夾取動作。圖10為機械手抓取快遞物件模擬測試結果。圖10(a)為模擬物體出現在雙目攝像頭視場中。圖10(b)為機械手系統準確夾取到物件的實驗結果。圖11為模擬不同快遞分揀實驗結果。圖11(a)為模擬分揀廣東揭陽快遞物件的夾取處理實驗結果。圖11(b)為模擬分揀廣東深圳快遞物件夾取處理實驗結果。從機械手系統執行的分類夾取結果可知,所提方案能夠實現對帶不同標簽的物件進行準確識別、分類和夾取,其中OCR識別具有較高的準確率,處理速度能夠滿足正常的物件分揀流轉。

(a) (b)

(a) (b)
本文提出一種基于Tesseract和OpenCV的快遞中轉分揀系統。此系統以Tesseract-OCR識別算法為核心,結合雙目測距和背景建模等輔助定位算法,構建視覺檢測系統。用訓練得到的快遞標簽字符語言包進行OCR檢測,結合OpenCV的視覺算法進行圖像處理。采用STM32芯片構建機械手控制系統,最終實現物件標簽信息的自動識別、自動分類和夾取。此系統具有準確率高、速度高效等優點,在小型的快遞分揀中心具有較高的應用價值。