蔡佳凌1,,徐建良1,候成飛2
?。?. 中國(guó)海洋大學(xué) 信息科學(xué)與工程學(xué)院,,山東 青島 266100;2. 國(guó)家海洋局第一海洋研究所,,山東 青島 266061)
摘要:條形碼定位是條形碼識(shí)別任務(wù)中的難點(diǎn)與熱點(diǎn),,也是提高條形碼識(shí)別率的重要基礎(chǔ)和保障。現(xiàn)已有很多的算法用于條形碼定位,,但是這些算法在大洋樣品照片中的應(yīng)用效果并不理想,。大洋樣品照片中的條形碼具有相對(duì)面積小、背景復(fù)雜,、光照不均,、扭曲現(xiàn)象嚴(yán)重等實(shí)際情況,對(duì)條形碼的準(zhǔn)確定位產(chǎn)生了嚴(yán)重的干擾,。針對(duì)該實(shí)際情況,,提出了一種簡(jiǎn)單實(shí)用且具有魯棒性的條形碼定位方法。該方法結(jié)合了基本形態(tài)學(xué)方法,、傳統(tǒng)的條形碼邊緣梯度法以及條形碼的梯度能量特性進(jìn)行定位,。實(shí)驗(yàn)結(jié)果顯示,該方法具有較好的定位效果,,對(duì)于其他實(shí)際應(yīng)用也具有借鑒意義,。
關(guān)鍵詞:條形碼;定位,;梯度能量,;大洋樣品照片
中圖分類(lèi)號(hào):TP391.4文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.04.005
引用格式:蔡佳凌,徐建良,,候成飛.大洋樣品照片中的條形碼定位技術(shù)研究[J].微型機(jī)與應(yīng)用,,2017,36(4):14-17.
0引言
大洋樣品照片是大洋樣品數(shù)據(jù)中非常重要的組成部分,。隨著大洋考察的持續(xù)開(kāi)展以及采樣設(shè)備的不斷更新,樣品的增長(zhǎng)速度進(jìn)一步提高,,而對(duì)于直觀(guān)體現(xiàn)樣品信息的樣品照片的管理難度也進(jìn)一步加大,。為了更好地管理照片,在實(shí)際的樣品數(shù)據(jù)管理工作中以所拍攝樣品的樣品編碼重命名照片,。樣品編碼有30位之長(zhǎng),,人工命名照片顯然是一個(gè)耗費(fèi)時(shí)間精力、枯燥乏味且容易出錯(cuò)的工作,。而樣品是與包含其樣品編碼的條形碼一起拍攝的,。因此,,為了提高工作效率,,減少人力資源的消耗,可以考慮使用程序自動(dòng)識(shí)別照片中的條形碼來(lái)獲取樣品編碼并重命名照片,。在條形碼識(shí)別的過(guò)程中,,其準(zhǔn)確定位是提高條形碼識(shí)別率的重要保障,也是條形碼識(shí)別工作面臨的主要挑戰(zhàn)之一,。本文重點(diǎn)介紹條形碼的定位,,為后續(xù)識(shí)別工作的開(kāi)展奠定基礎(chǔ)。
隨著條形碼在生活與生產(chǎn)中的廣泛使用,,條形碼自動(dòng)識(shí)別技術(shù)成為了熱門(mén)研究領(lǐng)域,。在過(guò)去的幾十年中,數(shù)字照片中條形碼的快速與準(zhǔn)確定位一直是研究的難點(diǎn)和熱點(diǎn)?,F(xiàn)已有很多的算法用于條形碼定位,,如基本形態(tài)學(xué)處理法[14]線(xiàn)條檢測(cè)法[5]、圖像梯度法[2,,67],、Gabor濾波器[8]和諧波分析[9]等。樣品照片中的條形碼因其相對(duì)面積小,,背景復(fù)雜,,光照不均勻,因而存在旋轉(zhuǎn),、扭曲現(xiàn)象嚴(yán)重等實(shí)際問(wèn)題,,為其準(zhǔn)確定位帶來(lái)了嚴(yán)重的挑戰(zhàn)。現(xiàn)有的算法在該應(yīng)用中的效果并不理想,,因?yàn)檫@些算法主要針對(duì)使用手機(jī)進(jìn)行掃碼的情況,。在該情況下,手機(jī)一般距離目標(biāo)條形碼較近,,條形碼區(qū)域在掃描框中所占的面積大,。而大洋樣品照片拍攝的目的是為了記錄樣品信息,,并不是為了讀取條形碼。工作人員需要將整個(gè)樣品拍攝下來(lái),,且往往將鏡頭聚焦在樣品身上,,因而條形碼相對(duì)樣品的面積較小,并容易造成模糊,。除此之外,,現(xiàn)有的算法大部分針對(duì)UPC、EAN13等長(zhǎng)寬比較小的商品碼[36],,可以很容易找到一條穿過(guò)整個(gè)條碼區(qū)域的掃描線(xiàn),。而大洋樣品采用Code93碼,且樣品編碼有30位之長(zhǎng),,長(zhǎng)寬比較大(如圖1所示),。當(dāng)條形碼彎曲變形時(shí),很難找到一條掃描線(xiàn)與所有條碼線(xiàn)條相交,。
除了上述的定位算法之外,,還有一些現(xiàn)成的機(jī)器視覺(jué)算法包,如德國(guó)MVtec公司開(kāi)發(fā)的Halcon提供了有效的條形碼定位算法,,但是實(shí)驗(yàn)發(fā)現(xiàn)效果并不是非常理想[10],。
本文對(duì)現(xiàn)有的算法進(jìn)行整合與改進(jìn),提出了一種在實(shí)際應(yīng)用中效果較好的定位方法,。該方法利用基本的形態(tài)學(xué)操作,、傳統(tǒng)的邊緣梯度特征、條形碼區(qū)域的能量特性以及照片實(shí)際特點(diǎn)進(jìn)行定位,,簡(jiǎn)單實(shí)用且魯棒性好,。
1條形碼定位
條形碼定位主要分為兩個(gè)步驟,首先確定條形碼候選區(qū)域,,然后從候選區(qū)域中選擇目標(biāo)條碼區(qū)域,。本文通過(guò)條形碼的紋理特征找出照片中的條形碼候選區(qū)域,然后結(jié)合條形碼區(qū)域的能量特性最終確定目標(biāo)條形碼區(qū)域,。
為了減少計(jì)算量以及方便后續(xù)的照片處理,,首先對(duì)照片進(jìn)行灰度化和尺寸歸一化處理。
1.1條形碼方向判定
為了更好地反映樣品的尺寸,,在拍攝照片時(shí)會(huì)將標(biāo)尺與樣品一起拍攝,,且標(biāo)尺與條形碼基本保持平行,這是大洋樣品數(shù)據(jù)管理工作中的一個(gè)規(guī)范,。標(biāo)尺是由多個(gè)灰白矩形交替連接而成的,,矩形的數(shù)量隨樣品尺寸稍有不同,具有明顯的邊緣,如圖1所示,。本文利用上述規(guī)范以及標(biāo)尺的邊緣特征確定條形碼的大致方向(后面的步驟將確定條形碼的精確方向),,即水平或者垂直方向。
為了確定條形碼的大致方向,,本文借鑒了文獻(xiàn)[3]中的方法,,使用開(kāi)運(yùn)算來(lái)確定條形碼方向。但是與文獻(xiàn)[3]不同的是,,由于大洋樣品照片中條形碼上方的站位號(hào),、文字以及復(fù)雜背景等都具有類(lèi)似條形碼的紋理特征,因而無(wú)法簡(jiǎn)單地根據(jù)開(kāi)圖像的亮度準(zhǔn)確判斷條形碼區(qū)域及其方向,。而標(biāo)尺中與條形碼平行的兩條邊長(zhǎng),、直且明顯,在大洋樣品照片中是非常典型,、突出的特征,,如圖1所示。因此,,本文利用標(biāo)尺明顯的邊緣特征,,并結(jié)合0°、45°,、90°和135°四個(gè)方向的開(kāi)運(yùn)算操作來(lái)判斷條形碼方向,效果如圖2所示,。經(jīng)過(guò)大量實(shí)驗(yàn)后,,本文采用11×1的結(jié)構(gòu)元素,得到四個(gè)方向的開(kāi)圖像,。然后設(shè)定線(xiàn)條長(zhǎng)度閾值,,超過(guò)該閾值的線(xiàn)條數(shù)量最多的開(kāi)圖像對(duì)應(yīng)方向的垂直方向即為條形碼方向。在本文中,,線(xiàn)條長(zhǎng)度閾值設(shè)為對(duì)應(yīng)圖像尺寸的1/4時(shí)效果佳,。由圖3可知,90°開(kāi)圖像中符合條件的線(xiàn)條數(shù)最多,,與其垂直的方向,,即水平方向即為條形碼的大致方向。
1.2候選條形碼區(qū)域的選擇
在得到了條形碼大致方向后,,對(duì)原圖進(jìn)行相應(yīng)的旋轉(zhuǎn),,使得條形碼處于基本水平狀態(tài)。由于條形碼具有典型的高水平梯度,、低垂直梯度特點(diǎn)[7],,因此將圖像的水平梯度絕對(duì)值減去垂直梯度絕對(duì)值就可以很好地消除大部分干擾區(qū)域,利于后續(xù)的處理,效果如圖3所示,,條碼區(qū)域的亮度非常大,。由于在1.1節(jié)中通過(guò)4個(gè)方向的開(kāi)運(yùn)算來(lái)判斷條形碼方向,因此圖像旋轉(zhuǎn)后條形碼的偏轉(zhuǎn)角度在22.5°之內(nèi),,上述求圖像梯度差的方法對(duì)傾斜角度在該范圍內(nèi)的條形碼都有較好的效果,。對(duì)于1.1節(jié)和本節(jié)中的梯度圖,均采用Sobel[11]算子進(jìn)行邊緣信息提取,。
條形碼除了豐富的邊緣信息外,,其周?chē)目瞻讌^(qū)域也是條形碼的顯著特征??瞻讌^(qū)域很好地將條形碼區(qū)域與樣品隔離開(kāi)了,,從圖3可以看到,條形碼周?chē)旧鲜呛谏珔^(qū)域,。利用這個(gè)特點(diǎn),,本文采用連通區(qū)域法來(lái)獲取條形碼候選區(qū)域。條形碼的線(xiàn)條之間具有一定的間隔,,并且由于光照不均,、模糊、扭曲等因素的干擾,,梯度圖中同一線(xiàn)條的邊緣也不一定連續(xù),,因此整個(gè)條形碼區(qū)域并不是一個(gè)連通區(qū)域。而平滑和膨脹操作可以很好地處理這個(gè)問(wèn)題,。
圖像平滑消除了圖像中的細(xì)節(jié)部分,,將臨近的邊緣線(xiàn)條連接起來(lái)。由于條形碼左右兩邊的空白區(qū)域較寬,,且平行邊緣之間的距離也相對(duì)較大,,而條形碼上方與下方的空白區(qū)域較窄,垂直方向間斷的邊緣線(xiàn)之間的距離較近,,因此本文采用的平滑卷積核為11×3,,可以將大部分的邊緣線(xiàn)條連接起來(lái)。
但由于模糊因素的影響,,部分邊緣信息丟失了,,平滑操作并不能將間距較大的邊緣連通,因此采用膨脹操作來(lái)達(dá)到效果,。膨脹需要在二值圖上進(jìn)行操作,,因此需要先用Otsu[12]算法對(duì)平滑圖進(jìn)行二值化處理。根據(jù)實(shí)際情況,,對(duì)該閾值進(jìn)行了適當(dāng)調(diào)整,,盡可能還原圖像的邊緣信息。平滑和膨脹后的圖像如圖4所示。本文使用OpenCV中的cvFindContours()函數(shù)查找連通區(qū)域,,并用cvMinAreaRect2函數(shù)畫(huà)出連通區(qū)域的最小外接矩形,,得到候選條形碼區(qū)域。
大洋樣品條形碼采用的碼制是Code93,,每個(gè)樣品條形碼表示34個(gè)字符,。經(jīng)過(guò)觀(guān)察發(fā)現(xiàn),條形碼的長(zhǎng)寬比為9∶1左右,。條形碼相對(duì)整張照片的比例也在1/1 000~1/50之間,。根據(jù)上述兩個(gè)條件可以排除大量的非條形碼區(qū)域,剩余的條形碼候選區(qū)域有待進(jìn)一步篩選,。
1.3目標(biāo)條形碼確定
條形碼區(qū)域具有豐富的邊緣信息,,貫穿整個(gè)條形碼的掃描線(xiàn)上的各邊緣點(diǎn)的梯度方向在同一直線(xiàn)上,且相鄰邊緣上的點(diǎn)的梯度極性相反,。文獻(xiàn)[6]利用這個(gè)特性來(lái)定位條形碼,。但是對(duì)于模糊圖像,條形碼區(qū)域相鄰邊緣上的點(diǎn)的梯度方向并不一定反向,,部分邊緣信息可能會(huì)丟失,。且對(duì)于變形嚴(yán)重的情況,可能無(wú)法找到一條掃描線(xiàn)穿越整個(gè)條形碼,,或者即使找到這樣一條掃描線(xiàn),,但各邊緣點(diǎn)的方向由于變形而發(fā)生了改變。因此,,本文選取候選區(qū)域的中間部分區(qū)域,,計(jì)算梯度方向與條形碼方向基本在同一直線(xiàn)上的邊緣點(diǎn)占總邊緣點(diǎn)的比例。理論上比例最大的最有可能是條形碼區(qū)域,。其中,精確的條形碼方向是根據(jù)連通區(qū)域的最小外接矩形的旋轉(zhuǎn)角度來(lái)確定的,。
但是在實(shí)際的實(shí)驗(yàn)中發(fā)現(xiàn),,當(dāng)條形碼變形嚴(yán)重時(shí),條形碼線(xiàn)條邊緣點(diǎn)的梯度方向與條形碼的整體方向有較大的偏差,。并且條形碼上方的站位字符串,、文字具有類(lèi)似條形碼的紋理特征,標(biāo)尺的矩形區(qū)域由于光照的影響呈現(xiàn)類(lèi)似條形碼邊緣的邊緣特性,,這些區(qū)域會(huì)干擾條形碼的準(zhǔn)確定位,。因此,本文結(jié)合水平邊緣點(diǎn)比例和區(qū)域梯度能量特征進(jìn)行判斷,。站位字符串,、文字以及標(biāo)尺矩形區(qū)域的梯度能量遠(yuǎn)小于條形碼區(qū)域。而對(duì)于其他梯度能量較大的候選區(qū)域,其水平邊緣點(diǎn)比例較小,。因此,,可以將邊緣點(diǎn)比例與區(qū)域梯度總能量相乘作為判斷依據(jù),乘積滿(mǎn)足一定的閾值,,并且最大的即為目標(biāo)條形碼區(qū)域,。其中閾值是通過(guò)對(duì)大量樣本的實(shí)驗(yàn)得到的一個(gè)經(jīng)驗(yàn)值,用于判斷定位的有效性,,降低錯(cuò)誤定位的可能性
2實(shí)驗(yàn)
本文使用的實(shí)驗(yàn)數(shù)據(jù)是中國(guó)大洋樣品館多個(gè)航次的1 195張大洋樣品照片,。這些照片樣本基本涵蓋了所有主要的大洋樣品種類(lèi)的出庫(kù)與入庫(kù)情況,對(duì)于背景復(fù)雜,、光照不均勻,、條形碼相對(duì)面積小、模糊,、變形嚴(yán)重等情況都有很好的體現(xiàn),。對(duì)于這些情況,本文算法具有很好的魯棒性,。
本文算法在Visual Studio環(huán)境下實(shí)現(xiàn),。圖5對(duì)比了本文、文獻(xiàn)[7]以及Haclon的條形碼定位算法,。由圖5可知,,對(duì)于條形碼質(zhì)量良好的照片,三個(gè)算法的定位準(zhǔn)確率相差并不是很大,。文獻(xiàn)[7]中的定位算法成功定位了312張照片中的300張,,Haclon定位算法成功定位了295張,而本文算法達(dá)到了100%的定位率,。這種差距是由于條形碼背景較復(fù)雜,,且存在文字、字符串等干擾區(qū)域,,影響了條形碼的準(zhǔn)確定位,。而對(duì)于條形碼質(zhì)量不佳的照片,三個(gè)算法有了明顯的性能差異,。本文算法的定位率達(dá)到了98.41%,,比文獻(xiàn)[7]中定位算法多定位了238張照片,比Halcon定位算法多定位了357張,。其主要原因是光照不均,、模糊失真等因素使得條形碼丟失了重要的細(xì)節(jié)信息,而干擾區(qū)域又呈現(xiàn)出與條形碼區(qū)域類(lèi)似的特征,,導(dǎo)致定位誤差增大,。除此之外,,Halcon定位算法無(wú)法很好地處理?xiàng)l形碼相對(duì)面積非常小的情況。由實(shí)驗(yàn)結(jié)果可知,,對(duì)于大洋樣品照片這一實(shí)際應(yīng)用,,本文算法具有較好的性能。
3結(jié)論
本文主要研究條形碼定位算法在大洋樣品照片識(shí)別中的應(yīng)用,,借鑒現(xiàn)有的定位算法,,并結(jié)合照片實(shí)際特點(diǎn),提出了一種簡(jiǎn)單但有效的定位算法,。首先用開(kāi)運(yùn)算判斷條形碼的大致方向,。然后利用圖像梯度、平滑和膨脹,,并根據(jù)Code93碼本身的尺寸特點(diǎn)找到條形碼候選區(qū)域,。最后利用條形碼邊緣梯度方向一致性和能量集中的特點(diǎn)確定條形碼區(qū)域。實(shí)驗(yàn)結(jié)果表明,,本文的算法能夠很好地定位樣品照片中的條形碼,,為之后的識(shí)別工作奠定了基礎(chǔ)。此外,,本文的定位算法對(duì)其他方面的應(yīng)用也具有借鑒意義,。后續(xù)的工作將圍繞模糊條形碼的識(shí)別展開(kāi)。
參考文獻(xiàn)
?。?] CHAI D, HOCK F. Locating and decoding EAN13 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 realtime barcode localization in complex scenes[J]. IEEE International Conference on Image Proceeding, 2006:497500.
[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 productson 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.
[9] 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的一維條碼識(shí)別技巧[J]. 計(jì)算機(jī)與現(xiàn)代化, 2013, 1(4):73-76.
?。?1] 李捷, 唐星科, 蔣延軍. 幾種邊緣檢測(cè)算法的比較研究[J]. 信息技術(shù), 2007(9):106-108.
[12] OTSU N. A threshold selection method from grayscale histograms[J]. IEEE Transaction on Smc, 1979(9):62-66.