摘? 要:文章所研究的圖像分割過程主要分為預(yù)處理、粗定位、精定位三部分;預(yù)處理的目的主要是減少圖像信息量和提升圖像質(zhì)量;粗定位主要分圖像分塊、候選區(qū)域標記、區(qū)域生長;候選區(qū)域標記通過Scharr邊緣檢測算子計算DM碼梯度方向和梯度幅值,通過梯度方向和梯度幅值進行統(tǒng)計直方圖計算,確定候選區(qū)域;區(qū)域生成將在候選區(qū)域進行種子生長,完成粗定位;精定位部分結(jié)合由外向里,由里向外進行掃描完成DM更精確的定位。
關(guān)鍵詞:二維碼;DM碼;圖像分割
中圖分類號:TP391.41? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)22-0091-04
Research on Image Segmentation Technology Applied to
Square Matrix DM Code Location
KANG Sanshun
(Beijing Hanyuan Pharmaceutical Technology Co.,Ltd.,Beijing? 100176,China)
Abstract:The image segmentation process studied in this paper is mainly divided into three parts:preprocessing,coarse positioning and fine positioning;the main purpose of preprocessing is to reduce the amount of image information and improve the image quality;the coarse positioning is mainly divided into image segmentation,candidate region labeling and region growing;the candidate region labeling calculated the DM code gradient direction and gradient amplitude by Scharr edge detection operator,and the candidate region is determined by statistical histogram calculation of gradient direction and gradient amplitude;in the region generation,seed growth will be carried out in the candidate region to complete the coarse positioning;in the fine positioning part,scanning from the outside in and from the inside out will be combined to complete the more accurate positioning of DM.
Keywords:QR code;DM code;image segmentation
0? 引? 言
Data Matrix(DM)碼是一種矩陣式二維條碼,是由美國國際資料公司(International Data Matrix)于1989年發(fā)明。每個DM符號是由規(guī)則排列的方形或點陣模塊構(gòu)成的數(shù)據(jù)區(qū)組成。在較大的ECC200符號中,數(shù)據(jù)區(qū)由校正圖形分隔。數(shù)據(jù)區(qū)的四周由定位圖形包圍,定位圖形的四周則由空白區(qū)包圍。DM碼最大特點是尺寸小、儲存信息量大,其最小尺寸是目前所有條碼中最小的碼,所以其特別適用于小零件標識,或者直接印刷在實體上。DM碼采用了復(fù)雜的糾錯技術(shù),使得其具有超強的抗干擾能力。當前許多手機零部件信息標識均使用DM碼。根據(jù)糾錯方式不同,DM碼可分為兩種:ECC200和ECC000-140。ECC200通過Reed-Solomon進行糾錯,ECC000-140具有五種不同等級的卷積糾錯功能,包括ECC000、ECC050、ECC080、ECC100和ECC140。ECC000-140只能用于一個單獨的部門同時控制產(chǎn)品和條碼符號的識別,并負責整個系統(tǒng)運行的情況,目前ECC200的應(yīng)用更為廣泛。DM碼從模塊形狀上來說,分為方陣式和點陣式,一般以方陣式為主。在DM碼圖像的應(yīng)用過程中,要使用圖像分割定位技術(shù)將圖像中的DM碼從整個圖像及背景中分割出來。
目前DM碼定位的方法主要有:利用條碼區(qū)域邊緣角度分布特征,評價圖像子區(qū)域是否為條碼區(qū)域;利用灰度信息矩形區(qū)域粗定位,利用灰度方差信息、邊緣和定位模式進行求精;將非連續(xù)的定位模式處理成為連續(xù)的,通過圖像銳化方法去除低頻和高頻成分的差異,使用移動窗口的方法平滑銳化圖像;查找類馬鞍點結(jié)構(gòu)的方法;找出點集之間對應(yīng)關(guān)系,計算坐標變換,使用坐標變換對實時圖像進行矯正。
筆者長期致力于圖像處理、人工智能等領(lǐng)域的算法研究及計算機軟件開發(fā),本文研究的二維碼定位技術(shù)可有效應(yīng)用于DM碼的實際需求中。本文通過利用梯度方向和梯度值信息定位對方陣性DM進行了研究,最終給出了另外一種實現(xiàn)方陣型DM定位的具體過程,并在實驗部分通過手機零部件生產(chǎn)線上的圖像集進行了實驗及驗證,本文方法的適用場景為:
(1)類型:支持連續(xù)和有間隔兩種格式;
(2)極性:支持Light-on-dark、Dark-on-light;
(3)旋轉(zhuǎn)和縮放:支持任意角度旋轉(zhuǎn);
(4)投影畸變:支持投影畸變下的DM圖像定位。
1? 定位過程
1.1? 預(yù)處理
預(yù)處理的主要目的有兩個:
(1)減少圖像數(shù)據(jù)量;
(2)改善圖像質(zhì)量,比如去噪、對比度增強或形態(tài)學(xué)等操作。
如果需要下采樣,則首先對搜索區(qū)域內(nèi)圖像進行下采樣操作;如果圖像DM碼部分質(zhì)量不好,還需進行預(yù)處理改善圖像質(zhì)量,主要的預(yù)處理手段包括以下兩種:
(1)對比度增強:針對DM碼區(qū)域?qū)Ρ榷容^低導(dǎo)致候選區(qū)域無法標記的情況;
(2)形態(tài)學(xué)處理:針對DM碼模塊太小導(dǎo)致粗定位或掃描被濾除的情況。
1.2? 粗定位
粗定位在已處理圖像上進行。粗定位的目的是得到可能包含DM碼的區(qū)域。粗定位主要分為三個階段——圖像分塊、候選區(qū)域標記和區(qū)域增長。
1.2.1? 圖像分塊
分塊類型一共有四種,在原始分辨率策略下為30×30(常規(guī))、15×15(小尺寸)和10×10(極小尺寸),在下采樣分辨率策略下為15×15(常規(guī))、7×7(小尺寸)和5×5(極小尺寸)。對大部分情況下的圖像,分塊選擇下采樣策略的常規(guī)分塊就可以保證得到標記后的條碼區(qū)域。
1.2.2? 候選區(qū)域標記
候選區(qū)域標記要確定每一分塊是否可能為DM碼的一部分,因此用于評價每一分塊是否為候選區(qū)域的依據(jù)應(yīng)體現(xiàn)DM碼特性。DM碼區(qū)域的邊緣信息豐富,并且呈現(xiàn)正交性,這里采用邊緣梯度幅值和邊緣方向角度信息判斷每一分塊是否可能屬于DM碼區(qū)域。算法中采用3×3大小的Scharr邊緣檢測算子,計算整幅圖像的邊緣梯度幅值和邊緣方向角度,并根據(jù)邊緣方向角度統(tǒng)計邊緣方向角度直方圖,確定是否有滿足條件的主方向,進而確定該區(qū)域是否為候選條碼區(qū)域。
因為DM碼很多情況下是蝕刻在金屬表面,金屬表面的紋理會對DM碼的邊緣信息有所影響,導(dǎo)致方形DM碼計算出的主方向并不是理想的正交情況。因此,這給出方陣DM碼候選區(qū)域標記規(guī)則。
DM碼候選區(qū)域標記主要包括Scharr邊緣檢測、濾除低幅值邊緣點、統(tǒng)計邊緣方向角度直方圖、角度峰值檢測、確定候選條碼區(qū)域。
(1)Scharr邊緣檢測:采用3×3大小的Scharr算子對圖像進行邊緣檢測,得到邊緣梯度幅值和邊緣方向角度,Scharr的內(nèi)核大小為3,其內(nèi)核為:
梯度計算:在兩個方向求導(dǎo),假設(shè)被作用圖像為I。
水平變化:將I與一個奇數(shù)大小的內(nèi)核Gx進行卷積。Gx的計算結(jié)果為:
垂直變化:將I與一個奇數(shù)大小的內(nèi)核Gy進行卷積。Gy的計算結(jié)果為:
在圖像的每一像素上,結(jié)合以上兩個結(jié)果求出近似梯度:
梯度的方向角為:a(x,y)=arctan();
(2)統(tǒng)計角度直方圖。為了濾除分塊中只有極少數(shù)峰值點的情況,在統(tǒng)計邊緣方向角度直方圖之前,首先考慮分塊內(nèi)峰值點個數(shù)是否達到閾值,若不滿足要求,認為這個區(qū)域峰值點數(shù)太少,不屬于條碼區(qū)域,否則繼續(xù)處理;
(3)角度峰值檢測。分析直方圖分布是否有明顯的峰值,并且峰值是否有近似平行(同向)或正交(垂直)性。對峰值閾值的選取原則為保證真正的峰值不被濾掉,因為上一步峰值點數(shù)閾值根據(jù)不同模塊類型、分塊類型和分辨率搜索策略取值不同,這里峰值閾值也需做相應(yīng)調(diào)整??紤]分塊內(nèi)兩段邊緣的情況,這里峰值閾值一般不大于對應(yīng)參數(shù)下的峰值點數(shù)閾值;
(4)確定候選條碼區(qū)域。對所有滿足峰值閾值的角度按峰值遞減排序,峰值最大的角度為該分塊主方向的可能性大,判斷所有峰值主角度是否滿足平行或正交性,對滿足條件的峰值角度進行合并,統(tǒng)計其峰值和,若達到一定條件(峰值和閾值),進而認為該分塊為候選條碼區(qū)域。輸入圖1DM碼樣例原圖,即可得圖2候選區(qū)域標記效果圖。
1.2.3? 區(qū)域增長
區(qū)域生長流程圖如圖3所示。
區(qū)域增長的目的是在標記的候選條碼區(qū)域中,將具有相似特征的分塊生長到一起,得到完整可能包含DM碼的區(qū)域?;贒M碼整個區(qū)域的強方向性和其邊界的靜音區(qū),我們采用的兩個生長準則為:相鄰分塊主方向一致性或正交性和相鄰分塊的容忍對比度變化。
從候選條碼區(qū)域中選取一個分塊(分塊行列隔行隔列選取)作為種子區(qū)域,考慮其8鄰域分塊是否滿足生長準則,若滿足則將鄰域分塊加入當前生長區(qū)域,并以此鄰域分塊為中心,繼續(xù)判斷其8鄰域分塊是否滿足生長準則,直至都不滿足準則或者圖像遍歷完,此次生長停止。若還有其他分塊未遍歷,則以之作為新的種子進行區(qū)域生長得到新的區(qū)域。
具體生長準則為:
(1)相鄰分塊與種子分塊的主方向同向或正交方向差異不超過30度(考慮DM碼有傾斜和畸變的情況,DM碼兩個主方向可能不是正交,因此將主方向角度差距設(shè)置為30度,可適應(yīng)DM碼的大部分畸變情況);
(2)相鄰分塊的對比度差異不超過10個灰度(既容忍DM碼內(nèi)部有一定的對比度漸變,也能在DM碼周圍對比度有明顯差異時避免生長過多無效分塊)。
區(qū)域增長后效果圖如圖4所示。
1.3? 精定位
圖像掃描分為以下步驟:仿射采樣;二值化;由外向里濾除近似全白或全黑的行或列和有效像素變化次數(shù)較少的行或列;由里向外濾除有效像素變化較少的行或列;濾除具有兩段連續(xù)的靜音區(qū)但極性相反的外側(cè)區(qū)域(L邊的干擾)。
1.3.1? 仿射采樣與二值化
為了保證仿射采樣后子圖包含完整的DM碼,將投影得到的仿射矩形區(qū)域長寬各伸展至原來的1.1倍。
為了便于精定位,先對已處理圖像進行仿射采樣并二值化處理,作為掃描部分的輸入圖像,其中圖像寬度為Width,圖像高度為Height。
因為對比度變化圖像因DM碼區(qū)域灰度變化導(dǎo)致使用全局閾值效果很差,因此二值化有兩種策略:對于DM碼部分,有對比度變化時使用局部自適應(yīng)閾值,否則使用全局閾值。
1.3.2? 濾除具有兩段連續(xù)的靜音區(qū)但極性相反的外側(cè)區(qū)域(L邊干擾)
首先找到區(qū)域內(nèi)黑白像素變化最大的行和列。然后再從變化最大的行或列開始,分別向上下或左右掃描,直到行或列中黑白像素的突變次數(shù)很小,則統(tǒng)計當前行或列中像素的灰度值累計和,以此判斷當前行或列的極性。
對于得到的DM碼區(qū)域,有可能周圍有多余的靜音區(qū),因此再進行一次濾除全黑全白的行和列,得到最終掃描的DM碼四條邊界。對確定的上下左右4條邊界兩兩求交點,即可確定DM碼區(qū)域的位置。
精定位后效果圖如圖5所示。
2? 實驗分析
硬件測試機配置為處理器:Inter(R)Core(TM)i7-8550U CPU@1.80 GHz 1.99 GHz,內(nèi)存(RAM)為8.00 GB,系統(tǒng)類型為64位操作系統(tǒng),基于x64的處理器。
將現(xiàn)有一千余張測試圖像分成多個圖像集對文中算法實現(xiàn)進行了測試,以兩種數(shù)據(jù)集的測試結(jié)果為例:
(1)Light-on-dark:圖像原圖如圖6(a)所示,定位結(jié)果如圖6(b)所示,用時為5 ms;
(2)Dark-on-light:圖像原圖如圖7(a)所示,定位結(jié)果如圖7(b)所示,用時為5 ms。
實驗驗證本文算法實現(xiàn)符合預(yù)期對各種圖像的定位,定位用時基本可以控制在10 ms內(nèi),相較于其他算法的實現(xiàn)方案,文中所實現(xiàn)算法在定位精度高的情況下也能較快定位,可應(yīng)用在大多DM碼定位的實際環(huán)境中。對于圖像質(zhì)量極其差的情況,可在進行預(yù)處理后,再用此算法定位
3? 結(jié)? 論
針對DM碼實際使用過程中的定位問題,利用方陣式DM碼明顯的梯度幅值和梯度方向的統(tǒng)計直方圖性質(zhì),實現(xiàn)算法并通過實驗驗證,能夠較好較快地應(yīng)用在方陣式DM碼的定位過程中。本文在計算梯度幅值和梯度方向時采用了Scharr算法,將得到的梯度方向和梯度幅值進行直方圖統(tǒng)計后,再經(jīng)過類似于種子填充算法的區(qū)域增長策略得到了方陣式DM碼的大致位置,最后再通過掃描算法實現(xiàn)了方陣式DM碼的精確定位。但在實際應(yīng)用時候,本文提及方法尚存在部分不足:
(1)在DM碼靜音區(qū)周圍有明顯干擾時,DM碼靜音區(qū)的大小需要大于一個模塊長度;
(2)當DM碼與背景對比度較低時,需要進行預(yù)處理后才能進行定位;
(3)尚沒有兼容點陣式DM碼的定位。
這三個方面也是本人在后續(xù)優(yōu)化過程中優(yōu)先考慮的方向。
參考文獻:
[1] 張寧.基于攝像方式的二維條碼識別算法的研究 [D].南京:南京理工大學(xué),2013.
[2] 于英政.QR二維碼相關(guān)技術(shù)的研究 [D].北京:北京交通大學(xué),2014.
[3] 劉美,薛新松,劉廣文,等.對比度增強的彩色圖像灰度化算法 [J].長春理工大學(xué)學(xué)報(自然科學(xué)版),2018,41(5):70-74.
[4] 王娟,王萍.直接零件標志條碼區(qū)域定位算法 [J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2014,26(7):1159-1166.
[5] 王偉,何衛(wèi)平,雷蕾,等.污染及多視角下DataMatrix碼精確定位 [J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2013,25(9):1345-1353.
[6] ZHANG C N,MA L,MAO D. A 2D Barcode Recognition System Based on Image Processing [C]//The 2011 International Conference on Electric and Electronics(EEIC 2011).Springer,2011:670-675.
作者簡介:康三順(1986.02—),男,漢族,甘肅天水人,高級算法工程師,本科,研究方向:圖像識別、人工智能、計算機應(yīng)用。