蔡佳凌,徐建良,候成飛
(1. 中國(guó)海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100;2. 國(guó)家海洋局第一海洋研究所,山東 青島 266061)
大洋樣品照片中的條形碼定位技術(shù)研究*
蔡佳凌1,徐建良1,候成飛2
(1. 中國(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)用也具有借鑒意義。
條形碼;定位;梯度能量;大洋樣品照片
大洋樣品照片是大洋樣品數(shù)據(jù)中非常重要的組成部分。隨著大洋考察的持續(xù)開展以及采樣設(shè)備的不斷更新,樣品的增長(zhǎng)速度進(jìn)一步提高,而對(duì)于直觀體現(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í)別工作的開展奠定基礎(chǔ)。
隨著條形碼在生活與生產(chǎn)中的廣泛使用,條形碼自動(dòng)識(shí)別技術(shù)成為了熱門研究領(lǐng)域。在過(guò)去的幾十年中,數(shù)字照片中條形碼的快速與準(zhǔn)確定位一直是研究的難點(diǎn)和熱點(diǎn)?,F(xiàn)已有很多的算法用于條形碼定位,如基本形態(tài)學(xué)處理法[1-4]線條檢測(cè)法[5]、圖像梯度法[2,6-7]、Gabor濾波器[8]和諧波分析[9]等。樣品照片中的條形碼因其相對(duì)面積小,背景復(fù)雜,光照不均勻,因而存在旋轉(zhuǎn)、扭曲現(xiàn)象嚴(yán)重等實(shí)際問題,為其準(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)寬比較小的商品碼[3-6],可以很容易找到一條穿過(guò)整個(gè)條碼區(qū)域的掃描線。而大洋樣品采用Code93碼,且樣品編碼有30位之長(zhǎng),長(zhǎng)寬比較大(如圖1所示)。當(dāng)條形碼彎曲變形時(shí),很難找到一條掃描線與所有條碼線條相交。
圖1 大洋樣品照片
除了上述的定位算法之外,還有一些現(xiàn)成的機(jī)器視覺算法包,如德國(guó)MVtec公司開發(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í)用且魯棒性好。
條形碼定位主要分為兩個(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]中的方法,使用開運(yùn)算來(lái)確定條形碼方向。但是與文獻(xiàn)[3]不同的是,由于大洋樣品照片中條形碼上方的站位號(hào)、文字以及復(fù)雜背景等都具有類似條形碼的紋理特征,因而無(wú)法簡(jiǎn)單地根據(jù)開圖像的亮度準(zhǔn)確判斷條形碼區(qū)域及其方向。而標(biāo)尺中與條形碼平行的兩條邊長(zhǎng)、直且明顯,在大洋樣品照片中是非常典型、突出的特征,如圖1所示。因此,本文利用標(biāo)尺明顯的邊緣特征,并結(jié)合0°、45°、90°和135°四個(gè)方向的開運(yùn)算操作來(lái)判斷條形碼方向,效果如圖2所示。經(jīng)過(guò)大量實(shí)驗(yàn)后,本文采用11×1的結(jié)構(gòu)元素,得到四個(gè)方向的開圖像。然后設(shè)定線條長(zhǎng)度閾值,超過(guò)該閾值的線條數(shù)量最多的開圖像對(duì)應(yīng)方向的垂直方向即為條形碼方向。在本文中,線條長(zhǎng)度閾值設(shè)為對(duì)應(yīng)圖像尺寸的1/4時(shí)效果佳。由圖3可知,90°開圖像中符合條件的線條數(shù)最多,與其垂直的方向,即水平方向即為條形碼的大致方向。
圖2 4個(gè)方向開運(yùn)算
圖3 梯度圖
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è)方向的開運(yùn)算來(lái)判斷條形碼方向,因此圖像旋轉(zhuǎn)后條形碼的偏轉(zhuǎn)角度在22.5°之內(nèi),上述求圖像梯度差的方法對(duì)傾斜角度在該范圍內(nèi)的條形碼都有較好的效果。對(duì)于1.1節(jié)和本節(jié)中的梯度圖,均采用Sobel[11]算子進(jìn)行邊緣信息提取。
條形碼除了豐富的邊緣信息外,其周圍的空白區(qū)域也是條形碼的顯著特征??瞻讌^(qū)域很好地將條形碼區(qū)域與樣品隔離開了,從圖3可以看到,條形碼周圍基本上是黑色區(qū)域。利用這個(gè)特點(diǎn),本文采用連通區(qū)域法來(lái)獲取條形碼候選區(qū)域。條形碼的線條之間具有一定的間隔,并且由于光照不均、模糊、扭曲等因素的干擾,梯度圖中同一線條的邊緣也不一定連續(xù),因此整個(gè)條形碼區(qū)域并不是一個(gè)連通區(qū)域。而平滑和膨脹操作可以很好地處理這個(gè)問題。
圖像平滑消除了圖像中的細(xì)節(jié)部分,將臨近的邊緣線條連接起來(lái)。由于條形碼左右兩邊的空白區(qū)域較寬,且平行邊緣之間的距離也相對(duì)較大,而條形碼上方與下方的空白區(qū)域較窄,垂直方向間斷的邊緣線之間的距離較近,因此本文采用的平滑卷積核為11×3,可以將大部分的邊緣線條連接起來(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ù)畫出連通區(qū)域的最小外接矩形,得到候選條形碼區(qū)域。
圖4 膨脹圖
大洋樣品條形碼采用的碼制是Code93,每個(gè)樣品條形碼表示34個(gè)字符。經(jīng)過(guò)觀察發(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è)條形碼的掃描線上的各邊緣點(diǎn)的梯度方向在同一直線上,且相鄰邊緣上的點(diǎn)的梯度極性相反。文獻(xiàn)[6]利用這個(gè)特性來(lái)定位條形碼。但是對(duì)于模糊圖像,條形碼區(qū)域相鄰邊緣上的點(diǎn)的梯度方向并不一定反向,部分邊緣信息可能會(huì)丟失。且對(duì)于變形嚴(yán)重的情況,可能無(wú)法找到一條掃描線穿越整個(gè)條形碼,或者即使找到這樣一條掃描線,但各邊緣點(diǎn)的方向由于變形而發(fā)生了改變。因此,本文選取候選區(qū)域的中間部分區(qū)域,計(jì)算梯度方向與條形碼方向基本在同一直線上的邊緣點(diǎn)占總邊緣點(diǎn)的比例。理論上比例最大的最有可能是條形碼區(qū)域。其中,精確的條形碼方向是根據(jù)連通區(qū)域的最小外接矩形的旋轉(zhuǎn)角度來(lái)確定的。
但是在實(shí)際的實(shí)驗(yàn)中發(fā)現(xiàn),當(dāng)條形碼變形嚴(yán)重時(shí),條形碼線條邊緣點(diǎn)的梯度方向與條形碼的整體方向有較大的偏差。并且條形碼上方的站位字符串、文字具有類似條形碼的紋理特征,標(biāo)尺的矩形區(qū)域由于光照的影響呈現(xiàn)類似條形碼邊緣的邊緣特性,這些區(qū)域會(huì)干擾條形碼的準(zhǔn)確定位。因此,本文結(jié)合水平邊緣點(diǎn)比例和區(qū)域梯度能量特征進(jìn)行判斷。站位字符串、文字以及標(biāo)尺矩形區(qū)域的梯度能量遠(yuǎn)小于條形碼區(qū)域。而對(duì)于其他梯度能量較大的候選區(qū)域,其水平邊緣點(diǎn)比例較小。因此,可以將邊緣點(diǎn)比例與區(qū)域梯度總能量相乘作為判斷依據(jù),乘積滿足一定的閾值,并且最大的即為目標(biāo)條形碼區(qū)域。其中閾值是通過(guò)對(duì)大量樣本的實(shí)驗(yàn)得到的一個(gè)經(jīng)驗(yàn)值,用于判斷定位的有效性,降低錯(cuò)誤定位的可能性
本文使用的實(shí)驗(yàn)數(shù)據(jù)是中國(guó)大洋樣品館多個(gè)航次的1 195張大洋樣品照片。這些照片樣本基本涵蓋了所有主要的大洋樣品種類的出庫(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ū)域類似的特征,導(dǎo)致定位誤差增大。除此之外,Halcon定位算法無(wú)法很好地處理?xiàng)l形碼相對(duì)面積非常小的情況。由實(shí)驗(yàn)結(jié)果可知,對(duì)于大洋樣品照片這一實(shí)際應(yīng)用,本文算法具有較好的性能。
圖5 文獻(xiàn)[9]、Halcon與本文的定位算法比較
本文主要研究條形碼定位算法在大洋樣品照片識(shí)別中的應(yīng)用,借鑒現(xiàn)有的定位算法,并結(jié)合照片實(shí)際特點(diǎn),提出了一種簡(jiǎn)單但有效的定位算法。首先用開運(yùn)算判斷條形碼的大致方向。然后利用圖像梯度、平滑和膨脹,并根據(jù)Code93碼本身的尺寸特點(diǎn)找到條形碼候選區(qū)域。最后利用條形碼邊緣梯度方向一致性和能量集中的特點(diǎn)確定條形碼區(qū)域。實(shí)驗(yàn)結(jié)果表明,本文的算法能夠很好地定位樣品照片中的條形碼,為之后的識(shí)別工作奠定了基礎(chǔ)。此外,本文的定位算法對(duì)其他方面的應(yīng)用也具有借鑒意義。后續(xù)的工作將圍繞模糊條形碼的識(shí)別展開。
[1] 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.
[2] 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.
[5] 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.
[7] 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.
[8] 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.
[10] 公丕亮, 呂希勝. 基于Halcon的一維條碼識(shí)別技巧[J]. 計(jì)算機(jī)與現(xiàn)代化, 2013, 1(4):73-76.
[11] 李捷, 唐星科, 蔣延軍. 幾種邊緣檢測(cè)算法的比較研究[J]. 信息技術(shù), 2007(9):106-108.
[12] OTSU N. A threshold selection method from gray-scale histograms[J]. IEEE Transaction on Smc, 1979(9):62-66.
A study on the localization technology of 1D barcode in ocean sample photos
Cai Jialing1,Xu Jianliang1,Hou Chengfei2
(1. School of Information Science and Engineering, Ocean University of China, Qingdao 266100, China;2.First Institute of Oceanography,State Oceanic Administration, People’s Republic of China , Qingdao 266100, China)
1D barcode localization is one of the difficult and hot spots in the task of barcode identification and it is also an important foundation and guarantee to improve the recognition rate of barcodes. Although a lot of algorithms for barcode localization have been proposed, these algorithms are not ideal in the application of ocean sample photos. The barcode in an ocean sample photo often has a relatively small area, a complex background, uneven illumination, serious distortion and so on, which disturb the correct localization of barcodes. Therefore, a simple and robust algorithm is put forward to solve the practical problems, which combines basic morphological methods, traditional edge gradient methods, and the characteristics of gradient energy of barcodes. Experiment results show that this algorithm is efficient in the localization of barcodes in ocean sample photos. In addition, it has a reference value for other practical applications.
1D barcode; localization; gradient; ocean sample photo
國(guó)際海域資源調(diào)查與開發(fā)“十二五”任務(wù)大洋樣品建設(shè)運(yùn)行與樣品管理(DY125-25-01)
TP391.4
A
10.19358/j.issn.1674- 7720.2017.04.005
蔡佳凌,徐建良,候成飛.大洋樣品照片中的條形碼定位技術(shù)研究[J].微型機(jī)與應(yīng)用,2017,36(4):14-17.
2016-09-20)
蔡佳凌(1991-),女,碩士研究生,主要研究方向:算法分析與設(shè)計(jì)。
徐建良(1969-),通信作者,男,博士,教授,主要研究方向:算法分析與設(shè)計(jì)。E-mail:XJL9898@ouc.edu.cn。
候成飛(1988-),男,碩士,主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò)與Web信息技術(shù)。