文/潘宇 騰菲 毋靜霞
某糖廠生產(chǎn)的糖包傳送線末端需要機(jī)械手搬運(yùn)堆垛時(shí),糖包需要快速準(zhǔn)確的搬運(yùn)到指定區(qū)域按規(guī)律進(jìn)行堆垛,現(xiàn)今現(xiàn)場(chǎng)操作基本都是手動(dòng)完成,這樣操作不安全、速度慢,工人勞動(dòng)強(qiáng)度大,所以預(yù)設(shè)計(jì)一套自動(dòng)抓取搬運(yùn)機(jī)械手來替代工人進(jìn)行快速準(zhǔn)確的工作迫在眉睫,機(jī)械手可減少人力,提高生產(chǎn)率。這一機(jī)構(gòu)需要對(duì)糖包編織袋平放時(shí)平面內(nèi)的平面大小及位置進(jìn)行識(shí)別,以便于抓手抓取張角寬度及位置的目標(biāo)控制。本文基于MATLAB 圖像處理技術(shù),設(shè)計(jì)了一種識(shí)別編織袋平放時(shí)平面大小及位置的處理算法,為機(jī)械手傳輸準(zhǔn)確的搬運(yùn)編織袋時(shí)的張角寬度及位置信息。
編織袋平放時(shí)平面大小及位置的識(shí)別技術(shù)是通過圖像攝取裝置獲得RGB 圖像,利用RGB 圖像的一些特性(形狀、紋理、顏色、光譜等)來分割編織袋和傳送帶背景,得到編織袋的二值圖,通過邊緣檢測(cè)識(shí)別其四角信息并計(jì)算其大小及位置信息。方案由圖像采集、圖像增強(qiáng)、圖像灰度化、圖像分割、形態(tài)學(xué)處理、邊緣檢測(cè)以及角點(diǎn)識(shí)別組成。
圖像采集是進(jìn)行圖像處理的首要任務(wù),為驗(yàn)證本文所研究的識(shí)別算法的普遍適用性,盡量使拍攝環(huán)境與工廠的生產(chǎn)環(huán)境基本一致。因工廠里傳送帶的工作環(huán)境光線比較暗,所以選了一個(gè)陰天光線不是很強(qiáng)的環(huán)境進(jìn)行圖像采集。把編織袋放在傳送帶上,共采集6 幅圖像作為樣本來研究。經(jīng)過分析,選擇一副圖片較清晰、傳送帶反光較少的圖像(如圖(a)所示)進(jìn)行識(shí)別研究。
表1:樣本6 幅圖片的處理結(jié)果
因圖像是陰天拍攝的,會(huì)存在曝光不足或者過曝的現(xiàn)象,這種圖像對(duì)比度效果較差。為了讓圖像得到一個(gè)滿意的結(jié)果,可采用圖像增強(qiáng)技術(shù)。這里通過imadd 函數(shù)來實(shí)現(xiàn)圖像的算術(shù)疊加增強(qiáng)運(yùn)算,可得到一副編織袋和傳送帶有明顯區(qū)分的圖像(如圖(b)所示),之后再進(jìn)行灰度化處理。
圖像閾值分割的原理如下式:
其中數(shù)字0、數(shù)字1 以及T 均代表圖像中的灰度級(jí),設(shè)T 為閾值,且T∈[0,1],則可根據(jù)式(1)的關(guān)系將包含多個(gè)灰度級(jí)的圖片轉(zhuǎn)換為僅含0(黑色)、1(白色)兩個(gè)差異明顯的灰度級(jí)的圖片,將所有的不利于計(jì)算機(jī)儲(chǔ)存和識(shí)別的圖像信息簡化為利于計(jì)算機(jī)處理和識(shí)別的二進(jìn)制信息來表達(dá)圖像的特征。采用im2bw 函數(shù)將灰度圖像轉(zhuǎn)換成二值圖像,發(fā)現(xiàn)利用最大類間方差法的分割效果優(yōu)于局部閾值分割,并采用graythresh 函數(shù)選擇合適的閾值,得到如圖(c)所示的經(jīng)過二值化閾值分割處理后的圖像。
分析圖(c)可知,經(jīng)過二值化閾值分割處理后的圖像,還有一些反光、灰塵等影響邊緣檢測(cè)結(jié)果的因素??刹捎酶g運(yùn)算的方法來消除這些瑕疵,使得傳送帶背景變成完全的黑色。經(jīng)過二次腐蝕運(yùn)算,如圖(d)所示,傳送帶上面的小反光以及編織袋邊緣的小毛刺都消除了,兩者區(qū)分非常明顯;但同時(shí)也腐蝕出了編織袋下端的小孔洞,所以要對(duì)孔洞進(jìn)行填補(bǔ),可采用圖像的封閉區(qū)域填充操作,如圖(e)所示為區(qū)域填充后的圖像。
邊緣檢測(cè)不但可以得到編織袋的輪廓信息,還能減少數(shù)據(jù)處理所需要的時(shí)間。檢測(cè)邊緣原理是逐一搜查一個(gè)地方之內(nèi)灰度的改變,用變動(dòng)的規(guī)律來進(jìn)行檢測(cè)邊緣。邊緣檢測(cè)采用Canny 梯度算子,可最好的優(yōu)化對(duì)受白噪聲的影響。邊緣檢測(cè)如圖(f)所示。
為了能準(zhǔn)確的讓機(jī)械手抓取編織袋,需要計(jì)算編織袋的邊界距離,以及求出編織袋的中心坐標(biāo)。編織袋的邊界距離中的寬度距離決定了機(jī)械手張角的寬度,編織袋的中心坐標(biāo)決定了機(jī)械手抓取編織袋的位置。
為了方便圖像中像素的掃描,先把邊緣檢測(cè)的圖像進(jìn)行取反,再求四個(gè)角點(diǎn)的坐標(biāo)。采用循環(huán)結(jié)構(gòu)來掃描像素點(diǎn),并且記錄黑色像素點(diǎn)行最開始的點(diǎn)和最后結(jié)束的點(diǎn);列最開始的點(diǎn)和列最后結(jié)束的點(diǎn)。以此來得到編織袋四個(gè)角點(diǎn)的坐標(biāo)。
首先,采用size 函數(shù)求出圖像的尺寸。
然后,使用for 循環(huán)來掃水平、豎直方向黑色像素點(diǎn)的信息。設(shè)置p 為編織袋最左坐標(biāo),r 為編織袋最右坐標(biāo),s 為編織袋最上坐標(biāo),t為編織袋最下坐標(biāo),為了確定某區(qū)域的分布位置,把水平或豎直投影結(jié)合起來用。編程由水平方向投影統(tǒng)計(jì)信息找到p 值和r 值,由豎直方向投影統(tǒng)計(jì)信息找到s 值和t 值。那么,就大概得到了四個(gè)點(diǎn)的坐標(biāo):左上角坐標(biāo)(x,y)=(s, p),左下角坐標(biāo)(x,y)=(t, p),右上角坐標(biāo)(x,y)=(s, r),右下角坐標(biāo)(x,y)=(t, r)。
最后,編織袋的寬度為:B=r-p;長度為:L=t-s。以及用如下方程式求出中心點(diǎn)坐標(biāo):
為了驗(yàn)證初步結(jié)論的可靠性與可適用性,對(duì)采集的樣本6 幅圖像進(jìn)行以上的處理。因編織袋的寬度距離決定了機(jī)械手張角的寬度,所以僅列出了編織袋平面大小的寬度信息,可得表1處理的結(jié)果。為了更直接的計(jì)算出編織袋的寬度(mm),根據(jù)實(shí)際尺寸(英寸)=像素/分辨率,進(jìn)行了像素與毫米的轉(zhuǎn)換。得知,此攝像頭的單個(gè)像素尺寸為1.22 毫米。為了與編織袋實(shí)際寬度(40 厘米)進(jìn)行比較,計(jì)算寬度誤差率。
由表1可知,編織袋寬度識(shí)別的誤差率都在5%以內(nèi),可初步得出識(shí)別程序有效,基本可靠。編織袋的位置信息可由上表的“中心點(diǎn)坐標(biāo)像素值”乘以單個(gè)像素值1.22 毫米,就可得到識(shí)別的中心點(diǎn)位置到圖像邊界的距離,間接的得出編織袋的位置信息。
本課題采用MATLAB 軟件對(duì)編織袋的圖像進(jìn)行識(shí)別。首先通過實(shí)物模擬采集圖像,用加運(yùn)算進(jìn)行圖像疊加,增強(qiáng)圖片的對(duì)比度;然后使用最大類間方差法進(jìn)行分割,轉(zhuǎn)化為二值圖像;再通過腐蝕運(yùn)算對(duì)二值化的圖像進(jìn)行去噪處理,通過區(qū)域填充對(duì)被不該腐蝕掉的地方進(jìn)行填充;接著開始邊緣檢測(cè),獲得編織袋的邊緣輪廓。對(duì)編織袋的邊緣輪廓取反,使用循環(huán)結(jié)構(gòu)掃描圖像行像素點(diǎn)和列像素點(diǎn),得到編織袋四個(gè)角點(diǎn)的坐標(biāo);再用坐標(biāo)求出編織袋的大小和中心點(diǎn)坐標(biāo)。
測(cè)試結(jié)果初步表明,該算法識(shí)別效率高,識(shí)別質(zhì)量準(zhǔn)確,能夠滿足機(jī)械手控制的信號(hào)需求,使自動(dòng)化作業(yè)快速準(zhǔn)確安全。但研究離實(shí)際應(yīng)用還有一定差距,只是通過圖像識(shí)別解決了人工搬運(yùn)編織袋的一部分問題,也存在著缺陷,如生產(chǎn)線上編織袋擺放位置若有傾斜,那么此算法的使用效果就會(huì)稍有欠缺。