


摘? 要:文章所研究的圖像分割過程主要分為預處理、粗定位、精定位三部分;預處理的目的主要是減少圖像信息量和提升圖像質量;粗定位主要分圖像分塊、候選區域標記、區域生長;候選區域標記通過Scharr邊緣檢測算子計算DM碼梯度方向和梯度幅值,通過梯度方向和梯度幅值進行統計直方圖計算,確定候選區域;區域生成將在候選區域進行種子生長,完成粗定位;精定位部分結合由外向里,由里向外進行掃描完成DM更精確的定位。
關鍵詞:二維碼;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年發明。每個DM符號是由規則排列的方形或點陣模塊構成的數據區組成。在較大的ECC200符號中,數據區由校正圖形分隔。數據區的四周由定位圖形包圍,定位圖形的四周則由空白區包圍。DM碼最大特點是尺寸小、儲存信息量大,其最小尺寸是目前所有條碼中最小的碼,所以其特別適用于小零件標識,或者直接印刷在實體上。DM碼采用了復雜的糾錯技術,使得其具有超強的抗干擾能力。當前許多手機零部件信息標識均使用DM碼。根據糾錯方式不同,DM碼可分為兩種:ECC200和ECC000-140。ECC200通過Reed-Solomon進行糾錯,ECC000-140具有五種不同等級的卷積糾錯功能,包括ECC000、ECC050、ECC080、ECC100和ECC140。ECC000-140只能用于一個單獨的部門同時控制產品和條碼符號的識別,并負責整個系統運行的情況,目前ECC200的應用更為廣泛。DM碼從模塊形狀上來說,分為方陣式和點陣式,一般以方陣式為主。在DM碼圖像的應用過程中,要使用圖像分割定位技術將圖像中的DM碼從整個圖像及背景中分割出來。
目前DM碼定位的方法主要有:利用條碼區域邊緣角度分布特征,評價圖像子區域是否為條碼區域;利用灰度信息矩形區域粗定位,利用灰度方差信息、邊緣和定位模式進行求精;將非連續的定位模式處理成為連續的,通過圖像銳化方法去除低頻和高頻成分的差異,使用移動窗口的方法平滑銳化圖像;查找類馬鞍點結構的方法;找出點集之間對應關系,計算坐標變換,使用坐標變換對實時圖像進行矯正。
筆者長期致力于圖像處理、人工智能等領域的算法研究及計算機軟件開發,本文研究的二維碼定位技術可有效應用于DM碼的實際需求中。本文通過利用梯度方向和梯度值信息定位對方陣性DM進行了研究,最終給出了另外一種實現方陣型DM定位的具體過程,并在實驗部分通過手機零部件生產線上的圖像集進行了實驗及驗證,本文方法的適用場景為:
(1)類型:支持連續和有間隔兩種格式;
(2)極性:支持Light-on-dark、Dark-on-light;
(3)旋轉和縮放:支持任意角度旋轉;
(4)投影畸變:支持投影畸變下的DM圖像定位。
1? 定位過程
1.1? 預處理
預處理的主要目的有兩個:
(1)減少圖像數據量;
(2)改善圖像質量,比如去噪、對比度增強或形態學等操作。
如果需要下采樣,則首先對搜索區域內圖像進行下采樣操作;如果圖像DM碼部分質量不好,還需進行預處理改善圖像質量,主要的預處理手段包括以下兩種:
(1)對比度增強:針對DM碼區域對比度較低導致候選區域無法標記的情況;
(2)形態學處理:針對DM碼模塊太小導致粗定位或掃描被濾除的情況。
1.2? 粗定位
粗定位在已處理圖像上進行。粗定位的目的是得到可能包含DM碼的區域。粗定位主要分為三個階段——圖像分塊、候選區域標記和區域增長。
1.2.1? 圖像分塊
分塊類型一共有四種,在原始分辨率策略下為30×30(常規)、15×15(小尺寸)和10×10(極小尺寸),在下采樣分辨率策略下為15×15(常規)、7×7(小尺寸)和5×5(極小尺寸)。對大部分情況下的圖像,分塊選擇下采樣策略的常規分塊就可以保證得到標記后的條碼區域。
1.2.2? 候選區域標記
候選區域標記要確定每一分塊是否可能為DM碼的一部分,因此用于評價每一分塊是否為候選區域的依據應體現DM碼特性。DM碼區域的邊緣信息豐富,并且呈現正交性,這里采用邊緣梯度幅值和邊緣方向角度信息判斷每一分塊是否可能屬于DM碼區域。算法中采用3×3大小的Scharr邊緣檢測算子,計算整幅圖像的邊緣梯度幅值和邊緣方向角度,并根據邊緣方向角度統計邊緣方向角度直方圖,確定是否有滿足條件的主方向,進而確定該區域是否為候選條碼區域。
因為DM碼很多情況下是蝕刻在金屬表面,金屬表面的紋理會對DM碼的邊緣信息有所影響,導致方形DM碼計算出的主方向并不是理想的正交情況。因此,這給出方陣DM碼候選區域標記規則。
DM碼候選區域標記主要包括Scharr邊緣檢測、濾除低幅值邊緣點、統計邊緣方向角度直方圖、角度峰值檢測、確定候選條碼區域。
(1)Scharr邊緣檢測:采用3×3大小的Scharr算子對圖像進行邊緣檢測,得到邊緣梯度幅值和邊緣方向角度,Scharr的內核大小為3,其內核為:
梯度計算:在兩個方向求導,假設被作用圖像為I。
水平變化:將I與一個奇數大小的內核Gx進行卷積。Gx的計算結果為:
垂直變化:將I與一個奇數大小的內核Gy進行卷積。Gy的計算結果為:
在圖像的每一像素上,結合以上兩個結果求出近似梯度:
梯度的方向角為:a(x,y)=arctan();
(2)統計角度直方圖。為了濾除分塊中只有極少數峰值點的情況,在統計邊緣方向角度直方圖之前,首先考慮分塊內峰值點個數是否達到閾值,若不滿足要求,認為這個區域峰值點數太少,不屬于條碼區域,否則繼續處理;
(3)角度峰值檢測。分析直方圖分布是否有明顯的峰值,并且峰值是否有近似平行(同向)或正交(垂直)性。對峰值閾值的選取原則為保證真正的峰值不被濾掉,因為上一步峰值點數閾值根據不同模塊類型、分塊類型和分辨率搜索策略取值不同,這里峰值閾值也需做相應調整。考慮分塊內兩段邊緣的情況,這里峰值閾值一般不大于對應參數下的峰值點數閾值;
(4)確定候選條碼區域。對所有滿足峰值閾值的角度按峰值遞減排序,峰值最大的角度為該分塊主方向的可能性大,判斷所有峰值主角度是否滿足平行或正交性,對滿足條件的峰值角度進行合并,統計其峰值和,若達到一定條件(峰值和閾值),進而認為該分塊為候選條碼區域。輸入圖1DM碼樣例原圖,即可得圖2候選區域標記效果圖。
1.2.3? 區域增長
區域生長流程圖如圖3所示。
區域增長的目的是在標記的候選條碼區域中,將具有相似特征的分塊生長到一起,得到完整可能包含DM碼的區域。基于DM碼整個區域的強方向性和其邊界的靜音區,我們采用的兩個生長準則為:相鄰分塊主方向一致性或正交性和相鄰分塊的容忍對比度變化。
從候選條碼區域中選取一個分塊(分塊行列隔行隔列選取)作為種子區域,考慮其8鄰域分塊是否滿足生長準則,若滿足則將鄰域分塊加入當前生長區域,并以此鄰域分塊為中心,繼續判斷其8鄰域分塊是否滿足生長準則,直至都不滿足準則或者圖像遍歷完,此次生長停止。若還有其他分塊未遍歷,則以之作為新的種子進行區域生長得到新的區域。
具體生長準則為:
(1)相鄰分塊與種子分塊的主方向同向或正交方向差異不超過30度(考慮DM碼有傾斜和畸變的情況,DM碼兩個主方向可能不是正交,因此將主方向角度差距設置為30度,可適應DM碼的大部分畸變情況);
(2)相鄰分塊的對比度差異不超過10個灰度(既容忍DM碼內部有一定的對比度漸變,也能在DM碼周圍對比度有明顯差異時避免生長過多無效分塊)。
區域增長后效果圖如圖4所示。
1.3? 精定位
圖像掃描分為以下步驟:仿射采樣;二值化;由外向里濾除近似全白或全黑的行或列和有效像素變化次數較少的行或列;由里向外濾除有效像素變化較少的行或列;濾除具有兩段連續的靜音區但極性相反的外側區域(L邊的干擾)。
1.3.1? 仿射采樣與二值化
為了保證仿射采樣后子圖包含完整的DM碼,將投影得到的仿射矩形區域長寬各伸展至原來的1.1倍。
為了便于精定位,先對已處理圖像進行仿射采樣并二值化處理,作為掃描部分的輸入圖像,其中圖像寬度為Width,圖像高度為Height。
因為對比度變化圖像因DM碼區域灰度變化導致使用全局閾值效果很差,因此二值化有兩種策略:對于DM碼部分,有對比度變化時使用局部自適應閾值,否則使用全局閾值。
1.3.2? 濾除具有兩段連續的靜音區但極性相反的外側區域(L邊干擾)
首先找到區域內黑白像素變化最大的行和列。然后再從變化最大的行或列開始,分別向上下或左右掃描,直到行或列中黑白像素的突變次數很小,則統計當前行或列中像素的灰度值累計和,以此判斷當前行或列的極性。
對于得到的DM碼區域,有可能周圍有多余的靜音區,因此再進行一次濾除全黑全白的行和列,得到最終掃描的DM碼四條邊界。對確定的上下左右4條邊界兩兩求交點,即可確定DM碼區域的位置。
精定位后效果圖如圖5所示。
2? 實驗分析
硬件測試機配置為處理器:Inter(R)Core(TM)i7-8550U CPU@1.80 GHz 1.99 GHz,內存(RAM)為8.00 GB,系統類型為64位操作系統,基于x64的處理器。
將現有一千余張測試圖像分成多個圖像集對文中算法實現進行了測試,以兩種數據集的測試結果為例:
(1)Light-on-dark:圖像原圖如圖6(a)所示,定位結果如圖6(b)所示,用時為5 ms;
(2)Dark-on-light:圖像原圖如圖7(a)所示,定位結果如圖7(b)所示,用時為5 ms。
實驗驗證本文算法實現符合預期對各種圖像的定位,定位用時基本可以控制在10 ms內,相較于其他算法的實現方案,文中所實現算法在定位精度高的情況下也能較快定位,可應用在大多DM碼定位的實際環境中。對于圖像質量極其差的情況,可在進行預處理后,再用此算法定位
3? 結? 論
針對DM碼實際使用過程中的定位問題,利用方陣式DM碼明顯的梯度幅值和梯度方向的統計直方圖性質,實現算法并通過實驗驗證,能夠較好較快地應用在方陣式DM碼的定位過程中。本文在計算梯度幅值和梯度方向時采用了Scharr算法,將得到的梯度方向和梯度幅值進行直方圖統計后,再經過類似于種子填充算法的區域增長策略得到了方陣式DM碼的大致位置,最后再通過掃描算法實現了方陣式DM碼的精確定位。但在實際應用時候,本文提及方法尚存在部分不足:
(1)在DM碼靜音區周圍有明顯干擾時,DM碼靜音區的大小需要大于一個模塊長度;
(2)當DM碼與背景對比度較低時,需要進行預處理后才能進行定位;
(3)尚沒有兼容點陣式DM碼的定位。
這三個方面也是本人在后續優化過程中優先考慮的方向。
參考文獻:
[1] 張寧.基于攝像方式的二維條碼識別算法的研究 [D].南京:南京理工大學,2013.
[2] 于英政.QR二維碼相關技術的研究 [D].北京:北京交通大學,2014.
[3] 劉美,薛新松,劉廣文,等.對比度增強的彩色圖像灰度化算法 [J].長春理工大學學報(自然科學版),2018,41(5):70-74.
[4] 王娟,王萍.直接零件標志條碼區域定位算法 [J].計算機輔助設計與圖形學學報,2014,26(7):1159-1166.
[5] 王偉,何衛平,雷蕾,等.污染及多視角下DataMatrix碼精確定位 [J].計算機輔助設計與圖形學學報,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—),男,漢族,甘肅天水人,高級算法工程師,本科,研究方向:圖像識別、人工智能、計算機應用。