韓貴金,胡仲陽,石海賓
(1.西安郵電大學 自動化學院,陜西 西安,710121;2.中國建筑第二工程局有限公司 華北公司,北京 100071)
隨著電子商務的快速發(fā)展,快遞物流服務量也隨之增長,當遇到“雙十一”“618”等購物節(jié)快遞量爆增時,現(xiàn)有的快遞物流系統(tǒng)將受到巨大考驗。目前,快遞分揀主要分為自動分揀與人工分揀兩種方式。自動分揀方式主要是利用基于無線射頻識別技術紅外線條形碼檢測方式[1]獲取快遞信息,可實現(xiàn)多個快遞電子標簽的高速檢測,但需將電子標簽張貼于每件快遞上的設備,成本過高難以普及,主要應用于地區(qū)級大型快遞分揀中心[2]。然而,在規(guī)模較小的區(qū)縣一級分揀中心,基本上還都采取人工分揀方式,效率低下。因此,亟需研究針對區(qū)縣一級分揀中心的小型快遞自動分揀系統(tǒng)。
快遞面單上主要包含條形碼、快遞三段碼、快遞公司Logo及用戶個人信息等。掃描一維條碼進行分揀時,由于條碼易受到污漬干擾,需要通過快遞公司數(shù)據(jù)庫查詢快遞信息,受到了快遞公司的制約。部分面單中的二維碼雖可容納更多信息,但其出現(xiàn)的頻率較低,不適用于自動檢測??爝f三段碼由三段字體較大的黑體數(shù)字構成,各段代表不同含義,包含了許多快遞信息。根據(jù)三段碼編碼規(guī)則可直接讀出快遞信息,不需要在快遞查詢網(wǎng)站獲取快遞信息,識別速率高。但是,檢測三段碼時易受到面單中其他數(shù)字信息干擾,導致直接檢測三段碼準確性不足。而快遞公司Logo尺寸不大,受遮擋、材質(zhì)反光與面單變形影響較小,且面單上Logo特征明顯,與三段碼有固定的相對位置關系,由Logo位置確定三段碼信息分階段檢測識別,可為快遞三段碼的檢測提供有效幫助。因此,將Logo檢測作為快遞面單上識別和傳達信息的視覺圖形,應用前景廣闊。如利用基于尺度不變特征變換(Scale Invariant Feature Transform,SIFT)算法進行特征匹配,可檢索帶有特定Logo的圖像[3]。利用Halcon視覺識別技術[4]可提取快遞面單三段碼信息,但由于該技術成本過高難以推廣。文獻[5]使用了弱監(jiān)督顯性特征的Logo檢測算法。
伴隨著卷積神經(jīng)網(wǎng)絡在目標檢測技術中的發(fā)展,其已廣泛應用于各類應用場景。如基于Faster R-CNN的吸煙快速檢測算法對小目標的檢測,取得了較好的檢測效果[6]。You Only Look Once(YOLO)算法[7]將目標邊框定位轉(zhuǎn)化為回歸問題處理,對待檢測的目標進行結果預測。利用特征金字塔生成多尺度候選區(qū),融合多層特征圖增強Logo特征的表達能力[8]。將YOLOv3算法用于小目標檢測,提升了檢測精度[9],而YOLOv4算法更是提升了小目標檢測的速度和精度[10]。因此,針對區(qū)縣一級分揀中心采用的人工分揀方式存在的效率低下問題,擬提出一種基于YOLOv4與位置先驗的快遞面單三段碼檢測算法。首先,利用HSV顏色分割算法提取快遞面單區(qū)域,然后,利用YOLOv4算法對預處理后的快遞面單圖像進行Logo檢測,最后,根據(jù)Logo與三段碼的位置先驗關系,通過三段碼定位算法進行三段碼檢測,從而實現(xiàn)快遞分揀。
將工業(yè)照相機采集的快遞面單紅綠藍(Red Green Blue,RGB)圖像轉(zhuǎn)換到HSV顏色空間[11],轉(zhuǎn)換公式為
在HSV顏色空間中,快遞面單在色調(diào)(Hue,H)、飽和度(Saturation,S)和明度(Value,V)區(qū)域上分布在一個比較穩(wěn)定的范圍內(nèi),即0≤H≤180,0≤S≤30,90≤V≤255。利用HSV顏色分割、腐蝕膨脹和面單區(qū)域甄別算法對面單區(qū)域進行提取,如圖1所示。將滿足HSV空間上面單范圍的區(qū)域置成白色,其他區(qū)域置成黑色,如圖1(b)所示。通過計算面單目標在圖像區(qū)域內(nèi)位置坐標與區(qū)域像素點所占比例值,排除對非快遞面單目標的誤檢,計算最大面積連通區(qū)域像素點所占整個采集圖像像素點比例值,若超過設定閾值,則表示可能有面單存在,如圖1(d)所示。根據(jù)檢測的面單區(qū)域結果,在原圖中截取面單圖像。為避免白色快遞包裝造成面單信息可能遺漏,將截取圖像放大1.5倍。
圖1 快遞面單區(qū)域提取
選取快遞Logo模板,多角度旋轉(zhuǎn)獲取多種模板,基于模板匹配算法[12]將多個模板與Logo檢測模型獲取的快遞Logo圖像進行匹配并評分,篩選評分最高的模板,獲取Logo旋轉(zhuǎn)角度。根據(jù)旋轉(zhuǎn)角和快遞面單中Logo與三段碼相對位置關系,得到三段碼位置坐標,完成三段碼檢測?;谖恢孟闰灥娜未a檢測過程如圖2所示。
圖2 基于位置先驗的三段碼檢測過程
考慮到快遞三段碼檢測的精度與速度要求,結合YOLOv4算法進行Logo目標檢測。YOLOv4以CSPDarknet53作為主干網(wǎng)絡,由空間金字塔池化(Spatial Pyramid Pooling,SPP)附加模塊結構和PANet結構共同構成Neck的特征金字塔部分,使用Yolo Head結構根據(jù)獲得的特征進行預測[13]。利用YOLOv4算法訓練快遞面單Logo檢測模型的訓練步驟如下。
步驟1數(shù)據(jù)集使用VOC2007[14]格式進行標注。用預訓練網(wǎng)絡模型結構參數(shù)K0初始化YOLOv4網(wǎng)絡中的各個參數(shù)。
本次耕地質(zhì)量定級技術路線可概括為:在全面收集影響金安區(qū)耕地質(zhì)量的因素因子資料的基礎上,應用地理信息系統(tǒng)建立金安區(qū)耕地質(zhì)量定級信息系統(tǒng),然后運用多因素多因子綜合評價方法評定出金安區(qū)耕地質(zhì)量級別,最后根據(jù)投入—產(chǎn)出效益、土地確權資料等多種資料相互驗證、相互補充,最終確定耕地質(zhì)量級別。
步驟2將預處理后的快遞面單圖像輸入網(wǎng)絡,YOLOv4中使用了CSPDarknet53作為基準網(wǎng)絡,提取一些快遞Logo通用的特征表示。
步驟3利用SPP模塊融合不同Logo尺度大小的特征圖,采用自頂向下的特征金字塔網(wǎng)絡(Feature Pyramid Networks,F(xiàn)PN)于自底向上的路徑聚合網(wǎng)絡(Path Aggregation Network,PAN)提升網(wǎng)絡的特征提取能力。
步驟4提取中間層、中下層和底層等3個特征層進行目標檢測。將3個特征層的預測結果解碼,得到Logo預測框的位置。
快件在分揀過程中是任意角度的,根據(jù)不同快遞公司分別選取快遞Logo圖像作為匹配的模板,將Logo模板以0°起始5°為間隔旋轉(zhuǎn)一周,選擇模板匹配度量方法,對比匹配結果,選取與檢測快遞面單Logo信息最匹配的Logo模板,從而獲得面單旋轉(zhuǎn)角度。根據(jù)Logo檢測框信息獲取檢測快遞Logo的中心點坐標,求得檢測框?qū)捙c選取Logo模板寬比例作為比例尺。
快遞面單規(guī)格以含有兩個快遞Logo與僅有單個快遞Logo為主。針對兩類面單規(guī)格,分別建立兩個Logo規(guī)格與三段碼相對位置數(shù)學模型和單個Logo規(guī)格與三段碼相對位置數(shù)學模型。
模型1兩個Logo規(guī)格與三段碼相對位置數(shù)學模型。由快遞面單中兩個Logo規(guī)格定位三段碼中心坐標,將Logo模板匹配獲得的旋轉(zhuǎn)角轉(zhuǎn)換為弧度,以像素點坐標系為坐標軸,由兩個Logo中心點A與B和三段碼中心點C構成三角形,如圖3(b)所示。
圖3 兩個Logo規(guī)格與三段碼相對位置數(shù)學模型
結合Logo中心點坐標與三角形三邊長度a、b與c,計算Logo檢測框中心點A處夾角
AB邊在y軸上的方位角可表示為
式中:ΔX=x1-x0;ΔY=y1-y0;sgn()為求符號函數(shù)。若ΔX<0時其值為-1,ΔX>0時其值為1,ΔX=0時其值為0。
AC邊在y軸上的方位角可表示為
αAC=αAB±θ
根據(jù)不同旋轉(zhuǎn)角度確定加減θ。
由Logo中心點計算三段碼中心點坐標公式為
(1)
模型2單個Logo規(guī)格與三段碼相對位置數(shù)學模型。由快遞面單中單個Logo規(guī)格定位三段碼中心坐標,利用Logo中心點A與條形碼檢測算法獲取條碼檢測框的中心點B,與待檢測的三段碼中心坐標點C構成三角形,如圖4(b)所示。根據(jù)面單先驗計算該三角形三邊長度,根據(jù)式(1)計算三段碼中心點坐標。
圖4 單個Logo規(guī)格與三段碼相對位置數(shù)學模型
通過上述兩個模型獲取三段碼中心點坐標,根據(jù)面單中三段碼檢測框的長寬,得到旋轉(zhuǎn)前的三段碼檢測框坐標矩陣,結合旋轉(zhuǎn)角度,得到三段碼檢測信息。
在計算機為CPU Intel Core i5-4210U,主頻為1.7 GHz,內(nèi)存為16 GB,顯卡為Nvidia GTX1080,4塊GPU環(huán)境下加速訓練,快遞面單Logo檢測訓練在Keras和Tensorflow下實現(xiàn)。測試環(huán)境為Windows 10系統(tǒng),處理器為Intel(R)Core(TM) i5-8265CPU @1.60 GHz,內(nèi)存容量為8 GB。
實驗數(shù)據(jù)集為快遞驛站現(xiàn)場采集的圓通速遞、韻達速遞、中通快遞和百世快遞分揀中心等4家快遞公司的快遞面單圖像和小型快遞分揀中心分揀作業(yè)過程中采集的圖像。數(shù)據(jù)集共包含7 010個樣本,其中,訓練集有6 309張,測試集有701張,包含了角度旋轉(zhuǎn)、快遞面單規(guī)格和噪聲等多種變化??爝f面單樣本數(shù)量如表1所示。
表1 樣本數(shù)量
考慮到各個快遞公司快遞面單Logo圖案不盡相同,整個模型訓練過程按不同快遞公司分別進行。每個快遞公司訓練主干特征提取網(wǎng)絡特征通用,凍結訓練功能可加快訓練速度,也可在訓練初期防止權值被破壞,故訓練分為起始前25世代與凍結訓練后25世代。當損失值逐代減少,模型收斂時,分別保存各個公司訓練模型。以圓通速遞快遞公司為例,基于YOLOv4的快遞Logo檢測模型在數(shù)據(jù)集上訓練的損失曲線如圖5所示。由圖5可知,網(wǎng)絡的檢測效果得到了提高,損失值逐代減少,在訓練45世代之后模型訓練損失值趨于穩(wěn)定,模型收斂,檢測模型訓練完成。各個快遞公司訓練模型損失值均能夠趨于穩(wěn)定。
圖5 圓通速遞Logo檢測模型訓練損失曲線
在測試集上對模型進行測試分析,網(wǎng)絡的正確率-召回率曲線如圖6所示。由圖6可以看出,當檢測邊界框的閾值設為0.75時,得到的均值平均精度為96.10%,檢測速度為0.06 s~0.07 s,基于YOLOv4的快遞Logo檢測算法在準確性和速度均得到了不錯的效果。
圖6 Logo檢測模型訓練正確率-召回率曲線
結合測試集對Logo檢測模型進行測試,部分結果如圖7示。
圖7 部分快遞Logo目標檢測結果
2.3.1 面單區(qū)域提取實驗
為驗證快遞面單區(qū)域提取對Logo檢測準確率的提升,以百世快遞分揀中心采集的快遞圖像為主的訓練集Ⅳ上,利用YOLOv4算法分別對原始采集圖像與面單區(qū)域提取圖像進行Logo檢測模型訓練與測試,檢測結果如表2所示,檢測效果分別如圖8和圖9所示。
表2 不同圖像處理方法的Logo檢測結果
圖8 原始采集圖像的檢測效果
圖9 面單區(qū)域提取的檢測效果
由圖8可以看出,快遞Logo目標尺寸較小,不易在原圖中檢測出來,準確率較低。而表2中的檢測結果和圖9的檢測效果可知,面單區(qū)域提取方法有效排除了大量背景的干擾,優(yōu)化Logo特征提取,大幅提升了準確率,而檢測時間由于增加了面單區(qū)域提取而小幅增加。
面單區(qū)域提取方法在測試集Ⅳ的正確率-召回率曲線如圖10所示,將檢測框的閾值設置為0.75時,快遞Logo檢測模型的準確率為96.55%。
圖10 面單區(qū)域提取Logo檢測算法P-R曲線
2.3.2 快遞面單三段碼檢測實驗
分別在試集Ⅰ、Ⅱ與Ⅲ上評估三段碼檢測算法性能,結果如表3所示。單個Logo和兩個Logo面單規(guī)格的三段碼檢測效果如圖11所示。
表3 三段碼檢測算法在測試集上的檢測結果
圖11 基于位置先驗的三段碼檢測算法檢測效果
由表3和圖11可以看出,在快遞測試集上,該算法可實現(xiàn)對三段碼的準確檢測,有效提升檢測準確率,縮短檢測時間,滿足快遞分揀實時三段碼檢測要求,基本解決了區(qū)縣一級分揀中心采用的人工分揀方式存在的效率低下問題。但會存在少部分三段碼漏檢誤檢的情況,分析原因可能為模板匹配算法模板旋轉(zhuǎn)角度不足或特殊面單規(guī)格導致三段碼先驗數(shù)據(jù)變化。
基于YOLOv4與位置先驗的快遞面單三段碼檢測算法先通過HSV顏色分割算法實現(xiàn)快遞面單區(qū)域提取,再利用YOLOv4算法訓練快遞面單Logo檢測模型,最后,根據(jù)獲取的Logo信息與面單中Logo和三段碼先驗位置關系進行快遞三段碼檢測。實驗結果表明,該算法利用快遞Logo檢測輔助實現(xiàn)了三段碼的檢測,有效提高了三段碼的檢測精度。