王建鋒,董學(xué)恒,李 軍
(1.長安大學(xué) 道路交通智能檢測實驗室,陜西 西安 710064;2.陜西省道路交通智能檢測與裝備工程技術(shù)研究中心,陜西 西安 710064;3.陜西碩軒信息科技有限公司,陜西 西安 710032)
隨著物流運輸行業(yè)的快速發(fā)展,快遞件數(shù)量呈級數(shù)增長,市場對物流快遞包裹的分揀效率和準確率提出了更高的要求。通過檢測快遞件上的條形碼可以快速識別快遞的各種信息,提高快遞分揀的智能化水平。目前條形碼的檢測方法主要有基于激光掃描的方法、基于圖像處理的方法和基于深度學(xué)習(xí)的方法?;诩す鈷呙璧姆椒ㄊ峭ㄟ^人工利用激光掃描裝置識別條形碼,這種方法識別準確率高,但效率較低?;趫D像處理的條形碼識別方法是采用圖像處理算法自動搜索條形碼的位置、從圖像中分割出條形碼,然后按照條形碼的解碼方法識別出條形碼的信息。該方法提高了條形碼的識別效率,而且條形碼的識別過程不需要人工干預(yù),實現(xiàn)了條形碼識別的自動化?;谏疃葘W(xué)習(xí)的條形碼識別方法主要是建立深度學(xué)習(xí)模型,利用大量樣本對所建立模型的參數(shù)進行訓(xùn)練,利用訓(xùn)練好的模型進行條形碼識別,該方法對環(huán)境變化有較好的適應(yīng)性,但是對訓(xùn)練樣本的要求較高。
目前的條形碼檢測方法中,基于深度學(xué)習(xí)的方法需要進行大量數(shù)據(jù)集的采集和標注,并且無法直接實現(xiàn)條形碼區(qū)域提取之后的方向校正,還需進一步對檢測結(jié)果進行圖像處理,導(dǎo)致檢測速度下降?;趫D像處理的檢測方法不需要采集大量數(shù)據(jù)集進行標注,但是泛化性較差,難以處理復(fù)雜場景下的多目標、多角度條形碼區(qū)域快速提取。針對這些問題,本文提出一種基于顏色和形狀特征的條形碼快速檢測方法,用于復(fù)雜環(huán)境下快遞條形碼的快速多目標檢測。
快遞條形碼快速檢測系統(tǒng)的總體結(jié)構(gòu)如圖1所示。系統(tǒng)主要包括視覺識別模塊(相機)、輔助照明模塊、主控模型、顯示模塊和存儲模型。主控模塊采用STM32控制相機拍攝圖像,所拍攝的圖像由主控系統(tǒng)按照識別算法進行條形碼識別,并將識別后的信息通過USB接口傳遞給顯示模塊進行顯示,通過存儲模塊進行檢測報表生成和數(shù)據(jù)存儲。照明模塊采用LED照明,實現(xiàn)拍攝圖像的輔助照明,用于提高圖像的拍攝質(zhì)量,提高條形碼識別的速度和精度。
圖1 系統(tǒng)總體結(jié)構(gòu)
本文提出的復(fù)雜環(huán)境下快遞條形碼檢測算法的流程為:首先根據(jù)顏色和形狀特征在原圖中提取出大面積白色矩形區(qū)域作為快遞單候選區(qū)域,獲取該區(qū)域的最小外接矩形的位置和大小,通過仿射變換對候選區(qū)域進行方向校正,獲取豎直或水平放置的快遞單候選區(qū)域;再對這些候選區(qū)域進行黑色條形碼的二次檢測,定位最終的條形碼區(qū)域,采用Zbar解碼器對其進行解碼,提取條形碼的信息。算法的主要流程如圖2所示。
圖2 條形碼快速識別算法流程
快遞單候選區(qū)域的快速定位主要步驟如下:
(1)將原圖進行下采樣;
(2)對下采樣之后的圖像進行圖像預(yù)處理,主要包含中值濾波、直方圖均衡化;
(3)使用Otsu分割算法對直方圖均衡化后的圖像進行二值化;
(4)對二值化后的圖進行膨脹和腐蝕操作;
(5)進行輪廓檢測與輪廓凸包面積計算以及面積排序,取前兩大面積的10%作為面積閾值,過濾小面積區(qū)域;
(6)獲取候選區(qū)域的最小外接矩形,計算長寬比,過濾長條區(qū)域;
(7)根據(jù)下采樣次數(shù),對過濾掉小面積區(qū)域和長條區(qū)域的快遞候選區(qū)域的最小外接矩形位置及大小進行參數(shù)還原,獲取候選區(qū)域在原圖上的位置;
(8)使用仿射變換,將含有角度信息的快遞單候選區(qū)域進行提取和方向校正,獲取豎直或水平放置的白色快遞單區(qū)域。
由于快遞包裝的材質(zhì)有所差異,光線對圖像的拍攝質(zhì)量影響較大。為了減小拍照過程中光線對圖像質(zhì)量的影響,采用有限對比適應(yīng)性直方圖均衡化(Contrast Limited Adaptive Histogram Equalization, CLAHE)方法對拍攝的圖像進行均衡化處理。對快遞單圖像進行直方圖均衡化的結(jié)果如圖3(a)所示??梢钥闯?,直方圖均衡化后改變了圖像的對比度,突出了需要求取的白色快遞單區(qū)域,但是圖像陰影部分的顏色也加深了,這不利于后續(xù)的顏色分割。為了解決該問題,采用CLAHE方法將整幅圖像分成8×8的子塊,分別對每一個子塊進行直方圖均衡化,使每個子塊的直方圖集中在某一個小區(qū)域內(nèi),并且對每個小區(qū)域采用對比度限幅來克服噪聲放大的問題。該方法需要對圖像中每個像素計算鄰域直方圖及對應(yīng)的變換函數(shù),其算法計算量大、處理時間長。為了提高算法的執(zhí)行速度,本文在CLAHE方法中使用雙線性插值,在圖像均衡質(zhì)量幾乎沒有下降的前提下算法效率得到極大的提升。本文采用CLAHE方法均衡處理的效果如圖3(b)所示。
圖3 直方圖均衡化結(jié)果對比
從圖3可以看出,使用CLAHE方法均衡化處理后的圖像中快遞單區(qū)域受到的光照影響減小,快遞單區(qū)域的灰度值得到均衡,增加了對比度,同時背景區(qū)域變化不大。
對預(yù)處理之后的圖像進行形態(tài)學(xué)處理,通過多次腐蝕膨脹對圖像進行去噪處理,使用開閉運算使快遞單區(qū)域盡量完整且獨立。對處理結(jié)果進行外輪廓提取,對每個輪廓進行凸包面積計算;按凸包面積大小對所有輪廓進行面積排序,取前兩大面積的10%作為閾值過濾小面積區(qū)域;獲取余下大面積區(qū)域的最小外接矩形參數(shù),根據(jù)最小外接矩形的長寬比,過濾長條區(qū)域。處理過程如圖4所示,可以看出該方法能精確地提取快遞單所在位置。
圖4 快遞單候選區(qū)提取過程
由于快遞放置的隨機性,提取到的條形碼區(qū)域通常具有隨機的角度。為了高效提取條形碼,需要對其進行方向校正處理,即將快遞單調(diào)整到正向放置。采用仿射變換(Affine Transform, AT)進行快遞單方向的校正處理。
AT是一種二維仿射變換,也是一種二維坐標之間的線性變換。AT保持二維圖形的“平直性”(即變換后直線還是直線,圓弧還是圓弧)和“平行性”(保持二維圖形間的相對位置關(guān)系不變,平行線還是平行線)。AT可以通過一系列平移、縮放、翻轉(zhuǎn)、旋轉(zhuǎn)和錯切等基本變換的復(fù)合來實現(xiàn)。
AT在向量空間中進行一次線性變換(乘以一個矩陣)并加上一個平移(加上一個向量),變換為另一個向量空間的過程。通常使用2×3的矩陣來表示仿射變換。
只要知道3個點仿射變換前后的坐標,就可以計算出轉(zhuǎn)換矩陣。利用就可以將圖像變換為新的圖像。
設(shè)變換前一個點的坐標為(,),變換后坐標為(,),則可用下式計算該點新的坐標:
通過AT處理后得到結(jié)果如圖5所示。
圖5 快遞單方向校正效果
在獲取經(jīng)過方向校正的快遞候選區(qū)域后,再進行一次基于顏色和形狀特征的條形碼區(qū)域提取。取面積最大的區(qū)域作為條形碼候選區(qū)域,對候選區(qū)域用Zbar庫進行解碼,若解碼成功,則在快遞圖像上框選出條形碼區(qū)域,并輸出解碼后的數(shù)字;若解碼失敗,則進入剩余的條形碼候選區(qū)進行解碼識別,直到判斷完所有候選區(qū)域。條形碼區(qū)域的提取過程如圖6所示。
圖6 條形碼區(qū)域提取過程
通過將多個快遞單隨機放置,利用所開發(fā)的系統(tǒng)對多個條形碼進行識別實驗。拍攝的圖像如圖7所示??梢钥闯觯疚姆椒軌蚩焖俣ㄎ坏桨咨目爝f單候選區(qū)域,并對其進行方向校正;隨后進行條形碼區(qū)域二次定位,并提取出各個條形碼;最后將識別出的信息顯示在條形碼框下,并存儲識別信息。識別得到結(jié)果如圖8所示。
圖7 快遞單候選區(qū)域檢測結(jié)果
圖8 多目標條形碼識別結(jié)果
本文提出了一種基于圖像處理的復(fù)雜環(huán)境下的快遞條形碼多目標檢測方法,開發(fā)了條形碼快速檢測系統(tǒng)。通過實驗證明該方法能夠有效減小復(fù)雜背景給條形碼區(qū)域帶來的影響,能夠快速定位所有條形碼區(qū)域,并進行方向校正和解碼;還可以有效提升快遞分揀信息管理效率和智能化水平。