胡劍琇,朱前坤,2,張 瓊,杜永峰,2
(1.蘭州理工大學(xué) 防震減災(zāi)研究所,甘肅 蘭州 730050;2.蘭州理工大學(xué) 甘肅省減震隔震國際合作研究基地,甘肅 蘭州 730050)
隨著我國經(jīng)濟(jì)及交通運輸?shù)目焖侔l(fā)展,公路與橋梁的交通流量顯著增長,伴隨著這一增長趨勢,交通荷載逐漸引起了人們的關(guān)注。如現(xiàn)在較為常見的超載現(xiàn)象,加快了公路和橋梁的疲勞及破壞。公路與橋梁的汽車設(shè)計荷載應(yīng)與社會發(fā)展相適應(yīng)。因此,對車輛荷載的監(jiān)測與統(tǒng)計變得尤為重要[1-3]。近年來,隨著計算機(jī)視覺和深度學(xué)習(xí)的快速發(fā)展[4]及其在土木工程領(lǐng)域的興起[5],越來越多的研究學(xué)者開始關(guān)注基于計算機(jī)視覺的車輛檢測,將計算機(jī)視覺技術(shù)與智能手機(jī)相結(jié)合,相比于傳統(tǒng)的檢測方法,以其非接觸、速度快、精度合適、現(xiàn)場抗干擾能力強等突出的優(yōu)點,得到了廣泛應(yīng)用[6]。
常見的汽車荷載統(tǒng)計方法為車輛動態(tài)稱重,即車輛動態(tài)稱重(Weigh in Motion,簡稱WIM)系統(tǒng),是指在車輛正常行駛過程中測量出車輛重量的過程。李占峰等[7]以京港澳高速公路某路段的車輛為例,運用WIM系統(tǒng)對該路段的車輛荷載特征進(jìn)行了數(shù)據(jù)采集。Kim等[8]開發(fā)了一個基于WIM系統(tǒng)的描述車輛特性和交通流量的綜合概率模型,用蒙特卡洛模擬方法評估了目標(biāo)橋梁的交通荷載影響。宗周紅等[9]基于WIM系統(tǒng)的汽車荷載數(shù)據(jù),統(tǒng)計了江蘇省高速公路和橋梁上汽車荷載特性,建立了江蘇省高速公路橋梁汽車荷載模型。但是這些研究都是基于WIM系統(tǒng)的,由于WIM系統(tǒng)成本較高,并未全面應(yīng)用于我國各公路或橋梁上,所以完全靠WIM系統(tǒng)來統(tǒng)計車輛荷載是不經(jīng)濟(jì)的。目前,計算機(jī)視覺被廣泛應(yīng)用于各個科研領(lǐng)域,其中包括目標(biāo)檢測與跟蹤的方法。Feng等[10]提出了一種基于計算機(jī)視覺的非接觸式車輛運動稱量方法,通過計算機(jī)視覺系統(tǒng)測量輪胎與道路的接觸長度和輪胎變形,為空載和滿載卡車估計重量,這種方法將計算機(jī)視覺與物理原理結(jié)合運用。Dan等[11]提出了一種用于監(jiān)視整個橋面交通流量負(fù)荷的方法,將動態(tài)稱重系統(tǒng)與計算機(jī)視覺技術(shù)相結(jié)合,布置在橋頭的基于路面的動態(tài)稱重系統(tǒng)用于獲取由攝像機(jī)捕獲的車輛重量,計算機(jī)視覺技術(shù)用于識別車輛的實時位置,但這種方法要求橋梁上預(yù)先具備WIM系統(tǒng),才可實時測量負(fù)載值。He等[12]運用計算機(jī)視覺技術(shù)自動檢測并分類在佛羅里達(dá)州高速公路上行駛的卡車,但不足之處在于未將分類檢測結(jié)果用于荷載統(tǒng)計分析中。在計算機(jī)視覺領(lǐng)域,目標(biāo)檢測算法中較為常用的就是近幾年新興的YOLO[13]算法,大多數(shù)研究學(xué)者開始將其運用于車輛檢測工作中。李珣等[14]提出了一種基于Darknet框架下YOLOv2算法的車輛多目標(biāo)檢測方法。Shen等[15]將YOLO等卷積神經(jīng)網(wǎng)絡(luò)框架用于聯(lián)合檢測車輛并有效估計車輛距離。謝金龍等[16]運用YOLOv3及Deep Sort算法對道路進(jìn)行了車流量檢測,但也未將檢測結(jié)果應(yīng)用于荷載分析中。趙雪峰等[17]將計算機(jī)視覺與智能手機(jī)相結(jié)合,利用智能手機(jī)進(jìn)行圖片收集,利用計算機(jī)視覺中的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了裂縫檢測,其充分利用了智能手機(jī)和計算機(jī)視覺的優(yōu)勢,但對裂縫的檢測僅限于圖片檢測。隨著目標(biāo)檢測的廣泛應(yīng)用以及YOLOv3的提出,視頻檢測變得越來越快速且準(zhǔn)確。
本研究提出了一種基于智能手機(jī)的城市道路車輛即時識別方法。本方法使用普通智能手機(jī)采集視頻材料,運用計算機(jī)視覺技術(shù)對視頻材料進(jìn)行車輛的聚類檢測并跟蹤,并根據(jù)已有的汽車荷載數(shù)據(jù),對某一時間段某一公路或橋梁的負(fù)載情況進(jìn)行分析。最后,選取一條城市道路為研究對象,證明本方法的可行性和實用性,并對該道路是否限制交通流量給出建議。
近年來,目標(biāo)檢測算法取得了很大的突破,比較流行的算法可以分為兩類,一類是基于區(qū)域生成的R-CNN[18]系算法,R-CNN,F(xiàn)ast R-CNN[19],F(xiàn)aster R-CNN[20]等,這些算法是two-stage的,需要先由算法產(chǎn)生目標(biāo)候選框,然后再對候選框進(jìn)行分類與回歸;另一類是YOLO,SSD這類one-stage算法,僅僅使用一個卷積神經(jīng)網(wǎng)絡(luò)CNN直接預(yù)測不同目標(biāo)的類別和位置。
2016年,Redmon提出YOLO算法,YOLO成為計算機(jī)視覺領(lǐng)域最知名的目標(biāo)檢測算法之一,被業(yè)界廣泛使用。YOLO的全稱是You Only Look Once,與另一種著名的目標(biāo)檢測算法Fast R-CNN相比具有兩大優(yōu)勢:(1)速度快:每秒45幀的檢測速率,可用于實時視頻檢測中,在更小的模型上甚至達(dá)到155幀;(2)通用性好:在真實圖像數(shù)據(jù)上訓(xùn)練的網(wǎng)絡(luò),可用于虛構(gòu)的繪畫作品上。但YOLO也存在局限性,其正確率沒有Fast R-CNN高,每個檢測框只能檢測一個物體,邊緣不規(guī)則的物體會影響到周圍物體的識別。Redmon后來又在原始的YOLO技術(shù)上,發(fā)展出了YOLO9000[21],YOLOv3[22]等算法,擴(kuò)展了檢測物的種類并提高了模型的準(zhǔn)確率。
YOLO是一種端到端的目標(biāo)檢測模型,其核心思想為:利用整張圖作為網(wǎng)絡(luò)的輸入,直接在輸出層回歸邊界框(Bounding Box)的位置及所屬類別,在目前的目標(biāo)檢測中達(dá)到了最好的識別精度和速度的平衡。
YOLOv3的網(wǎng)絡(luò)輸入圖片尺寸為416×416,將輸入圖像分為S×S個網(wǎng)格(Grid Cell),如果某個對象的中心坐標(biāo)落在某個網(wǎng)格中,就由該網(wǎng)格來預(yù)測這個對象。每個網(wǎng)格要預(yù)測B個邊界框,每個邊界框除了回歸自身位置之外,還要預(yù)測一個置信度(Confidence Score)以及C個類別概率。其中,置信度反映檢測框?qū)z測結(jié)果的自信程度,其計算公式為:
Pr(Object)×IOU,
(1)
式中,Pr(Object)為當(dāng)前邊界框中含有對象的置信度;IOU(Intersection over Union)為交并比,其計算為預(yù)測邊框和真實邊框的交集和并集的比值,表示當(dāng)前邊界框預(yù)測目標(biāo)位置的準(zhǔn)確性,如圖1所示。
圖1 交并比(IOU)Fig.1 Intersection over union(IOU)
YOLOv3關(guān)于每個邊界框的位置預(yù)測出中心點相對于網(wǎng)格單元左上角的相對坐標(biāo),分別為tx,ty,tw,th,通過坐標(biāo)偏移公式計算得到邊框的位置大小。
bx=σ(tx)+cx,
(2)
by=σ(ty)+cy,
(3)
bw=pwetw,
(4)
bh=pheth,
(5)
式中,tx,ty,tw,th為預(yù)測輸出;cx,cy為網(wǎng)格的坐標(biāo),如某層的特征圖大小為13×13,則網(wǎng)格就有13×13個,第1行第1列的坐標(biāo)(cx,cy)就是(1,1);pw,ph為預(yù)測前邊界框的尺寸;bx,by,bw,bh為得到的邊界框的中心坐標(biāo)和尺寸,具體見圖2。
圖2 坐標(biāo)圖Fig.2 Coordinate diagram
YOLOv3的主干結(jié)構(gòu)是Darknet-53網(wǎng)絡(luò),其他預(yù)測支路都是采用全卷積的結(jié)構(gòu)。YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 YOLOv3 network structure
其中,DBL是YOLOv3的基本組件。正如Darknetconv2D_BN_Leaky函數(shù)的定義,Darknet的卷積層后接Batch Normalization(BN)和LeakyReLU(激活函數(shù))。除最后一層卷積層外,BN和LeakyReLU已成為卷積層不可缺少的部分,并和卷積層組成最小組件。resn中,n代表數(shù)字,有res1,res2,…,res8等,表示這個res_block(殘差層)中包含多少個res_unit(殘差單元)。這是YOLOv3的大組件,從YOLOv2的Darknet-19到Y(jié)OLOv3的Darknet-53,YOLOv3加入了YOLOv2沒有的殘差網(wǎng)絡(luò),使網(wǎng)絡(luò)結(jié)構(gòu)更深。其中,res_block和res_unit的基本組件也是DBL。
YOLOv3采用上采樣和融合做法,融合了3個尺度(13×13,26×26,52×52),在多尺度融合特征圖上分別做獨立檢測,使小目標(biāo)的檢測效果明顯提高。
在YOLO的運用中,損失函數(shù)(Loss Function)是非常重要的。但在YOLOv3的論文中,作者并沒有明確提到所用的損失函數(shù),只在YOLOv1中使用了一種叫作SSE(Sum-squared Error)的損失函數(shù)。SSE是一種常用的損失函數(shù),只是簡單的差方相加,易于優(yōu)化。從YOLOv3的代碼中可以看出,一部分的損失函數(shù)使用了二值交叉熵。損失函數(shù)由4部分組成:(1)對預(yù)測的中心坐標(biāo)做損失;(2)對預(yù)測的寬高做損失;(3)對預(yù)測的類別做損失;(4)對預(yù)測的置信度做損失;其公式如下:
(6)
Deep Sort算法[23]是在Sort算法的基礎(chǔ)上改進(jìn)的,在實時目標(biāo)追蹤過程中,提取目標(biāo)的表觀特征進(jìn)行最近鄰匹配,有效地改善了有遮擋情況下目標(biāo)的追蹤效果,同時減少了目標(biāo)跳變的情形。
常見的關(guān)聯(lián)檢測結(jié)果和追蹤預(yù)測結(jié)果的方法為匈牙利方法,這種Deep Sort算法同時考慮了運動信息的關(guān)聯(lián)和目標(biāo)外觀信息的關(guān)聯(lián)。運動信息的關(guān)聯(lián)是指對已存在的運動目標(biāo)的運動狀態(tài)的卡爾曼預(yù)測結(jié)果與檢測結(jié)果的關(guān)聯(lián)。其中,馬氏距離表示的是數(shù)據(jù)的協(xié)方差距離,是一種有效計算兩個未知樣本集相似度的方法。
(7)
式中,d(1)為馬式距離;dj為第j個檢測框的位置;yi為第i個追蹤器對目標(biāo)的預(yù)測位置;Si為檢測位置與追蹤位置之間的協(xié)方差矩陣。如果關(guān)聯(lián)的馬氏距離小于指定的閾值,則關(guān)聯(lián)成功。另一種關(guān)聯(lián)方法就是計算第i個追蹤器的最近100個成功關(guān)聯(lián)的特征集與當(dāng)前幀第j個檢測結(jié)果的特征向量間的最小余弦距離,其計算公式為:
(8)
如果這個距離小于指定的閾值,則這個關(guān)聯(lián)是成功的。將兩種關(guān)聯(lián)方法的結(jié)果線性加權(quán),作為最終的度量。
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)。
(9)
只有ci,j位于兩個閾值的交集內(nèi)時,才認(rèn)為關(guān)聯(lián)成功。
本研究提出的基于智能手機(jī)以及計算機(jī)視覺技術(shù)的城市道路車輛即時識別方法,是使用普通智能手機(jī)對城市道路行駛中的車輛拍攝視頻,以YOLOv3算法實現(xiàn)初步的視頻中車輛的分類檢測,之后通過Deep Sort跟蹤算法對各類車輛進(jìn)行計數(shù)統(tǒng)計。根據(jù)各類車輛的數(shù)量統(tǒng)計結(jié)果以及分布擬合得到的汽車荷載代表值,統(tǒng)計出某一時段某一公路或橋梁的負(fù)載情況,對其結(jié)果進(jìn)行分析,本方法的流程圖如圖4所示。
圖4 流程圖Fig.4 Flowchart
對于本研究提出的基于智能手機(jī)的城市道路車輛即時識別方法,以一條普通城市道路的中間路段為例,分類統(tǒng)計該路段7 d內(nèi)早中晚3個高峰期的車流量,并統(tǒng)計車輛荷載,對7 d內(nèi)該路段進(jìn)行荷載時程分析。由于該道路屬于城市主干路,卡車禁止通行,所以本試驗僅涉及中小型私家車和公共汽車。
本實例采用的數(shù)據(jù)集為COCO數(shù)據(jù)集[24],主要從復(fù)雜的日常場景中截取。該數(shù)據(jù)集提供的類別有80類,有超過33萬張圖片,其中20萬張有標(biāo)注,整個數(shù)據(jù)集中個體的數(shù)目超過150萬個。其中,本研究的車輛檢測只涉及到兩種類別,即“car”,“bus”,在COCO數(shù)據(jù)集中提取車輛類別,并對YOLO的配置文件進(jìn)行修改,重新編譯,再進(jìn)行訓(xùn)練。
由于Darknet框架下的YOLOv3對數(shù)據(jù)集進(jìn)行訓(xùn)練時,計算量較大,車輛檢測過程中,需要處理的數(shù)據(jù)過多,所以本試驗主要在服務(wù)器上完成。服務(wù)器的主要配置為:NVIDIA Quadro P5000顯卡,顯存容量16 GB,64 G內(nèi)存。使用的語言為Python語言,在Pycharm平臺上實現(xiàn)。試驗樣本采集于人行橋上,采集連續(xù)7 d的早中晚高峰期車輛視頻。視頻使用三星SM9209手機(jī)拍攝,分辨率為1 920×1 080,所以使用普通經(jīng)濟(jì)型手機(jī)即可,降低了對采集設(shè)備的要求。視頻采集設(shè)備示意圖如圖5所示。
圖5 采集設(shè)備Fig.5 Acquisition equipment
大多數(shù)對車重的統(tǒng)計分析都是基于WIM稱重系統(tǒng)的,但是WIM系統(tǒng)目前僅廣泛用于橋梁及大型公路,對于這種城市主干道還沒有普及。本實例統(tǒng)計了通過該路段的1 000多輛汽車的型號以及所載人數(shù),并對統(tǒng)計結(jié)果進(jìn)行分布擬合。其中,每輛車的車重取其出廠參數(shù)提供的整備質(zhì)量,每位男性體重均取75 kg,女性體重均取55 kg,小孩體重均取30 kg。據(jù)此,認(rèn)為小轎車、公交車的車重均服從偏態(tài)分布,分別對應(yīng)的頻率分布直方圖如圖6所示。
圖6 車重頻率分布直方圖Fig.6 Histograms of vehicle weight frequency distribution
如圖6所示,小轎車、公交車的車重均服從偏態(tài)分布。為了與各類車的數(shù)量相結(jié)合,取各自的數(shù)學(xué)期望來反映平均取值的大小,小轎車車重的期望為1.727 t,公交車車重的期望為12.325 t。
本試驗的研究對象為蘭州市的一條城市道路,對其進(jìn)行車輛識別計數(shù)。采集該道路連續(xù)7 d早中晚高峰期的車輛行駛視頻,各1 min。對采集到的視頻進(jìn)行識別,得到的效果如圖7所示。
圖7 YOLOv3檢測結(jié)果Fig.7 YOLOv3 test result
識別完畢,將每一幀檢測到的小轎車和公交車的數(shù)量進(jìn)行統(tǒng)計并進(jìn)行分布擬合,得到1 min內(nèi)每一幀各類車輛數(shù)量的頻率分布直方圖,通過比較,認(rèn)為該道路7 d內(nèi)每天同一時段通過的各類車的數(shù)量很近似,如圖8所示。
圖8中,3 d同一時段的小轎車數(shù)量分布都大致相同,對7 d同一時段的小轎車數(shù)量進(jìn)行統(tǒng)計,發(fā)現(xiàn)整體的頻率分布直方圖與與圖8大致相同,則認(rèn)為某一天的偶然性沒有對整體水平產(chǎn)生很大影響。7 d早高峰期小轎車數(shù)量的整體頻率分布直方圖如圖9所示。
圖8 任意3 d同一時段同一類車的頻率分布直方圖Fig.8 Frequency distribution histograms of same type of vehicles in same period of any 3 days
圖9 七天早高峰期小轎車數(shù)量的整體頻率分布直方圖Fig.9 Overall frequency distribution histogram of number of cars in 7-day morning rush hour
如圖9所示,可得出早高峰期小轎車的數(shù)量主要分布在7~12 veh之間。各個時段各類車輛數(shù)量的頻率分布直方圖如圖10所示。
圖10 各個時段各類車輛數(shù)量的頻率分布直方圖Fig.10 Frequency distribution histograms of number of each type of vehicles in each period
如圖10所示,早高峰期公交車的數(shù)量主要分布在0~2 veh之間,午高峰期小轎車的數(shù)量主要分布在8~13 veh之間,午高峰期公交車的數(shù)量主要分布在0~2 veh之間,晚高峰期小轎車的數(shù)量主要分布在8~15 veh之間,晚高峰期公交車的數(shù)量主要分布在0~2 veh之間,如表1所示。
表1 各高峰期汽車數(shù)量分布區(qū)間Tab.1 Distribution range of automobile number in each rush hour
綜上所述,7 d的高峰期中,每一幀通過的小轎車數(shù)量集中于7~15 veh,最多可達(dá)到20 veh,而每一瞬間通過的公交車數(shù)量集中于0~2 veh,最多可達(dá)到5 veh。
由相關(guān)系數(shù)公式計算可得出每一幀的小轎車數(shù)量與公交車數(shù)量的相關(guān)系數(shù),得到早高峰期小轎車數(shù)量與公交車數(shù)量的相關(guān)系數(shù)為-0.268 2,午高峰期小轎車數(shù)量與公交車數(shù)量的相關(guān)系數(shù)為-0.264,晚高峰期小轎車數(shù)量與公交車數(shù)量的相關(guān)系數(shù)為-0.045 9,絕對值均小于0.3,則近似認(rèn)為小轎車數(shù)量與公交車數(shù)量相互獨立,不具有相關(guān)性。
將公交車、小轎車重量的期望值直接代入檢測到的每幀公交車、小轎車數(shù)量的統(tǒng)計結(jié)果中,可得到每一幀的汽車總重量,如圖11所示。
圖11 各高峰期每幀汽車總重量統(tǒng)計Fig.11 Statistics of vehicle gross weight per frame in each rush hour
根據(jù)檢測情況看出,所能檢測到的路面范圍長度約50 m,根據(jù)路面整體汽車荷載可求得其均布荷載,均布荷載的分布情況如圖12所示。
圖12 各高峰期每幀均布荷載頻率分布直方圖Fig.12 Frequency distribution histograms of uniformly distributed load per frame in each rush hour
如圖12所示,3個高峰期的每幀均布荷載分布在3~9 kN/m的情況較多。按照《公路橋涵設(shè)計通用規(guī)范》(JTG D60—2015)規(guī)定,公路—Ⅰ級車道荷載均布荷載標(biāo)準(zhǔn)值為qk=10.5 kN/m,則該路段在車輛行駛高峰期的車輛荷載有時會超過規(guī)范規(guī)定的標(biāo)準(zhǔn)值。各高峰期每幀均布荷載符合規(guī)范標(biāo)準(zhǔn)值規(guī)定的概率如表2所示。
如表2所示,每個高峰期的大部分時間內(nèi)車輛荷載符合規(guī)范規(guī)定,但也會有超過規(guī)范規(guī)定的情況出現(xiàn),而在晚高峰期超限情況更多一些。因此,為減緩交通壓力并減少對道路路面的破壞,交通部門應(yīng)在各個高峰期對本道路進(jìn)行交通限制。
表2 各高峰期每幀均布荷載符合規(guī)定標(biāo)準(zhǔn)值的概率Tab.2 Probability of uniformly distributed load per frame in each rush hour meets specified standard value
本研究提出了一種基于智能手機(jī)的城市道路車輛即時識別方法,并運用這種方法對某一普通城市道路進(jìn)行荷載分析,得到以下結(jié)論:
(1)利用YOLOv3算法進(jìn)行目標(biāo)檢測具有較高的準(zhǔn)確性,可快速準(zhǔn)確地進(jìn)行目標(biāo)檢測和分類計數(shù)。
(2)本方法使用的采集視頻設(shè)備具有清晰、便攜、簡便以及經(jīng)濟(jì)等優(yōu)點,可隨時隨地采集視頻。
(3)本方法得出的結(jié)論是基于大數(shù)據(jù)支持下的,對某一普通城市道路的荷載分析,為得到更為精確的道路車輛荷載信息,應(yīng)與WIM系統(tǒng)得到的數(shù)據(jù)相結(jié)合。
(4)本方法中的YOLOv3算法也存在一定誤差,例如漏檢、誤檢、復(fù)檢等情況,之后還可嘗試使用YOLOv4等方法進(jìn)行完善;采集設(shè)備也有可能受到外界因素的干擾,例如風(fēng)大時或人行橋的振動較大時,都會對視頻拍攝效果有干擾。