專利名稱:一種魯棒的圖像中二維碼區(qū)域提取方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機數(shù)字圖像處理方法,特別是一種圖像中準(zhǔn)確分割提取二維碼區(qū)域的方法。
背景技術(shù):
二維條碼(2-dimensional bar code)是指在一維條碼的基礎(chǔ)上擴展出另一維具有可讀性的條碼。一維條碼的寬度記載著數(shù)據(jù),而其長度沒有記載數(shù)據(jù)。二維條碼的長度、 寬度均記載著數(shù)據(jù)。二維條碼有一維條碼沒有的“定位點”和“容錯機制”。容錯機制在即使沒有辨識到全部的條碼、或是說條碼有污損時,也可以正確地還原條碼上的信息。在許多種類的二維條碼中,常用的碼制有Data Matrix, QR Code, P DF417,漢信碼等。二維條碼具有儲存量大、保密性高、追蹤性高、抗損性強、備援性大、成本便宜等特性,這些特性特別適用于表單、安全保密、追蹤、證照、存貨盤點、資料備援等方面。通過手機或相機攝像頭拍攝包含二維碼的圖像,利用數(shù)字圖像處理技術(shù)進(jìn)行識另|J,是國內(nèi)外對二維條碼的主要研究方向。對圖像中二維碼區(qū)域的提取,是二維碼圖像識別中最關(guān)鍵的步驟之一,這其中涉及到圖像二值化方法和二維碼區(qū)域定位。針對圖像的二值化問題,目前主要分為全局閾值方法和局部閾值方法。全局閾值中最簡單(也是最通用) 的方法是將在某一個灰度值以下的像素全部設(shè)為黑色,而其他所有的像素設(shè)為白色,閾值的選取是該方法的關(guān)鍵,在《快速響應(yīng)矩陣碼QR Code》(中華人民共和國國家標(biāo)準(zhǔn)GB/T 18284-2000)中給出的參考譯碼算法中,所選的閾值是在圖像灰度值最大值與最小值之間的中值,但如果圖像中光照不均勻,將難以區(qū)分出二維碼區(qū)域與圖像的背景區(qū)域。局部閾值方法就是按照一定的規(guī)則將整幅圖像劃分為多個窗口,對這些窗口中的每一個窗口,再按照全局閾值的方法進(jìn)行二值化處理。局部閾值方法在處理光照不均或背景十分復(fù)雜的圖像時效果較好,二值化圖像中存在分塊效應(yīng)。在二維碼區(qū)域定位方面,《快速響應(yīng)矩陣碼QR Code》提供的參考方法是,在整幅圖像中搜索QR碼的尋像圖形,根據(jù)尋像圖形中各元素相當(dāng)寬度的比例是1 1 3 1 1的特點,在水平和垂直方向進(jìn)行探測,找出三個尋像圖形,進(jìn)而確定出二維碼的方位。由于這種方法要對整個圖像進(jìn)行搜索,因此在分辨率較大的圖像中探測很花費時間,此外復(fù)雜背景的干擾也使得探測會明顯降低二維碼的識別速度。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種魯棒的圖像中二維碼區(qū)域提取方法,為二維碼的識別提供準(zhǔn)確有效的依據(jù)。本發(fā)明的目的是這樣實現(xiàn)的一種魯棒的圖像中二維碼區(qū)域提取方法,包括以下步驟1. 1)對采集的二維碼圖像進(jìn)行灰度化處理,建立一種多尺度的高斯圖像金字塔;1. 2)對金字塔中的每一層進(jìn)行分塊,根據(jù)每個分塊圖像的局部灰度分布信息,采用最大類間方差方法對每個分塊圖像進(jìn)行二值化;
1.3)根據(jù)圖像金字塔中每一層的二值化結(jié)果,對多個尺度上的二值圖像進(jìn)行融合,得到最終的二值圖像;1.4)在圖像金字塔的最底層,即原始尺度下,逐行掃描每個分塊二值圖像;掃描過程中,若發(fā)現(xiàn)相鄰像素的像素值不同,則稱為一次跳變,計算每個分塊二值圖像中出現(xiàn)的跳變次數(shù);根據(jù)二維碼具有豐富紋理的特點,將跳變次數(shù)大于某個閾值的分塊設(shè)為二維碼候選塊,候選塊作為后續(xù)二維碼搜索區(qū)域;1. 5)以分塊為單位進(jìn)行連通體分析,找出所有在圖像上相鄰接的候選塊,建立多個連通體區(qū)域,每個連通體區(qū)域則作為候選二維碼區(qū)域;根據(jù)候選二維碼區(qū)域的形狀特征, 確定包含有二維碼的連通體區(qū)域;1.6)以圖像塊為單位,選取包含有二維碼的連通體區(qū)域的內(nèi)邊緣塊和外邊緣塊, 從而生成邊緣帶;通過Harris角點檢測得到邊緣帶中的特征角點,建立特征角點集;采用 Sklansky算法計算出每個角點集的外接凸包;提取每個外接凸包所對應(yīng)的圖像區(qū)域,得到最終的二維碼區(qū)域。上述步驟1. 2)中對圖像金字塔中的每一層進(jìn)行分塊的步驟如下2. 1)按照設(shè)定的比例系數(shù),將最底層的原始圖像,劃分成適當(dāng)大小的圖像塊;其中比例系數(shù)為分塊的寬度與圖像寬度的比值;2. 2)對金字塔上一層圖像進(jìn)行分塊,分塊的比例系數(shù)取上一層比例系數(shù)的兩倍;2. 3)重復(fù)步驟2. 2),直至到圖像金字塔最頂層。上述步驟1.2)中對圖像二值化處理的方法是利用最大類間方差算法,計算出圖像金字塔每層圖像中的每個分塊的分割閾值,然后使用閾值對相應(yīng)的分塊進(jìn)行二值化處理,從而得到每層的二值圖像;通過融合不同尺度下的二值圖像,得到最終的二值化結(jié)果; 融合的實現(xiàn)方法是先將所有尺度下的二值圖像,使用內(nèi)插生成與原始圖像等分辨率的二值圖像,圖像對齊后按像素取中值作為所需的二值化結(jié)果。上述步驟1. 5)中所述的連通體區(qū)域是相鄰候選塊之間的八連通區(qū)域,每個連通體區(qū)域作為一個候選二維碼區(qū)域,依據(jù)該區(qū)域外接矩形的長寬比規(guī)則,確定包含有二維碼的連通體區(qū)域。當(dāng)圖像中存在復(fù)雜背景或是光照不均勻的情況時,圖像整體與局部之間的統(tǒng)計特性差異較大,無法用單一的閾值進(jìn)行二值化,將二維碼區(qū)域與背景區(qū)分開。本發(fā)明采用分治法的思想對原始圖像進(jìn)行分塊處理,同時設(shè)計一種多尺度分割的策略,減小分塊二值化引起的分塊效應(yīng)。再在二值圖像中搜索包含二維碼的圖像塊,通過連通體分析以及計算特征點外接凸包,同時提取出圖像中多個二維碼。本發(fā)明的有益效果主要有一下幾點(1)本發(fā)明提供的技術(shù)方案對于光照不均、 復(fù)雜背景等常見的干擾情況具有較好的魯棒性;(2)具有較好的普遍適用性,而不局限于某一類型的二維碼,只要二維碼模塊分布比較均勻,都能夠應(yīng)用本發(fā)明的方案進(jìn)行區(qū)域提??;(3)采用多尺度下由粗到精的搜索策略,方法簡便快捷,能夠兼顧處理的實時性和準(zhǔn)確性;(4)由于技術(shù)方案中是并行地提取圖像中多個二維碼,因此本發(fā)明特別適用于具有并行處理能力的軟硬件系統(tǒng)。
圖1是本發(fā)明所述方法的系統(tǒng)示意框圖。圖2是本發(fā)明在圖像金字塔中進(jìn)行圖像分塊的示意圖(圖中,上方為原圖,下方為三個尺度下圖像的分塊)。圖3是本發(fā)明方法在光照不均勻情況下的二值化結(jié)果圖。圖4是本發(fā)明中分塊搜索二維碼區(qū)域示意圖。圖5是本發(fā)明提取二維碼區(qū)域的結(jié)果圖。
具體實施例方式下 面結(jié)合附圖具體描述本發(fā)明的實施方式。參照圖1,在圖像中分割提取二維碼區(qū)域的方法步驟如下步驟一讀取包含有二維碼的圖像,將其轉(zhuǎn)化成256級的灰度圖像。然后建立(如圖2中下方示出的三個圖像分塊)的圖像金字塔,層數(shù)設(shè)置范圍為3 5層,建立方法是從原始尺度出發(fā),利用高斯函數(shù)生成的核進(jìn)行濾波,再進(jìn)行隔行隔列的降采樣,得到上一層的圖像;步驟二對金字塔中的每一層圖像進(jìn)行分塊,根據(jù)每個分塊圖像的局部灰度分布信息,采用最大類間方差方法對每個分塊圖像進(jìn)行二值化。具體實現(xiàn)步驟如下所述(1)設(shè)置圖像分塊寬度(高度)與圖像寬度(高度)的比值,即比例系數(shù)RO(設(shè)置R的范圍0. 125 0. 05),圖像中二維碼尺寸越大,R的設(shè)置值越大。將金字塔最底層的圖像按照比例R進(jìn)行分塊,如圖2(b)中的虛線框所示;(2)對金字塔的上一層圖像進(jìn)行分塊,分塊的比例系數(shù)Rl取為上一層的兩倍,即 Rl = 2 X RO ;(3)重復(fù)上一步,直至圖像金字塔的最頂層;(4)利用最大類間方差算法,計算出圖像金字塔每層圖像中的每個分塊的分割閾值,然后使用閾值對相應(yīng)的分塊進(jìn)行二值化處理,得到每層的二值圖像B0,Bi,…,Βη,η為金字塔的層數(shù);步驟三通過多尺度融合方法減少圖像分塊所引起分塊效應(yīng),實施方法是先將步驟二獲得的二值圖像Β0,Β1,…,Βη,通過內(nèi)插使之都達(dá)到原始圖像的分辨率,得到圖像10, II,...,In ;然后采用取像素中值的方式融合所有尺度下得到的二值圖像10,II, ... In, 生成融合圖像Ia,即圖像Ia在圖像坐標(biāo)(X,y)處的像素值Ia(x, y)為IO (x, y),Il (χ, y), ...In (χ, y)的中值。如圖3所示,為多尺度融合后的效果圖,從圖中可以看出,僅在圖像邊緣部分有少量的分塊效應(yīng);步驟四按照圖像金字塔最底層的分塊方式,在圖像χ軸方向上逐行掃描Ia的每個圖像塊。掃描過程中,若發(fā)現(xiàn)相鄰像素的像素值不同,則記為一次跳變,統(tǒng)計每個塊中出現(xiàn)的跳變次數(shù)。設(shè)置跳變次數(shù)的閾值,根據(jù)二維碼具有豐富紋理的特點,將跳變次數(shù)大于閾值的塊標(biāo)記為二維碼候選塊,候選塊作為后續(xù)二維碼搜索區(qū)域;步驟五以圖像塊為單位進(jìn)行連通體標(biāo)記,找出所有在圖像上相鄰接的候選塊,實施方法是逐行掃描屬于候選塊的圖像塊,若當(dāng)前塊與其8連通的鄰接塊(在左、左上、上、 右上四個方向上判斷)均為候選塊,則將它們標(biāo)記為同一標(biāo)簽值,掃描完成后具有相同標(biāo)簽值的塊構(gòu)成一個連通體區(qū)域。由于二維碼通常為正方形,當(dāng)拍攝視角不是很偏斜的情況下,二維碼在圖像上仍接近與正方形。考察連通體的外接矩形的長寬比LWR,若0. 3 < LffR < 0. 7,則該連通體為二維碼區(qū)域,否則為背景; 步驟六在每個二維碼連通體的邊緣帶中檢測出Harris角點特征。如圖4中的實線框所示,考慮到二維碼邊角部分的像素可能會落在連通體之外,在設(shè)置的邊緣帶中對連通體進(jìn)行擴張。邊緣帶包含兩個部分即內(nèi)邊緣和外邊緣。內(nèi)邊緣是由連通體中與非候選塊相鄰接的圖像塊構(gòu)成,外邊緣則由與該連通體相鄰接的非候選塊組成。外邊緣中包含二維碼部分邊角部分的像素。根據(jù)邊緣帶中檢測到的角點,建立特征角點集,采用Sklansky 算法計算出角點集的外接凸包,輸出凸包所對應(yīng)的圖像區(qū)域。如圖5所示,為提取出的二維碼區(qū)域結(jié)果圖,其中虛線標(biāo)記為外接凸包。
權(quán)利要求
1. 一種魯棒的圖像中二維碼區(qū)域提取方法,其特征是包括以下步驟1.1)對采集的二維碼圖像進(jìn)行灰度化處理,建立一種多尺度的高斯圖像金字塔;1. 2)對金字塔中的每一層進(jìn)行分塊,根據(jù)每個分塊圖像的局部灰度分布信息,采用最大類間方差方法對每個分塊圖像進(jìn)行二值化;1. 3)根據(jù)圖像金字塔中每一層的二值化結(jié)果,對多個尺度上的二值圖像進(jìn)行融合,得到最終的二值圖像;1.4)在圖像金字塔的最底層,即原始尺度下,逐行掃描每個分塊二值圖像;掃描過程中,若發(fā)現(xiàn)相鄰像素的像素值不同,則稱為一次跳變,計算每個分塊二值圖像中出現(xiàn)的跳變次數(shù);根據(jù)二維碼具有豐富紋理的特點,將跳變次數(shù)大于某個閾值的分塊設(shè)為二維碼候選塊,候選塊作為后續(xù)二維碼搜索區(qū)域;1.5)以分塊為單位進(jìn)行連通體分析,找出所有在圖像上相鄰接的候選塊,建立多個連通體區(qū)域,每個連通體區(qū)域則作為候選二維碼區(qū)域;根據(jù)候選二維碼區(qū)域的形狀特征,確定包含有二維碼的連通體區(qū)域;1.6)以圖像塊為單位,選取包含有二維碼的連通體區(qū)域的內(nèi)邊緣塊和外邊緣塊,從而生成邊緣帶;通過Harris角點檢測得到邊緣帶中的特征角點,建立特征角點集;采用 Sklansky算法計算出每個角點集的外接凸包;提取每個外接凸包所對應(yīng)的圖像區(qū)域,得到最終的二維碼區(qū)域。
2.根據(jù)權(quán)利要求1所述的一種魯棒的圖像中二維碼區(qū)域提取方法,其特征是所述步驟1. 2)中對圖像金字塔中的每一層進(jìn)行分塊的步驟如下2. 1)按照設(shè)定的比例系數(shù),將最底層的原始圖像,劃分成適當(dāng)大小的圖像塊;其中比例系數(shù)為分塊的寬度與圖像寬度的比值;2. 2)對金字塔上一層圖像進(jìn)行分塊,分塊的比例系數(shù)取上一層比例系數(shù)的兩倍;2.3)重復(fù)步驟2. 2),直至到圖像金字塔最頂層。
3.根據(jù)權(quán)利要求1所述的一種魯棒的圖像中二維碼區(qū)域提取方法,其特征是所述步驟1. 2)中對圖像二值化處理的方法是利用最大類間方差算法,計算出圖像金字塔每層圖像中的每個分塊的分割閾值,然后使用閾值對相應(yīng)的分塊進(jìn)行二值化處理,從而得到每層的二值圖像;通過融合不同尺度下的二值圖像,得到最終的二值化結(jié)果;融合的實現(xiàn)方法是先將所有尺度下的二值圖像,使用內(nèi)插生成與原始圖像等分辨率的二值圖像,圖像對齊后按像素取中值作為所需的二值化結(jié)果。
4.根據(jù)權(quán)利要求1所述的一種魯棒的圖像中二維碼區(qū)域提取方法,其特征是所述步驟1. 5)中所述的連通體區(qū)域是相鄰候選塊之間的八連通區(qū)域,每個連通體區(qū)域作為一個候選二維碼區(qū)域,依據(jù)該區(qū)域外接矩形的長寬比規(guī)則,確定包含有二維碼的連通體區(qū)域。
全文摘要
一種魯棒的圖像中二維碼區(qū)域提取方法,首先,根據(jù)原始圖像構(gòu)建多尺度高斯圖像金字塔;其次,對圖像金字塔中的每一層進(jìn)行分塊;然后,分別二值化各個圖像塊,得到每層圖像的二值化結(jié)果;接著,融合多個尺度下的二值圖像,獲得圖像分割結(jié)果,最后以圖像塊為單位搜索二維碼區(qū)域,并通過連通體分析以及計算特征點集的凸包,提取出圖像中的二維碼區(qū)域。本發(fā)明能夠處理光照不均、背景干擾等常見的復(fù)雜情況,具有較好的魯棒性,由于使用多尺度下由粗到精的搜索策略,且方法簡便快捷,因此能夠兼顧處理的實時性和準(zhǔn)確性。
文檔編號G06K7/10GK102254144SQ20111019335
公開日2011年11月23日 申請日期2011年7月12日 優(yōu)先權(quán)日2011年7月12日
發(fā)明者唐鵬, 杜濤, 王俊峰, 陳懿, 高琳 申請人:四川大學(xué)