易 帆,李功燕,許紹云
(1.中國(guó)科學(xué)院微電子研究所 智能制造電子研發(fā)中心,北京 100029;2.中國(guó)科學(xué)院大學(xué) 電子電氣與通信工程學(xué)院,北京 100049)
目前,國(guó)內(nèi)外電商和快遞業(yè)務(wù)迅速發(fā)展,包裹快件量呈倍數(shù)增長(zhǎng),市場(chǎng)對(duì)于物流快遞包裹的分揀效率和準(zhǔn)確率提出更高的要求。條形碼檢測(cè)定位的方法多是基于傳統(tǒng)圖像算法,文獻(xiàn)[1]采用提取條形碼邊緣紋理特征信息的方法,文獻(xiàn)[2]借助形態(tài)學(xué)處理算法腐蝕膨脹獲得條形碼區(qū)域,文獻(xiàn)[3]采用霍夫變換算法檢測(cè)條形碼邊緣直線,文獻(xiàn)[4]采用區(qū)域檢測(cè)算法得到條形碼候選區(qū)域等。一般地,這些算法僅在特定物理環(huán)境下具有較好的檢測(cè)效果。然而,現(xiàn)實(shí)中,在物流包裹自動(dòng)分揀場(chǎng)景下,由于光照條件、現(xiàn)場(chǎng)環(huán)境等影響,采集到的圖片質(zhì)量參差不齊,比如光照變化劇烈、背景干擾復(fù)雜、條形碼扭曲形變、條形碼目標(biāo)小等容易造成誤檢和漏檢,導(dǎo)致條形碼檢測(cè)難度提升。因此,研究高可靠、強(qiáng)穩(wěn)定的條碼檢測(cè)定位方法,對(duì)實(shí)現(xiàn)復(fù)雜環(huán)境下物流包裹的高效自動(dòng)分揀具有重要意義。
近年來,深度學(xué)習(xí)的迅速崛起促進(jìn)了圖像研究領(lǐng)域更進(jìn)一步的發(fā)展,相比于傳統(tǒng)圖像算法需要手工設(shè)計(jì)特征,深度學(xué)習(xí)算法可通過自學(xué)習(xí)提取相關(guān)特征,并能將特征提取、篩選、分類等任務(wù)融合在一個(gè)網(wǎng)絡(luò)中進(jìn)行優(yōu)化,具備顯著優(yōu)勢(shì)。特別地,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[5]針對(duì)圖像識(shí)別、圖像理解、目標(biāo)檢測(cè)、語義分割等任務(wù)實(shí)現(xiàn)了遠(yuǎn)超傳統(tǒng)圖像算法的解決功能,并且憑借良好的魯棒性能夠適用于任何場(chǎng)景任務(wù)。本文將借鑒CNN的思想,針對(duì)條形碼檢測(cè)問題,設(shè)計(jì)快速有效的算法以達(dá)到實(shí)際運(yùn)用場(chǎng)景的需求。
當(dāng)前,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)模型主要分為兩種:一種是以Faster-Rcnn[6]為代表的基于候選區(qū)域的two-stage檢測(cè)器,其原理是先使用深度卷積神經(jīng)網(wǎng)絡(luò)來獲取圖片的特征圖,再將特征圖通過區(qū)域提議網(wǎng)絡(luò)(region proposal network,RPN)生成候選區(qū)域,并結(jié)合分類器、邊界回歸器以及非極大值抑制算法等對(duì)候選區(qū)域進(jìn)行分類和調(diào)整,進(jìn)而獲取有效目標(biāo);另一種是以YOLO[7]和SSD[8]為代表的基于回歸的one-stage檢測(cè)器,如圖1所示,主要原理是選取輸出層或者中間層的特征圖直接進(jìn)行分類和坐標(biāo)回歸。與two-stage檢測(cè)器不同,基于回歸的one-stage檢測(cè)器省略了區(qū)域提議網(wǎng)絡(luò)生成候選區(qū)域過程,直接將目標(biāo)識(shí)別和目標(biāo)判定融合在一起,較大程度節(jié)省了計(jì)算成本和時(shí)間消耗,對(duì)實(shí)現(xiàn)實(shí)時(shí)的端到端的目標(biāo)檢測(cè)具有重要作用。
圖1 YOLO和SSD結(jié)構(gòu)
通常,目標(biāo)檢測(cè)中的公共數(shù)據(jù)集如coco、imagenet等擁有多類別、相對(duì)大尺寸的檢測(cè)對(duì)象。而在物流包裹分揀系統(tǒng)場(chǎng)景中,檢測(cè)對(duì)象條形碼類別相對(duì)單一且占整張圖片尺寸的比例偏小,如圖2所示。本文采用聚類統(tǒng)計(jì)方法對(duì)現(xiàn)場(chǎng)采集的15 000多張圖片進(jìn)行了分析,得到條形碼尺寸占比整張圖片大小多集中在1/20~1/8之間。對(duì)于以公共數(shù)據(jù)集為基礎(chǔ)設(shè)計(jì)的YOLO和SSD等模型結(jié)構(gòu)存在冗余性,并不能針對(duì)性地解決條形碼小目標(biāo)快速檢測(cè)問題,本文將結(jié)合條形碼特征對(duì)現(xiàn)有檢測(cè)模型進(jìn)行設(shè)計(jì)和改進(jìn),構(gòu)建一種快速、準(zhǔn)確、魯棒性高的條形碼檢測(cè)算法。
圖2 包裹分揀現(xiàn)場(chǎng)條形碼圖片
根據(jù)包裹分揀的特殊場(chǎng)景和待檢測(cè)目標(biāo)條形碼的特殊性,以one-stage檢測(cè)器作為基礎(chǔ)框架,設(shè)計(jì)一種輕量化的級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò),直接通過卷積提取特征、分類回歸定位條形碼。模型結(jié)構(gòu)如圖3所示,其中特征提取部分主要包括兩個(gè)網(wǎng)絡(luò):特征縮減網(wǎng)絡(luò)、特征保持網(wǎng)絡(luò)。特征縮減網(wǎng)絡(luò)主要實(shí)現(xiàn)特征圖尺寸縮減和特征信息提??;特征保持網(wǎng)絡(luò)則在維持特征圖大小不變前提下進(jìn)一步對(duì)特征語意信息融合。檢測(cè)部分由分類器和回歸器組成,對(duì)前述得到的特征圖進(jìn)行坐標(biāo)回歸,進(jìn)而得到目標(biāo)的檢測(cè)框。
圖3 級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)
在目標(biāo)檢測(cè)中,anchor為預(yù)設(shè)錨框,合理設(shè)置anchor的類型對(duì)于后期準(zhǔn)確檢測(cè)到目標(biāo)有著重要作用。anchor類型的設(shè)置主要是調(diào)節(jié)兩類超參數(shù),即長(zhǎng)寬比R和面積大小S。在常見的目標(biāo)檢測(cè)模型如YOLO和SSD中,anchor類型的典型值S為{642,1282,2562},R為{1∶1,1∶2,2∶1}。而由第1節(jié)條形碼尺寸分析知,條形碼尺寸占比小并且考慮到有傾斜情況,因此將集合S設(shè)置為{322,482,642,802,962},R集合設(shè)置為{1∶1,1∶2,1∶3,1∶4,4∶1,3∶1,2∶1,1∶1}。這樣anchor能夠覆蓋條形碼數(shù)據(jù)集中所有條形碼的尺寸范圍,可有效提升最后檢測(cè)條形碼的準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)與人腦視覺神經(jīng)類似,通過多個(gè)卷積層進(jìn)行特征提取。淺層的卷積神經(jīng)網(wǎng)絡(luò)輸出特征圖較大,小目標(biāo)特征能夠得到保留,但缺點(diǎn)是語義信息不夠充分;隨著卷積神經(jīng)網(wǎng)絡(luò)的不斷加深,卷積層提取的特征更加抽象,但也帶來特征圖的縮減,極易導(dǎo)致小目標(biāo)特征消失。本文的條形碼檢測(cè)屬于小目標(biāo)檢測(cè),為了有效提高檢測(cè)結(jié)果的精確性,設(shè)計(jì)一種多尺度特征融合層I,通過融合不同層次尺度的語義信息增強(qiáng)條形碼特征,如圖4所示。此模塊由3個(gè)3×3卷積層組成,區(qū)別于一般卷積神經(jīng)網(wǎng)絡(luò)通過最大值池化降低特征圖尺寸而導(dǎo)致特征信息損失嚴(yán)重,本模塊全部通過設(shè)置步長(zhǎng)(stride)為2的3×3卷積來達(dá)到特征圖縮減的效果,并進(jìn)一步提取整合特征語意信息。融合層I的輸出由這3個(gè)卷積之后的特征圖進(jìn)行拼接(concat)而得,通過轉(zhuǎn)置卷積(Deconvolution)上采樣第二個(gè)和第三個(gè)3×3卷積層來調(diào)整特征圖尺寸大小相同,進(jìn)而完成拼接。這樣,特征圖的尺寸每經(jīng)過一個(gè)多尺度特征融合層I被降采樣2倍,重復(fù)疊加多個(gè)則會(huì)使得特征圖尺寸迅速下降。為了保證在一系列的降采樣下條形碼的特征點(diǎn)不會(huì)消失,設(shè)定特征融合模塊的數(shù)量為T=4,即級(jí)聯(lián)4個(gè)多尺度特征融合層I,使得最后一層特征圖降采樣為輸入圖像的1/16,從而在充分提取語義信息的同時(shí)盡可能地保持條形碼特征的完整性。
圖4 特征融合層I的結(jié)構(gòu)
在特征縮減網(wǎng)絡(luò)中,由于特征圖尺寸限制而只設(shè)置了有限個(gè)特征融合層I,為更進(jìn)一步提取語義信息特征,考慮在特征縮減網(wǎng)絡(luò)之后設(shè)計(jì)加入特征融合層II,在特征融合層I的基礎(chǔ)上對(duì)特征圖語義信息進(jìn)行深層次的提取。特征融合層II的結(jié)構(gòu)如圖5所示,主要由3個(gè)3×3膨脹卷積(dilated convolution)[9]層組成,每層卷積步長(zhǎng)stride=1,3個(gè)卷積直接拼接可輸出同等尺寸的特征圖。模塊中采用膨脹卷積替代傳統(tǒng)標(biāo)準(zhǔn)卷積,在保持特征圖尺寸大小不變的同時(shí),能夠較好地提升感受野,進(jìn)而豐富語義特征。膨脹卷積的感受野計(jì)算方式為
RF=(K+1)×(DR-1)+K
其中,RF表示膨脹卷積輸出的感受野,K表示卷積核尺寸大小,DR表示膨脹率。
圖5 特征融合層II的結(jié)構(gòu)
圖6展示了膨脹率(dilated rate)為2的卷積可將原來3×3標(biāo)準(zhǔn)卷積的感受野擴(kuò)大為7×7。
圖6 標(biāo)準(zhǔn)卷積和膨脹卷積(膨脹率為2)的感受野變化
本文設(shè)計(jì)的模型主要面向包裹自動(dòng)分揀環(huán)境中的條形碼實(shí)時(shí)檢測(cè),并考慮到未來將算法移植到像FPGA等計(jì)算資源有限的嵌入式設(shè)備中,故對(duì)模型的處理速度要求較高。為解決這一問題,重點(diǎn)針對(duì)模型的輸出通道和卷積深度兩方面分別做加速改進(jìn)。
(1)輸出特征圖通道壓縮
在特征融合模塊中,在對(duì)輸出的特征圖進(jìn)行拼接后,特征圖通道數(shù)量激增,導(dǎo)致模型復(fù)雜度和計(jì)算量加大。為此,考慮在相鄰融合模塊之間加入一個(gè)1×1卷積壓縮層。該壓縮層可對(duì)模塊輸出后的特征圖數(shù)量進(jìn)行縮減,進(jìn)而保持模型的輕量化。具體地,設(shè)置1×1卷積核個(gè)數(shù)V,使其少于輸入特征圖通道數(shù)M,即V 圖7 特征圖通道壓縮 (2)卷積核深度分離 在卷積計(jì)算中,將3×3標(biāo)準(zhǔn)卷積全部轉(zhuǎn)換為改進(jìn)的深度可分離卷積(depthwise separable convolution)[10],以有效提高卷積層計(jì)算速度。以空間尺寸為K、深度為M的標(biāo)準(zhǔn)卷積核為例(圖8(a)),總卷積核數(shù)量為N,通過轉(zhuǎn)換,可拆分為深度卷積(depthwise convolution)(圖8(b))和點(diǎn)乘卷積(pointwise convolution)(圖8(c))。其中,深度卷積的卷積核通道數(shù)為1,即特征圖的每個(gè)通道都有一個(gè)獨(dú)立的卷積核,剝離了標(biāo)準(zhǔn)卷積中跨通道的特性,關(guān)注特征圖空間維度特征的提取。點(diǎn)乘卷積的卷積核空間尺寸為1,相當(dāng)于1×1的卷積核,與深度卷積相反,點(diǎn)乘卷積實(shí)現(xiàn)跨通道特征信息的混合與流動(dòng)。 圖8 標(biāo)準(zhǔn)卷積核和深度可分離卷積核 一般來說,卷積核個(gè)數(shù)N設(shè)置較大(如128,256等),而卷積核大小主要是3×3或者5×5,因此深度可分離卷積的計(jì)算量主要集中在點(diǎn)乘卷積上。采用分組卷積可進(jìn)一步優(yōu)化1×1點(diǎn)乘卷積,通過將點(diǎn)乘卷積核分割成g組,然后分別進(jìn)行卷積,最后將結(jié)果合并輸出,計(jì)算量可減少g倍。然而分組卷積易造成通道間信息獨(dú)立,與1×1點(diǎn)乘卷積的跨通道信息混合作用相悖,因此在分組卷積之后加入通道重組(圖9),將不同組的特征圖交叉混合。 圖9 通道重組 經(jīng)過上述改進(jìn),3×3卷積層結(jié)構(gòu)變化如圖10所示。 圖10 標(biāo)準(zhǔn)3×3卷積層結(jié)構(gòu)(左)和改進(jìn)的3×3深度可分離卷積層結(jié)構(gòu)(右) 假設(shè)輸出特征圖尺寸大小為D×D,標(biāo)準(zhǔn)卷積和改進(jìn)的深度可分離卷積的計(jì)算量對(duì)比為 在本文中,卷積核大小為3×3,點(diǎn)乘卷積的分組數(shù)g為2,卷積核個(gè)數(shù)N一般較大,比值第二項(xiàng)可以暫時(shí)忽略,因此采用改進(jìn)的深度可分離卷積能夠比標(biāo)準(zhǔn)卷積理論上加速18倍左右,其有效降低了模型的復(fù)雜度和參數(shù)量,提升了模型的速度。 實(shí)驗(yàn)數(shù)據(jù)來源于從實(shí)際包裹分揀現(xiàn)場(chǎng)采集的15 372張圖片,其中隨機(jī)取出20%作為測(cè)試集,其余作為訓(xùn)練集。為保證實(shí)驗(yàn)效果,所有圖片統(tǒng)一進(jìn)行數(shù)據(jù)預(yù)處理,主要包括去均值和數(shù)據(jù)增強(qiáng),其中,數(shù)據(jù)增強(qiáng)涉及隨機(jī)裁剪(保留區(qū)域80%)、平移變換、隨機(jī)角度旋轉(zhuǎn)、水平垂直鏡像翻轉(zhuǎn)、飽和度和對(duì)比度拉伸等,可豐富訓(xùn)練樣本,保證算法的泛化性能。硬件的配置是:CPU為56 Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz;GPU為6塊NVIDIA TITAN Xp,每塊12G顯存。使用的深度學(xué)習(xí)架構(gòu)是keras。軟件環(huán)境為Ubuntu 16.04 LTS。 網(wǎng)絡(luò)模型輸入圖片大小為512×512,初始學(xué)習(xí)率為10-7。最大循環(huán)次數(shù)為60 000次,前30 000次采用自適應(yīng)優(yōu)化算法Adam,后30 000次采用學(xué)習(xí)率衰減優(yōu)化算法SGD,其中每隔10 000次學(xué)習(xí)率衰減為原來的1/10。權(quán)重采用Xavier初始化,激活函數(shù)選擇PReLu,batch_size設(shè)置為16。評(píng)價(jià)標(biāo)準(zhǔn)選擇AP(average precision),其IoU閾值設(shè)置為0.6。分類損失函數(shù)選擇Softmax交叉熵?fù)p失,回歸損失函數(shù)選擇Smooth_L1損失。 表1列舉出4個(gè)融合層I、3個(gè)融合層II、7個(gè)壓縮層具體的卷積核個(gè)數(shù),其中每個(gè)融合層I包括3個(gè)3×3卷積和兩個(gè)轉(zhuǎn)置卷積,每個(gè)融合層II包括3個(gè)3×3卷積,每個(gè)壓縮層包括1個(gè)1×1卷積。 表1 網(wǎng)絡(luò)各層的卷積核個(gè)數(shù)設(shè)置 由之前的分析可知,特征衰減網(wǎng)絡(luò)中融合層I的個(gè)數(shù)固定為T=4,因此實(shí)驗(yàn)過程只對(duì)特征保持網(wǎng)絡(luò)中融合層II個(gè)數(shù)Q進(jìn)行調(diào)整,并且和YoLo-v3以及Vgg-SSD網(wǎng)絡(luò)進(jìn)行對(duì)比。 實(shí)驗(yàn)結(jié)果見表2,首先,本文設(shè)計(jì)的級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)模型在準(zhǔn)確率AP上與YoLo-v3以及Vgg-SSD相差無幾;其次,特征保持網(wǎng)絡(luò)的加入對(duì)于準(zhǔn)確度AP有接近兩個(gè)百分點(diǎn)的提升,并且融合層II的個(gè)數(shù)N越大并沒有帶來準(zhǔn)確率AP明顯的提升;最后,本文設(shè)計(jì)的模型在速度上比YoLo-v3以及Vgg-SSD有明顯優(yōu)勢(shì)。 表2 實(shí)驗(yàn)結(jié)果對(duì)照 綜合分析,在針對(duì)物流包裹分揀場(chǎng)景下的條形碼檢測(cè)任務(wù)中,除去圖片傳輸通信、預(yù)處理和后處理等耗時(shí),條形碼檢測(cè)算法耗時(shí)需控制在80 ms以內(nèi),并考慮到設(shè)計(jì)裕量和未來移植到FPGA等嵌入式平臺(tái)中,實(shí)際算法運(yùn)行速度越快越好。本文提出的級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)模型能夠在保證準(zhǔn)確度AP的前提下,耗時(shí)更少,而YoLo-v3以及Vgg-SSD由于網(wǎng)絡(luò)結(jié)構(gòu)存在冗余性導(dǎo)致耗時(shí)較多;在考慮準(zhǔn)確度AP和速度前提下,Q值為1的級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)最優(yōu)。圖11展示了級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)的檢測(cè)效果,偏小的條形碼目標(biāo)能夠很好的被檢測(cè)出來,可滿足實(shí)際包裹分揀場(chǎng)景的需求。 圖11 條形碼檢測(cè)結(jié)果 本文在物流包裹分揀場(chǎng)景下,提出了一種針對(duì)條形碼小目標(biāo)的級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)快速檢測(cè)算法。該算法以one-stage檢測(cè)器作為基礎(chǔ)框架,通過設(shè)計(jì)特征縮減網(wǎng)絡(luò)和特征保持網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)條形碼特征的充分抽取,同時(shí),結(jié)合膨脹卷積和深度可分離卷積,對(duì)模型的表現(xiàn)能力和速度進(jìn)行優(yōu)化提升,最后通過實(shí)驗(yàn)驗(yàn)證了算法的有效性和可行性。此外,文中提出的級(jí)聯(lián)多尺度特征融合網(wǎng)絡(luò)在實(shí)際運(yùn)用環(huán)境中可自行實(shí)驗(yàn)設(shè)計(jì)T、Q取值,具有一定普適性,對(duì)于相似場(chǎng)景任務(wù)可直接部署并取得快速準(zhǔn)確的檢測(cè)效果。3 實(shí) 驗(yàn)
3.1 實(shí)驗(yàn)準(zhǔn)備
3.2 實(shí)驗(yàn)參數(shù)設(shè)置
3.3 實(shí)驗(yàn)結(jié)果與分析
4 結(jié)束語