《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 大洋樣品照片中的條形碼定位技術(shù)研究
大洋樣品照片中的條形碼定位技術(shù)研究
2017年微型機(jī)與應(yīng)用第4期
蔡佳凌1,徐建良1,候成飛2
1. 中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100; 2. 國家海洋局第一海洋研究所,山東 青島 266061
摘要: 條形碼定位是條形碼識別任務(wù)中的難點(diǎn)與熱點(diǎn),也是提高條形碼識別率的重要基礎(chǔ)和保障?,F(xiàn)已有很多的算法用于條形碼定位,但是這些算法在大洋樣品照片中的應(yīng)用效果并不理想。大洋樣品照片中的條形碼具有相對面積小、背景復(fù)雜、光照不均、扭曲現(xiàn)象嚴(yán)重等實(shí)際情況,對條形碼的準(zhǔn)確定位產(chǎn)生了嚴(yán)重的干擾。針對該實(shí)際情況,提出了一種簡單實(shí)用且具有魯棒性的條形碼定位方法。該方法結(jié)合了基本形態(tài)學(xué)方法、傳統(tǒng)的條形碼邊緣梯度法以及條形碼的梯度能量特性進(jìn)行定位。實(shí)驗(yàn)結(jié)果顯示,該方法具有較好的定位效果,對于其他實(shí)際應(yīng)用也具有借鑒意義。
Abstract:
Key words :

  蔡佳凌1,徐建良1,候成飛2

  (1. 中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100;2. 國家海洋局第一海洋研究所,山東 青島 266061)

       摘要條形碼定位是條形碼識別任務(wù)中的難點(diǎn)與熱點(diǎn),也是提高條形碼識別率的重要基礎(chǔ)和保障?,F(xiàn)已有很多的算法用于條形碼定位,但是這些算法在大洋樣品照片中的應(yīng)用效果并不理想。大洋樣品照片中的條形碼具有相對面積小、背景復(fù)雜、光照不均、扭曲現(xiàn)象嚴(yán)重等實(shí)際情況,對條形碼的準(zhǔn)確定位產(chǎn)生了嚴(yán)重的干擾。針對該實(shí)際情況,提出了一種簡單實(shí)用且具有魯棒性的條形碼定位方法。該方法結(jié)合了基本形態(tài)學(xué)方法、傳統(tǒng)的條形碼邊緣梯度法以及條形碼的梯度能量特性進(jìn)行定位。實(shí)驗(yàn)結(jié)果顯示,該方法具有較好的定位效果,對于其他實(shí)際應(yīng)用也具有借鑒意義。

  關(guān)鍵詞:條形碼;定位;梯度能量;大洋樣品照片

  中圖分類號:TP391.4文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.04.005

  引用格式:蔡佳凌,徐建良,候成飛.大洋樣品照片中的條形碼定位技術(shù)研究[J].微型機(jī)與應(yīng)用,2017,36(4):14-17.

0引言

  大洋樣品照片是大洋樣品數(shù)據(jù)中非常重要的組成部分。隨著大洋考察的持續(xù)開展以及采樣設(shè)備的不斷更新,樣品的增長速度進(jìn)一步提高,而對于直觀體現(xiàn)樣品信息的樣品照片的管理難度也進(jìn)一步加大。為了更好地管理照片,在實(shí)際的樣品數(shù)據(jù)管理工作中以所拍攝樣品的樣品編碼重命名照片。樣品編碼有30位之長,人工命名照片顯然是一個耗費(fèi)時(shí)間精力、枯燥乏味且容易出錯的工作。而樣品是與包含其樣品編碼的條形碼一起拍攝的。因此,為了提高工作效率,減少人力資源的消耗,可以考慮使用程序自動識別照片中的條形碼來獲取樣品編碼并重命名照片。在條形碼識別的過程中,其準(zhǔn)確定位是提高條形碼識別率的重要保障,也是條形碼識別工作面臨的主要挑戰(zhàn)之一。本文重點(diǎn)介紹條形碼的定位,為后續(xù)識別工作的開展奠定基礎(chǔ)。

  隨著條形碼在生活與生產(chǎn)中的廣泛使用,條形碼自動識別技術(shù)成為了熱門研究領(lǐng)域。在過去的幾十年中,數(shù)字照片中條形碼的快速與準(zhǔn)確定位一直是研究的難點(diǎn)和熱點(diǎn)?,F(xiàn)已有很多的算法用于條形碼定位,如基本形態(tài)學(xué)處理法[14]線條檢測法[5]、圖像梯度法[2,67]、Gabor濾波器[8]和諧波分析[9]等。樣品照片中的條形碼因其相對面積小,背景復(fù)雜,光照不均勻,因而存在旋轉(zhuǎn)、扭曲現(xiàn)象嚴(yán)重等實(shí)際問題,為其準(zhǔn)確定位帶來了嚴(yán)重的挑戰(zhàn)。現(xiàn)有的算法在該應(yīng)用中的效果并不理想,因?yàn)檫@些算法主要針對使用手機(jī)進(jìn)行掃碼的情況。在該情況下,手機(jī)一般距離目標(biāo)條形碼較近,條形碼區(qū)域在掃描框中所占的面積大。而大洋樣品照片拍攝的目的是為了記錄樣品信息,并不是為了讀取條形碼。工作人員需要將整個樣品拍攝下來,且往往將鏡頭聚焦在樣品身上,因而條形碼相對樣品的面積較小,并容易造成模糊。除此之外,現(xiàn)有的算法大部分針對UPC、EAN13等長寬比較小的商品碼[36],可以很容易找到一條穿過整個條碼區(qū)域的掃描線。而大洋樣品采用Code93碼,且樣品編碼有30位之長,長寬比較大(如圖1所示)。當(dāng)條形碼彎曲變形時(shí),很難找到一條掃描線與所有條碼線條相交。

 

001.jpg

  除了上述的定位算法之外,還有一些現(xiàn)成的機(jī)器視覺算法包,如德國MVtec公司開發(fā)的Halcon提供了有效的條形碼定位算法,但是實(shí)驗(yàn)發(fā)現(xiàn)效果并不是非常理想[10]。

  本文對現(xiàn)有的算法進(jìn)行整合與改進(jìn),提出了一種在實(shí)際應(yīng)用中效果較好的定位方法。該方法利用基本的形態(tài)學(xué)操作、傳統(tǒng)的邊緣梯度特征、條形碼區(qū)域的能量特性以及照片實(shí)際特點(diǎn)進(jìn)行定位,簡單實(shí)用且魯棒性好。

1條形碼定位

  條形碼定位主要分為兩個步驟,首先確定條形碼候選區(qū)域,然后從候選區(qū)域中選擇目標(biāo)條碼區(qū)域。本文通過條形碼的紋理特征找出照片中的條形碼候選區(qū)域,然后結(jié)合條形碼區(qū)域的能量特性最終確定目標(biāo)條形碼區(qū)域。

  為了減少計(jì)算量以及方便后續(xù)的照片處理,首先對照片進(jìn)行灰度化和尺寸歸一化處理。

  1.1條形碼方向判定

  為了更好地反映樣品的尺寸,在拍攝照片時(shí)會將標(biāo)尺與樣品一起拍攝,且標(biāo)尺與條形碼基本保持平行,這是大洋樣品數(shù)據(jù)管理工作中的一個規(guī)范。標(biāo)尺是由多個灰白矩形交替連接而成的,矩形的數(shù)量隨樣品尺寸稍有不同,具有明顯的邊緣,如圖1所示。本文利用上述規(guī)范以及標(biāo)尺的邊緣特征確定條形碼的大致方向(后面的步驟將確定條形碼的精確方向),即水平或者垂直方向。

  為了確定條形碼的大致方向,本文借鑒了文獻(xiàn)[3]中的方法,使用開運(yùn)算來確定條形碼方向。但是與文獻(xiàn)[3]不同的是,由于大洋樣品照片中條形碼上方的站位號、文字以及復(fù)雜背景等都具有類似條形碼的紋理特征,因而無法簡單地根據(jù)開圖像的亮度準(zhǔn)確判斷條形碼區(qū)域及其方向。而標(biāo)尺中與條形碼平行的兩條邊長、直且明顯,在大洋樣品照片中是非常典型、突出的特征,如圖1所示。因此,本文利用標(biāo)尺明顯的邊緣特征,并結(jié)合0°、45°、90°和135°四個方向的開運(yùn)算操作來判斷條形碼方向,效果如圖2所示。經(jīng)過大量實(shí)驗(yàn)后,本文采用11×1的結(jié)構(gòu)元素,得到四個方向的開圖像。然后設(shè)定線條長度閾值,超過該閾值的線條數(shù)量最多的開圖像對應(yīng)方向的垂直方向即為條形碼方向。在本文中,線條長度閾值設(shè)為對應(yīng)圖像尺寸的1/4時(shí)效果佳。由圖3可知,90°開圖像中符合條件的線條數(shù)最多,與其垂直的方向,即水平方向即為條形碼的大致方向。

  

002.jpg

  1.2候選條形碼區(qū)域的選擇

  在得到了條形碼大致方向后,對原圖進(jìn)行相應(yīng)的旋轉(zhuǎn),使得條形碼處于基本水平狀態(tài)。由于條形碼具有典型的高水平梯度、低垂直梯度特點(diǎn)[7],因此將圖像的水平梯度絕對值減去垂直梯度絕對值就可以很好地消除大部分干擾區(qū)域,利于后續(xù)的處理,效果如圖3所示,條碼區(qū)域的亮度非常大。由于在1.1節(jié)中通過4個方向的開運(yùn)算來判斷條形碼方向,因此圖像旋轉(zhuǎn)后條形碼的偏轉(zhuǎn)角度在22.5°之內(nèi),上述求圖像梯度差的方法對傾斜角度在該范圍內(nèi)的條形碼都有較好的效果。對于1.1節(jié)和本節(jié)中的梯度圖,均采用Sobel[11]算子進(jìn)行邊緣信息提取。

  條形碼除了豐富的邊緣信息外,其周圍的空白區(qū)域也是條形碼的顯著特征。空白區(qū)域很好地將條形碼區(qū)域與樣品隔離開了,從圖3可以看到,條形碼周圍基本上是黑色區(qū)域。利用這個特點(diǎn),本文采用連通區(qū)域法來獲取條形碼候選區(qū)域。條形碼的線條之間具有一定的間隔,并且由于光照不均、模糊、扭曲等因素的干擾,梯度圖中同一線條的邊緣也不一定連續(xù),因此整個條形碼區(qū)域并不是一個連通區(qū)域。而平滑和膨脹操作可以很好地處理這個問題。

  圖像平滑消除了圖像中的細(xì)節(jié)部分,將臨近的邊緣線條連接起來。由于條形碼左右兩邊的空白區(qū)域較寬,且平行邊緣之間的距離也相對較大,而條形碼上方與下方的空白區(qū)域較窄,垂直方向間斷的邊緣線之間的距離較近,因此本文采用的平滑卷積核為11×3,可以將大部分的邊緣線條連接起來。

  但由于模糊因素的影響,部分邊緣信息丟失了,平滑操作并不能將間距較大的邊緣連通,因此采用膨脹操作來達(dá)到效果。膨脹需要在二值圖上進(jìn)行操作,因此需要先用Otsu[12]算法對平滑圖進(jìn)行二值化處理。根據(jù)實(shí)際情況,對該閾值進(jìn)行了適當(dāng)調(diào)整,盡可能還原圖像的邊緣信息。平滑和膨脹后的圖像如圖4所示。本文使用OpenCV中的cvFindContours()函數(shù)查找連通區(qū)域,并用cvMinAreaRect2函數(shù)畫出連通區(qū)域的最小外接矩形,得到候選條形碼區(qū)域。

003.jpg

  大洋樣品條形碼采用的碼制是Code93,每個樣品條形碼表示34個字符。經(jīng)過觀察發(fā)現(xiàn),條形碼的長寬比為9∶1左右。條形碼相對整張照片的比例也在1/1 000~1/50之間。根據(jù)上述兩個條件可以排除大量的非條形碼區(qū)域,剩余的條形碼候選區(qū)域有待進(jìn)一步篩選。

  1.3目標(biāo)條形碼確定

  條形碼區(qū)域具有豐富的邊緣信息,貫穿整個條形碼的掃描線上的各邊緣點(diǎn)的梯度方向在同一直線上,且相鄰邊緣上的點(diǎn)的梯度極性相反。文獻(xiàn)[6]利用這個特性來定位條形碼。但是對于模糊圖像,條形碼區(qū)域相鄰邊緣上的點(diǎn)的梯度方向并不一定反向,部分邊緣信息可能會丟失。且對于變形嚴(yán)重的情況,可能無法找到一條掃描線穿越整個條形碼,或者即使找到這樣一條掃描線,但各邊緣點(diǎn)的方向由于變形而發(fā)生了改變。因此,本文選取候選區(qū)域的中間部分區(qū)域,計(jì)算梯度方向與條形碼方向基本在同一直線上的邊緣點(diǎn)占總邊緣點(diǎn)的比例。理論上比例最大的最有可能是條形碼區(qū)域。其中,精確的條形碼方向是根據(jù)連通區(qū)域的最小外接矩形的旋轉(zhuǎn)角度來確定的。

  但是在實(shí)際的實(shí)驗(yàn)中發(fā)現(xiàn),當(dāng)條形碼變形嚴(yán)重時(shí),條形碼線條邊緣點(diǎn)的梯度方向與條形碼的整體方向有較大的偏差。并且條形碼上方的站位字符串、文字具有類似條形碼的紋理特征,標(biāo)尺的矩形區(qū)域由于光照的影響呈現(xiàn)類似條形碼邊緣的邊緣特性,這些區(qū)域會干擾條形碼的準(zhǔn)確定位。因此,本文結(jié)合水平邊緣點(diǎn)比例和區(qū)域梯度能量特征進(jìn)行判斷。站位字符串、文字以及標(biāo)尺矩形區(qū)域的梯度能量遠(yuǎn)小于條形碼區(qū)域。而對于其他梯度能量較大的候選區(qū)域,其水平邊緣點(diǎn)比例較小。因此,可以將邊緣點(diǎn)比例與區(qū)域梯度總能量相乘作為判斷依據(jù),乘積滿足一定的閾值,并且最大的即為目標(biāo)條形碼區(qū)域。其中閾值是通過對大量樣本的實(shí)驗(yàn)得到的一個經(jīng)驗(yàn)值,用于判斷定位的有效性,降低錯誤定位的可能性

2實(shí)驗(yàn)

  本文使用的實(shí)驗(yàn)數(shù)據(jù)是中國大洋樣品館多個航次的1 195張大洋樣品照片。這些照片樣本基本涵蓋了所有主要的大洋樣品種類的出庫與入庫情況,對于背景復(fù)雜、光照不均勻、條形碼相對面積小、模糊、變形嚴(yán)重等情況都有很好的體現(xiàn)。對于這些情況,本文算法具有很好的魯棒性。

  本文算法在Visual Studio環(huán)境下實(shí)現(xiàn)。圖5對比了本文、文獻(xiàn)[7]以及Haclon的條形碼定位算法。由圖5可知,對于條形碼質(zhì)量良好的照片,三個算法的定位準(zhǔn)確率相差并不是很大。文獻(xiàn)[7]中的定位算法成功定位了312張照片中的300張,Haclon定位算法成功定位了295張,而本文算法達(dá)到了100%的定位率。這種差距是由于條形碼背景較復(fù)雜,且存在文字、字符串等干擾區(qū)域,影響了條形碼的準(zhǔn)確定位。而對于條形碼質(zhì)量不佳的照片,三個算法有了明顯的性能差異。本文算法的定位率達(dá)到了98.41%,比文獻(xiàn)[7]中定位算法多定位了238張照片,比Halcon定位算法多定位了357張。其主要原因是光照不均、模糊失真等因素使得條形碼丟失了重要的細(xì)節(jié)信息,而干擾區(qū)域又呈現(xiàn)出與條形碼區(qū)域類似的特征,導(dǎo)致定位誤差增大。除此之外,Halcon定位算法無法很好地處理?xiàng)l形碼相對面積非常小的情況。由實(shí)驗(yàn)結(jié)果可知,對于大洋樣品照片這一實(shí)際應(yīng)用,本文算法具有較好的性能。

004.jpg

3結(jié)論

  本文主要研究條形碼定位算法在大洋樣品照片識別中的應(yīng)用,借鑒現(xiàn)有的定位算法,并結(jié)合照片實(shí)際特點(diǎn),提出了一種簡單但有效的定位算法。首先用開運(yùn)算判斷條形碼的大致方向。然后利用圖像梯度、平滑和膨脹,并根據(jù)Code93碼本身的尺寸特點(diǎn)找到條形碼候選區(qū)域。最后利用條形碼邊緣梯度方向一致性和能量集中的特點(diǎn)確定條形碼區(qū)域。實(shí)驗(yàn)結(jié)果表明,本文的算法能夠很好地定位樣品照片中的條形碼,為之后的識別工作奠定了基礎(chǔ)。此外,本文的定位算法對其他方面的應(yīng)用也具有借鑒意義。后續(xù)的工作將圍繞模糊條形碼的識別展開。

  參考文獻(xiàn)

 ?。?] CHAI D, HOCK F. Locating and decoding EAN13 barcodes from images captured by digital cameras[C]. Fifth International Conference on Information, Communications and Signal Processing, 2005:1595-1599.

 ?。?] Zhang Chunhui, Wang Jian, Han Shi, et al. Automatic realtime barcode localization in complex scenes[J]. IEEE International Conference on Image Proceeding, 2006:497500.

  [3] Juett J, Qi X. Barcode localization using a bottom hat filter[J].Nsf Research Experience for Undergraduates, 2015,19.

 ?。?] KATONA M, NYU'L L G. Efficient 1D and 2D barcode detection using mathematical morphology[C]. Mathematical Morphology and ITS Applications to Signal and Image Processing, International Symposium, 2013:464-475.

 ?。?] ADELMANN R. Mobile phone based interaction with everyday productson the go[C]. International Conference on Next Generation Mobile Applications, Services and Technologies. IEEE Computer Society, 2007:63-69.

  [6] TEKIN E, COUGHLAN J M. An algorithm enabling blind users to find and read barcodes[C]. IEEE Workshop on Applications of Computer Vision, Snowbind, UT, 2009:1-8.

 ?。?] GALLO O, MANDUCHI R. Reading 1D barcodes with mobile phones using deformable templates[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2010, 33(9):1834-1843.

 ?。?] KUTIYANAWALA A, QI X, TIAN J. A simple and efficient approach to barcode localization[C]. Procepding of International Conference on Information,Communications and Signal Processing, 2009,ICICS'09, 2009:1-5.

 ?。?] Wang Kongqiao, Zou Yanming, Wang Hao. 1D bar code reading on camera phones[J]. International Journal of Image & Graphics, 2011, 7(3):529-550.

 ?。?0] 公丕亮, 呂希勝. 基于Halcon的一維條碼識別技巧[J]. 計(jì)算機(jī)與現(xiàn)代化, 2013, 1(4):73-76.

 ?。?1] 李捷, 唐星科, 蔣延軍. 幾種邊緣檢測算法的比較研究[J]. 信息技術(shù), 2007(9):106-108.

 ?。?2] OTSU N. A threshold selection method from grayscale histograms[J]. IEEE Transaction on Smc, 1979(9):62-66.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。