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

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

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

1 人臉檢測(cè)介紹

1.1 什么是人臉檢測(cè)

人臉檢測(cè)的目標(biāo)是確定圖像或視頻中是否存在人臉。如果存在多個(gè)面,則每個(gè)面都被一個(gè)邊界框包圍,因此我們知道這些面的位置。

人臉檢測(cè)算法的主要目標(biāo)是準(zhǔn)確有效地確定圖像或視頻中人臉的存在和位置。這些算法分析數(shù)據(jù)的視覺(jué)內(nèi)容,搜索與面部特征相對(duì)應(yīng)的模式和特征。通過(guò)采用機(jī)器學(xué)習(xí)、圖像處理和模式識(shí)別等各種技術(shù),人臉檢測(cè)算法旨在將人臉與視覺(jué)數(shù)據(jù)中的其他對(duì)象或背景元素區(qū)分開(kāi)來(lái)。

人臉很難建模,因?yàn)橛性S多變量可以改變,例如面部表情、方向、照明條件以及太陽(yáng)鏡、圍巾、口罩等部分遮擋。檢測(cè)結(jié)果給出了面部位置參數(shù),并且可以要求有多種形式,例如覆蓋面部中央部分、眼睛中心或包括眼睛、鼻子和嘴角、眉毛、鼻孔等的標(biāo)志的矩形。

1.2 常用的人臉檢測(cè)算法

在人們?nèi)粘I钪?,最常?jiàn)的生物識(shí)別方式一定是人臉識(shí)別,身份驗(yàn)證、門禁、監(jiān)控等都需要用上人臉識(shí)別。對(duì)于數(shù)據(jù)結(jié)構(gòu)工程師和算法工程師來(lái)說(shuō),人臉識(shí)別算法是需要接觸的常見(jiàn)算法之一。那本文列舉了七種最常見(jiàn)的人臉識(shí)別算法。

  • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)

卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),也是人工神經(jīng)網(wǎng)絡(luò)和人工智能的常見(jiàn)算法之一,隸屬于機(jī)器學(xué)習(xí)中的深度學(xué)習(xí)。它的原理是:模型學(xué)習(xí)直接對(duì)圖像、視頻、文本或聲音執(zhí)行分類結(jié)果。它常用于計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和最大的圖像分類數(shù)據(jù)集。

  • 特征臉(Eigenface)

特征臉(Eigenface)是指用于機(jī)器視覺(jué)領(lǐng)域中的人臉識(shí)別問(wèn)題的一組特征向量,用于確定圖像數(shù)據(jù)集中的人臉?lè)讲?,被認(rèn)為是第一種有效的人臉識(shí)別方法。原理是通過(guò)機(jī)器學(xué)習(xí)對(duì)人臉進(jìn)行編碼解碼。一組特征臉是通過(guò)對(duì)大量人臉圖像的統(tǒng)計(jì)分析確定的“標(biāo)準(zhǔn)化人臉成分”的集合,注意這種算法不使用數(shù)字圖片,而是通過(guò)統(tǒng)計(jì)數(shù)據(jù)庫(kù),面部特征被分配數(shù)字值,人臉是這些值以不同百分比的組合。

  • Fisherfaces

Fisherfaces是最流行的人臉識(shí)別算法之一,是特征臉(Eigenface)算法的延伸品,在訓(xùn)練過(guò)程中的類別區(qū)分方面比特征臉更加優(yōu)秀。Fisherfaces的優(yōu)點(diǎn)在于它能夠?qū)庹蘸兔娌勘砬樽兓M(jìn)行內(nèi)插和外推。若在與處理階段與PCA方法結(jié)合,算法準(zhǔn)確度高達(dá)93%。

  • 內(nèi)核方法:PCA和SVM

主成分分析(PCA)是一種有用的通用統(tǒng)計(jì)方法,在人臉識(shí)別過(guò)程中,PCA能減少源數(shù)據(jù)同時(shí)保留最相關(guān)的信息,原理是:生成一組加權(quán)特征向量,這些特征向量依次構(gòu)建特征臉(大量不同的人臉圖像),而這些人臉圖像的線性組合代表訓(xùn)練集中的每個(gè)圖像,PCA作用是從訓(xùn)練圖像集的協(xié)方差矩陣中接收這些特征向量。

支持向量機(jī)(SVM)屬于機(jī)器學(xué)習(xí)算法,它使用兩組分類原則來(lái)區(qū)分人臉和非人臉,對(duì)于每個(gè)類別,SVM模型將接收一個(gè)標(biāo)記的訓(xùn)練數(shù)據(jù)集來(lái)對(duì)新的測(cè)試數(shù)據(jù)進(jìn)行分類。

  • Haar Cascade

Haar Cascade是一種用于在圖像上定位對(duì)象的對(duì)象檢測(cè)方法,他將從大量正樣本和負(fù)樣本中學(xué)習(xí),前者包括感興趣的對(duì)象,后者包括除你要查找對(duì)象之外的任何內(nèi)容。訓(xùn)練后,分類器可在新圖像上找到感興趣的對(duì)象。Haar Cascade常與局部二值模式算法結(jié)合用于刑事鑒定的人臉識(shí)別。

  • 三維識(shí)別

3D人臉識(shí)別的基本原理是人類頭骨的獨(dú)特結(jié)構(gòu),人的頭骨結(jié)構(gòu)具有獨(dú)特性,可用幾十個(gè)參數(shù)來(lái)描述,它的原理是將3D面部掃描與數(shù)據(jù)庫(kù)模式進(jìn)行比較,它最大的優(yōu)勢(shì)是不會(huì)因?yàn)榛瘖y、面部毛發(fā)等外界因素影響到檢測(cè)識(shí)別。

  • 皮膚紋理分析

皮膚紋理識(shí)別通常使用高分辨率圖像。皮膚紋理分析的特殊情況使用不同的獨(dú)特參數(shù),如痣、膚色、膚色等,常用于人臉檢測(cè)、不良圖像過(guò)濾、手勢(shì)分析等。

1.3 Haar級(jí)聯(lián)分類器

人臉檢測(cè)是計(jì)算機(jī)視覺(jué)中的一個(gè)重要任務(wù),在現(xiàn)實(shí)生活中有著廣泛的應(yīng)用價(jià)值。Haar級(jí)聯(lián)分類器是OpenCV中實(shí)現(xiàn)人臉檢測(cè)其中一種算法,它通過(guò)分析相鄰圖像區(qū)域之間的對(duì)比度,確定給定圖像或子圖像是否與已知類型匹配。我們來(lái)考慮如何在層次結(jié)構(gòu)中組合多個(gè)Haar級(jí)聯(lián)分類器,以便用一個(gè)分類器識(shí)別父區(qū)域(就目標(biāo)而言是一張人臉),用其他分類器識(shí)別子區(qū)域(比如眼睛)。在OpenCV源代碼的副本中會(huì)有一個(gè)文件data/haarcascades。該文件夾包含了所有OpenCV的人臉檢測(cè)的XML文件,這些文件可用于檢測(cè)靜止圖像、視頻和攝像頭所得到圖像中的人臉。

從文件名可知這些級(jí)聯(lián)是用于人臉、眼睛、鼻子和嘴的跟蹤。這些文件需要正面、直立的人臉圖像。創(chuàng)建人臉檢測(cè)器時(shí)會(huì)使用這些文件,創(chuàng)建自己的級(jí)聯(lián),并訓(xùn)練這些級(jí)聯(lián)來(lái)檢測(cè)各種對(duì)象。

使用haar級(jí)聯(lián)分類器人臉檢測(cè),計(jì)算機(jī)視覺(jué),人工智能,opencv,人臉檢測(cè)

代碼地址:https://github.com/opencv/opencv/tree/4.x/data/haarcascades

2 使用opencv進(jìn)行人臉檢測(cè)

在靜態(tài)圖像或視頻中檢測(cè)人臉的操作非常相似。視頻人臉檢測(cè)只是從攝像頭讀出每幀圖像,然后采用靜態(tài)圖像中的人臉檢測(cè)方法進(jìn)行檢測(cè)。當(dāng)然,視頻人臉檢測(cè)還涉及其他的概念,例如跟蹤,而靜態(tài)圖像中的人臉檢測(cè)就沒(méi)有這樣的概念,但它們的基本理論是一致的。

2.1 靜態(tài)圖像人臉檢測(cè)

檢測(cè)步驟為讀取靜態(tài)圖像,調(diào)用模型進(jìn)行檢測(cè)。

在OpenCV中,人臉檢測(cè)使用的是cv2.CascadeClassifier.detectMultiScale()函數(shù),它可以檢測(cè)出圖片中所有的人臉。

cv2.detectMultiScale(self, image, scaleFactor=None, minNeighbors=None, flags=None, minSize=None, maxSize=None)
參數(shù):

image: 輸入圖像, 灰度圖;
scaleFactor: 圖像尺寸縮小比例, 決定兩個(gè)不同大小的窗口掃描之間有多大的跳躍;
minNeighbors: 被檢測(cè)到幾次才算目標(biāo);
minSize: 目標(biāo)最小尺寸;
maxSize: 目標(biāo)最大尺寸;

人臉檢測(cè)代碼:

import cv2

image = cv2.imread('../data/girl01.jpg')
# 獲取XML文件,加載人臉檢測(cè)器
faceCascade = cv2.CascadeClassifier('../data/haarcascade_frontalface_default.xml')

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

# 調(diào)用函數(shù)detectMultiScale
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5))
print(faces)
print("發(fā)現(xiàn){0}個(gè)人臉!".format(len(faces)))
# 逐個(gè)標(biāo)注人臉
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+w), (0, 255, 0), 2)

cv2.imshow("face", image)
cv2.imwrite("../data/detect_result.jpg", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

檢測(cè)結(jié)果如下:

[[242 115 159 159]]
發(fā)現(xiàn)1個(gè)人臉!

?使用haar級(jí)聯(lián)分類器人臉檢測(cè),計(jì)算機(jī)視覺(jué),人工智能,opencv,人臉檢測(cè)

2.2 視頻人臉檢測(cè)

檢測(cè)步驟為讀取視頻的每一幀圖像,對(duì)每一幀圖像逐一進(jìn)行人臉檢測(cè)

import cv2

# 1.讀取視頻
cv2.namedWindow("CaptureFace")
cap = cv2.VideoCapture('../data/girl.mp4')

# 2.人臉識(shí)別器分類器
classfier = cv2.CascadeClassifier('../data/haarcascade_frontalface_alt2.xml')
color = (0, 255, 0)

while cap.isOpened():
    flag, frame = cap.read()
    frame = cv2.flip(frame, 1)  # 鏡像操作

    if not flag:
        break

    # 3.灰度轉(zhuǎn)換
    grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 4.人臉檢測(cè),1.2和2分別為圖片縮放比例和需要檢測(cè)的有效點(diǎn)數(shù)
    facerects = classfier.detectMultiScale(grey, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
    if len(facerects) > 0:  # 大于0則檢測(cè)到人臉
        for faceRect in facerects:  # 單獨(dú)框出每一張人臉
            x, y, w, h = faceRect

            # 5.畫圖
            cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 3)
    cv2.imshow("CaptureFace", frame)
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()


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

使用haar級(jí)聯(lián)分類器人臉檢測(cè),計(jì)算機(jī)視覺(jué),人工智能,opencv,人臉檢測(cè)

2.3 攝像頭人臉檢測(cè)

檢測(cè)步驟為打開(kāi)攝像頭,捕獲攝像頭的每一幀數(shù)據(jù),針對(duì)每一幀數(shù)據(jù)進(jìn)行檢測(cè)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861776.html

import cv2


# 1.調(diào)用攝像頭
cv2.namedWindow("CaptureFace")
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

# 2.人臉識(shí)別器分類器
classfier = cv2.CascadeClassifier('../data/haarcascade_frontalface_alt2.xml')
color = (0, 255, 0)

while cap.isOpened():
    flag, frame = cap.read()
    frame = cv2.flip(frame, 1)  # 鏡像操作

    if not flag:
        break

    # 3.灰度轉(zhuǎn)換
    grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 4.人臉檢測(cè),1.2和2分別為圖片縮放比例和需要檢測(cè)的有效點(diǎn)數(shù)
    facerects = classfier.detectMultiScale(grey, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
    if len(facerects) > 0:  # 大于0則檢測(cè)到人臉
        print('檢測(cè)到人臉')
        for faceRect in facerects:  # 單獨(dú)框出每一張人臉
            x, y, w, h = faceRect

            # 5.畫圖
            cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 3)
    cv2.imshow("CaptureFace", frame)
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break
檢測(cè)到人臉
檢測(cè)到人臉
檢測(cè)到人臉
檢測(cè)到人臉
檢測(cè)到人臉
檢測(cè)到人臉

到了這里,關(guān)于使用opencv實(shí)現(xiàn)人臉檢測(cè):Haar級(jí)聯(lián)分類器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • opencv 基于haar特征的級(jí)聯(lián)分類器實(shí)現(xiàn)圖象識(shí)別原理

    opencv 基于haar特征的級(jí)聯(lián)分類器實(shí)現(xiàn)圖象識(shí)別原理

    暑假的時(shí)候做了一個(gè)智能機(jī)械臂,用到了opencv里的級(jí)聯(lián)分類器,這里寫一下我的理解 級(jí)聯(lián)分類器上手簡(jiǎn)單,同時(shí)Haar特征支持一些特殊圖形的檢測(cè),例如人臉,我訓(xùn)練的是一個(gè)純色模型,效果并不好,不建議用該種方法識(shí)別一些顏色梯度變化不明顯的物體 (1)haar特征? ? 圖

    2024年02月07日
    瀏覽(22)
  • OpenCV實(shí)現(xiàn)人臉檢測(cè)(Haar特征)

    OpenCV實(shí)現(xiàn)人臉檢測(cè)(Haar特征)

    OpenCV是一個(gè)廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)領(lǐng)域的開(kāi)源庫(kù),提供了豐富的圖像處理和分析功能。其中,人臉檢測(cè)是OpenCV中最常見(jiàn)和重要的應(yīng)用之一。在OpenCV中,可以使用Haar特征分類器實(shí)現(xiàn)人臉檢測(cè)。 Haar特征是一種常用的特征描述方法,它通過(guò)在圖像上移動(dòng)不同大小和形狀的滑動(dòng)窗口

    2024年04月16日
    瀏覽(21)
  • 【opencv】傳統(tǒng)目標(biāo)檢測(cè):Haar檢測(cè)器實(shí)現(xiàn)人臉檢測(cè)

    【opencv】傳統(tǒng)目標(biāo)檢測(cè):Haar檢測(cè)器實(shí)現(xiàn)人臉檢測(cè)

    傳統(tǒng)目標(biāo)分類器主要包括Viola Jones Detector、HOG Detector、DPM Detector,本文主要介紹VJ檢測(cè)器,在VJ檢測(cè)器基礎(chǔ)上發(fā)展出了Haar檢測(cè)器,Haar檢測(cè)器也是更為全面、使用更為廣泛的檢測(cè)器。 Viola Jones Detector是作為人臉檢測(cè)器被Viola和Jones提出來(lái)的,后來(lái)Rainer Lienhart和Jochen Maydt將這個(gè)檢測(cè)

    2024年02月12日
    瀏覽(28)
  • 【youcans 的圖像處理學(xué)習(xí)課】23. 人臉檢測(cè):Haar 級(jí)聯(lián)檢測(cè)器

    【youcans 的圖像處理學(xué)習(xí)課】23. 人臉檢測(cè):Haar 級(jí)聯(lián)檢測(cè)器

    專欄地址:『youcans 的圖像處理學(xué)習(xí)課』 文章目錄:『youcans 的圖像處理學(xué)習(xí)課 - 總目錄』 基于 Haar 特征的級(jí)聯(lián)分類器是 Paul Viola 在論文”Rapid Object Detection using a Boosted Cascade of Simple Features”中提出的一種目標(biāo)檢測(cè)方法。 Haar 級(jí)聯(lián)分類器在每一級(jí)的節(jié)點(diǎn)中,使用 AdaBoost 算法學(xué)

    2024年02月07日
    瀏覽(28)
  • python opencv 級(jí)聯(lián)Haar多目標(biāo)檢測(cè)

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

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

    2024年02月17日
    瀏覽(22)
  • Haar特征和級(jí)聯(lián)分類器目標(biāo)檢測(cè)介紹及應(yīng)用

    Haar特征和級(jí)聯(lián)分類器目標(biāo)檢測(cè)介紹及應(yīng)用

    Haar特征和級(jí)聯(lián)分類器是一種經(jīng)典的目標(biāo)檢測(cè)算法,適用于檢測(cè)物體在圖像中的位置、大小和姿態(tài)等。本教程將詳細(xì)介紹Haar特征和級(jí)聯(lián)分類器的原理、實(shí)現(xiàn)和應(yīng)用。 Haar特征是一種圖像處理中的特征提取方法,用于描述圖像中的紋理、邊緣和線條等特征?;贖aar小波變換的思

    2024年02月08日
    瀏覽(19)
  • 【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)
  • OpenCV實(shí)戰(zhàn)(31)——基于級(jí)聯(lián)Haar特征的目標(biāo)檢測(cè)

    在機(jī)器學(xué)習(xí)基礎(chǔ)一節(jié)中,我們介紹了機(jī)器學(xué)習(xí)的一些基本概念,并通過(guò)使用不同類別的樣本來(lái)構(gòu)建分類器。但這種方法訓(xùn)練分類器需要存儲(chǔ)所有樣本的表示,然后通過(guò)查看最近標(biāo)記點(diǎn)(最近鄰居)來(lái)預(yù)測(cè)新實(shí)例的標(biāo)簽。對(duì)于大多數(shù)機(jī)器學(xué)習(xí)方法,訓(xùn)練是一個(gè)迭代過(guò)程,在此過(guò)程

    2024年02月09日
    瀏覽(14)
  • 【OpenCV-Python】——Haar人臉檢測(cè)&深度學(xué)習(xí)人臉檢測(cè)&EigenFaces/FisherFaces/LBPH人臉識(shí)別

    目錄 前言: 1、人臉檢測(cè) 1.1?基于Haar的人臉檢測(cè) 1.2 基于深度學(xué)習(xí)的人臉檢測(cè)

    2024年02月05日
    瀏覽(27)
  • Haar級(jí)聯(lián)分類器概述

    Haar級(jí)聯(lián)分類器概述

    —— 才疏學(xué)淺, 難免有錯(cuò)誤和遺漏, 歡迎補(bǔ)充和勘誤. Haar級(jí)聯(lián)分類器是基于Haar-like特征,運(yùn)用積分圖加速計(jì)算,并用Adaboost訓(xùn)練的強(qiáng)分類器級(jí)聯(lián)的方法來(lái)進(jìn)行人臉檢測(cè)。 目前常用Haar-like特征的分類有: 圖1. Haar-like特征分類 首先定義每個(gè)Haar-like特征的特征值 f i f_i f i ? 為:

    2024年02月07日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包