国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Opencv+python的車流量檢測項目

這篇具有很好參考價值的文章主要介紹了基于Opencv+python的車流量檢測項目。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

項目介紹

整體流程

調(diào)試環(huán)境

項目流程

1.預處理

2.汽車識別——去背景算法(KNN/MOG2)

3.統(tǒng)計車流量數(shù)目

結(jié)尾

源代碼

測試視頻資料

流程圖


項目介紹

本次項目主要采用了傳統(tǒng)視覺的方法,對車道車流實現(xiàn)檢測,能較為準確的識別出來車道上的車輛數(shù)目。由于傳統(tǒng)視覺算法本身的局限性,因此也會有識別不準的地方。

整體流程

話不多說,先講思路,直接上流程圖

基于Opencv+python的車流量檢測項目

這里把所有預先設定的參數(shù)和變量統(tǒng)一稱為了“宏”,然后對識別到的每一幀圖像進行處理,最后得到理想的效果圖。

效果圖如下:

基于Opencv+python的車流量檢測項目

調(diào)試環(huán)境

  • Jupyter Notebook(Anaconda)
  • Python? ? 3.9.12
  • OpenCv? 4.5.5

項目流程

1.預處理

        #灰度
        cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
        #高斯去噪
        blur=cv2.GaussianBlur(frame,(5,5),5)
        mask=removebg.apply(blur)
        
        #腐蝕
        erode=cv2.erode(mask,kernel,iterations=2))#iteration=n 迭代n次
        #膨脹
        dilate=cv2.dilate(erode,kernel,iterations=2
        #cv2.imshow("x",dilate)
        dst=cv2.morphologyEx(dilate,cv2.MORPH_CLOSE,kernel)

2.汽車識別——去背景算法(KNN/MOG2)

? ? ? ? 先介紹KNN算法(因為本次采用的算法為KNN)

????????KNN最鄰近分類算法的實現(xiàn)原理:為了判斷未知樣本的類別,以所有已知類別的樣本作為參照,計算未知樣本與所有已知樣本的距離,從中選取與未知樣本距離最近的K個已知樣本,根據(jù)少數(shù)服從多數(shù)的投票法則(majority-voting),將未知樣本與K個最鄰近樣本中所屬類別占比較多的歸為一類。

??在Opencv中,KNN算法已經(jīng)被封裝好了,所以我們直接調(diào)用就可以。

#KNN算法去背景
removebg=cv2.createBackgroundSubtractorKNN()

????????MOG2是一個以混合高斯模型為基礎的前景/背景分割算法。使用 K(K=3 或 5)個高斯分布混合對背景像素進行建模。使用這些顏色(在整個視頻中)存在時間的長短作為混合的權重。背景的顏色一般持續(xù)的時間最長,而且更加靜止。這個函數(shù)有些可選參數(shù),比如要進行建模場景的時間長度,高斯混合成分的數(shù)量,閾值等。將他們?nèi)吭O置為默認值。然后在整個視頻中我們是需要使用backgroundsubtractor.apply() 就可以得到前景的掩模了。移動的物體會被標記為白色,背景會被標記為黑色的。使用方法同上,在此不過多贅述。

3.統(tǒng)計車流量數(shù)目

本次統(tǒng)計采用的方法為:找到矩形框的中心點經(jīng),當該點經(jīng)過提前所設定好的直線時,車輛數(shù)+1

計算中心點的函數(shù):

def center(x,y,w,h):
    x1=int(w/2)
    y1=int(h/2)
    cx=x+x1
    cy=y+y1

統(tǒng)計車流量的代碼部分:

 cpoint=center(x,y,w,h)
            cars.append(cpoint)#將中心點儲存到cars數(shù)組中
            
            for (x,y) in cars:
                if(y>lineHeight-7 and y<lineHeight+7):
                    Car_nums +=1
                    cars.remove((x,y))
                    print(Car_nums)

最后在經(jīng)過一些簡單的處理,該項目就實現(xiàn)了。

結(jié)尾

附源代碼:

import cv2
import numpy as np
lineHeight=550
#穿過直線的車的數(shù)量
Car_nums=0
#儲存中心坐標的數(shù)組
cars=[]
#KNN算法去背景
removebg=cv2.createBackgroundSubtractorKNN()
def center(x,y,w,h):
    x1=int(w/2)
    y1=int(h/2)
    cx=x+x1
    cy=y+y1
    
    return cx,cy

video=cv2.VideoCapture('D://video.mp4')

kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))

while True:
    ret,frame=video.read()
    if(ret!=0):
        #灰度
        cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
        #高斯去噪
        blur=cv2.GaussianBlur(frame,(5,5),5)
        mask=removebg.apply(blur)
        
        #腐蝕
        erode=cv2.erode(mask,kernel,iterations=2)#iteration=n 迭代n次
        #膨脹
        dilate=cv2.dilate(erode,kernel,iterations=2)
        #cv2.imshow("x",dilate)
        dst=cv2.morphologyEx(dilate,cv2.MORPH_CLOSE,kernel)
        #cv2.imshow("x1",dst)
                          
        #畫出檢測線
        cv2.line(frame,(10,lineHeight),(1400,lineHeight),(255,0,0),2)
        counts,h=cv2.findContours(dst,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
        #遍歷所有輪廓
        for(i,c) in enumerate(counts):
            (x,y,w,h)=cv2.boundingRect(c)
            
            if((w<=90) and (h<=90)):
                continue
            if(y<66):
                continue
            #將有效的車繪制出來
            cv2.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),2)
            cpoint=center(x,y,w,h)
            cars.append(cpoint)#將中心點儲存到cars數(shù)組中
            
            for (x,y) in cars:
                if(y>lineHeight-7 and y<lineHeight+7):
                    Car_nums +=1
                    cars.remove((x,y))
                    print(Car_nums)
        
        cv2.putText(frame,"Cars nums:"+str(Car_nums),(500,60),cv2.FONT_HERSHEY_DUPLEX,1,(255,0,0))
        cv2.imshow("video",frame)
        
    key=cv2.waitKey(1)
    if(key==27):
        break

video.release()
cv2.destroyAllWindows()        

附上測試視頻資料:

鏈接:https://pan.baidu.com/s/1u_hjCtL3FR6FzeEVQar7wg?pwd=2Y1p?
提取碼:2Y1p文章來源地址http://www.zghlxwxcb.cn/news/detail-447792.html

較為形象的流程圖:

到了這里,關于基于Opencv+python的車流量檢測項目的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于opencv深度學習,交通目標檢測,行人車輛檢測,人流統(tǒng)計,交通流量檢測

    基于opencv深度學習,交通目標檢測,行人車輛檢測,人流統(tǒng)計,交通流量檢測

    文章目錄 0 前言+ 1. 目標檢測概況+ 1.1 什么是目標檢測?+ 1.2 發(fā)展階段 2. 行人檢測+ 2.1 行人檢測簡介+ 2.2 行人檢測技術難點+ 2.3 行人檢測實現(xiàn)效果+ 2.4 關鍵代碼-訓練過程 最后 設計項目案例演示地址: 鏈接 畢業(yè)設計代做一對一指導項目方向涵蓋: 1.1 什么是目標檢測? 目標檢

    2024年02月04日
    瀏覽(27)
  • 工業(yè)缺陷檢測項目實戰(zhàn)(一)——基于opencv的工件缺陷檢測C++和python實現(xiàn)

    工業(yè)缺陷檢測項目實戰(zhàn)(一)——基于opencv的工件缺陷檢測C++和python實現(xiàn)

    作為研究生,每一個項目都很重要,這里給大家分享一個好入門項目,代碼純自己寫,網(wǎng)上都是python的,但是有些企業(yè)要求C++編寫項目,所以希望大家能學到東西。 一. 問題陳述 工件的展示,這是一個視頻,然后工件一個個經(jīng)過,要檢測出哪個工件有缺陷,并且分類缺陷的種

    2024年02月04日
    瀏覽(21)
  • 競賽 深度學習交通車輛流量分析 - 目標檢測與跟蹤 - python opencv

    競賽 深度學習交通車輛流量分析 - 目標檢測與跟蹤 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習得交通車輛流量分析 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:5分 ?? 更多資料, 項目分享: https://gitee.com/da

    2024年02月07日
    瀏覽(22)
  • 競賽選題 深度學習交通車輛流量分析 - 目標檢測與跟蹤 - python opencv

    競賽選題 深度學習交通車輛流量分析 - 目標檢測與跟蹤 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習得交通車輛流量分析 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:5分 ?? 更多資料, 項目分享: https://gitee.com/da

    2024年02月06日
    瀏覽(30)
  • 畢設項目分享 基于機器視覺opencv的手勢檢測 手勢識別 算法 - 深度學習 卷積神經(jīng)網(wǎng)絡 opencv python

    畢設項目分享 基于機器視覺opencv的手勢檢測 手勢識別 算法 - 深度學習 卷積神經(jīng)網(wǎng)絡 opencv python

    今天學長向大家介紹一個機器視覺項目 基于機器視覺opencv的手勢檢測 手勢識別 算法 普通機器視覺手勢檢測的基本流程如下: 其中輪廓的提取,多邊形擬合曲線的求法,凸包集和凹陷集的求法都是采用opencv中自帶的函數(shù)。手勢數(shù)字的識別是利用凸包點以及凹陷點和手部中心

    2024年02月03日
    瀏覽(116)
  • 基于YOLOv8的多端車流檢測系統(tǒng)(用于畢設+開源)

    基于YOLOv8的多端車流檢測系統(tǒng)(用于畢設+開源)

    目錄 ?基于YOLOv8??的多端車流檢測系統(tǒng)-MTAS (Multi-Platform Traffic Analysis System) 一、基本功能介紹 1、客戶端 (pyside6+yolov8+pytorch) ?2、網(wǎng)頁端(Vue3+Typestript+Python3+MySQL) ?3、創(chuàng)新點(畢設需要) 4、項目包(前端-游客端) 5、項目包(前端-管理端) 6、項目包(客戶端+后端)

    2024年02月14日
    瀏覽(80)
  • Python基于深度學習的人臉識別項目源碼+演示視頻,利用OpenCV進行人臉檢測與識別 preview

    Python基于深度學習的人臉識別項目源碼+演示視頻,利用OpenCV進行人臉檢測與識別 preview

    ? 該人臉識別實例是一個基于深度學習和計算機視覺技術的應用,主要利用OpenCV和Python作為開發(fā)工具。系統(tǒng)采用了一系列算法和技術,其中包括以下幾個關鍵步驟: 圖像預處理 :首先,對輸入圖像進行預處理,包括讀取圖片、將圖片灰度轉(zhuǎn)換、修改圖片的尺寸、繪制矩形

    2024年04月13日
    瀏覽(93)
  • 基于OpenCV的高壓電力檢測項目案例

    基于OpenCV的高壓電力檢測項目案例

    ????????隨著高壓電力設施的日益增多,傳統(tǒng)的巡檢方式已無法滿足現(xiàn)代電力系統(tǒng)的需求。為此,我們決定利用計算機視覺技術,特別是 OpenCV庫 ,開發(fā)一個高壓電力檢測系統(tǒng)。目標是實現(xiàn)自動化、高精度的電力設備檢測,提高巡檢效率,降低人工成本 本項目主要包括以下

    2024年02月22日
    瀏覽(22)
  • 競賽項目 車位識別車道線檢測 - python opencv

    競賽項目 車位識別車道線檢測 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? 深度學習 機器視覺 車位識別車道線檢測 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com

    2024年02月13日
    瀏覽(21)
  • Python基于OpenCV的實時疲勞檢測

    Python基于OpenCV的實時疲勞檢測

    2.png 3.png 1)方法 與用于計算眨眼的傳統(tǒng)圖像處理方法不同,該方法通常涉及以下幾種組合: 1、眼睛定位。 2、閾值找到眼睛的白色。 3、確定眼睛的“白色”區(qū)域是否消失了一段時間(表示眨眼)。 相反,眼睛長寬比是一種更為優(yōu)雅的解決方案,它涉及基于眼睛面部輪廓之

    2024年02月03日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包