程國安,王 浩,王勝科
(1.青島港灣職業技術學院信息與電氣工程學院,山東青島 266404;2.中國海洋大學 計算機科學與技術系,山東 青島 266100)
港口作業人員遇到意外的風險較高,操作不規范以及安全意識薄弱導致事故頻發,為此走訪調查了國內知名港口集團的作業人員工作現狀[1],獲取相應港口作業違規操作數據,如圖1 所示。

Fig.1 Illegal operation of operators in different scenarios of harbors圖1 港口不同場景下作業人員違規操作情況
為減輕人員傷亡,提高港口智能化、信息化發展水平迫在眉睫[2-3]。本文基于計算機視覺基本原理進行研究,對復雜場景下的港口作業人員進行檢測并將檢測結果應用到港口實踐中。選擇深度檢測框架YOLOV4 實現精確的人員檢測,并創建了一個較大的不同場景下港口作業人員數據集。
本文基于YOLOV4的檢測方法在不同場景下實現了港口作業人員檢測,將檢測的結果進行提取和分析用于提高港口信息化工作效率,提高作業人員的安全性。主要完成如下工作:
(1)在港口的不同場景下收集了大量作業人員數據,作為YOLOV4 算法的訓練和測試數據。
(2)對不同場景下的港口作業人員數據進行整理和標定,方便YOLOV4 模型的訓練和測試。
(3)選用5 個不同場景的數據分別進行訓練和測試,采用先進的目標檢測框架Faster R-CNN、SSD 和YOLOV4-tiny 作為對比算法,通過對比實驗發現YOLOV4 框架在不同場景下檢測準確率最高、運行速度最快。
在YOLOv4 框架提出之前,Faster RCNN 和SSD是兩種最先進的檢測框架。
Faster R-CNN[4]屬于一種卷積神經網絡目標檢測框架,首先使用卷積層提取輸入圖像的特征,將獲取的特征輸入到RPN 網絡,RPN 網絡可以生成大量的區域建議框。在這些區域建議框輸入新的分類器和回歸器,分類器可將候選區域分為前景(即作業人員)和背景,回歸器可以修正候選區的精確位置,從而實現目標的精確分類和定位[5]。Faster R-CNN 框架首先利用RPN 網絡創建候選區域,然后在卷積層提取候選區域的卷積特征,將其送入新的分類器和回歸器,得出候選框類別和精確位置,最后利用非極大值抑制算法去除高度重疊的檢測框,獲得高質量的檢測目標,從而實現目標的精確分類和定位,其工作過程如圖2 所示。

Fig.2 Working process of Faster R-CNN algorithm圖2 Faster R-CNN 算法工作過程
1.1.1 區域建議網絡
大部分目標算法生成的候選框都比較耗時,例如利用滑動窗口法和圖像金字塔生成候選框,又如RCNN 算法中使用選擇性搜索方法生成候選框。Faster R-CNN 框架提出新的候選框生成網絡RPN 替代經典的滑動窗口和選擇性搜索方法,然后對這些候選框進一步分類和修正位置,這些特點是Faster R-CNN的一大優勢,使候選框生成和檢測效率得到很大提高。
區域建議網絡RPN 是一個全卷積網絡,它的核心思想是使用CNN 卷積神經網絡直接產生區域建議框/候選框,該方法本質上就是滑動窗口在最后的卷積層上滑動。RPN網絡設計了新的候選區域機制,可以得到多尺度多長寬比的區域建議框。區域建議網絡可實現端到端的訓練,同時能夠預測出目標前景的置信分數。區域建議網絡的輸入可以是任意大小尺寸的圖片,得到候選框后,新的Faster RCNN[6]網絡(包含分類器和回歸器)將每個特征圖的位置編碼成一個特征向量,對每個位置輸出一個目標得分和邊框回歸位置,換言之Faster RCNN 網絡是利用候選框的卷積特征生成更精確的目標得分和目標位置。
1.1.2 非極大值抑制
非極大值抑制算法(Non-Maximum Suppression,NMS)可以刪除高度重疊的框[7]。在Faster RCNN 檢測結果中,一個操作人員可能被多個高度重疊的檢測框同時檢測到,NMS 算法只保留最精確的檢測框并刪除其他冗余的框。目標檢測過程中滑動窗口經過特征提取和分類器分類識別后,每個窗口都會得到一個目標得分并在同一目標的位置上產生大量的候選框。這些候選框相互之間可能會有重疊,此時需要利用非極大值抑制找到效果最佳的目標邊界框,消除冗余的邊界框。非極大值抑制過程:①根據置信度的得分對候選框進行排序,選擇置信度最高的候選框先輸出,將置信度最高的候選框從邊界框列表中刪除,計算所有邊界框面積,計算置信度得分最高的候選框與其它候選框的重疊度,刪除重疊度大于規定閾值的候選框;②重復之前的步驟,直到邊界框列表為空。
IOU 定義了兩個候選框重疊度,設矩形框T1、T2 重疊度的計算公式為:IOU=(T1∩T2)/(T1∪T2),IOU 就是矩形框的T1、T2 重疊面積占并集面積的比例,其在計算機視覺領域廣泛應用,如目標跟蹤、目標識別、數據挖掘以及紋理分析等。
如今大部分目標檢測算法都是基于區域目標檢測或基于這種算法的變種,基于區域目標檢測算法步驟如下:①通過候選框算法產生初始的包含真實物體的候選框;②從每一個候選框中重新取樣像素或者特征,然后將其傳遞給更高質量的分類器進行分類。基于區域的目標檢測算法雖然能夠達到一定準確度,但是對于嵌入式系統的數據計算量非常大,所以在實際應用中實時檢測很難實現。將深度學習檢測框架用于實時目標檢測研究較多,如Liu等[8]提出基于回歸的深度檢測框架SSD,該深度檢測框架首先在深度網絡的不同層產生多尺度、多寬高比的固定大小的候選框集合,然后預測每個候選框的最終得分,并將其回歸到更加精確的位置。上述過程使用非極大值抑制算法刪除重疊度較大的檢測結果。
在SSD 框架結構的基準VGG16 網絡基礎上增加對應卷積層,使其網絡變得更深。在網絡層中存在不斷的下采樣操作,因此得到不同分辨率的特征層。在該網絡結構內部設計了較多且固定大小的默認框,在其每個位置用固定大小的卷積核,例如3×3的卷積核在每層特征圖上滑動提取這些默認框特征,得到每個默認框的檢測結果。SSD 框架對每層特征圖上每個位置直接進行回歸,能實現GPU 上的并行運算,極大提升了檢測速率。整個框架在對默認框進行分類的同時還進行回歸操作,因此回歸后的框較原始的默認框定位更精確。由于框架是從多層不同分辨率的特征圖上設計默認框,不同特征圖上同樣大小的默認框映射回原始圖片會得到不同尺度檢測結果,如圖3(彩圖掃OSID 碼可見,下同)中4×4 大小的特征圖上的紅色邊框對應原圖中的狗這個類別實例,以及8×8 大小特征圖上的藍色邊框對應原圖中貓這個類別的實例。使用卷積濾波器集合對每個增加的特征層執行卷積操作,可以產生固定數目的檢測值。

Fig.3 Original picture and characteristic picture圖3 原圖及特征圖片
針對多類物體的回歸和識別,SSD 訓練的目標函數由分類函數Lconf和定位函數Lloc兩部分組成,整體目標函數如式(1)所示。其中,x是每層特征圖上設計的默認框,g是與包圍框x相對應的真實物體位置,c是softmax 損失函數最終預測的包圍框x的多個類別置信度,l是最終網絡預測到的包圍框x更精準的位置。本文使用SSD 作為操作人員檢測框架,以達到實時檢測效果。

Faster RCNN 是兩階段的檢測框架,第一階段從圖片中剔除大量簡單的背景框,獲取少量極有可能包含真實物體的候選框,第二階段是從這些少量候選框中預測出真實的物體類別和樣本。Faster RCNN 這種從粗到細的檢測機制,使其能夠獲得很高的檢測準確率,但同時兩階段檢測也十分費時,運行效率較低。不同于Faster RCNN,SSD 是單階段檢測框架,輸入一張圖片到SSD 框架,只需一階段的檢測就能預測出最終的物體類別和位置,因此速度特別快,可以實現近似實時的檢測效率。但由于僅有一步檢測,其檢測精度往往落后于Faster RCNN,因此急需研究同時具備高精度和高效率的實時檢測框架。
YOLOv4 檢測框架實現了速度與精度的完美結合。YOLOV4 算法是基于YOLOv3 目標檢測框架的改進,YOLOv3 運行速度快于Faster RCNN 和SSD 框架,但精度遠差于兩者,YOLOV4 從數據處理、主干網絡、網絡訓練以及損失函數等多個方面對YOLOv3 進行優化,提高了整個算法在目標檢測任務上的精度和速度,達到了檢測框架的最優匹配[9]。
YOLOV4 算法實現原理:首先通過特征提取網絡提取輸入圖像數據的主要特征,然后將輸入圖像劃分為S×S的網格,每個網格負責檢測‘落入’該網格的物體。若某個物體的中心位置的坐標落入到這個網格,那么這個網格就負責檢測出這個物體。例如,為了實現C 類物體檢測任務,每個網格要預測B 個可能包含物體的邊界框以及C 個物體屬于某種類別的概率信息,這個類別概率表征了邊界框中有多大概率包含真實的物體,因此又稱為邊界框的置信度Conf(Object)。

對于S×S 個網格中的每個網格,Pr(Object)表示目標物體是否落入到該網絡中,如果落入到該候選網格中用1 表示,否則用0 表示。IoU表示該網格的預測框與真實物體外接框之間的交并比,對應的預測框和真實框分別用box(pred)和box(Trut?)表示。在每個預測框中含有5 個參數,這些參數分別是x、y、w、?、Conf(Object),其中(x,y)表示預測中心與真實框中心的偏移量,(w,?)表示預測框的寬和高。從每個網格的輸出結果看,模型最終輸出的參數為S×S×(5×5×B+C)。YOLOv3使用的是Darknet53主干網絡[10],YOLOV4 則對主干網絡進行了改進,設計了新的CSPDarknet53 主干網絡,也是整個檢測算法的核心。該部分主要用于目標的特征提取,其優勢是保持了較高的準確性,一定程度上降低了計算瓶頸和運行內存[11]。YOLOV4在Darknet53的每個殘差塊中加上了CSP 模塊,它將底層的特征映射分為兩部分,一部分經過密集塊和過渡層,另一部分與傳輸的特征映射結合到下一階段,這種設計的優勢是在減少計算量的同時保證檢測的準確率。CSPDarknet53運用了Mish 激活函數,在其后的網絡中沿用了Leaky Relu激活函數,這種激活函數組合在實際檢驗中效果更好[12]。在網絡結構搭建方面,YOLOV4 借鑒了PANet 網絡結構搭建中的數據傳遞思想。首先借助上采樣方式將高層特征的語義信息傳播到底層網絡中,隨后與底層的高分辨特征進行融合,這種融合方式有助于提高小目標的檢測效率和準確率。同時,它增加了由底層到最上層的信息傳輸路徑。該路徑基于下采樣,得到了特征表達能力更優的特征金字塔,最后借助不同層的特征圖融合進行物體預測。
基于YOLOV4 港口作業人員檢測算法的實驗環境分為硬件環境和軟件環境。硬件選擇支持64 位操作系統的處理器,為了提高計算性能,選擇Msi Nvidia GEFORCE GTX 1080Ti@11GB GPU 作為數據訓練設備;軟件采用Ubuntu16.04 操作系統,編程語言為Python 3.7;深度學習框架選擇TensorFlow 和對應的制圖軟件工具。
實驗數據集在青島著名港口分為5 個不同的場景拍攝采集,每個場景在不同時間段分多次采集,將每個場景下的數據集分為訓練集和測試集,如表1 所示。

Table 1 Number of pictures in each scene表1 各場景下的圖片數量
為驗證YOLOV4 算法在港口作業檢測中的優勢,本文在對比實驗中選擇3 種目前先進的目標檢測框架作為對比算法,分別是SSD、Faster R-CNN 以及YOLOV4-tiny。為保證公平,使用相同數據訓練集和測試集對不同的檢測框架進行訓練和測試。在5 種場景下觀察檢測框架在不同場景下的泛化能力,其檢測平均準確率如表2 所示。

Table 2 Average accuracy of different detection algorithms in different scenarios表2 各場景下不同檢測算法平均準確率(%)
本文對5 個場景下的檢測準確率分別進行統計,所有場景下的檢測平均準確率都高于88%。YOLOV4 在5 個場景下均獲得了最高的檢測精度,排名是SSD 框架、Faster RCNN 框架和YOLOv4-tiny 框架。此外,訓練樣本數量很大程度上影響著準確率,比如場景5的訓練圖片遠多于場景1的訓練圖片,場景5的平均準確率高于場景1 平均準確率6%。
各檢測框架的運行速度統計如表3 所示。YOLOv4-tiny 獲得了最快的運行速度,但其檢測精度遠低于其他框架,YOLOV4 在獲取高精度檢測率的同時也獲得了實時的檢測速度,同時具備優良的檢測精度和速度。

Table 3 Running speed(FPS)of each detection frame表3 各檢測框架的運行速度(FPS)
本文將訓練樣本數量和準確率的關系進行了可視化。從圖4 中可以看出,要想獲取更高的檢測準確率需要提供更多的訓練樣本,由于場景4 中訓練數據有所下降,導致不同算法的作業人員檢測準確率隨之下降。從圖中可以看出,訓練樣本數量和平均準確率呈正相關關系。

Fig.4 Relationship between the number of training samples and accuracy圖4 訓練樣本數量與準確度關系
圖5 展示了多個場景下的檢測結果,圖中紅色外圍框是YOLOV4 生成的檢測結果,從圖可知,本文檢測算法在多個場景下都能很好地檢測出港口作業人員。

Fig.5 Test results of harbor operators in YOLOV4 under different scenarios圖5 不同場景下YOLOV4的港口作業人員檢測結果
從實驗可以看出,YOLOV4 框架在5 個場景下都獲得了很高的檢測準確率,分別達到88%、89%、92%、90%和94%。從上述平均準確率可以看出,不同場景下的訓練圖片數量對準確率有一定影響,更多的樣本可以更好地提升檢測精度,YOLOV4的最終檢測結果完全達到港口作業人員檢測要求。
本文搜集整理了不同場景下港口作業人員數據集,對多種檢測框架進行訓練、測試和對比,驗證了YOLOV4 框架在港口操作人員檢測中的適應性與精確性。通過研究YOLOV4 目標檢測算法,對復雜場景下的目標檢測有了更深入的認識,解決了復雜場景下的目標檢測精度和效率問題。