劉 岑, 郭立君, 張 榮, 胡葉天
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
為了便于集裝箱在國際運輸中的識別、管理和交接,每個集裝箱都配有一個唯一的集裝箱號碼。如文獻[1,2]提出的利用邊緣檢測與形態(tài)學(xué)相結(jié)合的方法,文獻[3,4]根據(jù)圖像形態(tài)學(xué)處理后,依據(jù)連通域的高寬比來進行定位,文獻[5]提出基于邊緣點數(shù)量統(tǒng)計的定位方法,文獻[6]提出基于數(shù)學(xué)形態(tài)學(xué)的定位方法,文獻[7]提出基于邊緣特征的定位方法,文獻[8]則采用最大穩(wěn)定極值區(qū)域(maximally stable extremal regions,MSER)的方法對集裝箱號進行定位,同時文獻[9]提出的模板匹配技術(shù)也可以用于集裝箱箱號定位。然而上述基于傳統(tǒng)的圖像學(xué)處理的方法對于復(fù)雜背景的圖像,定位誤差較大,且定位速度相對較低。
本文創(chuàng)新性地提出將深度神經(jīng)網(wǎng)絡(luò)算法用于集裝箱箱號定位。實驗結(jié)果表明,該算法可以滿足集裝箱箱號定位的準確率與實時性的要求。
首先將原始的數(shù)據(jù)做數(shù)據(jù)增強后,對含有集裝箱箱號的24位彩色圖片進行灰度化、二值化處理后得到訓(xùn)練樣本,然后將訓(xùn)練樣本輸入改進的YOLOv3定位網(wǎng)絡(luò)進行訓(xùn)練,學(xué)習(xí)網(wǎng)絡(luò)權(quán)重。測試時,將原圖進行相同的預(yù)處理之后,輸入訓(xùn)練好的網(wǎng)絡(luò)中得到最終的定位結(jié)果。
1.1.1 灰度化處理
對原始的24位彩色圖像,如圖1(a)所示,進行灰度變換,如圖1(b)所示。設(shè)圖像的像素點f(x,y)的彩色分量為(R,G,B),通過如下公式進行灰度轉(zhuǎn)換
f(x,y)=0.299R+0.587G+0.114B
(1)
1.1.2 二值化處理
為了去除噪聲的影響同時更突出集裝箱號碼,采用最大類間方差法[10]進行二值化處理,具體步驟如下:
1)隨機初始化閾值T,將圖像f(x,y)分割為前景A和背景B;
2)按照式(2)、式(3)分別計算前景,背景區(qū)域占全部像素點個數(shù)的比例pA,pB為
(2)
式中NA,NB分別為前景和背景的像素點個數(shù),N表示圖片上像素點的總個數(shù);
3)按照式(4)、式(5)分別計算前景,背景區(qū)域像素均值uA,uB為
(3)
4)按照式(4)計算類間方差θ為
θ=pA(uA+u)2+pB(uB+u)2
(4)
式中u為整幅圖像的像素均值;
5)將閾值T從0至255進行遍歷,找出可以使類間方差θ最大化的閾值Tbest;
6)根據(jù)閾值Tbest對圖像進行二值化處理。二值化處理后的圖片如圖1(c)所示。

圖1 原圖像與處理之后的結(jié)果
YOLOv3算法相比于早期的YOLO[11]算法,采用類似特征金字塔[12]的上采樣融合法,在多個尺度的融合特征圖上分別獨立進行檢測。本文基于YOLOv3算法進行改進,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,同時利用K-均值(K-means)聚類調(diào)整初始的先驗框尺寸并且簡化了模型的輸出和訓(xùn)練的損失函數(shù),以此可以大幅度提高集裝箱箱號的定位效率。
1.2.1 Darknet網(wǎng)絡(luò)提取集裝箱號碼特征
借助多層殘差網(wǎng)絡(luò)[13]的思想,在集裝箱箱號特征提取階段選用深層殘差網(wǎng)絡(luò)darknet—53作為特征特提取網(wǎng)絡(luò)。第一個卷積層采用32個大小為3×3的卷積核過濾416×416分辨率的輸入圖像,然后將先前的卷積層的輸出作為輸入,使用64個大小為3×3的卷積核以步長為2個像素進行卷積操作,實現(xiàn)2倍的下采樣,得到208×208分辨率的特征圖。之后在網(wǎng)絡(luò)中添加執(zhí)行1×,2×,8×,8×,4×的5組殘差模塊,同時在每2組的殘差模塊之間連接數(shù)量不同的3×3大小的卷積核,步長均為2個像素,分別獲得104×104,52×52,26×26,13×13分辨率的特征圖。其中,每組殘差模塊由數(shù)量不同的1×1和3×3大小的卷積核組成殘差結(jié)構(gòu)。這樣做可以允許原始輸入殘差模塊的信息直接傳入到后面的卷積層,可以使在加深網(wǎng)絡(luò)的前提下,網(wǎng)絡(luò)性能不會衰減,優(yōu)化訓(xùn)練效率。
之后選取分辨率52×52,26×26,13×13的特征圖與下節(jié)提出的上采樣特征圖進行融合,構(gòu)成特征金字塔的結(jié)構(gòu)對集裝箱箱號進行定位預(yù)測。

圖2 集裝箱箱號定位網(wǎng)絡(luò)結(jié)構(gòu)
1.2.2 多尺度網(wǎng)絡(luò)定位集裝箱箱號
定位時直接在多個尺度的特征圖上進行回歸預(yù)測集裝箱箱號的位置。如圖2所示,最終的輸出的預(yù)測由3個不同分辨率的獨立分支組成(分別為52×52,26×26,13×133個分辨率的特征圖)。其中每個分支分別配有多個卷積層,分別對darknet—53最后輸出的特征圖進行2倍、4倍、8倍上采樣。將得到的上采樣特征圖分別與darknet—53中的相同尺寸的特征圖進行融合,最終輸出3種不同尺寸的細粒度特征圖。
在預(yù)測階段,對于輸入的圖像,不同于原始的YOLOv3算法需要預(yù)測一個三維張量(物體的邊界框、置信度、類別)。本文的改進YOLOv3算法只需要預(yù)測一個二維的張量,即集裝箱箱號的邊界框和邊界框的置信度。
1.2.3 錨點預(yù)測集裝箱箱號的邊界框
由于不同集裝箱圖片中的集裝箱箱號尺寸并不相同,為了提高對不同尺度的集裝箱號碼的預(yù)測效率,本文沿用YOLOv3算法中的錨點機制預(yù)測集裝箱號的邊界框。
YOLOv3中將特征圖劃分成N×N的網(wǎng)格,針對三種不同尺寸的輸出特征圖,N分別取13,26,52。每個網(wǎng)格預(yù)測3個錨點框。因此,對于每幅輸入圖像會產(chǎn)生10 647個大小不同的預(yù)測框,可以更好地提升對集裝箱箱號的定位精度。
同時本文借鑒YOLOv2[14]中使用K-means聚類的方法,對訓(xùn)練集的標注框聚類。針對三種同尺寸的特征圖,分別得到三種不同尺寸的先驗框。在最小的13×13的特征圖上,有最大的感受野,應(yīng)用較大的先驗框(92×278),142×240,371×122,定位較大的對象;在中等的26×26的特征圖上,有中等的感受野,應(yīng)用中等的先驗框30×81,82×45,59×129,定位中等大小的對象;在較大的52×52的特征圖,有較小的感受野,應(yīng)用較小的先驗框10×23,14×42,33×18,定位較小的對象。
網(wǎng)絡(luò)通過直接預(yù)測每個預(yù)測框中心點相對于對應(yīng)網(wǎng)格左上角位置的偏移量,即每個邊界框預(yù)測4個坐標:tx,ty,tw,th。最終邊界框的中心坐標以及邊界框的寬和高bx,by,bw,bh通過下面的公式確定
bx=σ(tx)+cx,by=σ(ty)+cy,bw=pwetw,bh=pheth
(5)
式中cx和cy為網(wǎng)格與整幅圖像左上角的橫縱距離,pw和ph為初始先驗框的寬和高。
1.2.4 改進YOLOv3的損失函數(shù)
由于只需要定位集裝箱箱號的位置坐標,不需要預(yù)測類別。在原有的YOLOv3損失函數(shù)的基礎(chǔ)上,刪除了預(yù)測類別的損失,改進后的損失函數(shù)

訓(xùn)練時,使用簡化后的損失函數(shù),可以使模型計算量減小,同時使模型更容易收斂訓(xùn)練。
在測試時,對于每張輸入圖片通過定位網(wǎng)絡(luò)會輸出的多個預(yù)測框和每個預(yù)測框的置信度。將置信度低的預(yù)測框拋棄(本文閾值為0.9),之后通過非極大值抑制算法[15]輸出最終的集裝箱號的位置。具體算法過程如下:1)對預(yù)測框按照置信度從大到小進行排序;2)從置信度最大預(yù)測框開始,分別計算這個預(yù)測框與其他預(yù)測框的交并比的值;3)如果與某個預(yù)測框的交并比值超過閾值(本文取0.5),就舍棄這個預(yù)測框;4)保留置信度最大的預(yù)測框;5)剩下的預(yù)測框重復(fù)第一步,直到篩選出所有被保留下來的預(yù)測框。
本文使用的數(shù)據(jù)集為寧波港口提供的集裝箱監(jiān)控截圖,共包含3 143張彩色圖片。每張圖片均已經(jīng)標注好了集裝箱號的位置,原始圖像大小為1 920×970。為了減少網(wǎng)絡(luò)訓(xùn)練與測試的時間,以原始圖像降采樣為416×416分辨率進行實驗和性能評價。
同時為了增加模型的泛化能力,對原始數(shù)據(jù)集采用多種數(shù)據(jù)增強策略,如隨機亮度、飽和度、對比度變化,添加隨機椒鹽噪聲,隨機鏡像翻轉(zhuǎn)等方法,以擴充訓(xùn)練的數(shù)據(jù)量,進一步提高模型的泛化能力。
本文實驗基于Darknet神經(jīng)網(wǎng)絡(luò)框架實現(xiàn)集裝箱箱號定位網(wǎng)絡(luò)。實驗的計算機配置:CPU為Intel Xeon 4116 ,GPU為NVIDIA Quadro P5000和64 G內(nèi)存。
整個訓(xùn)練過程中,采用小批量隨機梯度下降法,批量大小為64,最大迭代次數(shù)為50 000次,動量和權(quán)重衰減分別為0.9和0.000 5,初始學(xué)習(xí)率為10-3,在迭代次數(shù)為15 000和25 000次時調(diào)整學(xué)習(xí)率為10-4,10-5。
本文使用定位準確率與定位速率兩項指標對算法進行評價。其中,定位準確率是指當(dāng)預(yù)測框與標注框的交并比值大于0.7時的預(yù)測框個數(shù)與預(yù)測框總數(shù)的比值。
實驗的圖像為不同環(huán)境背景下的集裝箱監(jiān)控視頻中的截圖,其中包括非理想拍攝條件下的圖像,如夜間光照下拍攝的圖像,箱體表面有銹蝕,陰雨天拍攝的圖像,箱號表面有油污遮蓋等,如圖3所示。

圖3 不同拍攝條件下的集裝箱圖像
圖4顯示了不同拍攝條件下集裝箱箱號的定位結(jié)果。可以看出,在拍攝條件不理想的條件下,本文的算法依然能夠準確的定位集裝箱箱號的位置,模型具有良好的魯棒性。

圖4 不同拍攝條件下的定位結(jié)果
此外使用基于形態(tài)學(xué)的算法,MSER算法等傳統(tǒng)集裝箱定位算法與本文提出的算法進行對比,實驗結(jié)果如表1所示。其中測試樣本來自集裝箱港口,不同時間段的監(jiān)控視頻中的550張截圖。

表1 三種定位算法準確率和定位速度對比
由表1可看出,相比于傳統(tǒng)圖像學(xué)的定位算法,本文提出的算法在準確率和速度上有著明顯優(yōu)勢。同時可以有效克服復(fù)雜背景的影響。
本文提出了一種用于集裝箱箱號的快速定位改進YOLOv3算法。通過對圖片預(yù)處理之后,利用深度殘差網(wǎng)絡(luò)對輸入的圖片進行特征提取與多尺度融合,同時利用聚類算法得到網(wǎng)絡(luò)所需的初始先驗框的尺寸。在訓(xùn)練時,簡化了損失函數(shù)和預(yù)測的輸出張量,提高了定位的效率。對比其他傳統(tǒng)定位方法,實驗結(jié)果表明:本文提出的算法有著精度高,速度快的優(yōu)勢,是一種高效的定位算法,可以用于集裝箱箱號的實時識別系統(tǒng)。