2021-12-02 10:19:29 索煒達(dá)電子 1057
文件編號:A169
文件大小:38M
開發(fā)環(huán)境:Python3.7、OpenCV4.5
猿創(chuàng)承諾:該項目親測正常運(yùn)行,需遠(yuǎn)程調(diào)試部署需另外收費(fèi),確保正常使用,不能正常使用全額退款。
簡要概述:項目的編程環(huán)境為python3.7.7,編譯器使用pycharm2019.3.4 x64,視頻序列30幀每秒。項目采用虛擬線圈法估算車速,取線圈內(nèi)平均灰度值相對于沒有車輛的線圈內(nèi)平均灰度值的變化c作為對象特征,當(dāng)c的絕對值大于某一閾值時,判斷有汽車通過線圈。
基于虛擬線圈的車速檢測算法
虛擬線圈法是利用虛擬感應(yīng)線圈代替真實感應(yīng)線圈,工作原理類似于地埋式線圈檢測器。在圖像上垂直于道路方向上定義2個檢測線圈的位置,系統(tǒng)通過檢測線圈的灰度變化來判斷車輛經(jīng)過,由車輛經(jīng)過前后兩個線圈的間隔幀數(shù)p、兩個線圈在現(xiàn)實中的距離l和第二個線圈與停止線的距離s,可以估算出當(dāng)前車輛的速度及撞線時間。該方法的優(yōu)點(diǎn)是操作簡單,耗時短,能夠?qū)崟r完成速度和撞線時間估計。算法的具體步驟如下:
1. 確定兩個虛擬線圈的位置、大小和傾斜角度,確保首幀序列的虛擬線圈內(nèi)沒有車輛,在視頻序列中把虛擬線圈標(biāo)注出來;
2. 計算首幀序列在2個虛擬線圈中的平均灰度值,記為aaa、bbb;
3. 逐一計算視頻幀在2個虛擬線圈中的平均灰度值,記為mmm、nnn,并與首幀的計算結(jié)果aaa、bbb進(jìn)行比較。當(dāng)∣m?a∣\left|m-a\right|∣m?a∣大于某一閾值時,判斷第一個線圈有車輛通過,記錄當(dāng)前幀的序號iii,如圖3-1所示,當(dāng)∣n?b∣\left|n-b\right|∣n?b∣大于某一閾值時,判斷第二個線圈有車輛通過,記錄當(dāng)前幀的序號jjj;
4. 當(dāng)車輛通過第二個虛擬線圈時,由iii、jjj、實際現(xiàn)實中兩虛擬線圈的間距、第二個虛擬線圈與停止線的間距和視頻的幀率等信息,即可估算出車輛的車速和撞線時間。
總結(jié)
考慮到實際應(yīng)用中,攝像頭可以固定在道路中,穩(wěn)定程度和角度都要好于我在樓頂手持錄像,所以實際應(yīng)用理論要好于實驗。但也存在一些問題,比如對白色車輛不敏感,只是通過黑色后視窗進(jìn)行識別,原因可能是特征選擇為灰度圖的平均灰度值差異,白色車輛跟道路的平均灰度值差異不夠明顯,改進(jìn)的話可以使用SHV圖像的顏色做判別,這也比較符合人的判斷;比如實驗視頻時間短,只考慮白天,實際現(xiàn)實還要工作于夜晚,可以運(yùn)用動態(tài)閾值進(jìn)行改進(jìn)。
按需寫作:
演示視頻:
點(diǎn)擊查看:系統(tǒng)演示視頻
運(yùn)行結(jié)果:
遠(yuǎn)程協(xié)助:
溫馨提示:索煒達(dá).猿創(chuàng)官方提供收費(fèi)遠(yuǎn)程協(xié)助,確保您項目運(yùn)行成功。
點(diǎn)擊查看:遠(yuǎn)程協(xié)助相關(guān)事項
我們提供完整項目文件清單如下:
文件目錄
├ 1.項目源碼
├ 2.運(yùn)行截圖
└ 3.演示視頻