田 禛,王明睿,劉振國,郭 瑞,呂開旺
(北京機(jī)械工業(yè)自動化研究所,北京 100120)
二維碼內(nèi)可以儲存大量的信息,比如產(chǎn)品的說明、產(chǎn)品的生產(chǎn)日期和產(chǎn)地等等,而且二維碼的譯碼可靠性很強(qiáng)加上其讀取速度快,這三個突出的優(yōu)點使二維碼廣泛應(yīng)用在各行各業(yè)。我們?nèi)绻芫_的識別出二維碼內(nèi)存儲的信息,那么就會對我們下一步要進(jìn)行的產(chǎn)品的數(shù)據(jù)采集、產(chǎn)品的分類及存儲等工作提供很大的便利。
本智能展示線實現(xiàn)的工作是一套筆筒的制作流程,完成從任務(wù)訂單下發(fā)后機(jī)器人自動插取物料、相機(jī)拍照識別物料是否準(zhǔn)確、筆筒圓管的激光打碼、筆筒的壓裝及包裝等一系列工藝,具體流程如下。
首先,由Mes下達(dá)指令,在自動模式下有三個指令,分別為:生產(chǎn)種類、生產(chǎn)任務(wù)、啟動,上位機(jī)拆解任務(wù)逐條下發(fā)。上位給機(jī)器人發(fā)送出庫指令,機(jī)器人抓取筆筒的托盤至第一工位工作臺緩存區(qū),PLC呼叫AGV,然后機(jī)器人移至拍照點拍照,得出偏移量,上位讀取后下達(dá)機(jī)器人從緩存區(qū)的出庫指令,機(jī)器人執(zhí)行出庫指令,出庫完成后移至第二工位,然后上位給機(jī)器人下達(dá)拍照指令,相機(jī)對筆筒的圓筒、方管和底板進(jìn)行拍照識別,拍攝物料上的編碼來進(jìn)行識別圓筒的直徑,方管長度、寬度,把取出的數(shù)據(jù)和上位的數(shù)據(jù)進(jìn)行判斷,若合格,則驅(qū)動機(jī)器人進(jìn)行激光打碼,打碼完成后移至第三工位,機(jī)器人把物料送至壓裝位進(jìn)行壓裝,壓裝通過PLC控制氣缸來進(jìn)行,壓裝完成后物料由機(jī)器人送至AGV移至下一工位。在此工位進(jìn)行物料包裝,包裝完成后,機(jī)器人給上位完成信號,AGV取出成品入庫。工作流程如圖1所示。
圖1 展示線工作流程圖
該系統(tǒng)采用模塊化設(shè)計,通過信息數(shù)據(jù)進(jìn)行邏輯串聯(lián)、信息綁定及數(shù)據(jù)追蹤等方法進(jìn)行智能化生產(chǎn),本文著重于寫由相機(jī)進(jìn)行拍照掃碼進(jìn)行物料的判斷及防呆的設(shè)計。
本展示線相機(jī)采用的型號是??礛V-CE120-10GM,因為其平穩(wěn)度高,在任何情況下運行圖像都不會有抖動動的情況出現(xiàn),在光照的情況下運動不會出現(xiàn)拖影的情況,支持手動調(diào)節(jié)光圈大小及焦距等,相機(jī)拍攝工位示意圖如圖2所示。
圖2 相機(jī)拍攝示意圖
首先使用機(jī)器人把相機(jī)移動至合適的拍照位置,使其對筆筒的托盤、底板、圓筒和方管進(jìn)行拍照,把提取出來的特征信息保存在數(shù)據(jù)庫中,然后掃描二維碼和數(shù)據(jù)庫比對,判斷出是否是準(zhǔn)確的物料。拍照如圖3~圖8所示。
調(diào)節(jié)相機(jī)拍照獲得的物料特征合適的最小匹配分?jǐn)?shù)(0.5~0.9之間),使其可以實現(xiàn)快速的特征匹配。如圖3、圖7、圖8所示用來判斷筆筒托盤的有無和正反,如圖4、圖5、圖6所示,是底板、圓筒和方管的特征識別及物料尺寸測量。
圖3
圖4
圖5
圖6
圖7
圖8
筆筒物理特征提取完成之后,接下來通過掃描二維碼對物料進(jìn)行判斷識別,相機(jī)掃描二維碼流程圖如圖9所示。
圖9 相機(jī)拍攝二維碼的流程圖
拍攝二維碼如圖10~12所示。
圖10
因為掃描的二維碼圖像比較模糊,所以需要對其進(jìn)行圖像處理使其變得更加清晰,清晰的圖像才能保證識別的準(zhǔn)確度,處理流程如圖13所示。
圖13 二維碼的處理流程圖
本文展示線采用工業(yè)相機(jī)對二維碼圖像進(jìn)行拍攝,其拍攝到的是彩色圖像,為了減少數(shù)據(jù)處理量對彩色圖像進(jìn)行灰度化處理,使其成為黑白二維碼,灰度化處理公式如式(1)所示。
R、G、B是彩色圖像像素的三個分量。
中值濾波對于一些高密度噪聲圖像的濾波效果不太理想,因為其算法會對窗口有所限制致使濾波失效,而自適應(yīng)中值濾波算法優(yōu)化了這種窗口受限的問題,其可以通過設(shè)定好的窗口來判斷所取的中值點是否為噪聲點。本文采用自適應(yīng)中值濾波算法[6]。表示自適應(yīng)濾波器所選窗口的大小,步驟流程如圖14所示。
圖14 自適應(yīng)中值濾波流程圖
首先判斷第一個不等式Pmed>Pmin&Pmax>Pmed是否成立(Pmin/max表示灰度的最小/最大值),若成立,繼續(xù)判斷第二個不等式Pxy>Pmin&Pmax>Pxy,若第一個不等式不成立,那么增大窗口尺寸(大小不能超過允許的最大值Pmax),然后返回第一個不等式進(jìn)行判斷(循環(huán)此步驟至滿足條件),否則輸出Pmed。如果兩個不等式都成立則輸出Pxy(圖像在坐標(biāo)處的像素值);否則輸出Pmed(灰度值的中值)。
二值化處理實際就是把我們不需要識別的部分色彩給弱化掉,把我們需要進(jìn)行識別的部分突出出來,一般我們二值化處理之后呈現(xiàn)出黑白兩種顏色,就是把指定圖片的像素點只設(shè)置為兩種,一種是0另一種是255,這樣就可以把目標(biāo)圖和背景圖有效的分開。其實就是把選定的閾值T當(dāng)作是一個基準(zhǔn),然后把選定圖片像素點的灰度值以這個基準(zhǔn)分為兩類,高于這個基準(zhǔn)值的分為一類稱其為背景圖,低于這個基準(zhǔn)值的分為一類稱其為目標(biāo)圖。公式如下:
圖11
圖12
其中,g表示經(jīng)過上述比較分類之后的灰度值。閾值的選取采用Ostu算法進(jìn)行。
Ostu算法是把使得類間方差最大(或最?。┑哪莻€值取為最佳閾值T,然后通過這個值把指定圖像的像素劃分為成了目標(biāo)和背景。圖像總的平均灰度值如式(3)所示:
類間方差如式(4)所示:
可簡化如式(5)所示:
g-類間方差值、ω0-目標(biāo)像素占圖像比例、ω1-背景像素占圖像比例、μ0-平均灰度、μ1-平均灰度值
其中g(shù)的值增大時,目標(biāo)圖與背景圖的區(qū)分程度就越明顯,那么劃分錯誤就不容易出現(xiàn)。所以最佳分割閾值即為g取值最大時對應(yīng)取的閾值T[6]。
二維碼的定位就是找到并提取出目標(biāo)碼的位置,這一步驟處理的結(jié)果直接關(guān)系到后期識別的準(zhǔn)確度。定位處理涉及兩個部分,一是圖像的邊緣檢測(使用Canny算子邊緣檢測),二是把其檢測到的邊緣像素連接成封閉區(qū)域(使用Hough變換)。
Canny算子的處理步驟如下:
首先近似計算出和,這兩個函數(shù)是濾波器一階偏導(dǎo)數(shù)。如式(6)所示:
然后計算出圖像的幅度如式(7)所示:
接著計算出圖像的方向如式(8)所示:
其中當(dāng)M(x,y)取最大值時方向角θ(x,y)代表了邊緣的方向。
然后使用非極大值抑制算法確定出圖像的邊緣,接著采用雙閾值法檢測并連接邊緣,即令非極大值閾值為ht1和th2,取th1=th20.4[6]。
Hough變換就是把原空間的圖線映射到參數(shù)空間中去。原始圖像中的點都在式(9)所示直線方程上。
圖像的直線在參數(shù)空間的方程如式(10)所示:
由上可得,原空間中的點在參數(shù)空間中是一條線。
經(jīng)過上述定位后的二維碼圖像,一般都會出現(xiàn)一些旋轉(zhuǎn),所以接下來需要把圖像的角度給校正回來。
我們使用Hough變換來達(dá)到這一目的,此變換是通過檢測圖像的邊界,然后與沒做任何處理的原圖像的位置對比,進(jìn)而得出偏移的角度,然后把圖像依照偏移的角度還原回去,得到端正圖像。如圖15所示:
圖15 圖像旋轉(zhuǎn)示意圖
在上圖中可看出坐標(biāo)(x0,y0)與坐標(biāo)(x1,y1)有θ1度的偏移角度,l是坐標(biāo)到原點的距離也是坐標(biāo)旋轉(zhuǎn)的旋轉(zhuǎn)半徑。θ2是其旋轉(zhuǎn)半徑與x軸的夾角[6]。
初始圖像坐標(biāo)如式(11)所示:
旋轉(zhuǎn)后的圖像坐標(biāo)如式(12)所示:
圖像進(jìn)行旋轉(zhuǎn)或者平移恢復(fù)正規(guī)形之后會出現(xiàn)一定的幾何失真,所以需要對圖像進(jìn)行修正,利用透視變換算法來實現(xiàn)圖像的校正,即通過矩陣H,將采集點(x,y)與標(biāo)準(zhǔn)圖像平面坐標(biāo)(μ,ν)之間的關(guān)系表示出來,則數(shù)學(xué)表達(dá)式如式(14)所示。H如式(13)所示。
整理得式(15)。
通過求出的矩陣H就可以求出原圖像坐標(biāo),通過轉(zhuǎn)換得到畸變校正后的圖像[6]。
校正之后二維碼如圖16~圖18所示。
圖16
圖17
圖18
把二維碼經(jīng)過處理之后,使用相機(jī)進(jìn)行掃描,識別結(jié)果展示如圖19~圖24所示。
圖19
圖20
圖21
圖22
圖23
圖24
由圖16~圖23所示可看出方管、圓筒、地板二維碼掃描匹配成功即批次及物料特征均正確,方刻二維碼及圓刻二維碼確認(rèn)成功,圖24可看出物料特征信息,所有物料匹配成功。
本文主要是對二維碼的內(nèi)容進(jìn)行識別判斷,首先由相機(jī)進(jìn)行拍照提取物料特征信息,把信息儲存在數(shù)據(jù)庫中,然后對二維碼進(jìn)行圖像處理提高掃描的準(zhǔn)確性。獲得的主要結(jié)論如下:
根據(jù)智能生產(chǎn)線項目,設(shè)計了一套高效率、高可靠性、高安全性的二維碼智能識別系統(tǒng),不再使用人工識別,使生產(chǎn)更具智能化和柔性化,也提高了物料識別的準(zhǔn)確性。
因為本次設(shè)計沒有涉及二維碼上有遮擋物時的情況,所以沒有對此類情況進(jìn)行分析和探究,這是后續(xù)需要深入研究的方向。