0

我需要編寫一個程序,該程序使用攝像頭檢測道路上確定區域內的車輛是否存在,然後停在交叉路口(就像感應環路一樣)。根據車輛在該地區的可見度,輸出結果將爲真或假。相機可以安裝在垂直於道路或道路上方的位置。目前我需要一個算法。在停車線之前檢測車輛的穩健算法

下面的圖像是爲了檢測車輛在路口一個示例實現:

enter image description here

在這個領域我意識到此技術的一些研究後背景減除,程序模型背景,並且當車輛進入區域內,它會被檢測到。但定義說它檢測到移動車輛,那麼如果汽車在傳感器上停下50%-60%(當信號燈變爲紅色時)會怎麼樣?他們會成爲背景嗎?他們是否一直都在檢測?

我在BS領域看到過一些算法,比如高斯混合,但是由於上述問題,他們懷疑它們在真實情況下工作。

目前我編寫了一些方法,例如在Linux下使用OpenCV進行平均。程序計算該矩形內的像素平均值並將該值保存在緩衝區內,計算模式並與當前幀進行比較。但是,像夜間的車輛燈光,白天的車輛陰影,以及由於紅色信號而使我的傳感器停車等問題存在。

+0

你需要更清楚地界定問題,下載的數據集也。你的意見是什麼?你在說什麼矩形?真/假的輸出是什麼意思?你是否試圖推斷出不同顏色的紅綠燈?嘗試編寫聲明輸入和輸出的函數原型。另外,給一些圖。 – ShitalShah

+0

已編輯的問題。我添加了一張清晰顯示我的意圖的照片。如所見,檢測到的區域以白色邊框顯示。 – SAMPro

回答

0

我想建議更好的檢測車輛比分離前景從背景。有太多的燈光條件問題,這是舊時尚。 在opencv中,您可以使用haar cascade或LBP來快速簡單地檢測車輛。在opencv 3.1中,有2個用於學習探測器。 使用檢測器很簡單。

In this tutorial

還有網絡上的一些資源,你可以下載已經預先訓練級聯汽車檢測。

檢測代碼Opencv簡單易懂 您可以在我的博客上找到這些示例。此外,我有一個車載數據集,其中包含2000輛汽車陽性樣本。這個樣本只是在bash列表中列入positiva樣本列表並使用實用程序來創建樣本和traincascade。 LBP級聯的速度稍快一些,具有相當的性能。

我在Linux下也學會了Windows下的級聯..不同之處在於運行程序。此外,培訓(vec.vec bg.dat數據必須在創建樣本實用程序中準備好..如果您有數據集,準備培訓需要20分鐘。問題在哪裏查找數據。我在我的博客上獲得了數據集。瞭解腳本我-w 32個-h 64參數用於檢測人多爾租車不如像-w 32 -h 32

./opencv_traincascade和參數

opencv_traincascade.exe - 數據V5。 - VEC vec.vec -bg bg.dat -numPos 540 -numNeg 700 -numStages 11個numThreads 4 -stageType BOOST -featureType LBP -w 32 -h 64 -minHitRate 0.999995 -maxFalseAlarmRate 0.2 -maxdepth 10 -maxWeakCount 120 -mode ALL

我也收集索姆e數據集來訓練探測器.. 您可以從Dataset

Car dataset