趙群禮, 周秋平, 史君華
(合肥師范學院 計算機科學與技術系,安徽 合肥230061)
二維條碼技術是20世紀80年代末在一維條碼基礎上發(fā)展起來的,與一維條碼相比,二維條碼具有容量高、密度高、糾錯能力強等特點[1,2],因此得到廣泛應用。而正由于二維條碼信息密度高,與一維條碼相比識別技術更為復雜,所以對二維條碼進行快速有效的識別成為當前的一個研究熱點。本文主要對 QR(Quick Response)[3,4]二維條碼的圖像識別技術進行了具體的探討和分析。
QR碼是由日本Denso公司于1994年9月制定的一種矩陣二維條碼符號,它除了具有信息容量大、可靠性高、可表示漢字及圖像信息、保密防偽性強等優(yōu)點外,還具有超高速響應、全方位識讀等特點。QR碼的尺寸小于相同密度的PDF417碼[5](Portable Data File 417Code),專有的漢字模式更加適合我國應用。
每個QR碼符號由正方形模塊組成的一個正方形陣列構成,它由編碼區(qū)域和包括尋像圖形、分隔符、定位圖形和校正圖形在內的功能圖形組成,功能圖形不用于數(shù)據(jù)編碼,符號的四周為空白區(qū)。圖1為QR碼版本1符號的結構圖。
圖1 QR碼符號的示例
QR碼基本特性主要有以下五個方面:
(1)編碼字符集,包括數(shù)字型數(shù)據(jù)(數(shù)字0~9)、字母數(shù)字型數(shù)據(jù)(數(shù)字;大小寫英文字母;9個其他字符:space,$,%,*,+,一,.,/,:)、8位字節(jié)型數(shù)據(jù)、日本漢字字符、中國漢字字符(GB2312對應的漢字和非漢字字符)。
(2)數(shù)據(jù)表示方法,用深色模塊表示二進制“1”,用淺色模塊表示二進制“0”。
(3)符號規(guī)格,符號規(guī)格不包括空白區(qū)域,從版本1的21×21模塊到版本40的177×177模塊。
(4)符號的數(shù)據(jù)字符數(shù),以版本40為例,每種符號的數(shù)據(jù)字符數(shù)為:數(shù)字數(shù)據(jù)7089個字符、字母數(shù)字數(shù)據(jù)4296個字符、8位字節(jié)數(shù)據(jù)2953個字符、中國漢字數(shù)據(jù)1817個字符。
(5)糾錯能力,有4種糾錯等級,可恢復的碼字比例為:L級是7%、M級是15%、Q級是25%、H級是30%。
(1)結構鏈接
結構鏈接是可選項目,允許把數(shù)據(jù)文件最多用16個QR碼符號在邏輯上連續(xù)地表示。以任意的順序掃描,而原始數(shù)據(jù)能正確地重新連接起來。
(2)掩模
掩模是固有項目,可以使符號中深色與淺色模塊的比例接近1:1,使因鄰近模塊的排列而影響高效譯碼的可能性降為最小,減小對譯碼的準確的影響。
(3)擴充解釋
擴充解釋是可選項目,這種方式使符號可以表示字符集以外的數(shù)據(jù)(如阿拉伯字符、古斯拉夫字符、希臘字母等),以及其他數(shù)據(jù)解釋(如用一定壓縮方式表示的數(shù)據(jù))或者針對行業(yè)特點的需要進行編碼。
QR碼的編碼格式依次為:模式指示符、字符計數(shù)指示符、經(jīng)各種規(guī)則壓縮后的數(shù)據(jù)、填充位和其他信息,然后按照版本信息分割成不同的塊,對每一塊進行糾錯位計算并填充糾錯碼數(shù)據(jù),按照不同的版本擺放位置探測圖形、定位圖形、校正圖形、格式信息、版本信息等,如圖2所示。
圖2 QR碼的符號結構
圖像識別是人工智能的一個重要領域。使用計算機對圖像進行處理、分析和理解,是識別不同模式的目標和對象的一種技術。采用圖像識別技術對QR二維碼進行識別已得到廣泛的應用,其識別過程可分為圖像采集、灰度化、二值化、校正和解碼五個步驟,如圖3所示。
圖3 QR條碼圖像識別過程
(1)采集
QR二維條碼當前已應用在很多領域,通常條形碼被打印在相應的物品上,用來表示物品的相關信息,當要對這些信息進行識別的時候,就需要提取條碼的圖像。二維條碼的獲取可以由光學相機如面陣CCD、數(shù)碼相機或者激光掃描器設備得到。
(2)灰度化
在通常狀態(tài)下,通過數(shù)碼相機等攝像設備獲取的QR二維碼圖像是彩色的,和灰度圖像相比彩色圖像含有的信息量大,占用的存儲空間更多,并且對彩色圖像的處理過程相對復雜,運算量也比較大,因此有必要將彩色圖像進行灰度化處理,以減少后續(xù)處理步驟的運算量。標準的灰度值計算公式為:W=R*0.30+G*0.59+B*0.11,其中R、G、B分別表示紅、綠、藍三種顏色分量,W表示灰度值,它們的數(shù)值范圍都在0~255之間。
(3)二值化
標準的二維條碼圖像是由黑白兩種小的模塊組合而成的,因此在經(jīng)過圖像灰度化處理后,需要對所得圖像進行二值化處理,圖像二值化就是將一幅多個灰度級的圖像轉化為只有兩個灰度級的圖像,以便于數(shù)據(jù)的壓縮、特征的突出以及圖形的識別。圖像二值化的方法是通過預先設定的一個閾值,將灰度圖像的像素分成大于閾值和小于閾值的兩個部分,只要閾值選擇的合適,就可將圖像中的背景和條碼符號區(qū)域分開。對于閾值的選取方法,文獻[6,7,8]中提出了多種方法,如直方圖閾值法、最大類間方差閾值分割法、Bernsen方法。
(4)校正
由于在采集條碼圖像的過程中,可能會出現(xiàn)攝像頭與條碼平面存在傾角的問題,從而引起圖像產生幾何形變,使得原本正方形的QR碼呈現(xiàn)為不規(guī)則的四邊形,在很大程度上影響了條碼信息的正確提取,因此必須進行圖像校正。在本文中采用雙線性變換的方法進行幾何校正,以將不規(guī)則四邊形區(qū)域通過一定的映射關系映射為QR碼標準的正方形區(qū)域,如圖4所示,其中左邊的四個頂點變換為右邊的四個頂點,變換前和變換后兩點之間的映射關系如(1)式所示,其中a~h八個參數(shù)為雙線性變換映射系數(shù)。
圖4 頂點映射關系示例
將預設的校正后的頂點坐標代入(1)式的右邊,校正前采集到的頂點坐標代入(1)式的左邊。(1)式中的橫坐標x映射關系如方程組(2)所示。
由 圖 4 可 知 x1′=x2′,x3′=x4′,y1′=y(tǒng)3′,y2′=y(tǒng)4′,代入方程組(2)化簡為(3)式。
其中M=x1′-x3′=y(tǒng)1′-y2′為預設的轉換后的QR碼邊長。在求出a,b,c。后,根據(jù)方程組(2)中的任一個方程即可求出d。同理,可以求出縱坐標y之間的映射系數(shù)e,f,g,h,然后可將預設正方形內的點通過上面的變換映射到失真四邊形內,從而完成圖形的校正。圖5中的左圖經(jīng)上述的算法校正后轉變?yōu)橛覉D,由右圖可以發(fā)現(xiàn)雖然一些模塊的邊緣因取點時的近似出現(xiàn)鋸齒狀,但在總體上并不影響該模塊原來的條碼信息。
圖5 QR碼的幾何校正示例
(5)解碼
從理論上來說,解碼的過程可以看著是編碼的逆過程,首先要獲取待解碼的QR二維條碼,然后對該條碼進行全部掃描,并將掃描結果存在一個二維數(shù)組中,接下來將掃描到的條碼符號轉換成碼字,再將碼字按照不同的編碼規(guī)則轉化為可讀的字符、漢字等相關文本信息,具體解碼步驟以下:
第1步:獲取符號圖像。深色與淺色模塊識別為由‘0’與‘1’組成的陣列;
第2步:識讀格式信息(按要求去除掩模圖形并完成對格式信息模塊的糾錯,識別糾錯等級與掩模圖形參考);
第3步:識讀版本信息,確定符號的版本;
第4步:用掩模圖形(掩模圖形參考己經(jīng)從格式信息中得出)對矩陣中的編碼區(qū)域進行異或處理,消除掩模;
第5步:根據(jù)模塊排列規(guī)則,識讀符號字符,恢復信息的數(shù)據(jù)與糾錯碼字;
第6步:用與糾錯等級信息相對應的糾錯碼字檢測錯誤,如果發(fā)現(xiàn)錯誤,則進行糾錯;
第7步:根據(jù)模式指示符和字符計數(shù)指示符,將數(shù)據(jù)碼字劃分成多個部分;
第8步:按照使用的模式進行譯碼,得出數(shù)據(jù)字符。
通過對QR二維條碼的介紹,分析了采用圖像處理方法識別QR碼的過程,并對識別過程中的圖像校正和解碼方法進行了詳細介紹,提出了雙線性變換的方法解決幾何形變問題,該方法簡單易于實現(xiàn),能夠快速地進行QR條碼圖像的幾何校正。和光電識別技術相比,采用圖像處理技術進行QR條碼識別的方法,能夠有效地識別有污染、殘缺和幾何變形的條形碼,因而具有廣闊的應用前景。
[1]Vangils W J.Two-dimensional dot code for product identification[J].IEEE Transactions on Information Theory,1987,33(5):620-631.
[2]Pavlidis T,Swartz J.Fundamentals of barcode information theory[J].IEEE Transactions on Computers,1990,23(4):74-86.
[3]張成海,郭衛(wèi)華,羅秋科等.QR Code二維碼[M].北京:中國標準出版社,2000.
[4]中華人民共和國國家標準GB/T18284-2000.快速響應矩陣碼[S].
[5]中華人名共和國國家標準GB/T17172-1997.四一七條碼[S].
[6]劉發(fā)耀.QR條碼識別方法的研究.國防科學技術大學,2010,24(1):45-46.
[7]N otsu.A threshold seleetion method from gray level histograms[J].IEEE Transactionson Systems Man and Cybernetic,1979,9(1):62-66.
[8]謝金龍,武獻宇,楊立雄,羅濤,王晨.QR二維條碼的設計與實現(xiàn)[J].物流工程與管理,2011,33(4):88-89.