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

python opencv 級聯(lián)Haar多目標(biāo)檢測

這篇具有很好參考價(jià)值的文章主要介紹了python opencv 級聯(lián)Haar多目標(biāo)檢測。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、基于OpenCV的haar分類器實(shí)現(xiàn)笑臉檢測
1、Haar分類器介紹
??Haar分類器是一種基于機(jī)器學(xué)習(xí)的目標(biāo)檢測算法,它使用Haar特征描述圖像中的目標(biāo)。Haar特征是基于圖像亮度的局部差異計(jì)算得出的,可以用來描述目標(biāo)的邊緣、角落和線條等特征。

python opencv 級聯(lián)Haar多目標(biāo)檢測,AIGC、NLP、CV,opencv,計(jì)算機(jī)視覺,人工智能

使用Haar分類器進(jìn)行目標(biāo)檢測的步驟大致如下:

??收集訓(xùn)練數(shù)據(jù):需要大量包含目標(biāo)的正樣本圖像和不包含目標(biāo)的負(fù)樣本圖像。
??提取Haar特征:使用OpenCV等圖像處理工具提取每個(gè)樣本圖像的Haar特征,并將其保存為向量形式。
??訓(xùn)練分類器:使用機(jī)器學(xué)習(xí)算法(如Adaboost)訓(xùn)練Haar分類器,使其能夠準(zhǔn)確地區(qū)分包含目標(biāo)的圖像和不包含目標(biāo)的圖像。opencv訓(xùn)練自己的xml分類器以及如何獲取opencv_createsamples.exe和opencv_traincascade.exe_Lizaozao96的博客-CSDN博客
??目標(biāo)檢測:使用訓(xùn)練好的Haar分類器對新的圖像進(jìn)行檢測。首先在圖像中使用滑動(dòng)窗口將圖像劃分為小塊,在每個(gè)小塊上使用分類器進(jìn)行分類,如果檢測到包含目標(biāo)的區(qū)域,則將其輸出為檢測結(jié)果。

我們可以調(diào)用OpenCV訓(xùn)練好的分類器和自帶的檢測函數(shù)檢測人臉、人眼等。
2、haar分類器的靜態(tài)使用(處理圖片)
首先只需要安裝cv2的庫就能玩啦~

pip install opencv-python

在以下代碼中,我們首先加載了一個(gè)已經(jīng)訓(xùn)練好的Haar分類器(這里使用的是檢測人臉的分類器),然后將待檢測的圖像轉(zhuǎn)換為灰度圖像,并使用detectMultiScale方法對圖像進(jìn)行目標(biāo)檢測。如果檢測到目標(biāo),則在目標(biāo)所在位置繪制一個(gè)矩形框,并顯示檢測結(jié)果。
?

import cv2

# 加載分類器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 加載圖像
img = cv2.imread('lena.jpg')

# 將圖像轉(zhuǎn)換為灰度圖像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 使用分類器進(jìn)行人臉檢測
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

# 在檢測到的人臉上繪制矩形框
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)

# 顯示檢測結(jié)果
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

運(yùn)行結(jié)果如下:

python opencv 級聯(lián)Haar多目標(biāo)檢測,AIGC、NLP、CV,opencv,計(jì)算機(jī)視覺,人工智能


以上就為對lena"長老"的圖片簡單操作。調(diào)用了 haarcascade_frontalface_default.xml模型文件實(shí)現(xiàn)了人臉框檢測。

3、haar分類器的動(dòng)態(tài)使用(對攝像頭視頻進(jìn)行處理)
首先我們需要準(zhǔn)備三個(gè)文件,分別是 'haarcascade_frontalface_default.xml、 haarcascade_eye.xml和 haarcascade_smile.xml分別用來識(shí)別人臉、眼睛和笑容。

可以使用上述代碼的加載分類器方式,也可以將cv2包里面的模型文件拿出來供我們復(fù)用,這里我使用的是虛擬環(huán)境,haar的一系列模型文件都在 venv\Lib\site-packages\cv2\data目錄下。

python opencv 級聯(lián)Haar多目標(biāo)檢測,AIGC、NLP、CV,opencv,計(jì)算機(jī)視覺,人工智能

接下來我用直接傳入模型文件的方式來使用這三個(gè)方法(畫出臉框、眼眶和嘴框),并結(jié)合電腦攝像頭,代碼如下:

import cv2

haar_front_face_xml = 'haarcascade_frontalface_default.xml'
haar_eye_xml = 'haarcascade_eye.xml'
smileharr = 'haarcascade_smile.xml'


# 視頻中的人臉檢測
def DynamicDetect():
    '''
    打開攝像頭,讀取幀,檢測幀中的人臉,掃描檢測到的人臉中的眼睛,對?臉繪制藍(lán)藍(lán)色的矩形框,對人眼和笑繪制綠?的矩形框
    '''
    # 創(chuàng)建3個(gè)級聯(lián)分類器 加載3個(gè) .xml 分類器?件
    face_cascade = cv2.CascadeClassifier(haar_front_face_xml)
    eye_cascade = cv2.CascadeClassifier(haar_eye_xml)
    smile_cascade = cv2.CascadeClassifier(smileharr)
    # 打開攝像頭
    camera = cv2.VideoCapture(0)
    cv2.namedWindow('Dynamic')
    while True:
        # 讀取1幀圖像
        ret, frame = camera.read()
        # 判斷圖片讀取成功?
        if ret:
            gray_img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        # 人臉檢測
        faces = face_cascade.detectMultiScale(gray_img, 1.3, 5)
        for (x, y, w, h) in faces:
            # 在原圖像上繪制矩形
            cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
            roi_gray = gray_img[y:y + h, x:x + w]
            # 眼睛和笑臉檢測
            eyes = eye_cascade.detectMultiScale(roi_gray, 1.03, 5, 0, (40, 40))
            smile = smile_cascade.detectMultiScale(roi_gray, 1.03, 5, 0, (40, 40))
            for (ex, ey, ew, eh) in eyes:
                cv2.rectangle(frame, (ex + x, ey + y), (x + ex + ew, y + ey + eh), (0, 255, 0), 2)
            for (sx, sy, sw, sh) in smile:
                cv2.rectangle(frame, (sx + x, sy + y), (x + sx + sw, y + sy + sh), (0, 255, 0), 2)
        cv2.imshow('Dynamic', frame)
        # 如果按下q鍵則退出
        if cv2.waitKey(100) & 0xff == ord('q'):
            break
    camera.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    DynamicDetect()

————————————————
?https://blog.csdn.net/tianhai12/article/details/130534551文章來源地址http://www.zghlxwxcb.cn/news/detail-582596.html

到了這里,關(guān)于python opencv 級聯(lián)Haar多目標(biāo)檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包