武明虎,黃詠曦,王 娟
(1.湖北工業(yè)大學(xué)湖北省能源互聯(lián)網(wǎng)工程技術(shù)研究中心,武漢 430068;2.湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,武漢 430068;3.湖北工業(yè)大學(xué)太陽能高效利用及儲(chǔ)能運(yùn)行控制湖北省重點(diǎn)實(shí)驗(yàn)室,武漢 430068)
室外的行人檢測(cè)和跟蹤在無人駕駛、社會(huì)公共安全管理、交通管理等方面應(yīng)用廣泛,而街道的行人檢測(cè)和跟蹤正是其中的基礎(chǔ)研究項(xiàng)目[1-2]。傳統(tǒng)的街道行人流動(dòng)調(diào)研采用人工的方式進(jìn)行,需要消耗大量的人工成本和時(shí)間成本,極大地影響了公共交通和安全管理的效率。如今,視頻監(jiān)控已經(jīng)遍布各個(gè)街道,且計(jì)算機(jī)視覺技術(shù)迅速發(fā)展,目前已實(shí)現(xiàn)對(duì)視頻監(jiān)控中的行人進(jìn)行精確的檢測(cè),而深度神經(jīng)網(wǎng)絡(luò)的發(fā)展使得行人的跟蹤效果更加完善[3],為街道行人的檢測(cè)和跟蹤奠定了深厚的基礎(chǔ)[4-5]。
對(duì)于目標(biāo)檢測(cè)的方法,從2013年Ross Girshick提出R-CNN[6]開始,人們?cè)诙潭處啄陜?nèi)相繼提出Fast R-CNN[7]、Faster R-CNN[8]、Mask R-CNN[9]、SSD[10]、YOLO[11-13]等算法,其中兩步檢測(cè)的目標(biāo)檢測(cè)方法(R-CNN系列算法)需要先產(chǎn)生大量候選框之后再用卷積神經(jīng)網(wǎng)絡(luò)對(duì)候選框進(jìn)行分類和回歸處理;單步檢測(cè)的方法(SSD、YOLO系列算法)則直接在卷積神經(jīng)網(wǎng)絡(luò)中使用回歸的方法一步就預(yù)測(cè)出目標(biāo)的位置以及目標(biāo)的類別[14-15]。雖然兩步檢測(cè)的目標(biāo)檢測(cè)方法在大多數(shù)的場(chǎng)景下精確率更高,但是它需要分兩個(gè)步驟進(jìn)行,因此,這種方法將耗費(fèi)大量的時(shí)間成本和昂貴的硬件成本,不適合對(duì)視頻文件進(jìn)行實(shí)時(shí)的檢測(cè)。而YOLO系列的網(wǎng)絡(luò)速度更快,可以適應(yīng)實(shí)時(shí)視頻的檢測(cè),泛化能力更強(qiáng)[16-17]。
對(duì)于人員跟蹤,2016年Alex Bewley提出了簡(jiǎn)單在線實(shí)時(shí)跟蹤(simple online and real-time tracking,SORT)[18]算法,這種算法把傳統(tǒng)的卡爾曼濾波和匈牙利算法結(jié)合到一起, 能在視頻幀序列中很好地進(jìn)行跨檢測(cè)結(jié)果的關(guān)聯(lián), 而且它的速度比傳統(tǒng)的算法快20倍左右,可以快速地對(duì)目標(biāo)檢測(cè)反饋的數(shù)據(jù)進(jìn)行處理。
目標(biāo)檢測(cè)的準(zhǔn)確率和檢測(cè)框的精度對(duì)于后續(xù)的目標(biāo)跟蹤十分重要,因此,現(xiàn)提出距離和比例交并比(distance and proportional-IOU,DPIOU)損失替換YOLOv3損失函數(shù)中的均方誤差(mean square error,MSE)損失,改進(jìn)YOLOv3中的殘差網(wǎng)絡(luò),最后結(jié)合SORT算法對(duì)街道的人員流動(dòng)進(jìn)行檢測(cè)和跟蹤,為公共交通和安全管理合理的人員流動(dòng)數(shù)據(jù)提供參考,提高管理效率。
YOLO系列算法將物體檢測(cè)作為一個(gè)回歸問題進(jìn)行求解,它使用一個(gè)end-to-end網(wǎng)絡(luò)完成從原始圖像的輸入到物體位置和類別的輸出。實(shí)現(xiàn)了一步完成目標(biāo)檢測(cè),與Fast R-CNN等分兩步的算法相比,有著更快的檢測(cè)速度。
比起YOLOv2使用的Darknet-19,YOLOv3使用了更加深層的網(wǎng)絡(luò)Darknet-53,并使用Resnet提出的殘差組件,從而使得網(wǎng)絡(luò)效果更佳。Darknet-53共有53層卷積,首先是1個(gè)含有32個(gè)過濾器的卷積核,然后是5組重復(fù)的殘差單元,其詳細(xì)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖
在Darknet-53網(wǎng)絡(luò)之后則是借用了Faster R-CNN里使用的FPN層,從而實(shí)現(xiàn)特征融合,最后生成3個(gè)特征圖像。這3個(gè)特征圖像分別包含檢測(cè)框的位置信息、類別信息和置信度信息。在訓(xùn)練初期的時(shí)候,由于網(wǎng)絡(luò)參數(shù)的初始化,位置信息、類別信息和置信度信息與真實(shí)的值會(huì)有較大的差別,于是YOLOv3根據(jù)預(yù)測(cè)框和真實(shí)框的中心點(diǎn)坐標(biāo)以及寬高信息設(shè)定了MSE損失函數(shù)[19]。
YOLOv3的損失函數(shù)包含3個(gè)部分:回歸框位置帶來的損失lbox、置信度損失lobj和類別損失lcls,其公式為
loss=lbox+lobj+lcls=
(1)
可以看到式(1)中回歸框位置帶來的損失,也就是lbox部分使用的是MSE損失,它易于求導(dǎo),對(duì)于運(yùn)算的速度有一定的提升,但它將檢測(cè)框的中心點(diǎn)坐標(biāo)和框的寬度、高度等信息作為獨(dú)立的變量來對(duì)待,而事實(shí)上框的中心點(diǎn)和框的寬高的確存在著一定的關(guān)系,因此,使用這種損失函數(shù)會(huì)造成較大的誤差,這會(huì)使檢測(cè)框和真實(shí)框的位置差距較大,導(dǎo)致目標(biāo)檢測(cè)部分輸出的數(shù)據(jù)誤差偏大,這將會(huì)對(duì)接下來進(jìn)行的目標(biāo)跟蹤部分造成不利的影響。因此,將對(duì)損失函數(shù)的lbox部分和網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)和優(yōu)化。
使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)視頻中的行人進(jìn)行檢測(cè)和跟蹤。視頻幀輸入之后首先進(jìn)入YOLOv3目標(biāo)檢測(cè)的網(wǎng)絡(luò),經(jīng)過Darknet-53提取特征;其次,進(jìn)行上采樣和特征融合,再進(jìn)行回歸分析;再次,把得出的預(yù)測(cè)框信息輸入SORT算法進(jìn)行目標(biāo)特征建模,匹配和跟蹤;最后,輸出結(jié)果。其整體流程如圖2所示。
圖2 算法整體流程圖
由于MSE損失會(huì)給異常值賦予更大的權(quán)重,模型會(huì)全力減小異常值造成的誤差,從而使得模型的整體表現(xiàn)下降,并且MSE損失沒有考慮到檢測(cè)框的長(zhǎng)寬比例變化是有關(guān)聯(lián)的,從而導(dǎo)致預(yù)測(cè)框不準(zhǔn)確。因此,提出DPIOU損失函數(shù)來解決這個(gè)問題。
DPIOU損失函數(shù)是基于IOU[20]損失函數(shù)改進(jìn)而來。IOU損失函數(shù)的定義非常簡(jiǎn)單,即1與預(yù)測(cè)框A和真實(shí)框B之間交并比的差值,公式為
LIOU=1-IOU(A,B)
(2)
式(2)中:
(3)
IOU損失函數(shù)雖然簡(jiǎn)單易于計(jì)算,但是它只在檢測(cè)邊框重疊的時(shí)候才管用,在邊框沒有重疊情況下,它就不會(huì)提供滑動(dòng)梯度,從而導(dǎo)致網(wǎng)絡(luò)無法迭代下去。因此,需要在IOU損失的基礎(chǔ)上加一個(gè)懲罰項(xiàng)來解決這個(gè)問題,這個(gè)懲罰項(xiàng)可以最小化兩個(gè)檢測(cè)框中心點(diǎn)的標(biāo)準(zhǔn)化距離,同時(shí),DPIOU考慮到檢測(cè)框長(zhǎng)寬比之間的聯(lián)系,在以上基礎(chǔ)上再加上一個(gè)懲罰項(xiàng),這兩個(gè)懲罰項(xiàng)可以加速損失的收斂過程。這就是DPIOU損失函數(shù),其具體公式為
(4)
式(4)中:Actr、Bctr分別為預(yù)測(cè)框與真實(shí)框的中心點(diǎn)坐標(biāo);C為預(yù)測(cè)框A和真實(shí)框B的最小包圍框的對(duì)角線長(zhǎng)度;ρ為歐式距離的計(jì)算方程。
其示意圖如圖3所示。
圖3 DPIOU損失函數(shù)示意圖
結(jié)合式(4)和圖3可知,預(yù)測(cè)框A與真實(shí)框B的距離越遠(yuǎn),LDPIOU的值就會(huì)越大,反之,LDPIOU的值則將越接近0。增加了兩個(gè)損失項(xiàng)之后,就可以大大地加快損失收斂的過程,這對(duì)于之后的視頻文件檢測(cè)速度有很大的提升。
對(duì)于置信度損失項(xiàng)和類別損失項(xiàng),保留不變。改進(jìn)后的損失函數(shù)最終形式為
loss=LDPIOU+lobj+lcls
(5)
改進(jìn)之后的損失函數(shù)可以反映預(yù)測(cè)檢測(cè)框與真實(shí)檢測(cè)框的檢測(cè)效果,具有良好的尺度不變性。對(duì)于包含兩個(gè)框在水平方向和垂直方向上這種情況,DPIOU損失可以加快回歸速度,使得整體損失的收斂速度提升。
如圖1所示,YOLOv3網(wǎng)絡(luò)中的Darknet-53采用了He等[21]于2015年提出的RestNet的結(jié)構(gòu)。RestNet不用學(xué)習(xí)整個(gè)的輸出,而是學(xué)習(xí)上一個(gè)網(wǎng)絡(luò)輸出的殘差,從而解決了增加網(wǎng)絡(luò)深度帶來的梯度消失和梯度爆炸的問題。RestNet結(jié)構(gòu)如圖4所示。
圖4 RestNet結(jié)構(gòu)圖
ResNet將下采樣操作放在步長(zhǎng)為2的1×1卷積層,理論上將會(huì)造成3/4的特征信息丟失[22],因此,對(duì)ResNet的結(jié)構(gòu)進(jìn)行改進(jìn)。
首先,將下采樣的操作從第一個(gè)1×1的卷積層換成第二個(gè)3×3的卷積層,因其卷積核尺寸夠大,即使將步長(zhǎng)設(shè)置為2,也不會(huì)丟失特征信息。接著,將其右邊支路當(dāng)中步長(zhǎng)為2的1×1卷積層換成步長(zhǎng)為1的卷積層,并在這層前面添加一個(gè)池化層來做下采樣,加入池化層進(jìn)行均值操作之后,會(huì)減少重要特征信息的丟失,使其丟失的信息為冗余信息。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 改進(jìn)RestNet結(jié)構(gòu)圖
在目標(biāo)跟蹤之前,本文已經(jīng)使用改進(jìn)的YOLOv3算法完成了目標(biāo)檢測(cè)的工作,接著便可以引入SORT算法完成目標(biāo)跟蹤的任務(wù)。首先,對(duì)目標(biāo)的特征進(jìn)行建模,其模型公式為
(6)
當(dāng)首幀的特征輸入時(shí),以這一幀為目標(biāo)進(jìn)行初始化并且創(chuàng)建跟蹤器,每個(gè)目標(biāo)標(biāo)注一個(gè)特定的編號(hào),后面幀的數(shù)據(jù)進(jìn)來之后,先經(jīng)過卡爾曼濾波器得到前一幀產(chǎn)生的預(yù)測(cè)框,求得跟蹤器所有的預(yù)測(cè)框與本幀檢測(cè)到的預(yù)測(cè)框的交并比,再使用匈牙利算法得到交并比最大的匹配值,并去掉小于閾值的匹配對(duì),從而實(shí)現(xiàn)對(duì)目標(biāo)檢測(cè)框的跟蹤。
為了驗(yàn)證改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)合SORT算法在室外街道場(chǎng)景中對(duì)行人準(zhǔn)確檢測(cè)和跟蹤的可行性,使用它對(duì)一處商業(yè)街道的行人進(jìn)行檢測(cè)跟蹤,同時(shí)與Faster R-CNN+SORT、SSD+SORT和傳統(tǒng)的YOLOv3+SORT做對(duì)比,其運(yùn)行結(jié)果圖如圖6所示。
圖6 不同網(wǎng)絡(luò)模型對(duì)行人檢測(cè)跟蹤結(jié)果
圖6(a)中,F(xiàn)aster R-CNN+SORT存在將櫥柜中模特誤檢的情況;圖6(b)中,SSD+SORT的檢測(cè)框的準(zhǔn)確度過差;圖6(c)中,YOLOv3+SORT有部分行人的檢測(cè)框遠(yuǎn)大于真實(shí)框,而圖6(d)改進(jìn)的YOLOv3+SORT可以精確地對(duì)街道上的行人進(jìn)行檢測(cè)跟蹤,足以證實(shí)改進(jìn)網(wǎng)絡(luò)對(duì)街道行人檢測(cè)追蹤的可行性。
改進(jìn)的YOLOv3網(wǎng)絡(luò)理論上會(huì)減少重要特征信息的丟失,加快網(wǎng)絡(luò)收斂速度,減小收斂值,提升網(wǎng)絡(luò)的整體性能。因此,將對(duì)改進(jìn)前后兩種網(wǎng)絡(luò)的性能做出評(píng)估,實(shí)驗(yàn)使用谷歌圖片庫(kù)的4 000張圖片,使用LabelImag將其按照VOC2007的格式進(jìn)行標(biāo)注,其中70%作為訓(xùn)練集,30%作為測(cè)試集,總計(jì)迭代了4 000次。實(shí)驗(yàn)的硬件配置為一塊2060的顯卡,顯存為6 GB,CPU為Intel Core i5-9600KF@3.70 GHz。其loss變化圖如圖7所示。
圖7 改進(jìn)前后網(wǎng)絡(luò)loss曲線
圖7中改進(jìn)后的網(wǎng)絡(luò)收斂速度更快,網(wǎng)絡(luò)的整體運(yùn)行速度變快;最終的收斂值相對(duì)較小,目標(biāo)檢測(cè)的精確度相對(duì)較高。
由于目標(biāo)是對(duì)行人的檢測(cè)以及跟蹤,SORT算法對(duì)行人跟蹤所需的數(shù)據(jù)完全由目標(biāo)檢測(cè)部分得出,因此,目標(biāo)檢測(cè)的準(zhǔn)確率尤為重要。平均準(zhǔn)確率(average precision,AP)可以反映整個(gè)網(wǎng)絡(luò)的檢測(cè)性能,因此本文使用AP來衡量檢測(cè)結(jié)果。同時(shí),對(duì)比了多種網(wǎng)絡(luò)在不同損失函數(shù)下網(wǎng)絡(luò)的效果,以檢驗(yàn)損失函數(shù)的改進(jìn)對(duì)網(wǎng)絡(luò)檢測(cè)性能的影響。實(shí)驗(yàn)結(jié)果如表1所示,其中,AP表示使用不同交并比值作為檢測(cè)閾值得出的平均準(zhǔn)確率的均值,AP75表示使用交并比大于等于75%的值作為檢測(cè)閾值得出的平均準(zhǔn)確率。從表1可以看出,改進(jìn)的損失函數(shù)可以提升網(wǎng)絡(luò)的性能,改進(jìn)后網(wǎng)絡(luò)的平均準(zhǔn)確率比原始網(wǎng)絡(luò)高出4.85%。
表1 不同損失函數(shù)對(duì)比實(shí)驗(yàn)結(jié)果
使用多目標(biāo)跟蹤準(zhǔn)確度(multiple object tracking accuracy,MOTA)和多目標(biāo)跟蹤精確度(multiple object tracking precision,MOTP)這兩個(gè)指標(biāo)來對(duì)改進(jìn)前后網(wǎng)絡(luò)的行人跟蹤性能進(jìn)行比較。MOTA考慮到目標(biāo)個(gè)數(shù)以及相關(guān)目標(biāo)的屬性準(zhǔn)確度,用于統(tǒng)計(jì)目標(biāo)跟蹤當(dāng)中的誤差累計(jì)[23],其公式為
(7)
式(7)中:mt為缺失數(shù),也稱為漏檢數(shù);fpt為誤判數(shù);mmet為誤配數(shù);Gt為目標(biāo)的真實(shí)數(shù)量。
MOTP是目標(biāo)位置誤差的評(píng)估指標(biāo),用于量化目標(biāo)位置確定的精確程度,其公式為
(8)
改進(jìn)前后的跟蹤性能如表2所示,改進(jìn)后的跟蹤準(zhǔn)確度相比改進(jìn)前上升了3.4%,精確度的指標(biāo)也有提升,同時(shí)通過實(shí)驗(yàn)得出整體網(wǎng)絡(luò)的最高速度為14.39 FPS。
表2 改進(jìn)前后跟蹤性能對(duì)比實(shí)驗(yàn)結(jié)果
使用改進(jìn)前后的網(wǎng)絡(luò)對(duì)同一個(gè)街道場(chǎng)景的行人進(jìn)行檢測(cè)和跟蹤,從目標(biāo)檢測(cè)的準(zhǔn)確率,檢測(cè)框的精確度,行人跟蹤的效果等方面來進(jìn)行比較。由圖8的對(duì)比實(shí)驗(yàn)結(jié)果可以看出,改進(jìn)后的網(wǎng)絡(luò)檢測(cè)準(zhǔn)確率高,檢測(cè)框更加貼合目標(biāo)行人,在行人重疊交錯(cuò)之后,仍然可以準(zhǔn)確地標(biāo)出每個(gè)行人的編號(hào),而改進(jìn)前的網(wǎng)絡(luò)在跟蹤過程中發(fā)生了編號(hào)互換、轉(zhuǎn)移的現(xiàn)象。
圖8 街道行人檢測(cè)跟蹤結(jié)果
提出改進(jìn)YOLOv3結(jié)合SORT算法在室外街道的場(chǎng)景下對(duì)行人進(jìn)行檢測(cè)和跟蹤,增加了檢測(cè)跟蹤的準(zhǔn)確率。首先,引入DPIOU損失函數(shù),提高了檢測(cè)的精確度。其次,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)中的殘差網(wǎng)絡(luò)部分置換了下采樣的位置,增加了池化層,減少了特征信息的丟失。這些改進(jìn)使本文網(wǎng)絡(luò)兼顧了準(zhǔn)確率和檢測(cè)速度,極大程度地提升了檢測(cè)框的精度,便于行人跟蹤的實(shí)施,最終實(shí)現(xiàn)了比較穩(wěn)定的室外街道行人的實(shí)時(shí)檢測(cè)跟蹤。本文網(wǎng)絡(luò)可應(yīng)用于城市商業(yè)街道、人行道、校園道路等場(chǎng)景,使用其得出的人員流動(dòng)數(shù)據(jù),幫助公共交通和安全管理。