這個項目使用YOLO進行車輛檢測,使用SORT(簡單在線實時跟蹤器)進行車輛跟蹤。該項目實現了以下任務:
- 車輛計數
- 車道分割
- 車道變更檢測
- 速度估計
- 將所有這些詳細信息轉儲到CSV文件中
-
車輛計數是指在道路上安裝相應設備,通過對車輛通過的檢測來獲取車輛數量的統計信息。這種技術廣泛應用于交通管理、城市規劃、智能交通系統等領域。車輛計數可以幫助交通管理部門更好地了解交通流量變化情況,并根據數據采取相應的交通管理措施。
-
車道分割是指在道路上設置標線或固定隔離物,將車行道分為不同的車道,以便車輛有序行駛。車道分割可以提高交通安全性,減少事故率,并有助于緩解擁堵。同時,車道分割還可以為智能交通系統提供數據支持,如車道占用監測和車輛類型識別等。
-
車道變更檢測是指通過車載攝像頭、雷達或其他傳感器設備等技術,實現對車輛行駛過程中車道變更情況的檢測。車道變更檢測可以提高駕駛員的行駛安全性和舒適度,避免發生事故,同時也可為智能交通系統提供數據支持,如實時路況分析和交通擁堵預測等。
-
-
速度估計是指通過車輛行駛過程中的運動學參數(如加速度、角度等),結合數據處理算法,實現對車輛速度的估計。速度估計可應用于交通管理、智能交通系統、駕駛員輔助系統等領域,如路段速度監測、交通擁堵預測、自適應巡航控制等。
請注意,視頻中有4個位置和對應的代碼(4個IF語句),您可以刪除其中3個,并根據需要編輯第一個。
運行項目:
安裝所需依賴項,請運行:
$ cd code/
$ pip3 install -r requirements.txt
通過以下方式下載yolo權重文件:
$ bash download_weights
確保根據您的視頻更改檢測和車道分割行,微調YOLO模型的閾值和置信度
運行
$ Python3 main.py -input /path/to/video/file.avi -output /path/for/output/video/file.avi -yolo /path/to/YOLO/directory/
速度檢測:
這是一個有趣的項目,主要是由于攝像頭抖動(可能是由于風或其他原因!)。這種攝像頭抖動會導致框架閃爍。這意味著我們不能使用傳統的像素距離到公里/小時的映射,因為隨著每個幀的閃爍,邊界框的中心點也會任意地閃爍。因此,我嘗試了這種新方法:兩條線之間的速度。
兩個線之間的速度(SBTL)
該方法做出了一些假設,如下所示:
-
我們知道正在記錄/流傳視頻的道路的速限。
-
至少有一輛車以限速行駛。
–>我們在垂直于車輛行駛方向的幀上繪制兩條線,然后找到任何汽車穿過這兩條線所需的最短時間(此車將以限速行駛)。一旦我們找到任何車通過這兩條線所需的最短時間,我們使用簡單的速度=距離/時間公式計算其余車輛的速度。[我知道這不完美,但肯定比像素映射方法更精確]