



摘要:針對光照不均勻和背景環境復雜時快速響應矩陣碼(quick response code,QR)難以定位以及Hough變換校正不確定性的問題,提出一種新的基于符號特征的QR碼提取和校正算法。利用符號特征尋找滿足三層包圍關系的連通區域圖形,從而達到對QR碼的定位,利用定位點坐標實現對QR碼的校正。實驗結果表明:該算法對QR碼的定位和校正簡單、快速、準確。
關鍵詞:QR碼;Hough變換;二值化;連通域
文獻標志碼:A
文章編號:1674-5124(2015)02-0088-03
引 言
QR二維碼因其高密度、高可靠性、高含信息量和自動全方位識別等特點,被廣泛應用于各種領域。特別是近幾年智能手機的快速發展更加促進了它的大規模應用。
在實際應用中,采集條碼圖像時條碼可能會發生傾斜,這增大了識別的難度并降低了識別率。針對這種問題,國內外專家學者進行了大量研究,提出了許多校正算法近幾年,許多學者也提出了一些比較新的定位校正算法,利用最大連通區域對QR碼提取并校正,由于在尋找最大連通域和Hough變換中計算量太大導致其算法太過復雜,識別速度不快。文獻利用QR碼中位置探測圖形的特征進行定位,然而實際情況中,由于背景復雜或者二值化效果不好,會使得位置探測圖形的符號特征發生變化,即不滿足標準的比例關系,導致定位不準確。文獻采用Viola-Jones框架來檢測任意獲取的圖像中的QR碼,檢測精度較高,但是該框架本身較復雜,且參數不易設置。
針對上述情況,提出了一種基于符號特征的QR碼定位和校正算法。
l.預處理
1.1 QR碼簡介
QR碼是一種矩陣式二維碼,由深、淺色正方形模塊排列成一個正方形陣列,主要包括編碼區域和功能區域。編碼區域存儲數據的編碼,功能區域包括位置探測圖形、分隔符、定位圖形和校正圖形等。QR碼四周有一定寬度的空白區。
其中,位置探測圖形有3個,分別位于整個符號的左上角、左下角和右上角,用于快速定位QR碼在原圖像中的位置。位置探測圖形如圖l所示。
1.2 灰度化與二值化預處理
一般QR二維碼只有黑色和門色部分,二值圖像更易于獲取目標區域的集合特征,并且二值圖像存儲空間小、處理速度快;所以,首先對獲取的彩色圖像進行灰度化,然后對灰度圖像進行二值化。采用簡單的加權平均法進行灰度化:
y=0.30R+0.59C+O.llB
(1)式中:R、G、B-像素的紅色、綠色和藍色分量;
Y——灰度化后的灰度值。
自適應閾值法是常用的二值化方法,其中最常用的是最大類間方差法(OcsLi算法)。設所有像素被閾值分為兩組,灰度≤t的為第1組,灰度>t的為第2組,則
μ——所有像素的平均灰度;
ql(t),q2(t)——第1組和第2組各自的概率;
σ12(t),σU22(t)——第1組和第2組各自的方差;
μ1(t),μ2(t)——第1組和第2組各自的灰度
平均值。
最佳閾值t*滿足:
如果σ2B(t)的最大值對應于多個t,一般取其平均值。得到閾值t*后進行分割:
由于Otsu算法對光照不均勻的圖像效果較差,所以采用多閾值處理方法】。其思想是把一幅圖像分成不重疊的幾個矩形部分,然后對每一塊使用Otsu算法進行二值化處理,這樣即可避免光照不均勻的影響。
2.QR碼的提取和校正
2.1 區域標記
本方法所利用的是QR碼位置探測圖形的特點,但并不是利用其回形區域的像素1:1:3:1:1比例的性質,因為實際情況中不一定完全滿足該特點。由于二值化一般不會影響圖像中本身具有的連通域,所以本方法正是利用QR碼位置探測圖形連通域的特點。
區域標記是指把唯一的標號賦給圖像各像素區域,但相同像素值根據鄰域數不同而被區別標記為不同的區域。連通域是指在二值圖像中,任意點加上其n個鄰域點,按照從上到下和從左到有的順序,以非0則為連通區域的規則,且從l開始整數遞增順序標記各連通區域。由QR碼符號的特點,本文采用8連通域做區域標記,得到標記依次為l,2,3--的若干塊連通區域的二值圖。
下面定義一種區域位置關系(本文稱作三層包圍關系),如圖1所示。如果連通區域C包圍連通區域B,連通區域B包圍連通區域A,將這種位置關系稱作滿足三層包圍關系,簡記為
A—}B—}C
由QR碼的標準可知,在整個QR碼符號中只有兩種圖形滿足上述三層包圍關系,分別是位置探測圖形和校正圖形;然而在同一個QR碼符號中,位置探測圖形的面積都大于校正圖形的面積;所以,利用面積的比較可以確定位置探測圖形的位置。
2.2 QR碼的提取
經過預處理后,對二值化圖像即可進行QR碼提取,主要包括以下步驟:
1)遍歷整幅圖像,進行區域標記。其中最外圍的白色區域標記為1,并存儲屬于每一個連通區域的所有像素的坐標。對除了序號為1的連通區域,尋找滿足三層包圍關系的連通區域。實際情況中,在整幅圖像中除了QR碼符號的位置探測圖形和校正圖形,背景圖像一般不會有這樣的區域,所以找到的這些區域是有限的,從而可以大大減小計算量。
2)通過連通域的面積比較找出位置探測圖形。為了減少計算量,計算找到的幾組連通區域中最里面的區域的面積,那么面積最大的前3個連通區域即為位置探測圖形最中間的小正方塊;通過存儲的坐標可以計算出位置探測圖形的中心點的坐標。
3)通過求得的位置探測圖形中心點坐標提取QR碼符號。因為QR碼為正方形,利用3個位置探測圖形中心點坐標就可確定一個正方形,將此正方形適當放大,使其能完全包括整個QR碼符號,從而提取出整個QR碼。
2.3 QR碼的校正
傾斜角計算示意圖如圖2所示,由求得的3個位置探測圖形的中心點坐標作三角形,計算每邊的長度,最長邊為斜邊,它所對的頂點即為QR碼左上方位置探測圖形的中心點,通過斜邊計算傾斜角a,即可算出QR碼的傾斜角為
QR碼的校正方法是首先確定3個位置探測圖形的位置,然后進行圖像旋轉,最后做插值運算。為避免產生邊界鋸齒現象,本文采用雙線性捅值法。
3.實驗結果與分析
為了驗證該算法的有效性,本文使用普通攝像頭采集了背景復雜、光照不均勻的QR碼圖像,通過Madab軟件對QR碼圖像依次進行灰度化、二值化、提取QR碼和校正QR碼,所得到的結果如圖3所示。
采用手機拍攝大小為327x245的圖像,經過灰度化后,采用全局閾值和多閾值的二值化算法處理,分別得到如圖3(a)和圖3(b)所示的結果。對比兩圖可以看出多閾值處理算法二值化后圖像中的QR碼清晰可見,最重要的是沒有模糊位置探測圖形,這是后續提取和校正QR碼的關鍵。對二值化后的圖像由文獻[4]算法校正結果如圖3(c)所示,而通過本文算法得到的校正結果如圖3(d)所示。通過對比可以看出,本文算法的結果比文獻的校正結果效果更好,而且相對于文獻避免了Hough變換求傾斜角的復雜計算和不確定性。對327x245的圖片,本算法在未優化程序時所需時間為200ms以內,相對于具有傳統代表性的文獻中算法所需要的500ms要少。
按照本文算法,以火車票圖片做實驗。針對背景復雜與簡單和左傾斜與右傾斜做了4組實驗,所得實驗結果如圖4所示。原圖是在光照不均勻的場景下獲取的,圖中每一行為一組,其中第3和第4組的背景較復雜,對QR碼的提取有很大干擾。由圖示結果可以看出對這幾種情況均能正確校正,且效果較好。
4.結束語
本文提出的算法,僅利用QR碼符號特征和連通域理論便能對QR碼進行一次性提取和校正,避免了二值化效果不好的影響和利用Hough變換求傾斜角計算量大的弊端。但是,如果所獲取圖像的背景中包含有滿足三層包圍關系的連通區域時,該算法不能準確定位。然而,由于實際應用時所獲得的圖像中除QR碼部分以外沒有太多背景,所以大部分情況下該算法是可用的。一般情況下,針對光照不均勻和背景復雜情況,QR碼校正效果很好,并且該算法簡單、快速、校正精度較高。