王婧媛, 方 健
(吉林工程技術(shù)師范學(xué)院 電氣工程學(xué)院, 長(zhǎng)春 130052)
智能視頻監(jiān)控系統(tǒng)的重要任務(wù)之一是對(duì)人群數(shù)量計(jì)數(shù), 準(zhǔn)確的人群計(jì)數(shù)可以有效防止高密度人群踩踏事故的發(fā)生。因此, 分析人群密度的走向, 從而對(duì)其安全隱患提供有效預(yù)警信息的人群計(jì)數(shù)系統(tǒng)對(duì)社會(huì)的安全穩(wěn)定具有重要意義。然而人群計(jì)數(shù)也面臨許多難題, 例如障礙物掩蓋、 人群高度混亂、 個(gè)體密度分布不均勻、 透視畸變以及透視失真等問題, 都會(huì)對(duì)人群計(jì)數(shù)的最終結(jié)果產(chǎn)生很大的影響。
目前對(duì)人群計(jì)數(shù)研究已經(jīng)提出了很多方法。其中主要是利用一些手段特征的傳統(tǒng)方法, 比如HOG(Histogram of Oriented Gradient)[1-2], LBP(Local Binary Pattern)[3-4]算子, 通過使用并且融合多種特征, 采用回歸方法預(yù)測(cè)人群數(shù)量。然而這些方法只能提供一些局部特征, 并不能很好地處理復(fù)雜環(huán)境下人群的多變性。近年來(lái), 深度學(xué)習(xí)[5-6]特別是卷積神經(jīng)網(wǎng)絡(luò)(CNN: Convolutional Neural Network)[7]廣泛應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域, 用其強(qiáng)大的特征提取能力代替?zhèn)鹘y(tǒng)的手工構(gòu)造特征。何鵬等[8]利用KLT(Kanade-Lucas-Tomasi)跟蹤器建立跟蹤環(huán)節(jié), 運(yùn)用多尺度塊局部二進(jìn)制模式(MBLBP: Multi-scale Block Local Binary Pattern), 將對(duì)點(diǎn)跟蹤轉(zhuǎn)化為對(duì)人跟蹤的模式, 實(shí)現(xiàn)了人群的實(shí)時(shí)計(jì)數(shù)。Gao等[9]和郭瑞琴等[10]在CNN的基礎(chǔ)上結(jié)合級(jí)聯(lián)Adaboost算法作為特征, 提取人群個(gè)體的頭部特征, 通過對(duì)頭部檢測(cè)計(jì)數(shù), 從而獲得人群計(jì)數(shù)。該方法在人群個(gè)體獨(dú)立且分布均勻的情況下可以實(shí)現(xiàn)準(zhǔn)確的人群計(jì)數(shù), 但前提是目標(biāo)具有清晰的輪廓特征。
綜上, 筆者提出了一種基于Yolov5的密集人群計(jì)數(shù)的技術(shù)方法, 其中輸入層主要進(jìn)行Mosaic數(shù)據(jù)增強(qiáng), 自適應(yīng)錨框和自適應(yīng)的圖片縮放技術(shù); Backbone中Yolov5主要采用Focus和CSP(Cross Stage Partial)結(jié)構(gòu); Neck層采用SPP(Spatial Pyramid Pooling)模塊和FPN(Feature Pyramid Networks)+PAN(Pixel Aggregation Network)結(jié)構(gòu); 在輸出端主要針對(duì)Bounding Box損失函數(shù)采用了CIOU_Loss作為損失函數(shù)和DIOU_Loss作為NMS(Non Maximum Suppression)的平均指標(biāo); 最終輸出訓(xùn)練結(jié)果。
1.1.1 Mosaic數(shù)據(jù)增強(qiáng)
Mosaic數(shù)據(jù)增強(qiáng)屬于CutMix數(shù)據(jù)增強(qiáng)的變種形式, 采用隨機(jī)縮放、 裁剪、 排布的方式進(jìn)行拼接, 增強(qiáng)對(duì)小目標(biāo)的檢測(cè)效果。表1所示為樣本大小分類指標(biāo)。
表1 樣本大小分類指標(biāo)
對(duì)小目標(biāo)的定義為目標(biāo)框長(zhǎng)寬0×0~32×32像素之間的物體, 對(duì)大多數(shù)訓(xùn)練集而言, 中目標(biāo)與大目標(biāo)的分布相更加均勻。通過在每個(gè)batch中隨機(jī)使用4張圖片, 隨機(jī)縮放, 在隨機(jī)分布進(jìn)行拼接的方式, 大大豐富了檢測(cè)數(shù)據(jù)集, 特別是縮放增加了很多小目標(biāo), 增強(qiáng)模型的魯棒性。且由于Mosaic增強(qiáng)訓(xùn)練時(shí), 可以直接計(jì)算4張圖片, 使Mini-batch大小并不需要很大, 減少了GPU的消耗。Mosaic數(shù)據(jù)增強(qiáng)在訓(xùn)練中也可采用, 根據(jù)小目標(biāo)Loss的相應(yīng)情況, 進(jìn)行相應(yīng)的拼接, 在Loss不足時(shí), 下一個(gè)循環(huán)就采用拼接圖的方式, 否則就采用正常圖片進(jìn)行訓(xùn)練。經(jīng)實(shí)驗(yàn)驗(yàn)證, 使用Mosaic對(duì)目標(biāo)檢測(cè)的能力普遍提高。
1.1.2 自適應(yīng)錨框的計(jì)算
在輸入層中, 為使網(wǎng)絡(luò)更容易學(xué)習(xí)以得到好的檢測(cè)器, 需要與訓(xùn)練集匹配的錨框, 而Yolov5采用了根據(jù)訓(xùn)練集標(biāo)簽的信息進(jìn)行自適應(yīng)的錨框計(jì)算。其基本實(shí)現(xiàn)方法為, 先使用k-means聚類方法對(duì)anchors進(jìn)行聚類分析后采用遺傳算法, 在k-means聚類的效果上進(jìn)行mutation變異。其中k-means聚類算法中定義樣本距離的評(píng)價(jià)指標(biāo)由傳統(tǒng)的歐氏距離改為anchor與boundingbox之間的交并比(IOU: Intersection Over Union)。由實(shí)驗(yàn)驗(yàn)證可得, 在聚類時(shí)使用IOU作為聚類指標(biāo)比采用誤差平方和SSE(Sum of Squares due to Error)的Avg IOU要提高很多(標(biāo)簽boundingbox與anchor之間的平均IOU)。
1.1.3 自適應(yīng)的圖片縮放技術(shù)
在圖片輸入網(wǎng)絡(luò)前, 圖片都需要統(tǒng)一縮放到一個(gè)標(biāo)準(zhǔn)尺寸, 但圖片在進(jìn)行縮放時(shí), 由于圖片尺寸不統(tǒng)一, 在縮放時(shí)對(duì)圖片填充的黑邊不同, 會(huì)出現(xiàn)信息冗余, 影響推理速度, 因此Yolov5在圖片縮放中采用Letterbox的自適應(yīng)圖片縮放技術(shù)添加最少的黑邊。具體操作為, 對(duì)圖片計(jì)算縮放比例, 選擇縮放比例較小的一邊為縮放系數(shù)。然后根據(jù)縮放比例計(jì)算縮放后的尺寸, 其中長(zhǎng)邊需要填充的像素?cái)?shù)根據(jù)網(wǎng)絡(luò)的感受野計(jì)算而得, 從而得到最小圖片需要填充的像素?cái)?shù)。填充的黑邊與網(wǎng)絡(luò)的感受野有關(guān), 減少了冗余黑邊的影響, 使網(wǎng)絡(luò)收斂速度加快, 易于訓(xùn)練。
1.2.1 Focus結(jié)構(gòu)
Focus結(jié)構(gòu)的主要作用為對(duì)圖片進(jìn)行一個(gè)切片操作, 具體為在一張圖片中每隔一個(gè)像素去掉一個(gè)值, 再進(jìn)行拼接, 相當(dāng)于得到4張圖片并且進(jìn)行采樣, 且4張圖片互補(bǔ), 保證了信息沒有丟失, 之后進(jìn)行一次卷積操作對(duì)通道數(shù)進(jìn)行變換, 最后相當(dāng)于得到了一個(gè)沒有信息丟失的二倍下采樣特征圖。若不通過Focus得到不失真的二倍下采樣特征圖, 則需要采用兩層卷積和一層Bottleneck結(jié)構(gòu), 故使用Focus結(jié)構(gòu)大大降低了模型的計(jì)算量, 且很大程度保留了圖片的信息。
1.2.2 CSP結(jié)構(gòu)
在Backbone中, Yolov5的模型主要采用了CSPDenseNet結(jié)構(gòu)。
CSPNet為對(duì)DenseNet的改進(jìn), 在DenseNet中, 每個(gè)階段都包含一個(gè)稠密塊和一個(gè)過渡層, 每個(gè)稠密塊都由k個(gè)稠密層組成。其中第L層接收到先前所有層的x0,x1,…,xk的特征圖作為輸入, 故可得
(1)
1.3.1 SPP模塊
SPP全稱為空間金字塔池化結(jié)構(gòu), 為避免對(duì)圖像區(qū)域剪裁, 提高候選框的速度問題, SPP通過使用多個(gè)Pooling層, 將同一圖像以不同尺寸作為輸入, 得到同樣長(zhǎng)度的特征, 以盡可能保留其特征圖的特征。
1.3.2 FPN+PAN
FPN最早應(yīng)用于設(shè)計(jì)處理卷積網(wǎng)絡(luò)會(huì)丟失細(xì)節(jié)特征問題。普通的神經(jīng)網(wǎng)絡(luò), 自底向上, 特征圖經(jīng)過卷積核的計(jì)算, 通常會(huì)越變?cè)叫?。如果僅用最后輸出層進(jìn)行預(yù)測(cè), 相當(dāng)于只對(duì)最大的特征物體進(jìn)行了預(yù)測(cè), 丟失了淺層中對(duì)小目標(biāo)的特征效果。FPN通過自上而下的方法, 且采用橫向連接的策略, 將上采樣的結(jié)果和自底向上生成的相同大小的特征圖進(jìn)行融合, 橫向連接兩層特征在空間尺寸上相同, 利用了底層的定位信息保留細(xì)節(jié)。
輸出端主要針對(duì)Bounding Box損失函數(shù)采用了CIOU_Loss作為損失函數(shù)和DIOU_Loss作為NMS的平均指標(biāo)。在計(jì)算預(yù)測(cè)框與真實(shí)邊界框的損失時(shí), 傳統(tǒng)的計(jì)算指標(biāo)IOU不能定義兩個(gè)完全不相交框的直接損失, 導(dǎo)致不能計(jì)算梯度和進(jìn)行反向傳播, 即有
(8)
由GIOU的損失函數(shù)可知, 當(dāng)使用GIOU計(jì)算時(shí), 網(wǎng)絡(luò)會(huì)盡力縮小Ac-u的值, 這會(huì)導(dǎo)致網(wǎng)絡(luò)首先將預(yù)測(cè)框變大, 并縮小Ac-u, 且當(dāng)預(yù)測(cè)框和真實(shí)框十分相近時(shí),Ac-u會(huì)變的很小, 則GIOU就會(huì)退化成IOU, 最終導(dǎo)致網(wǎng)絡(luò)收斂變得十分困難。
為解決上述問題, 且對(duì)目標(biāo)檢測(cè)的損失函數(shù)而言, 損失函數(shù)需要考慮以下問題:
1) 兩個(gè)框的重疊部分;
2) 兩個(gè)框的距離信息;
3) 兩個(gè)框的長(zhǎng)寬比信息。
實(shí)驗(yàn)訓(xùn)練集與測(cè)試集為POSCAL VOC2007與POSCAL VOC2012。整體訓(xùn)練集與測(cè)試集的人數(shù)分布情況如圖1所示。
圖1 整體訓(xùn)練集與測(cè)試集的人數(shù)分布情況
訓(xùn)練結(jié)果可視化圖如圖2所示, 訓(xùn)練損失與MAP(Mean Average Precision)指標(biāo)可視化圖如圖3所示, 模型視頻流測(cè)試圖如圖4所示, 訓(xùn)練結(jié)果指標(biāo)如表2所示??梢钥闯? 精度(P)為0.792 7, 召回率(R)為0.962 6, 平均查準(zhǔn)率的算術(shù)平均值MAP0.5和MAP0.5 :0.95分別為0.965 7和0.496 9, 準(zhǔn)確率達(dá)到0.84。
圖2 訓(xùn)練結(jié)果可視化圖
圖3 訓(xùn)練損失與MAP指標(biāo)可視化圖
圖4 模型視頻流測(cè)試圖
表2 訓(xùn)練結(jié)果
筆者針對(duì)目前高密度人群計(jì)數(shù)問題存在的局限性, 提出了一種基于Yolov5的人群計(jì)數(shù)方法。基于已有的經(jīng)典深度模型和現(xiàn)有的人群計(jì)數(shù)卷積神經(jīng)網(wǎng)絡(luò), 對(duì)其進(jìn)行了詳細(xì)研究。實(shí)驗(yàn)結(jié)果表明, 該方法能有效提高人群計(jì)數(shù)精度。
通過該研究和對(duì)現(xiàn)有的人群計(jì)數(shù)方法分析可知, 目前主流的人群計(jì)數(shù)方法是基于卷積神經(jīng)網(wǎng)絡(luò), 而訓(xùn)練一個(gè)高性能的深度計(jì)數(shù)網(wǎng)絡(luò)則需要大量的訓(xùn)練樣本, 這就制約了神經(jīng)網(wǎng)絡(luò)的性能。采用一些方法如引入其他的損失函數(shù), 嵌入上采樣等, 提高網(wǎng)絡(luò)輸入人群密度圖的質(zhì)量是未來(lái)人群計(jì)數(shù)領(lǐng)域一個(gè)值得關(guān)注的方面。