徐傳運,袁含香,李 剛,鄭 宇,劉 歡
重慶理工大學 計算機科學與工程學院,重慶 400054
在2019 年,我國建筑工地中物體打擊傷亡事故占所有傷亡事故的比例高達15.91%[1]。部分原因是作業(yè)人員安全意識薄弱,未按規(guī)范佩戴安全帽。企業(yè)除了加強宣傳、強制要求外,采用智能化技術實現(xiàn)作業(yè)人員安全帽佩戴的精確自動化監(jiān)管,也是降低此類事故發(fā)生率的有效手段之一。
隨著深度學習方法在安全帽佩戴檢測中的深入應用,安全帽佩戴檢測精度有較大提升。但是,為了提高檢測精度,網(wǎng)絡模型在逐漸加深過程中,參數(shù)量變大,需要的訓練樣本數(shù)量也隨之增多。高昂的訓練樣本采集和標注成本,阻礙了安全帽佩戴智能檢測方法的進一步發(fā)展。因此樣本擴充和數(shù)據(jù)增強成為在不增加采集和標注成本的情況下,緩解訓練樣本不足問題的一種有效解決方案。
數(shù)據(jù)增強通??煞譃橛斜O(jiān)督增強和無監(jiān)督增強兩類[2]。有監(jiān)督增強又可分為單樣本增強和多樣本增強。單樣本增強即增強操作圍繞著一個樣本進行,常見的有圖像翻轉、剪切、變形、縮放、旋轉、添加噪聲、圖像模糊等。多樣本增強則同時使用多個樣本產生新的樣本,如2017年,Dwibedi等人[3]對室內環(huán)境檢測,提出Cut-Paste算法實現(xiàn)不同實例目標和場景的組合,從而得到新的合成數(shù)據(jù)。同年,Zhang 等人[4]提出的Mixup 算法在成對樣本及其標簽的凸組合上訓練神經網(wǎng)絡,增強了訓練樣本之間的線性表達,將CIFAR-10 數(shù)據(jù)集上的錯誤率降低了1.5%;2018 年,Inoue 等人[5]提出sample-pairing 算法,從訓練集中隨機抽取兩張圖像,分別經過單樣本增強處理后經像素取平均值而疊加合成一個新的樣本,將CIFAR-10 數(shù)據(jù)集上的錯誤率從8.22%降低到6.93%;2019 年,Hussein 等人[6]提出的SMOTE 算法為解決樣本類別不平衡問題,對少數(shù)類樣本進行分析并使用聚類算法根據(jù)少數(shù)類樣本人工合成新樣本添加到數(shù)據(jù)集中,一定程度上增加了少數(shù)類的樣本數(shù)量;張家偉等人[7]同樣使用此種方法提高了少數(shù)類樣本分類的準確性;2020年,Bochkovskiy等人[8]提出的YOLO v4中則使用Mosaic方法將隨機生成的四張圖片進行拼接,以增加訓練數(shù)據(jù)的多樣性。無監(jiān)督數(shù)據(jù)增強算法可分為:(1)利用模型學習數(shù)據(jù)的分布,隨機生成與訓練數(shù)據(jù)集分布一致的圖像數(shù)據(jù),如2020 年,杜卉然等人[9]采用鄰域差分濾波器和生成對抗網(wǎng)絡(GAN)相融合的方法,對工業(yè)產品數(shù)據(jù)集進行樣本重建;同年,孫曉等人[10]利用生成器由某一表情下的面部圖像生成同種靜態(tài)圖像數(shù)據(jù)的增強方法。(2)通過模型學習適合當前任務的數(shù)據(jù)增強方法,如2019 年,Google 提出的自動選擇最優(yōu)數(shù)據(jù)增強方案即AutoAugment[11]算法,在CIFAR-10 數(shù)據(jù)集上誤差降低了0.65%。
在前期實驗中,本文嘗試采用以上算法對安全帽數(shù)據(jù)進行擴充。其中,基于Mosaic 的增強方法未能提高安全帽佩戴的檢測精度;基于GAN 的增強方法需要大量數(shù)據(jù)來擬合樣本的分布,且不能任意改變圖像中目標的數(shù)量、大小和位置,因此不適合用于安全帽佩戴檢測任務;基于Cut-Paste[3]的增強方法需要把訓練集中的目標進行精細分割,標注成本太高;基于sample-pairing的增強方法能提高安全帽佩戴的檢測精度,但效果并不理想,精度還需進一步提升,相關結果也在實驗部分進行了闡述。
因此本文針對安全帽數(shù)據(jù)集樣本偏少而導致網(wǎng)絡檢測精度較低的問題,采用有監(jiān)督的多樣本增強方法,提出一種基于場景增強(scene-augment,SA)的樣本擴充算法。該算法將從訓練集中隨機提取前景圖像,對其中小目標進行剪切、隨機縮放后,粘貼到隨機選擇的另一源場景圖像的任意位置,以較小的成本擴展出大量的可訓練數(shù)據(jù)。另外,本文還將SA算法添加到YOLO v4網(wǎng)絡模型(該組合稱為YOLO v4(SA))中,對HelmetWear[12]數(shù)據(jù)集(HW)進行安全帽佩戴檢測。實驗表明,該方法相比其他學者在HW數(shù)據(jù)集上的測試結果,檢測精度得到了進一步提升。
場景增強是指把訓練數(shù)據(jù)中的前景和背景抽取出來,將二者隨機組合以構建出數(shù)據(jù)集中原本不存在的場景,可以應用于訓練樣本不足或訓練樣本分布不均勻的情況。
本文使用HW數(shù)據(jù)集進行安全帽佩戴檢測實驗,訓練集有2 272 張圖像,參照MS COCO[13]數(shù)據(jù)集中按面積大小對不同尺度目標的定義見表1,統(tǒng)計出HW 數(shù)據(jù)集內的小、中、大目標的數(shù)量分別為285 例、2 736 例、4 134例,其中目標分為不戴安全帽和戴安全帽兩類,分別使用0、1標注。
表1 HW數(shù)據(jù)集中目標數(shù)量統(tǒng)計Table 1 Statistics of number of targets in HW dataset
本文針對上述兩種問題提出了一種簡單有效的解決方案,即將隨機抽取的前景圖像內的中小目標剪切、隨機縮放后,粘貼到另一源場景圖像的任意位置上,構建出新的增強場景,如圖1所示。粗略估算,HW數(shù)據(jù)集增強后的場景圖像可以多達500萬張,能極大豐富訓練樣本的多樣性。實驗結果表明,該算法結合YOLO v4網(wǎng)絡模型能夠穩(wěn)定提升安全帽佩戴檢測模型的精度。
圖1 場景增強Fig.1 Scene augment
場景增強能構建出新的場景,但是會帶來以下三個新的問題:(1)粘貼目標可能會遮擋源場景圖像中的目標;(2)隨機粘貼可能導致粘貼位置周圍像素梯度差較大,目標不能無痕的融入到背景中;(3)過多的復制樣本可能導致模型過擬合。
針對第一個問題,本文分析了四大類共14 種不同的遮擋情況,并對每種遮擋情況進行處理。如圖2 所示,其中B 為前景圖像中的目標,A 源場景圖像中的目標。第一類遮擋情況中,B在A的4個角的位置上遮擋,為了保持邊界框的完整性,此標注框不予以處理;在第二及第三類遮擋情況中,B 對A 的4 條邊分別產生了部分及全部遮擋,為保留這兩者中較大目標的個體完整性,因此刪除較小目標被遮擋的部分;第4 類遮擋情況中,B 完全遮擋了A,A 在增強的場景中沒有任何顯示,因此舍棄目標B;當B 的面積較A 目標較小時,能夠模擬現(xiàn)實中目標正常遮擋情況,因此保留B目標。
圖2 4類共14種不同的遮擋情況Fig.2 Four types of 14 different occlusion situations
針對第二個問題,文獻[3]證明了目前的檢測器相對于全局場景布局更加關注局部區(qū)域的特征,例如安全帽檢測器主要關注工作人員的視覺外觀及與背景的融合,而不是在場景中出現(xiàn)的位置(如天上或地面)。同樣,文獻[8]中提出的Mosaic方法,對于拼接處像素梯度突變的情況并未做任何處理,且在MS COCO數(shù)據(jù)集上檢測精度提升了0.5個百分點。像素突變對檢測模型的訓練是個不利因素,但現(xiàn)有的研究成果和本文的實驗結果表明,像素突變對模型檢測精度的影響是有限的,場景增強對檢測精度的提升足以抵消其不利影響。
針對第三個問題,在使用場景增強時需要控制增強的強度,以保證模型在不發(fā)生過擬合的情況下,提高網(wǎng)絡的檢測精度。不同增強強度的對比實驗分析將在第3章中詳細闡述。
在安全帽佩戴檢測應用中,目標可以出現(xiàn)在施工場景中的任意位置,即不對目標的位置施加約束,不僅能擴大安全帽佩戴檢測技術的應用范圍,也能提升檢測方法的魯棒性。在提出的場景增強方法中,我們假設檢測目標可以以任意大小的形態(tài)出現(xiàn)在任意場景中的任意位置。以上假設使得增強場景和真實的安全帽佩戴檢測場景更加一致,從而提高檢測模型在真實應用場景中的檢測精度,也能提高模型的魯棒性。
目標檢測模型需要具有平移不變、旋轉不變、縮放不變等基本特性,為了訓練檢測模型具有這些特性,需要使用不同位置、不同大小、不同傾斜角度的訓練數(shù)據(jù)。場景增強SA(scene-augment)算法對安全帽佩戴數(shù)據(jù)集中抽取的檢測目標和抽取的背景進行組合,以最小的代價生成大量擁有不同位置、不同大小、不同傾斜角度的檢測目標的場景圖像。
靶向OPN基因shRNA慢病毒載體的構建及其對人肺腺癌細胞A549侵襲能力的影響 ………………………………………………………………………… 羅 猛,等(9):1012
為保證訓練的安全帽佩戴檢測模型具有較高的泛化能力和魯棒性,在訓練模型時,場景增強的數(shù)據(jù)與未增強的數(shù)據(jù)需要混合使用。實驗結果表明,過少的增強數(shù)據(jù)不能起到提升檢測精度的目的,過多的增強數(shù)據(jù)反而會降低模型的精度。為了控制場景增強的強度,在模型訓練的每個Mini-Batch 中以概率p選擇部分圖片作為源場景圖像,經場景增強后替換原始圖片,場景增強后圖片數(shù)量的計算公式如下:
其中,SUM為使用SA 增強后的圖片數(shù)量,D為訓練迭代次數(shù),BS為每次迭代的batch size大小,p為增強強度。本文中,D為8 000,BS為64,如果p為0.3,那么擴充的圖片數(shù)量為153 600張。
綜合以上論述,設計出SA 數(shù)據(jù)增強算法。具體實現(xiàn)如下:
如圖3展示了把SA數(shù)據(jù)增強算法與目標檢測網(wǎng)絡模型結合的安全帽檢測框架,訓練集中樣本數(shù)據(jù)經SA增強后得到新的訓練圖片及標簽,對其進行基礎變換后再將其送入YOLO v4網(wǎng)絡模型中進行訓練。
圖3 基于場景增強的安全帽佩戴檢測過程Fig.3 Safety helmet wearing detection process based on scene augment
在實驗中發(fā)現(xiàn)HW數(shù)據(jù)集中有部分目標沒有標注,這無疑會影響安全帽佩戴檢測模型的性能,為了提高HW數(shù)據(jù)集的質量,使用LabelImg工具對部分遺漏的目標進行了補充標注。經過標注后的HW 數(shù)據(jù)集標識為HW+,其中,HW+訓練集中圖像數(shù)量總和不變,檢測目標增加了570 例,其中小目標395 例、中目標157 例、大目標18 例,測試集增加了檢測目標102 例,其中小目標66例、中目標29例、大目標7例,如表2所示。表中Δt、Δc分別代表訓練集、測試集中新增的小、中、大目標的數(shù)量。圖4 中展示了補充標注前后的對比圖,其中圖(a)、(b)、(c)各列分別為原圖、原始標注情況、補充標注后的情況。
表2 HW數(shù)據(jù)集補充標注后的目標數(shù)量Table 2 Number of targets after supplementary annotation in HW
圖4 補充標注前后對比Fig.4 Comparing before and after supplementary annotation
為了驗證補充后是否提高了模型的檢測精度,分別使用HW、HW+訓練YOLO v4,并在兩個數(shù)據(jù)集的測試集上交叉測試,結果見表3。使用HW 訓練出的模型的測試mAP 分別為92.29%、89.21%,使用HW+訓練出的模型的測試mAP 分別為92.86%、91.29%。縱向對比兩組結果可知,HW+數(shù)據(jù)集對每個測試集都有相應的提高,說明添加標簽能夠一定程度上提高模型的檢測精度。
表3 補充標注前后的模型檢測精度對比Table 3 Comparison of model detection accuracy before and after supplementary annotation單位:%
實驗基于PyTorch 框架實現(xiàn),硬件配置為:兩張NVIDIA RTX 2080Ti,配備22 GB 圖形緩存,32 GB 系統(tǒng)內存,Intel I9 9900K CPU;軟件配置為ubuntu16.04,64 位操作系統(tǒng)。實驗測試評價指標為平均準確率(average precision,AP),描述了每個類別準確率的平均值,其中mAP、APs、APm、APl分別表示AP 的均值和小、中、大3種不同尺度物體的AP 值。
訓練樣本采用補充標注后的HW+數(shù)據(jù)集,并利用VOC2007數(shù)據(jù)集處理方法將其輸入到YOLO v4網(wǎng)絡模型中分兩階段訓練[8]:第一階段凍結網(wǎng)絡預訓練權重只更新檢測頭的參數(shù);第二階段更新整個網(wǎng)絡的參數(shù)。batch size分別為64、16,訓練及測試圖像大小均為416×416,每個實驗訓練迭代8 000次。表4的結果展示了分別使用余弦退火(cosine annealingLR)[14]、自適應調整(reduce LROnPlateau)[15]學習率下降策略及標簽平滑(label smoothing)[16]訓練技巧對安全帽檢測精度的影響。結果表明余弦退火、標簽平滑對安全帽佩戴的檢測精度起到了削弱作用,自適應調整能夠有效提高模型檢測精度,因此以下實驗將采用自適應學習率下降策略,且取消標簽平滑操作。
表4 模型調優(yōu)Table 4 Model tuning單位:%
為消除YOLO v4 自帶Mosaic 數(shù)據(jù)增強算法的干擾,接下來的實驗選擇將其剔除,另外為和其他學者在HW數(shù)據(jù)集上的測試結果進行對比,以下將使用HW測試集驗證測試。
本文還在同樣的實驗環(huán)境下替換多種數(shù)據(jù)增強算法對HW+訓練集進行訓練從而得到對應的檢測模型,以便于在HW測試集上與SA的檢測結果進行對比。
小目標檢測是計算機視覺中最具挑戰(zhàn)性和重要的問題之一,為了驗證場景增強在小目標檢測上的有效性,設計了面向小目標的場景增強實驗。實驗只選擇(xb,yb) 中的小目標粘貼到源場景(xa,ya) 中,測試了Mini-Batch中圖像進行SA增強的概率p對檢測精度的影響,表5展示了實驗結果。當p=0.3 時,即10張圖像中有3張進行SA增強,在測試集上檢測的mAP由93.02%提高到93.41%,其中,小目標檢測的mAP 由33.65%提高到35.09%,由結果可知,當p=0.3 時,SA增強算法能夠提高模型的檢測精度,且在小目標檢測上的表現(xiàn)尤為明顯。
表5 小目標增強的對比實驗結果Table 5 Contrastive experimental results of small target enhancement單位:%
為了驗證算法的魯棒性,訓練了10 組p=0.3 時的檢測模型,并測試其檢測精度,實驗結果參見表6,可知,10 組實驗檢測精度的平均值為93.42%,標準差為0.07%。從結果可以看出,場景增強算法能穩(wěn)定提升安全帽佩戴檢測模型的檢測精度。
為增強中小目標的樣本數(shù)量,嘗試在小目標與場景融合的同時,對中目標采用剪切縮放并融合的方法。實驗結果見表7,當p=0.1 及p=0.3 時模型檢測精度均有提升,但隨著p的增大,擴充樣本增多,模型過擬合的概率越大,模型檢測精度逐漸下降。當p≤0.3 時,能夠在保證模型不發(fā)生過擬合的前提下,有效提高模型的檢測精度,且這種設置比只融合小尺度目標效果更好。
表7 不同概率對中小目標增強的實驗對比Table 7 Experimental comparison of enhancement of small and medium targets with different probabilities單位:%
圖5 展示了不同安全帽佩戴檢測方法的檢測結果對比,其中圖(a)、(b)、(c)各列分別為原始測試圖像、YOLO v4原始模型檢測結果、YOLO v4(SA)的檢測結果??梢钥闯?,相對于添加Mosaic的YOLO v4模型檢測結果,YOLO v4(SA)模型能更加準確地檢測出小目標的位置。
圖5 SA算法檢測結果對比Fig.5 Comparison of detection results of SA algorithm
面向目標檢測的數(shù)據(jù)增強方法有多種,為了驗證這些方法對安全帽佩戴檢測的有效性,本文將其分別添加到YOLO v4 網(wǎng)絡模型中對HW+數(shù)據(jù)集進行訓練并對實驗結果對比分析,結果如表8。從實驗結果可見,Mosaic增強[8]、random erasing[17]增強沒有提高安全帽佩戴檢測的精度,sample pairing[5]增強能提高安全帽佩戴檢測的精度,但是實驗精度要低于SA增強,進一步說明SA算法相比目前主流數(shù)據(jù)增強算法在提升安全帽檢測精度上具有一定的優(yōu)勢。
表8 不同數(shù)據(jù)增強算法實驗對比Table 8 Experimental comparison of different data enhancement algorithms單位:%
圖6 分別顯示了YOLO v2[18],MD-YOLO v2[12],YOLO v3[19],YOLO v4[8](SA)5 個框架在HW 測試集上的測試結果。其中MD-YOLO v2的實驗結果由方明等人[12]提供(是當前公開發(fā)布的最好檢測結果),其他結果由測試得到??芍琘OLO v4(SA)相比YOLO v2、MD-YOLO v2、YOLO v3 分別提高了7.29 個百分點,6.39個百分點,5.57個百分點。YOLO v4(SA)方法相比YOLO v4,能夠在參數(shù)量不變的情況下,對安全帽佩戴檢測效果有較好的提升。
圖6 不同模型的測試結果對比Fig.6 Comparative test results of different models
為了解決現(xiàn)有安全帽佩戴數(shù)據(jù)集樣本數(shù)量有限而導致模型檢測精度較低的問題,本文提出了一種基于場景增強的樣本擴充算法并將其應用到YOLO v4 網(wǎng)絡模型中對安全帽佩戴情況進行檢測,結果表明,合適的場景增強強度結合YOLO v4 網(wǎng)絡模型能有效提高檢測精度。
但由于在場景增強時,目標被粗暴的粘貼進源場景圖像中,目標和背景的拼接處將會有較大的梯度突變,這可能會影響增強數(shù)據(jù)集的訓練效果,在未來的研究中,計劃將目標與背景融合成自然的增強場景并提高場景構建的隨機性。