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

OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. OpenCV 級(jí)聯(lián)分類器的基本原理

基于Haar特征的級(jí)聯(lián)分類器的目標(biāo)檢測(cè)是Paul Viola和Michael Jones在2001年的論文中提出的一種有效的目標(biāo)檢測(cè)方法。這是一種基于機(jī)器學(xué)習(xí)的方法,從大量的正面和負(fù)面圖像中訓(xùn)練級(jí)聯(lián)函數(shù)。然后用它來檢測(cè)其他圖像中的物體。

Haar特征是一種反映圖像的灰度變化的,像素分模塊求差值的一種特征。它分為三類:邊緣特征、線性特征、中心特征和對(duì)角線特征。就像卷積核一樣。每個(gè)特征都是一個(gè)單獨(dú)的值,由黑色矩形下的像素和減去白色矩形下的像素和得到。用黑白兩種矩形框組合成特征模板,在特征模板內(nèi)用 黑色矩形像素和減去白色矩形像素和來表示這個(gè)模版的特征值。
OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記,人工智能及Python,opencv,目標(biāo)跟蹤,車輛識(shí)別
例如:臉部的一些特征能由矩形模塊差值特征簡(jiǎn)單的描述,如:眼睛要比臉頰顏色要深,鼻梁兩側(cè)比鼻梁顏色要深,嘴巴比周圍顏色要深等。但矩形特征只對(duì)一些簡(jiǎn)單的圖形結(jié)構(gòu),如邊緣、線段較敏感,所以只能描述在特定方向(水平、垂直、對(duì)角)上有明顯像素模塊梯度變化的圖像結(jié)構(gòu)。這樣就可以進(jìn)行區(qū)分人臉。

級(jí)聯(lián)分類器(Cascade Classifier)是一種用于目標(biāo)檢測(cè)的機(jī)器學(xué)習(xí)模型,通常用于識(shí)別靜態(tài)圖像或視頻流中的特定對(duì)象或物體。級(jí)聯(lián)分類器的一個(gè)重要應(yīng)用是人臉檢測(cè)。

級(jí)聯(lián)分類器基于強(qiáng)分類器的級(jí)聯(lián)結(jié)構(gòu),其中每個(gè)強(qiáng)分類器都是由多個(gè)弱分類器組成的。弱分類器是一種簡(jiǎn)單而不太準(zhǔn)確的分類器,但通過級(jí)聯(lián)結(jié)構(gòu)及其組合,可以達(dá)到高效且精確的目標(biāo)檢測(cè)效果。

2. 級(jí)聯(lián)分類器CascadeClassifier檢測(cè)的基本原理:

Haar特征分類器就是一個(gè)XML文件,用于存儲(chǔ)檢測(cè)特征,xml中存放的是訓(xùn)練后的特征池,特征size大小根據(jù)訓(xùn)練時(shí)的參數(shù)而定,檢測(cè)的時(shí)候可以簡(jiǎn)單理解為就是將每個(gè)固定size特征(檢測(cè)窗口)與輸入圖像的同樣大小區(qū)域比較,如果匹配那么就記錄這個(gè)矩形區(qū)域的位置,然后滑動(dòng)窗口,檢測(cè)圖像的另一個(gè)區(qū)域,重復(fù)操作。由于輸入的圖像中特征大小不定,比如在輸入圖像中眼睛是50x50的區(qū)域,而訓(xùn)練時(shí)的是25x25,那么只有當(dāng)輸入圖像縮小到一半的時(shí)候,才能匹配上,所以這里還有一個(gè)逐步縮小圖像,也就是制作圖像金字塔的流程。

利用Opencv自帶的Haar特征分類器進(jìn)行人臉檢測(cè),該文件中會(huì)描述人體各個(gè)部位的Haar特征值。包括人臉、眼睛、嘴唇等等。Haar特征分類器存放目錄:OpenCV安裝目錄中的\data\ haarcascades目錄下。

3. 靜態(tài)圖中車輛識(shí)別

from PIL import Image
import cv2
import numpy as np

image = Image.open('V1.png')
w,h = image.size
#image = image.resize((int(w/2),int(h/2)))
image_arr = np.array(image)
image

OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記,人工智能及Python,opencv,目標(biāo)跟蹤,車輛識(shí)別

grey = cv2.cvtColor(image_arr,cv2.COLOR_BGR2GRAY)
dilated = cv2.dilate(blur,np.ones((3,3)))

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (2, 2))
closing = cv2.morphologyEx(dilated, cv2.MORPH_CLOSE, kernel) 
Image.fromarray(closing)

OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記,人工智能及Python,opencv,目標(biāo)跟蹤,車輛識(shí)別

car_cascade_src = 'haarcascade_car.xml'
car_cascade = cv2.CascadeClassifier(car_cascade_src)
cars = car_cascade.detectMultiScale(closing, 1.1, 1)
cnt = 0
for (x,y,w,h) in cars:
  cv2.rectangle(image_arr,(x,y),(x+w,y+h),(255,0,0),2)
  cnt += 1
print(cnt, " cars found")
Image.fromarray(image_arr)
21  cars found

OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記,人工智能及Python,opencv,目標(biāo)跟蹤,車輛識(shí)別

4. 動(dòng)態(tài)視頻中車輛識(shí)別

import cv2
import numpy as np

car_classifier= cv2.CascadeClassifier('haarcascade_car.xml')
cap= cv2.VideoCapture('cars.avi')

while True:    
    ret, frame= cap.read()
    if ret:
        #frame= cv2.resize(frame, None, fx= 0.5, fy= 0.5, interpolation= cv2.INTER_LINEAR)
        gray= cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        cars= car_classifier.detectMultiScale(gray,1.2,3)

        for (x,y,w,h) in cars:
            cv2.rectangle(frame,(x,y),(x+w,y+h), (0,255,255),2)
            cv2.imshow('Cars', frame)

    else:
        print('warning: video is not load correctly or the video is finished')
        break
        
    key = cv2.waitKey(1)   #每一幀圖像就顯示一毫秒就可以,然后繼續(xù)循環(huán)
    if key == 27:          #27是esc的ascall碼
        break            
            
cap.release()
cv2.destroyAllWindows()

OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記,人工智能及Python,opencv,目標(biāo)跟蹤,車輛識(shí)別

5. 關(guān)鍵OpenCV函數(shù)說明

cv2.CascadeClassifier.detectMultiScale() 函數(shù)介紹
在 OpenCV 中,人臉檢測(cè)使用的是 cv2.CascadeClassifier.detectMultiScale()函數(shù),它可以檢
測(cè)出圖片中所有的人臉。該函數(shù)由分類器對(duì)象調(diào)用,其語(yǔ)法格式為:

objects = cv2.CascadeClassifier.detectMultiScale( image[,
scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]] )

式中各個(gè)參數(shù)及返回值的含義為:

  • image:待檢測(cè)圖像,通常為灰度圖像。
  • scaleFactor:表示在前后兩次相繼的掃描中,搜索窗口的縮放比例。
  • minNeighbors:表示構(gòu)成檢測(cè)目標(biāo)的相鄰矩形的最小個(gè)數(shù)。默認(rèn)情況下,該值為 3,意味著有 3 個(gè)以上的檢測(cè)標(biāo)記存在時(shí),才認(rèn)為人臉存在。如果希望提高檢測(cè)的準(zhǔn)確率,可以將該值設(shè)置得更大,但同時(shí)可能會(huì)讓一些人臉無(wú)法被檢測(cè)到。
  • flags:該參數(shù)通常被省略。在使用低版本 OpenCV(OpenCV 1.X 版本)時(shí),它可能會(huì)被設(shè)置為 CV_HAAR_DO_CANNY_PRUNING,表示使用 Canny 邊緣檢測(cè)器來拒絕一些區(qū)域。
  • minSize:目標(biāo)的最小尺寸,小于這個(gè)尺寸的目標(biāo)將被忽略。
  • maxSize:目標(biāo)的最大尺寸,大于這個(gè)尺寸的目標(biāo)將被忽略。
  • objects:返回值,目標(biāo)對(duì)象的矩形框向量組。

代碼中所涉及到的模型和視頻等資源,詳見OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記中所涉及到的資源。

參考:

小海聊智造. opencv 進(jìn)階10-人臉識(shí)別原理說明及示例-cv2.CascadeClassifier.detectMultiScale(). CSDN博客. 2023.08
Stray_Lambs. 淺析cv2.CascadeClassifier()函數(shù). CSDN博客. 2019.09
HAMED ETEZADI ·Haar cascade classifier-Car Detection. Kaggle. 2022.04
How to Detect Cars in a Video in Python using OpenCV. Learning about Electronics文章來源地址http://www.zghlxwxcb.cn/news/detail-735736.html

到了這里,關(guān)于OpenCV級(jí)聯(lián)分類器識(shí)別車輛實(shí)踐筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ROS OpenCV 級(jí)聯(lián)分類器

    Haar級(jí)聯(lián)分類器 、 HOG級(jí)聯(lián)分類器 和 LBP級(jí)聯(lián)分類器 都是計(jì)算機(jī)視覺中用于 目標(biāo)檢測(cè)的特征提取與分類 方法,它們各自利用不同的圖像特征進(jìn)行訓(xùn)練,并且通常結(jié)合級(jí)聯(lián)結(jié)構(gòu)來提升實(shí)時(shí)性。 1. 特征描述: Haar特征由Paul Viola和Michael Jones在2001年提出, 主要用于人臉檢測(cè) 。它是一

    2024年02月01日
    瀏覽(25)
  • OpenCV的級(jí)聯(lián)分類器訓(xùn)練

    使用增強(qiáng)級(jí)聯(lián)的弱分類器包括兩個(gè)主要階段:訓(xùn)練和檢測(cè)階段。對(duì)象檢測(cè)教程中有描述使用基于 HAAR 或 LBP 模型的檢測(cè)階段。這里主要介紹訓(xùn)練增強(qiáng)分類器級(jí)聯(lián)所需的功能,包括:準(zhǔn)備訓(xùn)練數(shù)據(jù)、執(zhí)行實(shí)際模型訓(xùn)練、可視化訓(xùn)練。 目錄 一、訓(xùn)練數(shù)據(jù)準(zhǔn)備 1、負(fù)樣本 2、正樣本

    2024年02月13日
    瀏覽(29)
  • 簡(jiǎn)易機(jī)器學(xué)習(xí)筆記(十一)opencv 簡(jiǎn)易使用-人臉識(shí)別、分類任務(wù)

    簡(jiǎn)易機(jī)器學(xué)習(xí)筆記(十一)opencv 簡(jiǎn)易使用-人臉識(shí)別、分類任務(wù)

    前段時(shí)間摸了下機(jī)器學(xué)習(xí),然后我發(fā)現(xiàn)其實(shí)openCV還是一個(gè)很浩瀚的庫(kù)的,現(xiàn)在也正在寫一篇有關(guān)yolo的博客,不過感覺理論偏多,所以在學(xué)yolo之前先摸一下opencv,簡(jiǎn)單先寫個(gè)項(xiàng)目感受感受opencv。 openCV實(shí)際上已經(jīng)有一個(gè)比較完整的模型了,下載在haarcascades 這里我們下haarcascade

    2024年01月21日
    瀏覽(38)
  • 使用opencv實(shí)現(xiàn)人臉檢測(cè):Haar級(jí)聯(lián)分類器

    使用opencv實(shí)現(xiàn)人臉檢測(cè):Haar級(jí)聯(lián)分類器

    人臉檢測(cè)的目標(biāo)是確定圖像或視頻中是否存在人臉。如果存在多個(gè)面,則每個(gè)面都被一個(gè)邊界框包圍,因此我們知道這些面的位置。 人臉檢測(cè)算法的主要目標(biāo)是準(zhǔn)確有效地確定圖像或視頻中人臉的存在和位置。這些算法分析數(shù)據(jù)的視覺內(nèi)容,搜索與面部特征相對(duì)應(yīng)的模式和特

    2024年04月29日
    瀏覽(23)
  • 【OpenCV】 車輛識(shí)別 運(yùn)動(dòng)目標(biāo)檢測(cè)

    【OpenCV】 車輛識(shí)別 運(yùn)動(dòng)目標(biāo)檢測(cè)

    目錄 一:車輛識(shí)別 運(yùn)動(dòng)目標(biāo)檢測(cè) 二:車輛識(shí)別實(shí)現(xiàn) 超詳細(xì)步驟解析 步驟一:灰度化處理 步驟二:幀差處理 步驟三:二值化處理 步驟四:圖像降噪 4-1 腐蝕處理 目的 去除白色噪點(diǎn) 4-2 膨脹處理 目的 把白色區(qū)域變大 步驟五:提取關(guān)鍵點(diǎn) 框選運(yùn)動(dòng)目標(biāo)檢測(cè) 三:車輛識(shí)別 完

    2024年02月04日
    瀏覽(18)
  • 【youcans 的 OpenCV 學(xué)習(xí)課】22. Haar 級(jí)聯(lián)分類器

    【youcans 的 OpenCV 學(xué)習(xí)課】22. Haar 級(jí)聯(lián)分類器

    專欄地址:『youcans 的圖像處理學(xué)習(xí)課』 文章目錄:『youcans 的圖像處理學(xué)習(xí)課 - 總目錄』 Haar 特征分類器是基于 Haar-like 特征提取的監(jiān)督學(xué)習(xí)分類器。我們首先討論 Haar 特征及其加速計(jì)算。 3.1 Haar 特征 Haar 特征用黑白兩種矩形框組合成特征模板,在特征模板內(nèi)用黑色矩形像

    2023年04月26日
    瀏覽(19)
  • AI人工智能課題:車輛分析車型識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(基于百度智能云AI接口)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識(shí)視頻課程,免費(fèi) 項(xiàng)目配有對(duì)應(yīng)開發(fā)文檔、開題報(bào)告、任務(wù)書、

    2024年02月03日
    瀏覽(23)
  • 【OpenCV】“幀差法”實(shí)現(xiàn)移動(dòng)物體的檢測(cè)(車輛識(shí)別)

    【OpenCV】“幀差法”實(shí)現(xiàn)移動(dòng)物體的檢測(cè)(車輛識(shí)別)

    目錄 一、幀差法 1、概念 2、為什么幀差法可以檢測(cè)運(yùn)動(dòng)的物體?? 二、使用OpenCV配合幀差法實(shí)現(xiàn)車輛識(shí)別 1、加載視頻 2、灰度處理+幀差計(jì)算 3、二值化 4、腐蝕 5、膨脹 6、框選出車輛 三、全部代碼+實(shí)現(xiàn)效果 1、代碼 2、車輛檢測(cè)效果 四、幀差法存在不足之處 ? ? ? ? 幀差

    2024年02月02日
    瀏覽(27)
  • 基于Java(SpringBoot框架)畢業(yè)設(shè)計(jì)作品成品(32)AI人工智能畢設(shè)AI車輛大全車牌識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于Java(SpringBoot框架)畢業(yè)設(shè)計(jì)作品成品(32)AI人工智能畢設(shè)AI車輛大全車牌識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    博主介紹: 《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識(shí)視頻課程,免費(fèi) 項(xiàng)目配有對(duì)應(yīng)開發(fā)文檔、開題報(bào)告、任務(wù)書、PPT、論文模版

    2024年02月08日
    瀏覽(30)
  • 競(jìng)賽選題 深度學(xué)習(xí)YOLOv5車輛顏色識(shí)別檢測(cè) - python opencv

    競(jìng)賽選題 深度學(xué)習(xí)YOLOv5車輛顏色識(shí)別檢測(cè) - python opencv

    ?? 優(yōu)質(zhì)競(jìng)賽項(xiàng)目系列,今天要分享的是 ?? **基于深度學(xué)習(xí)YOLOv5車輛顏色識(shí)別檢測(cè) ** 該項(xiàng)目較為新穎,適合作為競(jìng)賽課題方向,學(xué)長(zhǎng)非常推薦! ??學(xué)長(zhǎng)這里給一個(gè)題目綜合評(píng)分(每項(xiàng)滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點(diǎn):4分 ?? 更多資料, 項(xiàng)目分享: https://gitee.com

    2024年02月07日
    瀏覽(88)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包