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