簡體   English   中英

如何在交通車輛計數器中僅對每個車輛計數一次?

[英]How Count each vehicle only once in Traffic vehicle counter?

我一直在使用Python和OpenCV進行交通車輛計數器。 我當前的算法是計算每幀的車輛數量。 這導致同一輛車每幀計數不止一次。 相反,我希望視頻中的唯一車輛計數。 每輛車只計算一次。 我必須使用什么技術來實現這一目標。

import cv2
print(cv2.__version__)

cascade_src = 'cars.xml'
video_src = 'dataset/video2.avi'
#video_src = 'dataset/video2.avi'

cap = cv2.VideoCapture(video_src)
car_cascade = cv2.CascadeClassifier(cascade_src)

while True:
    ret, img = cap.read()
    if (type(img) == type(None)):
        break

    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    cars = car_cascade.detectMultiScale(gray, 1.1, 1)

    for (x,y,w,h) in cars:
        cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)      

    cv2.imshow('video', img)
    print "Found "+str(len(cars))+" car(s)"
    b=str(len(cars))
    a= float(b)
    if a>=5:
        print ("more traffic")
    else:
        print ("no traffic")    
    if cv2.waitKey(33) == 27:
        break

cv2.destroyAllWindows()

1)應用背景減法

2)在每個幀上應用矩函數以獲取行駛中的汽車的質心

3)定義一個像素值(x,y)的區域。當行駛中的汽車的質心越過該范圍時,將計數器增加一個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM