陳騫
(四川大學視覺合成圖形圖像技術國防重點學科實驗室,成都 610065)
工業制造的車間和倉儲存在大量貨物搬運,托盤碼放是最主要的儲貨形式,拾取托盤的工業搬運車輛稱為叉車,國內叉車銷量從2000年不到2萬臺增至2018年銷量接近60萬臺,漲幅近30倍[1]。目前國內生產車間主要采用人工操作機動或非機動叉車拾取托盤搬運貨物。人工搬運除了人力和時間開銷,還要面對滿載貨物的叉車慣性大操控難等問題,以及可能發生貨物坍塌、撞傷砸傷工人等意外事故。所以實現叉車在無人操控條件下托盤取放、貨物運輸具有廣闊前景。
拾取托盤首先要對托盤進行檢測,武文漢[2]提出針對遠距離場景,使用ToF(Time-of-Flight)相機采集三維點云,將全局和局部特征與托盤模板特征進行比對,檢測精確但ToF相機價格不菲;Syu J L等人[3]對單目攝像頭獲取的圖像,基于類似Haar特征算子提取輪廓,將這些輪廓分正負樣本經過AdaBoost分類訓練和多次迭代,組成級聯分類器。檢測正面朝向的托盤具有高準確度,但側面朝向并不樂觀。Kim M等人[4]根據托盤邊緣對邊平行,依靠檢測平行線來檢測托盤并確定位姿,易受遮擋影響以及到其他物體輪廓干擾。Mohamed I S等人[5]采用深度學習的方法,用Faster R-CNN網絡訓練數據,得到模型以檢測托盤。該網絡框架計算開銷大,檢測速度只能達到16幀每秒。
可見光攝像頭部署簡單,成本相比其他傳感元件更低。伴隨著計算機視覺技術的發展,以及近期深度學習卷積神經網絡YOLOv4[6]目標檢測算法的提出,文章設計了基于該算法,使用可見光相機采集車間作業場景,處理數據,訓練網絡模型,檢測托盤的同時一并檢測貨物和工人便于后續拓展應用。驗證YOLOv4網絡訓練的模型,檢測的準確度和速度能夠滿足實際生產的實時需求。
考慮外部環境尤其光照影響,使用可見光相機分別在陰天晴天的早上10:00、中午14:00、下午18:00錄制拍攝從不同角度觀測車間各區域的作業場景視頻,共578分鐘,圖像尺寸2560×1440。對視頻每間隔5秒取幀,得到6943張車間場景圖,篩選去除鏡頭被嚴重遮擋以及低質量無關目標圖像后保留6851張用于制作數據集。使用標注工具LableImg,在每張圖像中找到托盤、貨物和人,框選出緊貼目標輪廓的矩形,附加對應標簽。將每張圖像的所有標簽信息、標簽框的左上角坐標值和右下角坐標值,保存到對應的XML文件。打亂數據集所有圖像的順序,選擇其中5481張作為訓練集,剩下1370張作為測試集。
使用Mosaic數據增強方法,將四張圖像拼湊為一張,標簽信息也從原圖映射至拼接后的圖像,如圖1所示。再調整圖像亮度、對比度、飽和度,形態上再進行裁剪、縮放、翻轉以及鏡像變化。該方法能豐富檢測目標的背景,減少目標對特定背景的依賴,防止后續模型訓練過擬合。同時由于每張增強圖像涵蓋四張原圖信息,可以降低訓練時每批次的圖像載入數量,降低對GPU顯存和算力需求。

圖1 Mosaic數據增強拼接效果圖
YOLOv4整體采用one-stage目標檢測模式,即同步完成目標的定位和分類。結構如圖2所示。

圖2 YOLOv4網絡框架圖
其主干特征提取網絡CSPDarkNet53包含一個DarkNet卷積塊和五個CSP(Cross Stage Partial)模塊。卷積塊將輸入608×608×3的RGB原圖像調整為32通道,歸一化后再采用Mish激活函數,表達式(1):
Mish=x×tanh(ln(1+ex))
(1)
該激活函數的優點是在函數曲線平滑,且保留了一定的負值特性。CSP殘差塊是在殘差堆疊的基礎上增加整體殘差邊的結構,能夠進一步減少計算消耗,提取目標細微和整體特征。尺寸從608×608每經過一個CSP殘差塊遞減一倍,直至19×19,而通道數從32開始成倍遞增至1024。
增強特征提取網絡采用SPP+PANet,該結構能夠增加網絡的感受野,融合目標在不同尺度下的特征信息。CSPDarkNet53的輸出經過空間金字塔池化得到特征層,卷積、上采樣后堆疊,向高尺寸層遞進。再由高尺寸特征層經過卷積、下采樣,與低尺寸特征層堆疊。此結構能將一張圖像上不同尺寸目標的特征有效提取,最后再通過YOLO HEAD整合通道,計算損失。
將圖像劃分為三種尺寸的網格便于檢測不同尺寸的目標。每種尺寸都根據標注數據集時目標尺寸的大概分布,預先設置三種值的錨框。一個網格映射一個原圖區域,負責該區域目標的檢測,當真實目標的中心位于某網絡內時,與該網格的預測值進行比對,計算損失偏差。
每個網格的預測輸出包括num_anchors*(num_classes+5)個值,其中num_anchors是預先設置錨框數,為3;檢測目標分托盤、貨物、工人,故num_classes等于3;最后的“5”包含存在目標的可能性、預測目標中心坐標相對網格位置以及預測長寬相對錨框長寬縮放比例。YOLOv4的損失函數由三部分類構成:置信度損失Lconf、位置損失Lpos和分類損失Lcls。
(1)置信度損失Lconf
置信度表示該網格預測存在目標的可能性,將其與實際存在目標和實際不存在目標兩種情況進行比對并計算,置信度損失Lconf由公式(2)計算:
(2)
式中:
K×K——網格尺寸(本實驗有19×19、38×38、76×76三種);
M——錨框數(本實驗每種網格劃分都有相應3種尺寸錨框);


(2)位置損失Lpos
位置損失衡量預測目標中心與實際目標中心的位置偏移以及預測目標框和實際目標框的長寬偏差。用CIoU(Complete Intersection over Union)[7]計算,CIoU結合了預測目標框與實際目標框的尺度、中心距離、重疊率,并加入了描述二者寬高比即形狀相似度的懲罰因子。使訓練時預測目標中心坐標和長寬的回歸更穩定,避免發散。計算位置損失L_pos如公式(3):
(3)
式中:


ρ——歐氏距離;
l——包圍實際目標框和預測框的最小矩形的對角線距離。
(3)分類損失Lcls
分類損失衡量預測的目標是每一類的概率分布與實際標簽某一類概率置1、其他類概率置0的分布偏差,分類損失Lcls采用交叉熵計算,其公式(4):

(4)
式中:

訓練時總損失函數Ltotal有公式(5):
Ltotal=aLconf+bLpos+cLcls
(5)
其中a、b、c為加權系數,可根據需求調整,默認為1。
本實驗采用TensorFlow 2.1.0深度學習框架,GPU加速網絡訓練,顯卡NVIDIA RTX2080s,顯存8G。CUDA版本10.2.15,CUDNN版本7.6.5。圖像輸入尺寸608×608,RGB三通道。隨機選取6851張標注圖像中的80%用于訓練,訓練集中10%用于驗證。因為采用Mosaic數據增強方式,每張合成圖像包含4張原圖信息,每批輸入量設置為4。數據集重復100次,迭代34250次完成訓練。初始學習率設置為0.001,擬用Adam(Adaptive Momentum)[8]自適應矩估計梯度更新算法調整訓練時的學習率。
評估模型重要指標是損失值,使用可視化工具matplotlib繪制訓練過程的損失值L_total變化,如圖3。

圖3 損失函數變化曲線
由圖3可知,損失值在0~12000次迭代時震蕩較大,呈明顯下降趨勢。12000~28000次迭代期間,損失值下降緩慢,逐漸從2左右降至1左右。28000次迭代之后損失值一直在1附近小幅波動,迭代34250次結束訓練時損失值為0.914。
測試集1370張圖像,一共包含目標5827個,其中托盤2361,貨物2712,工人754。使用訓練機器進行測試,將測試集圖像輸入網絡模型,設定置信度大于等于0.5判定為存在目標,其類別概率分布的最大值對應目標為預測目標,預測框與實際框交并比大于等于0.5為有效預測。平均每張圖像檢測耗時0.0358s,檢測效果如圖4。

(a) (b)
由圖4可見,如果目標個體獨立,在各種位姿下檢測都能保持高置信度,并且框得的范圍準確。如果遮擋嚴重,置信度明顯降低,甚至出現漏檢。
統計每類目標的預測情況見表1。

表1 分類混淆統計
準確率Pprecision和召回率Precall是評估模型的重要指標。準確率Pprecision描述模型預測的結果正確占總預測量的百分比,召回率Precall描述實際為正的樣本有多少被正確預測。Pprecision和Precall的計算如公式(6)和(7)。
(6)
(7)
式中:
TP——預測結果為某類目標,實際標簽為該類,預測正確的樣本;
FP——預測結果為某類目標,實際標簽非該類或實際非目標,預測錯誤的樣本;
FN——預測結果非某類或未能預測到目標,實際標簽為該類,預測錯誤的樣本。
整理計算結果見表2。

表2 預測結果各項參數
平均每張圖像檢測耗時0.0358s,即檢測速度可達到28fps,能夠滿足車間作業環境下實時檢測。由表1、2可知,三種目標的檢測都保持了較高的準確率,尤其工人和貨物,總體準確率達到96.45%,表明網絡預測的結果具有高可靠性。貨物和托盤由于互相大面積遮擋,存在一定的漏檢,影響了召回率。誤檢方面,同樣因為遮擋導致少量托盤被檢測成貨物。較為反常的是出現貨物被檢測成工人,主要原因在于工人多數場景都在搬運貨物,兩者經常同時出現且緊貼,所以數據集中工人的數據量、動作和位姿都有待擴充。
在樣的數據集,設備和同樣置信度、交并比閾值設定的條件下,與采用YOLOv3[9]和Faster R-CNN[10]網絡檢測算法作對比,見表3。

表3 模型對比
YOLOv4準確度已經接近two-stage檢測算法的Faster R-CNN,FPS提升了12幀/秒。相比YOLOv3,準確度提升了2.12%,FPS提升了3幀/秒。
本文基于深度學習YOLOv4目標檢測網絡,自主采集車間作業場景數據,標注建立數據集,增強數據,訓練模型。本文方法比傳統圖像處理方法和過去的深度學習目標檢測算法性能更佳,實時并且能檢測多目標多種類。無需激光或者紅外等傳感元件,可見光相機拍攝圖像清晰分辨率大于608×608即可,具可拓展性和實用價值。被遮擋目標的檢測準確度還需提升,數據豐富程度有待增強,著重應對漏檢問題。后續可以考慮將網絡模型的輸出結果與傳統的紋理、邊緣輪廓等圖像特征進行融合,提升目標種類判別的準確度和范圍選取的精確度,甚至達到像素級別的分割。