《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于形態(tài)學(xué)和梯度特征的二維條碼檢測(cè)定位
基于形態(tài)學(xué)和梯度特征的二維條碼檢測(cè)定位
馬鵬維1,韓存武2,馬海燕1,呂文淵1
1.東華大學(xué) 信息學(xué)院,上海 201620;2.北方工業(yè)大學(xué) 現(xiàn)場(chǎng)總線技術(shù)及其自動(dòng)化北京市重點(diǎn)實(shí)驗(yàn)室
摘要: 針對(duì)復(fù)雜背景下的二維條碼定位問題,單一特征提取已很難滿足其需要。為此提出一種將圖像二值化,然后采用基于數(shù)學(xué)形態(tài)學(xué)和kirsch邊緣檢測(cè)的算法濾去圖像背景,最后利用投影算法定位條碼區(qū)域。實(shí)驗(yàn)結(jié)果表明,該方法簡(jiǎn)單、快速、準(zhǔn)確,很好地滿足了實(shí)際使用的需要。
Abstract:
Key words :

摘  要: 針對(duì)復(fù)雜背景下的二維條碼定位問題,單一特征提取已很難滿足其需要。為此提出一種將圖像二值化,然后采用基于數(shù)學(xué)形態(tài)學(xué)和kirsch邊緣檢測(cè)的算法濾去圖像背景,最后利用投影算法定位條碼區(qū)域。實(shí)驗(yàn)結(jié)果表明,該方法簡(jiǎn)單、快速、準(zhǔn)確,很好地滿足了實(shí)際使用的需要。
關(guān)鍵詞: 二維條碼;kirsch算子;形態(tài)學(xué);投影

  目前,條碼技術(shù)在各個(gè)行業(yè)得到了廣泛的應(yīng)用。但是一維條碼受到信息容量的限制,僅僅是對(duì)物品的標(biāo)識(shí),并且它的使用必須依賴數(shù)據(jù)庫的存在。二維條形碼是在水平和垂直方向的二維空間存儲(chǔ)信息的條碼,它不依賴于數(shù)據(jù)庫,信息容量大、可靠性高,因此必將得到廣泛的應(yīng)用。二維條碼的種類很多,有QR、PDF417和Maxi code等。
  二維條碼作為一種應(yīng)用廣泛的自動(dòng)識(shí)別技術(shù),其核心是對(duì)條碼進(jìn)行快速、準(zhǔn)確地定位。紋理是條碼的一個(gè)顯著特征,目前,主流的算法是基于紋理特征的梯度檢測(cè)或頻域分析[1]來定位二維條碼。利用梯度特征進(jìn)行條碼檢測(cè)與基于頻域分析的算法相比較,具有實(shí)時(shí)性強(qiáng)的特點(diǎn), 適用于大多數(shù)圖像。
  條碼本身紋理特征主要表現(xiàn)為黑白相間且邊緣方向一致的矩形塊??紤]各種可能出現(xiàn)的復(fù)雜背景情況,采用單一的梯度特征很難滿足二維碼精確定位的需要。本文提出了一種形態(tài)學(xué)和邊緣梯度信息相結(jié)合的方法來提取二維碼。該方法不同于大多數(shù)的條碼定位方法,其對(duì)條碼在圖像中的位置以及圖像背景的限制很少,而且綜合特征定位要比單一特征定位更符合人的視覺要求,因而定位效果更好,應(yīng)用范圍更廣。本文將以QR條碼為例,進(jìn)行條碼區(qū)域的提取。
1 二值形態(tài)學(xué)基本原理[2]
  二值形態(tài)學(xué)運(yùn)算是數(shù)學(xué)形態(tài)學(xué)的基礎(chǔ),是一種針對(duì)圖像集合的處理過程。其基本思想是:用具有一定形態(tài)的結(jié)構(gòu)元素去度量和提取圖像中的對(duì)應(yīng)形狀,以達(dá)到對(duì)圖像分析和識(shí)別的目的。膨脹(Dilation)和腐蝕(Erosion)是2種最基本、最重要的變換,其他變換都由這2種變換的組合來定義。它們?cè)诙祱D像和灰度圖像中各有特點(diǎn),還可以推導(dǎo)和組合成各種其他數(shù)學(xué)形態(tài)學(xué)算法。
  按定義,二值圖像上目標(biāo)邊界點(diǎn)是指位于目標(biāo)內(nèi)部,且至少有1個(gè)鄰點(diǎn)位于目標(biāo)之外的像素。用B(x)代表結(jié)構(gòu)元素,對(duì)工作空間A中的每1點(diǎn)x,腐蝕和膨脹的定義分別為:

  

    簡(jiǎn)單的腐蝕是一種消除邊界點(diǎn)的過程,結(jié)果是使目標(biāo)縮小、孔洞增大,因而可有效地消除孤立噪聲點(diǎn)。膨脹是將與目標(biāo)物體接觸的所有背景點(diǎn)合并到物體中的過程,結(jié)果是使目標(biāo)增大、孔洞縮小,可填補(bǔ)目標(biāo)物體中的空洞,形成連通域。
     一般情況下,腐蝕與膨脹是不可恢復(fù)的運(yùn)算, 但通過腐蝕與膨脹可以構(gòu)成開運(yùn)算和閉運(yùn)算。開運(yùn)算和閉運(yùn)算的定義如下:
  

  先腐蝕后膨脹的過程稱為開運(yùn)算,它具有消除細(xì)小物體,并在纖細(xì)處分離物體和平滑較大物體邊界的作用;先膨脹后腐蝕的過程稱為閉運(yùn)算,它具有填充物體內(nèi)細(xì)小空洞,連接鄰近物體和平滑邊界的作用。
2 條碼區(qū)域定位算法
2.1 圖像灰度化和對(duì)比度增強(qiáng)
  條形碼本身是黑白條碼,不需要顏色信息,而且灰度圖像的處理速度快,占用空間少,因此首先將圖像進(jìn)行灰度轉(zhuǎn)換。大部分采集二維碼的攝像設(shè)備性能一般,圖像的灰度可能會(huì)集中于某一小區(qū)間內(nèi),如圖像過亮或過暗,所以需要根據(jù)直方圖對(duì)圖像灰度進(jìn)行拉伸使之覆蓋較大的區(qū)間,從而提高了圖像的對(duì)比度尤其是二維碼的黑白對(duì)比度,便于對(duì)圖像二值分割。圖1為所處理圖像的灰度化。


2.2 基于閾值選取的圖像分割
  在使用閾值法進(jìn)行圖像分割時(shí),閾值的選取成為能否正確分割的關(guān)鍵,閾值過小容易造成過度分割,過大則不易濾除背景。本文將選用最大方差準(zhǔn)則[3]確定最佳閾值,區(qū)域間的方差是差異的有效參數(shù)。分割后圖像如圖2所示。


2.3 二值形態(tài)學(xué)運(yùn)算
  數(shù)學(xué)形態(tài)學(xué)是以結(jié)構(gòu)元素為基礎(chǔ)對(duì)圖像進(jìn)行分析的數(shù)學(xué)工具。對(duì)于結(jié)構(gòu)元素,其中大尺度的結(jié)構(gòu)元素去除噪聲能力強(qiáng),小尺度的結(jié)構(gòu)元素能檢測(cè)到好的邊緣細(xì)節(jié)。至于窗口尺寸,在邊緣提取的形態(tài)變換中,一般采用3×3、5×5、7×7的窗口尺寸。本算法中形態(tài)學(xué)運(yùn)算既要去噪(如圖像中的直線、表格、方方正正的文字及噪點(diǎn)等),又要盡量少地影響邊緣細(xì)節(jié)。結(jié)合試驗(yàn)分析,選定2個(gè)以中心為原點(diǎn)的3×3結(jié)構(gòu)元素,對(duì)圖像進(jìn)行腐蝕和開運(yùn)算。腐蝕和開運(yùn)算的結(jié)構(gòu)元素3×3矩陣如下:

  

  對(duì)于如圖1所示的有復(fù)雜背景(如文字等)的條碼圖像,采用形態(tài)學(xué)方法消除了影響進(jìn)一步提取梯度特征的因素,變成了只有少量噪聲的圖像,而且濾去了毛邊,使圖像二維碼區(qū)域的梯度特征更加明顯,其運(yùn)算結(jié)果如圖3所示。

2.4 利用方向邊緣強(qiáng)度確定條碼大致區(qū)域
  條碼由黑的條和白的(空)組成, 黑白分界明顯,具有很強(qiáng)的邊緣強(qiáng)度,利用條碼的紋理特征,通過分區(qū)域?qū)l碼邊緣方向的分析,可以濾去大部分的文本、圖案以及一些大的黑色塊狀區(qū)域干擾。在此過程中,將分區(qū)域進(jìn)行了分析。
     用分塊來進(jìn)行處理,主要是考慮到所獲得的圖像大小分辨率通常是固定的,先對(duì)整幅圖像進(jìn)行分塊,圖像中的每個(gè)塊都是一個(gè)特征區(qū)域,其中特征區(qū)域的大小如何確定將是研究的重點(diǎn)。確定的原則是既要盡量細(xì)致地反映二維碼區(qū)域特征,又要兼顧二維碼區(qū)域邊緣分布特征。針對(duì)設(shè)備的分辨率,把采集得到的灰度圖像按網(wǎng)格分割為m×n個(gè)子區(qū)域,分析每個(gè)子區(qū)域的邊緣強(qiáng)度特征,篩選出可能包含條碼的圖像子區(qū)域。
  Kirsch算子具有8個(gè)方向的模板,有很好的方向性及很好的精度和抗噪性能。圖像中的每個(gè)點(diǎn)都用8個(gè)掩模進(jìn)行卷積,每個(gè)掩模對(duì)某個(gè)特定邊緣方向做出最大響應(yīng)。

  

2.5 水平和垂直投影定位條碼區(qū)域
  經(jīng)過上述處理以后,所存在的干擾就非常少了,然后對(duì)圖像進(jìn)行水平(垂直)投影,確定最后的條碼區(qū)域。
  首先,對(duì)圖像進(jìn)行水平投影,其水平像素投影值可看作離散數(shù)列,為消除圖像中的毛刺或噪聲的干擾,可采用加權(quán)算術(shù)平均法。設(shè)Vi表示圖像中第i行的原始投影值,V′i-1表示圖像中i-1行平滑后的投影值,則1次指數(shù)平滑數(shù)列[5]的構(gòu)成為:

  

     平滑后的水平投影如圖4(a)所示。由于二維碼區(qū)域的投影比較大,而在二維碼區(qū)域上下行附近的投影值也比較大,而且均有谷底存在,因此,找到2個(gè)谷底位置,確定上下邊界,從而完成第1次分割。

  對(duì)第1次分割后的圖像做垂直方向的投影,平滑后的投影如圖4(b)所示。由于二維碼區(qū)域峰值比較集中,此時(shí)采用從兩頭尋找條碼區(qū)域的方法,即從兩頭分別先找到大于一定閾值的點(diǎn),然后分別向下找到谷底,即為找到的條碼左右邊界,這樣就得到第2次分割結(jié)果。
  通過2次投影分割,便確定了條碼區(qū)域的位置,實(shí)現(xiàn)了區(qū)域定位。若條碼區(qū)域發(fā)生旋轉(zhuǎn)或傾斜,可以進(jìn)一步采用雙線性插值[1]將條碼旋轉(zhuǎn)至水平,從而實(shí)現(xiàn)條碼的精確定位。
    采用形態(tài)學(xué)腐蝕、開運(yùn)算和求取梯度特征的方法, 最終通過投影算法從有復(fù)雜背景的條碼圖像中分割出條碼區(qū)域,為識(shí)讀軟件定位了二維條碼區(qū)域,達(dá)到了條碼自動(dòng)識(shí)別的目的。實(shí)驗(yàn)表明,同傳統(tǒng)的算法相比,該算法對(duì)圖像背景要求較少,簡(jiǎn)單實(shí)用,不僅提高了定位速度,也提高了定位準(zhǔn)確率,有效地滿足了二維條碼識(shí)別系統(tǒng)實(shí)時(shí)性的要求。
參考文獻(xiàn)
[1] 劉寧鐘,楊靜宇.基于波形分析的二維條碼識(shí)別[J].計(jì)算機(jī)研究與發(fā)展,2004,41(3):463-469.
[2] 李俊山,李旭輝.數(shù)字圖像處理[M].北京:清華大學(xué)出版社,2007.
[3] 劉衛(wèi)光.圖像信息融合與識(shí)別[M].北京:電子工業(yè)出版社,2008.
[4] 鄭翔,黃藝云.Kirsch邊緣檢測(cè)算子的快速算法[J].通信學(xué)報(bào),1996,17(1):131-134.
[5] 郭捷,施鵬飛.基于顏色和紋理分析的車牌定位方法[J].中國(guó)圖像圖形學(xué)報(bào),2002,7(5):473-476.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。