何宇,李丹
(四川大學(xué)錦城學(xué)院計算機與軟件學(xué)院,四川成都,611371)
地鐵作為現(xiàn)如今最為流通的交通出現(xiàn)方式之一,已經(jīng)成為了人們生活中必不可少的一部分。對于本文主要提出的問題,則是在地鐵的實時監(jiān)控錄像中,識別行人的數(shù)目,實時反應(yīng)地鐵上具體的人數(shù)情況,從而有利于選擇更好的出行方式。
針對于此,本文提出基于YOLOv5和DeepSort的算法,著重要實現(xiàn)的目標是如何保障在嘈雜的地鐵環(huán)境中保證行人能夠盡可能被正確識別檢測,提高檢測識別精確率。利用yolov5目標檢測算法和DeepSort算法結(jié)合,達到有效地提升行人的檢測精度。
YOLOv5是一種單階段目標檢測算法,該算法主要是在YOLOv4的基礎(chǔ)上添加了一些新的改進思路,使其速度與精度都得到了極大的性能提升。整個YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)空語分成四部分:輸入端、Backbone、Neck、Prediction。
輸入端的主要操作任務(wù)也就是在用戶輸入多個數(shù)據(jù)的同時需要進行各種數(shù)據(jù)增強,因此YOLOv5繼承了YOLOv4所使用的Mosaic數(shù)據(jù)增強方式,對圖片進行隨機組合縮放、隨機組合裁剪、隨機組合排布等多種方式進行隨機拼接,實現(xiàn)了既對數(shù)據(jù)集進行增強又同時解放了對于GPU的依賴[6]。YOLOv5針對不同的數(shù)據(jù)集,采用自定義不同長寬錨框的自適應(yīng)錨框,同時運用自適應(yīng)圖片縮放,達到數(shù)據(jù)增強的目的。
Backbone主要被劃分為了兩大結(jié)構(gòu):Focus和CSP,Focus結(jié)構(gòu)就是yolov5新提出的一種結(jié)構(gòu),可以將原始的設(shè)定為608*608*3的圖片大小,經(jīng)過切片后改變?yōu)?04*304*12的特征結(jié)構(gòu)圖,利用32個卷積核的卷積,得到304*304*32的圖片特征結(jié)構(gòu)圖。CSP模塊借鑒之前CSPNet的網(wǎng)絡(luò)結(jié)構(gòu),由卷積層和X個Res unint模塊通過concate構(gòu)成,每個CSP模塊前面的卷積核的大小都被設(shè)定成是3*3,stride=2,因此它們可以起到對圖片進行下采樣的作用,降低了內(nèi)存的使用成本[5]。YOLOv5中的CSP結(jié)構(gòu)如YOLOv4類似,但分別劃分了兩處不同的使用范圍,CSP1_X類型結(jié)構(gòu)廣泛應(yīng)用于現(xiàn)在Backbone主干網(wǎng)絡(luò),另一種CSP2_X類型結(jié)構(gòu)則廣泛應(yīng)用于Neck中。

圖1
YOLOv5中的Neck網(wǎng)絡(luò)采用FPN+PAN的結(jié)構(gòu),F(xiàn)PN是自頂向下的,將高層的特征信息通過上采樣的方式進行傳遞融合,得到進行預(yù)測的特征圖,而PAN特征金字塔則自底向上傳達強定位特征,兩兩聯(lián)手,從不同的主干層對不同的檢測層進行參數(shù)聚合[6]。相較于YOLOv4其改進的部分在于,通過借鑒CSPnet網(wǎng)絡(luò)而設(shè)計CSP2網(wǎng)絡(luò),進一步加強網(wǎng)絡(luò)特征融合。
目標檢測任務(wù)的損失函數(shù)一般由分類損失回歸函數(shù)和回歸損失函數(shù)兩個子部分組合構(gòu)成,YOLOv5的Prediction中的端口損失采用了GIOU_Loss函數(shù)作為回歸損失函數(shù),計算不同狀態(tài)下的GIOU的數(shù)值,解決了在邊界框不完全重合的問題;同時利用加權(quán)DIOU_nms實現(xiàn)非極大值抑制,抑制冗余框,只保留我們所需要的框,可以對被遮擋的物體進行更為有效地識別。
YOLOv5算法具有4個版本,具體包括:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四種,可根據(jù)自身對準確度和精確度的需求選擇不同版本,由于Yolov5s網(wǎng)絡(luò)最小,速度最少,AP精度也最低,所以本文算法的權(quán)重文件是基于YOLOv5s而建立的。
DeepSort是在整個Sort算法在對目標追蹤基礎(chǔ)上的改進,整體設(shè)計框架沒有大的修改,還是完全延續(xù)了卡爾曼濾波加匈牙利算法的設(shè)計思路,在這個算法基礎(chǔ)上又新增加了一個Deep Association Metric,此外還重新加入了外觀圖像信息以便于實現(xiàn)了如何在較長時間內(nèi)對被遮擋的目標進行跟蹤時的問題。其主要特點之處在于,DeepSort加入了更多外觀特征信息,借用了新的ReID應(yīng)用領(lǐng)域特征模型來快速提取外觀特征,減少了REID特征轉(zhuǎn)換的發(fā)生次數(shù)。
在跟蹤方面,DeepSort采用的級聯(lián)匹配算法,可以針對每一個檢測器都會分配一個跟蹤器,每個跟蹤器會設(shè)定一個time_since_update參數(shù);對于運動信息和外觀信息的變換和模糊問題,利用馬氏距離與余弦距離計算;添加了深度學(xué)習(xí)ReID的模塊,有利于更好地區(qū)別不同的人物或物體。
DeepSort的運算完成流程,第一步依賴卡爾曼濾波器預(yù)測軌跡Tracks;第二步,使用匈牙利算法將通過預(yù)測軌跡得到的幀中軌跡數(shù)據(jù)tracks和當(dāng)前幀中的軌跡detections組合進行匹配(包括級聯(lián)匹配和IOU匹配);第三步,卡爾曼算法濾波器的更新。DeepSort算法通過將使用目標跟蹤檢測的算法(如YOLO)計算得到的目標檢測框與之前預(yù)測的目標跟蹤框的iou(稱為交并比)進行輸入組合。輸入到匈牙利這個算法中進行線性分配來直接關(guān)聯(lián)這個幀中的ID,目標的物體外觀位置信息可以加入連接到幀間匹配的過程計算中,這樣在目標被物體遮擋但后續(xù)目標再次出現(xiàn)的實際情況下,還可以正確的來匹配這個幀間ID,在進行實時檢測目標追蹤過程中,可以改善在有遮擋目標情況下的實時目標自動追蹤檢測效果。同時,也大大減少了目標id之間跳變頻繁的問題,達到持續(xù)跟蹤的目的。
地鐵列車人流量的實時檢測往往需要受到各種因素的直接影響,比如根據(jù)天氣或者環(huán)境因素,采取自動網(wǎng)絡(luò)售票及電子檢票機等設(shè)備的實時通過人流能力以及地鐵列車實時輸送人流能力等。近年來,由于普通人出行頻率快速增長,地鐵客流量的目標檢測技術(shù)成為一大研究熱點,該研究方向?qū)S持交通秩序,減少出行擁擠很大的意義。
此實驗?zāi)P涂梢詫崟r觀測到進出地鐵的人流量,如圖2所示,該模型實時檢測三個數(shù)據(jù)量:實時客流總數(shù),進出兩不同方向各自的數(shù)目,以及正在進入和正在離開的具體目標。

圖2 實時檢測圖像
本文采用的方法,是將yolov5的目標檢測封裝成了一個Person_detect類,通過它的detect方法可以檢測到視頻中的每一個行人目標。通過給定線條兩端的坐標在視頻畫面中設(shè)定一條基準線,以這條基準線為軸,判斷行人的前進方向,同時確定進出兩個方向的人數(shù)。同時創(chuàng)建跟蹤器,開始對yolov5檢測出的目標進行跟蹤,該思路可以運用于對于地鐵當(dāng)中某些可疑人員進行實時追蹤。
本文中算法對行人人流量實行了兩種判斷模式,一、以視頻前后兩幀的中心點所連成的直線和預(yù)先設(shè)定的基準線相交,如若此時行人的目標位置錨點以超過該交點,則判定該行人已經(jīng)越線,進入地鐵站;二、利用了三角形的正切與反正切原理,使用math模塊中的degrees方法來判斷,如果行人所處錨點與上述交點所連線成的角度大于零,說明是向上走,反之則為向下走。
使用yolov5實現(xiàn)行人檢測,deepsort進行跟蹤,在遮擋的情況下能較好的防止reid模型誤識別,做到可以實時觀察到具體到某個人物進入地鐵監(jiān)控范圍。
該應(yīng)用可以廣泛應(yīng)用于各大地鐵的實時擁擠情況,可以提供人們實時地鐵擁擠信息,利于群眾選擇更為便捷方便的出行方式。
本實驗使用的數(shù)據(jù)集是一個位于地鐵閘門通過口附近的一段實時監(jiān)控錄像,該數(shù)據(jù)集中同時時間段的人數(shù)眾多,充分體現(xiàn)了地鐵人流量的現(xiàn)狀,可提供多種目標種類和位置信息,可保證訓(xùn)練的數(shù)據(jù)盡可能多以及數(shù)據(jù)集集的普遍性,方便進行實時監(jiān)控或錄制。
從實驗結(jié)果上看,實驗中使用yolov5 網(wǎng)絡(luò)和DeepSort算法模型進行訓(xùn)練,訓(xùn)練效果如圖3所示。當(dāng)兩人正在通過黃線,但實時檢測只判定了一人正在通過,且存在有人物距離過近未被標識的情況。但總體而言,可看出yolov5 算法和DeepSort算法對于目標檢測與跟蹤的效果準確率處于較為可觀的狀態(tài),能夠較為準確的檢測識別出正確的人物,但仍需要進一步訓(xùn)練以提高準確率。后續(xù)可嘗試對訓(xùn)練參數(shù)進行修改或改變權(quán)重文件,且yolov5 的損失函數(shù)并不是現(xiàn)在最優(yōu)的,可替換為更為準確地函數(shù)。

圖3 YOLOv5s loss函數(shù)圖像
本次實驗的訓(xùn)練環(huán)境:利用谷歌云盤提供的環(huán)境,CPU為 Intel i7 7800X,GPU 為 Tesla T4,內(nèi)存為 16 G,操作系統(tǒng)為 ubuntu 18.04 64位 安裝CUDA10.0庫文件,開發(fā)語言為 Python,Pytorch 框架。
首先輸入視頻數(shù)據(jù),使用yolov5 檢測算法,通過對相應(yīng)人物識別訓(xùn)練模型的訓(xùn)練,得到訓(xùn)練好的檢測模型,測試相關(guān)的行人標識,選擇置信度最高的邊框輸出,以便完成基于yolov5 的行人目標檢測這一目標。再通過deep sort跟蹤目標,實時監(jiān)控每個物體錨點的移動,最后輸出視頻。
本文圍繞如何利用 yolov5 網(wǎng)絡(luò)模型和DeepSort算法來實現(xiàn)地鐵場景下的對行人數(shù)量的檢測,介紹yolov5的網(wǎng)絡(luò)模型,通過實驗結(jié)果來說明yolov5 可以保證相應(yīng)目標的檢測得以實現(xiàn),且檢測精確率也較為恰當(dāng)。但事實結(jié)果表明該模型的檢測精確度有所提高,但仍然不夠完善,如圖2所示,仍存在多個目標識別為一種目標的現(xiàn)象。如何進一步提高目標檢測的準確率,使其能應(yīng)用到更多的領(lǐng)域中,是需要進一步探索的問題。