廖文婧,楊秀璋,呂詢,敖進(jìn),范郁鋒,于小民,趙小明
(1.貴州財(cái)經(jīng)大學(xué)信息學(xué)院,貴陽 550025;2.貴州財(cái)經(jīng)大學(xué)計(jì)劃財(cái)務(wù)處,貴陽 550025;3.貴州財(cái)經(jīng)大學(xué),貴州省經(jīng)濟(jì)系統(tǒng)仿真重點(diǎn)實(shí)驗(yàn)室,貴陽 550025)
隨著計(jì)算機(jī)和圖像處理技術(shù)迅速發(fā)展,圖像定位和圖像識(shí)別方法已廣泛應(yīng)用于各行各業(yè),如車牌識(shí)別、人臉識(shí)別、手寫文字識(shí)別、身份證識(shí)別等。目前物流業(yè)條形碼掃描主要依靠人工進(jìn)行條形碼定位,掃描技術(shù)單一,工作人員的任務(wù)繁雜,并且掃描技術(shù)不能有效地實(shí)現(xiàn)對(duì)條形碼自動(dòng)化定位和識(shí)別,效率較低,很大程度浪費(fèi)了更多的人力資源。因此,實(shí)現(xiàn)條形碼的自動(dòng)化定位識(shí)別將會(huì)節(jié)約更多的人力和物力,減輕工作人員的任務(wù),提高復(fù)雜環(huán)境下條形碼識(shí)別的準(zhǔn)確率。本文將結(jié)合圖像增強(qiáng)算法和圖像定位算法,實(shí)現(xiàn)復(fù)雜環(huán)境下的條形碼圖像定位與識(shí)別,改善物流行業(yè)對(duì)條形碼掃描的單一繁雜的工作,提高該行業(yè)效率,推動(dòng)整個(gè)物流行業(yè)的發(fā)展。
常見的傳統(tǒng)條形碼定位算法是基于數(shù)字圖像處理技術(shù)的,涉及區(qū)域?qū)Ρ榷?、邊緣方向及條形碼形狀等特性的研究。它先利用影像設(shè)備捕獲原始圖像,通過圖像預(yù)處理技術(shù)去除原圖像中的雜質(zhì),再采用形態(tài)學(xué)方法確定條形碼的輪廓,最后利用條形碼特征檢驗(yàn)算法定位出條形碼區(qū)域。當(dāng)前國內(nèi)外針對(duì)條形碼圖像定位和圖像增強(qiáng)的算法研究較多,在方法和實(shí)踐上都有不少的成果。在國外,Tekin 等人[1]采用基于方向直方圖的算法來定位條形碼,通過計(jì)算直方圖的熵,設(shè)置閾值來獲取窗口圖像的主方向,再對(duì)每個(gè)窗口圖像的主方向聚類,從而獲取條形碼的候選區(qū)域。Dubska[2]基于Hough 變換提出了一種快速定位條形碼的算法。Katona等人[3]提出了一種基于低通濾波和距離映射的定位算法。Hsieh 等人[4]利用人工神經(jīng)網(wǎng)絡(luò)搜索定位條形碼,通過BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練條形碼的紋理并提取特征,利用模式識(shí)別的方式實(shí)現(xiàn)條形碼定位。Oktem 等人[5]提出一種基于無傾斜條件下的一維條形碼圖像定位算法。Shellhammer 等人[6]通過選擇性采樣的方法進(jìn)行條形碼邊緣處理,根據(jù)邊緣強(qiáng)度去除由噪聲引起的偽邊界,再增強(qiáng)條形碼邊界并識(shí)別條形碼。在國內(nèi),呂佩卓等人[7]分析小波多分辨率,在高頻子圖中利用指紋相似性原理和區(qū)域增長法確定條形碼區(qū)域。劉文俊[8]提出對(duì)商品圖像條碼的搜索定位算法改進(jìn),通過圖像分割后的連通域判別是否符合條形碼的幾何特征,定位條形碼的候選域,該算法通過二次定位搜索降低了誤檢率。王顥[9]提出了基于條形碼圖像分辨率增強(qiáng)和對(duì)條形碼圖像高分辨率重構(gòu)的定位算法,提高了條形碼搜索定位的準(zhǔn)確率。陳俊名[10]提出了基于條碼邊緣統(tǒng)計(jì)的定位算法,該算法先采用圖像灰度化、Gauss 濾波、圖像增強(qiáng)和Sobel 邊緣檢測方法對(duì)條形碼圖像進(jìn)行預(yù)處理,再進(jìn)行連通域的過濾與合并處理,最后進(jìn)行傾斜角校正,該算法在對(duì)條形碼定位的過程中進(jìn)行表格線干擾及其斷裂等困難的優(yōu)化,提高了條形碼識(shí)別的準(zhǔn)確率。王霞玲等人[11]提出了一種非均勻光照環(huán)境下的條碼自動(dòng)定位識(shí)別算法,用于定位和識(shí)別實(shí)際應(yīng)用中的條碼圖像。
國內(nèi)外研究條形碼圖像增強(qiáng)和定位算法在一定程度上能夠解決其問題,但傳統(tǒng)算法的魯棒性較差,當(dāng)定位識(shí)別復(fù)雜環(huán)境下的一維條形碼時(shí),不能準(zhǔn)確地定位識(shí)別目標(biāo)條形碼。同時(shí),由于拍攝設(shè)備和拍攝環(huán)境的原因,條形碼圖像容易出現(xiàn)背景或前景偏亮偏暗的現(xiàn)象,導(dǎo)致圖像細(xì)節(jié)不夠明顯,降低條形碼的識(shí)別準(zhǔn)確率。因此本文提出了一種改進(jìn)的復(fù)雜環(huán)境下條形碼圖像增強(qiáng)和定位算法,該算法首先引入了Bidon 等人[12]提出的色彩自動(dòng)均衡化算法,實(shí)現(xiàn)復(fù)雜環(huán)境下一維條形碼的圖像增強(qiáng),并根據(jù)不同情況的復(fù)雜環(huán)境開展不同程度的圖像增強(qiáng)處理;接著使用Dalal[13]提出的HOG 和SVM 行人檢測算法,對(duì)復(fù)雜環(huán)境下一維條碼進(jìn)行圖像定位,并有效解決了定位像素溢出的問題。該研究具有重要的理論研究意義和良好的實(shí)際應(yīng)用價(jià)值,可以廣泛應(yīng)用于圖像定位、圖像識(shí)別和物流業(yè)條形碼定位領(lǐng)域。
傳統(tǒng)的條形碼圖像定位算法先利用影像設(shè)備捕獲原始圖像,通過預(yù)處理去除噪聲,再采用條形碼特征檢驗(yàn)算法定位條形碼區(qū)域。常用的圖像預(yù)處理技術(shù)包括灰度化處理、濾波處理、邊緣檢測、形態(tài)學(xué)處理等;常用的圖像定位算法包括Hough 變換檢測直線角度、膨脹腐蝕提取邊界線、投射變化校正圖像等;圖像增強(qiáng)算法包括去逆濾波模糊圖像復(fù)原、灰度投影曲線等[14]。圖1展示了傳統(tǒng)的條形碼圖像定位流程。
圖1 傳統(tǒng)的條形碼圖像定位算法流程圖
(1)圖像灰度化。將輸入的一維條形碼圖像進(jìn)行灰度化處理,按照公式(1)將彩色圖像的RGB 三分量進(jìn)行不同權(quán)值的加權(quán)平均處理,從而將彩色圖像轉(zhuǎn)換為灰度圖像。
(2)圖像濾波處理?;叶然幚砗蟮膱D像需要進(jìn)行高斯濾波模糊,去除噪聲并降低復(fù)雜環(huán)境下的干擾。高斯濾波是應(yīng)用鄰域平均思想對(duì)圖像進(jìn)行平滑的一種線性平滑濾波,對(duì)于抑制服從正態(tài)分布的噪聲非常有效,適用于消除高斯噪聲,被廣泛應(yīng)用于圖像處理的減噪過程。一個(gè)二維高斯濾波函數(shù)如公式(2)所示,其中σ為標(biāo)準(zhǔn)差,代表數(shù)據(jù)離散程度,如果σ較小,則高斯分布中心區(qū)域?qū)⒏泳奂?,平滑效果更差;反之,如果σ較大,則高斯分布中心區(qū)域?qū)⒏x散,平滑效果更明顯。
常用的3×3 和5×5 內(nèi)核的高斯濾波模板如下所示。高斯濾波的核心思想是對(duì)高斯函數(shù)進(jìn)行離散化,以離散點(diǎn)上的高斯函數(shù)值為權(quán)值,對(duì)圖像中的每個(gè)像素點(diǎn)做一定范圍鄰域內(nèi)的加權(quán)平均,從而有效地消除高斯噪聲。高斯濾波讓臨近中心的像素點(diǎn)具有更高的重要度,對(duì)周圍像素計(jì)算加權(quán)平均值,3×3 內(nèi)核的高斯濾波模板中心位置權(quán)重最高為0.25。
(3)邊緣檢測。接著通過Sobel 算子對(duì)圖像進(jìn)行邊緣檢測,找出條形碼的邊緣特征并檢測出條形碼的大致邊緣框架。Sobel 算子結(jié)合了高斯平滑和微分求導(dǎo),利用圖像明暗程度的近似值進(jìn)行圖像銳化,根據(jù)像素點(diǎn)上下、左右鄰點(diǎn)灰度加權(quán)差,在邊緣處達(dá)到極值這一現(xiàn)象檢測邊緣。常用的Sobel 算子如下公式(5)所示,水平方向上的卷積參數(shù)為Gx,垂直方向上的卷積參數(shù)為 Gy,公式如(6)所示[15]。
(4)閾值分割。復(fù)雜環(huán)境下的一維條形碼圖像包含需要提取的條形碼、背景圖像和圖片噪聲。若要提取目標(biāo)條形碼,則需要利用圖像閾值化處理再次降噪,去除無關(guān)信息。通常會(huì)設(shè)定一個(gè)全局的閾值T,通過T對(duì)處理后的圖像進(jìn)行分類。大于T 和小于T 的像素群分為不同類別。如將大于T 的像素值設(shè)定為白色(用1 表示),小于T 的像素值設(shè)定為黑色(用0 表示)。圖像經(jīng)過閾值化處理后能避免不必要的信息干擾,處理后的圖像更直觀地描述了條形碼的特征及其條形碼所在區(qū)域輪廓。
(5)腐蝕和膨脹處理提取條形碼輪廓。對(duì)閾值化后的圖像進(jìn)行腐蝕和膨脹處理。腐蝕的作用在于對(duì)不重要的信息進(jìn)行篩選過濾,膨脹會(huì)將腐蝕后的主要信息再次擴(kuò)展,達(dá)到原條形碼的區(qū)域框架。
圖2 傳統(tǒng)的條形碼圖像定位
(6)條形碼圖像定位。最后通過OpenCV 中的findContour()函數(shù)尋找定位出來的條形碼位置,并輸出最終的圖像。圖2 展示了傳統(tǒng)圖像處理的一維條形碼定位過程。圖2(a)為原始圖像,圖2(b)為灰度圖像,圖2(c)是灰度圖進(jìn)行高斯濾波去噪處理,使邊緣檢測的細(xì)節(jié)更加明顯,圖2(d)為Sobel 邊緣檢測圖像,圖2(e)是閾值化處理,圖 2(f)和圖 2(g)是圖像腐蝕和膨脹處理,最終在圖2(h)中有效定位條形碼。
針對(duì)傳統(tǒng)的條形碼圖像會(huì)受復(fù)雜環(huán)境的噪聲影響,圖像間像素的間距會(huì)產(chǎn)生錯(cuò)誤定位和像素溢出,同時(shí)由于圖像的采集設(shè)備和設(shè)備參數(shù)不可控因素,導(dǎo)致在進(jìn)行條形碼圖像預(yù)處理時(shí)不能夠?qū)D像有固定范圍的確定,從而降低定位算法的準(zhǔn)確性。本文提出了一種改進(jìn)的條形碼圖像增強(qiáng)與定位算法,該算法對(duì)復(fù)雜環(huán)境中的條形碼圖像的亮度均值進(jìn)行判斷,采用不同算法進(jìn)行圖像增強(qiáng)處理,使整個(gè)定位算法具有更強(qiáng)的普遍性和魯棒性。同時(shí),基于HOG 和SVM 的條形碼圖像特征學(xué)習(xí)與定位算法有效避免了復(fù)雜環(huán)境下對(duì)條形碼帶來的一系列噪聲影響。
本文的算法先判斷是否進(jìn)行圖像增強(qiáng),根據(jù)復(fù)雜環(huán)境下不同情況開展不同程度的圖像增強(qiáng)處理,結(jié)合HOG 和SVM 算法改進(jìn)條形碼圖像定位的準(zhǔn)確性和保真性。同時(shí),在原有定位算法基礎(chǔ)上增加了定位溢出值的范圍判斷,更加有效地鎖定條形碼的具體像素位置,為進(jìn)一步的條形碼識(shí)別提供更好的環(huán)境,提高識(shí)別條形碼的準(zhǔn)確率。其算法基本流程如圖3 所示。
圖3 改進(jìn)的條形碼圖像增強(qiáng)與定位算法流程圖
(1)圖像輸入由于像素大小會(huì)導(dǎo)致輸出窗口過大而不能有效地顯示,通過基于局部像素的重采樣線性算法縮放圖像,能夠保證原圖像的清晰度,并進(jìn)行圖像的大小縮放。
(2)通過函數(shù)ImageStat()獲取圖像像素亮度均值,再由亮度均值判斷復(fù)雜環(huán)境下的條形碼是否進(jìn)行圖像增強(qiáng)。
(3)當(dāng)亮度均值大于等于180 時(shí),圖像處于曝光狀態(tài),明暗程度不均衡,此種情況采用伽馬變換降低對(duì)比度,均衡提高圖像的明暗程度,實(shí)現(xiàn)圖像增強(qiáng)處理。
(4)當(dāng)亮度均值在100 至180 之間時(shí),圖像是足夠清晰的,不需要進(jìn)行圖像增強(qiáng),直接輸入原圖像進(jìn)行后續(xù)的圖像定位。
(5)當(dāng)亮度均值在40 至100 之間時(shí),圖像明暗程度會(huì)出現(xiàn)暗部區(qū)域較為廣泛的現(xiàn)象,此種情況采用色彩自適應(yīng)均衡算法處理,提高對(duì)比度并增強(qiáng)色彩均衡。
(6)當(dāng)亮度均值小于40 時(shí),圖像明暗程度趨于暗部,此時(shí)采用彩色直方圖均衡算法進(jìn)行圖像增強(qiáng),能夠在提高圖像對(duì)比度的同時(shí),保留原圖像的細(xì)節(jié)。
(7)經(jīng)過復(fù)雜環(huán)境下不同程度的圖像增強(qiáng)處理后,接著采用基于HOG 和SVM 的條形碼圖像特征學(xué)習(xí)與定位算法進(jìn)行條形碼定位。
(8)最后對(duì)成功定位的條形碼進(jìn)行裁剪,并使用pyzbar 函數(shù)進(jìn)行條形碼識(shí)別,輸出包含定位區(qū)域、條形碼類型和條形碼數(shù)據(jù)的結(jié)果。
直方圖是一種將圖像像素的強(qiáng)度分布用圖形表達(dá)的方式。直方圖均衡化是通過某種灰度映射將圖像的像素強(qiáng)度值均勻地分布在每一個(gè)灰度級(jí)上,其結(jié)果將產(chǎn)生一幅灰度級(jí)分布概率均衡的圖像。它能夠提高圖像對(duì)比度,從而實(shí)現(xiàn)圖像增強(qiáng)。
在復(fù)雜環(huán)境下的一維條形碼可通過直方圖均衡化進(jìn)行對(duì)比度的增強(qiáng),進(jìn)一步提高圖像細(xì)節(jié)的提取,為圖像特征提取提供了有利支撐。本文采用彩色圖像直方圖均衡算法進(jìn)行處理,保證了圖像原有的顏色,符合對(duì)條形碼圖像的細(xì)節(jié)處理。圖4 展示了彩色均衡處理后的效果圖及其直方圖,直方圖統(tǒng)計(jì)得出經(jīng)過彩色直方圖均衡后的圖像其灰度值分布更加均勻,圖像更加明亮清晰。
圖4 彩色均衡處理后的效果圖及其直方圖
伽瑪變換又稱為指數(shù)變換或冪次變換,主要用于圖像校正,其原理是將灰度過高的圖像進(jìn)行灰度降低,灰度過低的圖像進(jìn)行灰度增強(qiáng),其本質(zhì)是增強(qiáng)圖像對(duì)比度。伽馬變換是對(duì)原灰度圖像的每一個(gè)灰度像素值做乘積運(yùn)算,如公式(7)所示。
其中,當(dāng)γ>1 時(shí),會(huì)壓縮圖像灰度級(jí)系數(shù)低的區(qū)域,拉伸灰度級(jí)系數(shù)高的區(qū)域;當(dāng)γ<1 時(shí),會(huì)壓縮圖像灰度級(jí)系數(shù)高的區(qū)域,拉伸灰度級(jí)系數(shù)低的區(qū)域;當(dāng)γ=1 時(shí),圖像進(jìn)行線性灰度變換。圖5 是光照弱圖像在伽馬變換圖像增強(qiáng)后的效果圖,對(duì)比圖5(a)與圖5(b),經(jīng)過伽馬變換后的圖像亮度更明顯,但圖像會(huì)存在細(xì)微的失真。
圖5 光照弱圖像伽馬變換增強(qiáng)后效果圖
圖6 是圖像對(duì)比度過高在伽馬變換圖像增強(qiáng)后的效果圖,經(jīng)過伽馬變換拉伸后圖像趨于色彩均衡,細(xì)節(jié)更為清,且保真程度極高。
圖6 對(duì)比度過高伽馬變換增強(qiáng)后效果圖
Retinex 算法是代表性的圖像增強(qiáng)算法,它根據(jù)人的視網(wǎng)膜和大腦皮層模擬對(duì)物體顏色的波長光線反射能力而形成,對(duì)復(fù)雜環(huán)境下的一維條碼具有一定范圍內(nèi)的動(dòng)態(tài)壓縮,對(duì)圖像邊緣有著一定自適應(yīng)的增強(qiáng)。自動(dòng)色彩均衡(Automatic Color Enhancement,ACE)算法是在Retinex 算法的理論上提出的,它通過計(jì)算圖像目標(biāo)像素點(diǎn)和周圍像素點(diǎn)的明暗程度及其關(guān)系來對(duì)最終的像素值進(jìn)行校正,實(shí)現(xiàn)圖像的對(duì)比度調(diào)整,產(chǎn)生類似人體視網(wǎng)膜的色彩恒常性和亮度恒常性的均衡,具有很好的圖像增強(qiáng)效果。ACE 算法包括兩個(gè)步驟,一是對(duì)圖像進(jìn)行色彩和空域調(diào)整,完成圖像的色差校正,得到空域重構(gòu)圖像;二是對(duì)校正后的圖像進(jìn)行動(dòng)態(tài)擴(kuò)展。ACE 算法計(jì)算公式如下:
其中,W 是權(quán)重參數(shù),離中心點(diǎn)像素越遠(yuǎn)的W 值越??;g 是相對(duì)對(duì)比度調(diào)節(jié)參數(shù),其計(jì)算方法如公式(9)所示,a 表示控制參數(shù),該值越大細(xì)節(jié)增強(qiáng)越明顯。
圖7 ACE圖像增強(qiáng)效果圖
圖7 是條形碼圖像進(jìn)行ACE 圖像增強(qiáng)后的效果圖,通過圖像增強(qiáng)后的圖7(b)對(duì)比度更強(qiáng),改善了原圖像的明暗程度,增強(qiáng)的同時(shí)保持了圖像的真實(shí)性。
本文提出了基于HOG 和SVM 的條形碼圖像特征學(xué)習(xí)與定位算法,實(shí)現(xiàn)了復(fù)雜環(huán)境下的一維條碼定位。該算法的基本流程如下:
(1)通過HOG 算法對(duì)條形碼圖像進(jìn)行特征提取。首先對(duì)復(fù)雜環(huán)境下的一維條形碼進(jìn)行預(yù)處理,計(jì)算條形碼圖像各方向及大小的梯度,得到條形碼的輪廓信息。
(2)接著將一維條形碼圖像劃分為8×8 像素的細(xì)胞單位(Cell),計(jì)算統(tǒng)計(jì)每個(gè)單元中的梯度直方圖,通過直方圖構(gòu)造特征描述器,集成細(xì)胞單元組成的塊(Block)并提取特征。
(3)采用支持向量機(jī)(SVM)分類器訓(xùn)練HOG 特征向量,構(gòu)建SVM 條形碼圖像分類器,同時(shí)對(duì)可能溢出的條形碼進(jìn)行校正處理,最后計(jì)算條形碼的區(qū)域坐標(biāo),繪制最終定位的條形碼。圖8 展示了HOG 算法提取圖像特征及最終定位的條形碼。
該算法避免了傳統(tǒng)圖像處理中參數(shù)的過度調(diào)整,算法魯棒性較強(qiáng)。在定位過程中避免了復(fù)雜環(huán)境下對(duì)條形碼的干擾,有較好的圖像分類效果,很大程度減輕了傳統(tǒng)圖像處理的不可控性和復(fù)雜環(huán)境對(duì)條形碼的干擾。
圖8 HOG算法提取圖像特征及條形碼定位
本文通過Python 和OpenCV 編程環(huán)境對(duì)復(fù)雜環(huán)境下的條形碼圖像進(jìn)行詳細(xì)的仿真實(shí)驗(yàn)分析,并對(duì)比了傳統(tǒng)方法和本文提出的改進(jìn)算法的實(shí)驗(yàn)結(jié)果。
HOG 和SVM 實(shí)驗(yàn)共包括正樣本圖片581 張,負(fù)樣本圖片1791 張。測試數(shù)據(jù)為146 張快遞單圖片,其中部分圖片存在污損、損壞、噪聲等現(xiàn)象,部分圖片是在低亮度下拍攝,其余圖片均在光照強(qiáng)度良好環(huán)境下拍攝。拍攝過程模擬物流業(yè)攝像頭對(duì)圖片采集時(shí)所用高度范圍13cm-20cm,具體數(shù)據(jù)如表1 所示。
表1 實(shí)驗(yàn)數(shù)據(jù)表
圖9 對(duì)比了正常環(huán)境下三種條形碼圖像定位算法的效果,圖9(a)是一張存在油污的條形碼原圖;圖9(b)是使用傳統(tǒng)的基于縱橫差分和圖像空間分割的條形碼搜索定位算法的效果圖,其定位范圍近似條形碼真實(shí)區(qū)域,但邊界處存在細(xì)微條形碼未被定位,不能保證條形碼圖像的完整性,從而無法識(shí)別;圖9(c)是使用傳統(tǒng)的邊緣統(tǒng)計(jì)定位算法的效果圖,其定位范圍出現(xiàn)斷裂和像素值范圍溢出情況,無法有效地識(shí)別條形碼;圖9(d)是本文算法實(shí)驗(yàn)的效果圖,它使得條碼區(qū)域的細(xì)節(jié)更為明顯,準(zhǔn)確定位了條形碼的范圍,其效果優(yōu)于傳統(tǒng)的定位算法。
圖10 是高曝光度條形碼圖像的三種定位算法的實(shí)驗(yàn)效果圖,圖10(b)反映出該算法定位的條形碼出現(xiàn)了斷裂,同時(shí)由于光照對(duì)比度過高,對(duì)目標(biāo)區(qū)域的細(xì)節(jié)過度腐蝕會(huì)導(dǎo)致定位失??;圖10(c)有效定位出條形碼所在區(qū)域,但其定位范圍存在像素?fù)u擺現(xiàn)象,使用直方圖均衡化算法對(duì)原圖像進(jìn)行增強(qiáng)時(shí),會(huì)導(dǎo)致圖像失真和條形碼細(xì)節(jié)不明顯,并不能有效識(shí)別;圖10(d)是本文算法根據(jù)圖像的亮度均值判斷,對(duì)原圖像進(jìn)行伽馬變換處理后,條形碼圖像更清晰,線條更分明,最終定位有效避免了像素?fù)u擺所帶來的干擾,準(zhǔn)確識(shí)別出條形碼區(qū)域及數(shù)字。
圖9 正常圖片的三種定位算法效果圖對(duì)比
圖10 高曝光條形碼的三種定位算法效果圖對(duì)比
圖11低亮度條形碼的三種定位算法效果圖對(duì)比
圖11 是低亮度或環(huán)境偏暗條形碼圖像的三種定位算法的效果圖。圖11(b)沒有將條形碼定位出來,系統(tǒng)會(huì)輸出“不存在連通域”,該算法在對(duì)環(huán)境偏暗的圖像進(jìn)行閾值化處理時(shí),由于圖像亮度偏低,導(dǎo)致圖像像素值大部分小于所設(shè)定的閾值,過多的黑色像素群會(huì)影響連通域的判別,最終無法定位條形碼;圖11(c)是傳統(tǒng)邊緣統(tǒng)計(jì)定位算法的效果圖,但經(jīng)過直方圖增強(qiáng)處理后的條形碼區(qū)域會(huì)圖像過度定位,無法準(zhǔn)確地識(shí)別條形碼;圖11(d)是本文算法的效果圖,它通過對(duì)圖像亮度的判別,采用不同類型的圖像增強(qiáng)算法,有效保護(hù)條形碼的細(xì)節(jié),防止圖像失真,并最終成功定位出條形碼圖像。
圖12 是條形碼圖像在污損環(huán)境下三種算法的定位效果圖。圖12(b)顯示了基于空間分割的定位算法對(duì)該條碼區(qū)域有著良好的范圍定位,但像素在各個(gè)方向有輕微的搖擺,在后續(xù)的識(shí)別中會(huì)導(dǎo)致圖像輕微缺失而無法識(shí)別成功;圖12(c)出現(xiàn)了錯(cuò)誤的定位,由于對(duì)條形碼的破壞,圖像增強(qiáng)和閾值化處理后,會(huì)將條形碼區(qū)域大部分歸一為黑色像素群,無法判斷條形碼的連通域?qū)е洛e(cuò)誤識(shí)別;圖12(d)展現(xiàn)了本算法成功定位污損環(huán)境下的條形碼圖像。
條形碼圖像的定位與識(shí)別實(shí)驗(yàn)結(jié)果如表2 所示,測試數(shù)據(jù)146 張條形碼圖像,本文算法成功定位144張,定位成功率為98.6%;成功識(shí)別122 張,識(shí)別成功率達(dá)到83.6%。由表可知,本文提出的算法比傳統(tǒng)基于空間分割的定位算法的定位成功率提升15.7%,識(shí)別成功率提升16.6%;比傳統(tǒng)邊緣統(tǒng)計(jì)定位算法的定位成功率提升28.1%,識(shí)別成功率提升21.3%。
圖12 污損環(huán)境條形碼三種定位算法效果圖對(duì)比
表2 實(shí)驗(yàn)結(jié)果對(duì)比
圖13 和圖14 顯示了本文算法提取條形碼的結(jié)果,包括原始圖像、條形碼定位效果圖和識(shí)別出的條形碼數(shù)字,最后識(shí)別出條形碼的數(shù)字為“3891030459427”和“9894847869874”。
綜上所述,本文提出的一種改進(jìn)的復(fù)雜環(huán)境下條形碼圖像增強(qiáng)和定位算法能有效保證圖像的真實(shí)性,解決圖像定位的像素?fù)u擺問題,避免條形碼定位時(shí)出現(xiàn)斷裂,最終實(shí)現(xiàn)復(fù)雜環(huán)境下條形碼圖像的精準(zhǔn)定位和識(shí)別,提高了定位成功率和識(shí)別成功率,具有較強(qiáng)的魯棒性。
圖13 條形碼定位與識(shí)別結(jié)果
圖14 條形碼定位與識(shí)別結(jié)果
隨著物流業(yè)的快速發(fā)展,條形碼圖像自動(dòng)化定位和識(shí)別變得越來越重要,研究條形碼圖像的增強(qiáng)和定位算法在提高自動(dòng)化識(shí)別效率具有重要作用。針對(duì)傳統(tǒng)的條形碼圖像定位算法識(shí)別不精準(zhǔn),存在圖像斷裂和像素?fù)u擺等現(xiàn)象,本文提出了一種改進(jìn)的復(fù)雜環(huán)境下條形碼的圖像增強(qiáng)和定位算法,對(duì)復(fù)雜環(huán)境中的條形碼圖像的亮度均值進(jìn)行判斷,采用不同算法進(jìn)行圖像增強(qiáng)處理,再基于HOG 和SVM 的特征學(xué)習(xí)與定位算法識(shí)別條形碼圖像,該算法有效降低圖像的噪聲,使整個(gè)定位和識(shí)別具有更強(qiáng)的普遍性和魯棒性。
本文在Python 和OpenCV 編程環(huán)境下,通過模擬物流行業(yè)對(duì)條形碼圖像采集的環(huán)境,實(shí)現(xiàn)了對(duì)條形碼圖像的自動(dòng)化定位和識(shí)別的仿真實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,本文提出的算法能在復(fù)雜環(huán)境中有效定位和識(shí)別出條形碼,包括污損、損壞、噪聲、低亮度、高曝光等條形碼圖像,通過不同情況的圖像增強(qiáng)算法,結(jié)合HOG和SVM 特征學(xué)習(xí),實(shí)現(xiàn)精準(zhǔn)定位和識(shí)別。同時(shí)該算法能降低圖像噪聲,使條形碼區(qū)域的細(xì)節(jié)更為明顯,從而提高條形碼數(shù)字的識(shí)別精確度。該算法的定位成功率和識(shí)別成功率均優(yōu)于傳統(tǒng)的定位算法,在一定程度上減輕了物流行業(yè)工作者的工作量,可以廣泛應(yīng)用于條形碼定位、區(qū)域識(shí)別、物流行業(yè)和金融行業(yè)等領(lǐng)域,具有一定的應(yīng)用前景和實(shí)用價(jià)值。下一步作者將結(jié)合深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)更廣范圍的條形碼圖像識(shí)別,進(jìn)一步將圖像定位和圖像識(shí)別技術(shù)應(yīng)用于物流行業(yè)和日常生活中。