徐志祥,孫文博,邢立東,高 東,趙 炎
(大連理工大學機械工程學院,遼寧大連 116024)
隨著我國經(jīng)濟的高速發(fā)展,冷鏈進口量也大幅增長,目前冷鏈集裝箱到港后多由人工或者人工操作機器搬卸堆疊的貨箱,工作量大且效率不高,自動化程度較低,為了提高冷鏈運輸?shù)淖詣踊?,實現(xiàn)卸貨機器人的全自動化卸貨工作,需要通過機器視覺技術來獲取堆疊貨箱的位置坐標。隨著智能化技術的發(fā)展,機器視覺已經(jīng)在識別檢測和定位引導上得到廣泛應用,在實現(xiàn)工業(yè)智能化、自動化過程中有著巨大的發(fā)展前景[1]。
20 世紀60 年代以來,圖像分割定位技術一直是國內(nèi)外學者研究的熱點。圖像分割算法主要有基于閾值、基于區(qū)域、基于邊緣、基于特征匹配和基于深度學習的分割方法[2]。周文靜等[3]基于顏色特征和Otsu最大閾值分割結(jié)合的方法實現(xiàn)了對葡萄果穗圖像的完整準確分割,為葡萄果穗的識別和定位抓取提供了研究基礎。李穎等[4]基于深度學習方法提出了一種端到端的分割模型,采用Mask-CNN 分割算法對煤粉顆粒CT圖像進行了準確分割。王祥等[5]提出了一種基于區(qū)域分離與聚合的分水嶺變換分割算法,該方法可以有效抑制圖像的過分割和分割邊緣不明顯的現(xiàn)象。劉麗霞等[6]針對目前遙感圖像分割魯棒性差和邊緣易缺失的缺點,提出了一種基于改進Canny邊緣檢測的遙感影像分割算法,并取得了不錯的分割效果。
本文以堆疊貨箱為研究對象,針對堆疊貨箱的灰度特征和邊緣信息,提出了一種基于改進Canny 邊緣檢測的堆疊貨箱分割定位算法。實驗結(jié)果表明,該算法對堆疊貨箱有著較好的分割的效果,定位精度也滿足要求,可以為卸貨機器人提供準確的貨箱位置坐標,對實現(xiàn)自動化卸貨有一定的實用價值。
相機采集到的原始灰度圖像如圖1 所示。堆疊貨箱由規(guī)格相同的貨箱一層一層較為整齊地堆疊在集裝箱內(nèi),圖像灰度直方圖如圖2 所示,貨箱灰度值較為相近且與集裝箱有明顯的灰度差,可以通過閾值分割將堆疊貨箱提取出來,且貨箱邊緣較為清晰,可以通過邊緣輪廓將堆疊貨箱分割成一個個獨立的矩形區(qū)域,然后獲得每一個貨箱的位置坐標。
圖1 原始圖像
圖2 圖像灰度直方圖
針對冷鏈集裝箱內(nèi)堆疊貨箱的特點,采用Haclon視覺函數(shù)庫對堆疊貨箱進行圖像處理,并設計了一套堆疊貨箱識別分割和定位的方法。首先通過閾值分割和形態(tài)學操作等圖像預處理過程將堆疊貨箱區(qū)域提取出來,消除背景干擾,然后基于改進Canny邊緣檢測算法對堆疊貨箱的邊緣輪廓信息進行提取,接著基于最小二乘法對貨箱邊緣輪廓進行直線擬合,然后基于邊緣區(qū)域?qū)⒚恳粋€貨箱獨立分割出來,對分割出來的獨立貨箱區(qū)域進行最小外接矩形包絡處理即可得到每一個貨箱的位置信息。圖像處理流程如圖3 所示。
圖3 圖像處理流程
圖像預處理的主要目的是消除圖像中無關的信息,去除集裝箱背景區(qū)域,只保留堆疊貨箱區(qū)域,從而提高堆疊貨箱圖像分割和定位的準確性[7]。
由于貨箱與集裝箱環(huán)境存在灰度差,可以通過閾值分割將堆疊貨箱與集裝箱背景快速分割。設原始圖像灰度值為f(x,y),分割后的輸出圖像灰度值為g(x,y)。找到堆疊貨箱的灰度范圍T,灰度值處于灰度范圍T時賦值1,背灰度值不處于灰度范圍T時賦值0,灰度閾值分割過程如式(1)所示。
閾值分割后的效果如圖4 所示。
圖4 閾值分割效果
從閾值分割后的效果可以看出堆疊貨箱區(qū)域并沒有與集裝箱背景完全分割,仍然存在部分背景干擾,需要進行形態(tài)學操作消除干擾,只保留貨箱區(qū)域。圖像中常見的形態(tài)學操作有腐蝕、膨脹、開運算、閉運算、梯度運算等[8]。形態(tài)學操作中膨脹和腐蝕是基本操作,其他形態(tài)學操作都是在膨脹和腐蝕的基礎上延伸而來。開運算是將圖像先腐蝕再膨脹,實現(xiàn)去除細小散點、斷開連接橋的效果。閉運算是將圖像先膨脹再腐蝕,實現(xiàn)消除兩者微小間隙的效果。
通過腐蝕、膨脹、開運算、閉運算等一系列形態(tài)學操作之后得到如圖5 所示效果,可以看出經(jīng)過形態(tài)學操作之后背景干擾已經(jīng)被完全消除,貨箱之間的縫隙以及空洞也被填滿,堆疊貨箱成為一個整體。
圖5 形態(tài)學操作效果
雖然貨箱區(qū)域與集裝箱背景已經(jīng)完全分割開,但是部分貨箱區(qū)域也被當作背景去除了,為了完全保留貨箱區(qū)域,提取全部貨箱的位置信息,通過最小外接矩形處理得到完整的貨箱區(qū)域。最小外接矩形處理效果如圖6(a)所示。得到的貨箱區(qū)域與原始圖像的交集即是堆疊貨箱圖像,如圖6(b)所示。通過圖像預處理后,完成了對集裝箱背景干擾的消除,得到了完整的貨箱區(qū)域圖像。
圖6 堆疊貨箱圖像提取
Canny是一種邊緣檢測算子,其具有易于運行,抗干擾能力強和邊緣定位準確等優(yōu)點[9]。Canny 邊緣檢測主要有4 個步驟,分別是高斯濾波、計算梯度、非極大值抑制和雙閾值連接[10],具體如下。
(1)用高斯濾波平滑圖像。
根據(jù)待濾波的像素點及其鄰域點的灰度值按照一定的參數(shù)規(guī)則進行加權平均計算。本文使用二維高斯函數(shù)作為權值的平滑濾波器。二維高斯函數(shù)如式(2)所示。
(2)計算圖像梯度。
使用2 ×2 大小的卷積核,從水平方向和垂直方向計算高斯平滑濾波后的圖像的梯度幅值和方向。
(3)非極大值抑制。
將當前像素梯度幅值與沿梯度方向上的相鄰像素的梯度幅值進行對比,若其是最大值,則認為該像素為邊緣點,進行保留操作;若不是極大值,則認為該像素不是邊緣點,進行舍棄操作[11]。
(4)雙閾值算法檢測連接邊緣。
通過設定高低閾值來確定強弱邊緣,若該像素點灰度值大于高閾值,則將該點灰度設為255,認為是強邊緣;若大于低閾值小于高閾值,則認為是弱邊緣;若小于低閾值,則認為不是邊緣,舍去。
傳統(tǒng)Canny邊緣檢測效果如圖7 所示。雖然經(jīng)典Canny算法計算簡單,適用性較強,但存在圖像的平滑去噪效果不好和貨箱的邊緣線條不連續(xù)等問題,容易出現(xiàn)漏識別、錯誤識別和無法識別等情況。因此,需要針對堆疊貨箱的特點對Canny 算法進行改進,確保識別的準確性。
圖7 傳統(tǒng)Canny邊緣檢測效果
本文在原有Canny邊緣檢測算法的基礎上進行改進,通過將高斯濾波替換為中值濾波、使用改進的Sobel算子計算梯度,以及基于最小二乘法進行直線擬合等方法,解決去噪效果不好導致的將噪聲像素識別為虛假邊緣和識別的邊緣不連續(xù)和部分丟失的問題。具體改進如下。
(1)用中值濾波代替高斯濾波平滑圖像。
相比于高斯濾波,中值濾波在抑制噪點的同時能有效保護圖像的邊界信息,避免對圖片產(chǎn)生劇烈模糊[12]。二維中值濾波輸出為
式中:f(x,y)、g(x,y)分別為原始圖像和處理后圖像;k、l為二維模板。
(2)用Sobel算子計算圖像梯度。
Sobel算子的4 個梯度方向模板如式(4)所示,分別用0°、45°、90°和135°這4 個方向模板和圖像進行卷積操作并計算一階偏導數(shù)[13],得到4 個方向梯度值。梯度變化越大,說明相鄰像素間差值越大,可能是邊緣所在位置。
(3)基于最小二乘法進行直線擬合。
由于堆疊貨箱的輪廓為水平和豎直方向,基于這一特征對獲得的邊緣斜率進行篩選,去除虛假邊緣。邊緣線條兩點式如式(5)所示。
式中:(x1,y1)、(x2,y2)為邊緣線條的起、終點坐標;k為邊緣線條的斜率。
由于貨箱的邊緣為直線,可以對篩選后的邊緣線條進行分類,對處在同一條直線附近的多個線條的起點和終點基于最小二乘法擬合出一條新的邊緣,以此增加邊緣線條的連續(xù)性。其線性回歸方程為y ^=a +bx,其中:
式中:(xi,yi)為位于同一直線上邊緣線條的起點或端點坐標。
改進后Canny算法檢測效果如圖8 所示,可以看出改進后Canny邊緣檢測相比傳統(tǒng)Canny邊緣檢測算法去噪效果好,虛假邊緣較少,改進前邊緣線條個數(shù)為232,改進后線條個數(shù)為31,邊緣線條連續(xù)效果得到了大幅提升。
圖8 改進后Canny邊緣檢測效果
首先對改進后的Canny邊緣檢測提取的邊緣線條進行區(qū)域化處理,接著進行腐蝕、膨脹等一系列形態(tài)學操作將邊緣變成一個完整的連通域,邊緣連通域如圖9 所示。由圖9 可以看出邊緣連通域已經(jīng)將每一個貨箱區(qū)域分割開來,然后再進行一些形態(tài)學操作即可得到獨立分割出的貨箱,堆疊貨箱分割效果如圖10 所示。
圖9 邊緣區(qū)域連通
圖10 堆疊貨箱分割效果
提取每一個獨立分割出來貨箱區(qū)域的最小外接矩形,即可得到圖中29 個堆疊貨箱的中心點位置坐標與傾斜角度。貨箱定位效果如圖11 所示。
圖11 貨箱定位效果
貨箱抓取誤差主要由圖像定位誤差、坐標轉(zhuǎn)化誤差和機器人各軸定位誤差組成。其中圖像分割定位像素誤差曲線如圖12 所示。可以看出貨箱中心點最大像素位置誤差為0.6,像素當量轉(zhuǎn)換關系式為[14]
圖12 像素誤差曲線
式中:lδ為理論誤差;k為像素當量;p 為像素誤差。已知當前像素當量為0.811 4 mm/px,只考慮圖像分割定位誤差時,代入即可求出最大理論定位誤差為0.65 mm,滿足定位精度±15 mm的要求。
為了驗證堆疊貨箱分割定位的精度,采用精度為1 mm的卸貨機器人對堆疊貨箱進行抓取作業(yè),貨箱抓取過程如圖13 所示。抓取每個貨箱時使用精度為0.05 mm的游標卡尺進行誤差測量,抓取誤差曲線如圖14 所示。由兩次抓取誤差曲線可以得到最大定位誤差為2.85 mm,驗證了堆疊貨箱分割定位的可行性與準確性,滿足卸貨機器人抓取精度±15 mm的要求。
圖13 貨箱抓取過程
圖14 抓取誤差曲線
不同場景下堆疊貨箱分割定位效果如圖15 所示,可以看出其分割效果較好,適用性較強,目前該套基于改進Canny邊緣檢測的堆疊貨箱分割定位算法已經(jīng)成功應用到卸貨機器人中,并于2022 年11 月在大連遼漁集團有限公司投入使用,實現(xiàn)了冷鏈集裝箱內(nèi)堆疊貨箱的全自動化卸貨工作,取得了不錯的效果,為冷鏈運輸自動化提供了一種可行的解決方案。
圖15 不同場景下的分割定位效果
本文基于改進Canny邊緣檢測提出了一種堆疊貨箱圖像分割定位的方法,通過圖像預處理去除集裝箱背景干擾,只保留完整的堆疊貨箱圖像,使用中值濾波、改進Sobel算子計算梯度,以及基于最小二乘法的直線擬合等方法對Canny 算法進行改進,使得提取的邊緣連續(xù)性較好且虛假邊緣較少,從而獲得較好的分割效果,通過對分割好的獨立貨箱進行最小外接矩形處理,以此得到每一個堆疊貨箱的位置坐標。精度測試表明:本文提出的方法對堆疊貨箱有著很好的分割定位效果,圖像處理時間約為2 ms,抓取精度高于5 mm,滿足卸貨機器人抓取精度要求。據(jù)此研發(fā)的集裝箱機器人卸貨系統(tǒng)已經(jīng)用于冷鏈運輸自動化作業(yè)線。