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

python基于opencv和tkinter實(shí)現(xiàn)人臉識(shí)別【內(nèi)附完整代碼】

這篇具有很好參考價(jià)值的文章主要介紹了python基于opencv和tkinter實(shí)現(xiàn)人臉識(shí)別【內(nèi)附完整代碼】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言:

人臉識(shí)別技術(shù)已經(jīng)在許多領(lǐng)域得到了廣泛應(yīng)用,例如安防、金融、醫(yī)療等等。人臉識(shí)別可以幫助我們識(shí)別和驗(yàn)證一個(gè)人的身份,這是一項(xiàng)非常重要的任務(wù)。本篇博客將介紹如何使用Python和OpenCV庫(kù)進(jìn)行人臉識(shí)別。我們將學(xué)習(xí)如何使用OpenCV中的人臉檢測(cè)器檢測(cè)圖像中的人臉,如何與一個(gè)人的圖像進(jìn)行比較以檢測(cè)是否屬于該人,以及如何在GUI中顯示識(shí)別結(jié)果。你可以嵌入到你的程序、機(jī)器上?,F(xiàn)在,讓我們開(kāi)始學(xué)習(xí)人臉識(shí)別技術(shù)吧!

如果你已有python環(huán)境和opencv庫(kù)可直接跳轉(zhuǎn)到代碼解讀


目錄

前言:

環(huán)境搭建:

安裝Python

安裝pip

安裝OpenCV

配置環(huán)境變量

代碼解讀

程序的大體流程如下:

加載 Haar Cascade 分類器用于人臉檢測(cè)。

打開(kāi)攝像頭并捕獲實(shí)時(shí)圖像。

循環(huán)處理捕獲的圖像:

關(guān)閉攝像頭并銷毀窗口。

代碼解析

與person文件夾中的圖像進(jìn)行比較以檢測(cè)人臉

?cv2AddChineseText方法

?完整代碼


環(huán)境搭建:

安裝Python

首先,你需要下載和安裝Python??梢栽赑ython官方網(wǎng)站上下載最新版本的Python安裝程序:https://www.python.org/downloads/windows/請(qǐng)務(wù)必下載并安裝3.x版本的Python,因?yàn)镺penCV不支持Python 2.x。

安裝pip

pip是Python的包管理器,可以輕松地安裝、升級(jí)和刪除Python軟件包??梢允褂靡韵旅顧z查是否已經(jīng)安裝了pip:

pip --version

?如果pip沒(méi)有安裝,可以在終端中輸入以下命令進(jìn)行安裝:

python -m ensurepip --default-pip

安裝OpenCV

可以使用pip來(lái)安裝OpenCV:

pip install opencv-python

配置環(huán)境變量

為了讓Python能夠找到OpenCV,需要將OpenCV的路徑添加到系統(tǒng)的環(huán)境變量中。

首先,找到OpenCV安裝的路徑,一般在Python的安裝目錄下的Lib\site-packages目錄中。例如,在我的電腦上,OpenCV安裝在以下目錄下:

C:\Users\username\AppData\Local\Programs\Python\Python39\Lib\site-packages\cv2

然后,將這個(gè)路徑添加到系統(tǒng)的環(huán)境變量中。在Windows 10中,可以按以下步驟進(jìn)行操作:

  1. 在Windows搜索欄中輸入“環(huán)境變量”,并點(diǎn)擊“編輯系統(tǒng)環(huán)境變量”;
  2. 在“高級(jí)”選項(xiàng)卡下,點(diǎn)擊“環(huán)境變量”按鈕;
  3. 在“系統(tǒng)變量”下方找到“Path”變量,點(diǎn)擊“編輯”按鈕;
  4. 在“編輯環(huán)境變量”對(duì)話框中,點(diǎn)擊“新建”按鈕,并將OpenCV的路徑添加進(jìn)去。
  5. 測(cè)試OpenCV
  6. 最后,可以測(cè)試一下OpenCV是否已經(jīng)正確安裝??梢栽诮K端中輸入以下代碼:
import cv2 
print(cv2.__version__)

如果OpenCV已經(jīng)成功安裝,應(yīng)該會(huì)顯示OpenCV的版本號(hào)。

希望這個(gè)簡(jiǎn)要的教程可以幫助你在Windows上成功安裝和配置OpenCV和Python。

代碼解讀

這是一個(gè)基于 OpenCV 庫(kù)和 tkinter 庫(kù)開(kāi)發(fā)的人臉識(shí)別程序。它可以從攝像頭實(shí)時(shí)獲取視頻,并在視頻中檢測(cè)人臉并顯示其姓名。

程序的大體流程如下:

  1. 加載 Haar Cascade 分類器用于人臉檢測(cè)。

  2. 打開(kāi)攝像頭并捕獲實(shí)時(shí)圖像。

  3. 循環(huán)處理捕獲的圖像:

    1. 將圖像轉(zhuǎn)換為灰度圖像。
    2. 使用 Haar Cascade 分類器檢測(cè)人臉。
    3. 如果檢測(cè)到人臉,則查找是否存在與 person 文件夾中的某個(gè)人匹配的圖像。
    4. 如果找到匹配的人臉,則在圖像中框出人臉并顯示姓名。
    5. 如果未找到匹配的人臉,則在圖像中框出人臉但不顯示姓名。
    6. 將圖像轉(zhuǎn)換為 PIL Image 格式以在 GUI 中顯示。
    7. 更新標(biāo)簽以顯示圖像。
    8. 處理 GUI 事件以避免程序掛起。
  4. 關(guān)閉攝像頭并銷毀窗口。

代碼中的函數(shù) cv2AddChineseText 用于在圖像上添加中文文本。函數(shù) cv2AddChineseText 接受四個(gè)參數(shù):

  • img:要添加文本的圖像。
  • text:要添加的文本。
  • position:文本的位置。
  • textColor:文本顏色,默認(rèn)為綠色。
  • textSize:文本大小,默認(rèn)為 30。

代碼中的 person_images 列表用于存儲(chǔ) person 文件夾中的人臉圖像。person_names 列表用于存儲(chǔ)每個(gè)人臉圖像對(duì)應(yīng)的姓名。在處理捕獲的圖像時(shí),程序?qū)z查每個(gè)人臉圖像是否匹配,并在圖像中顯示姓名。

代碼解析

該程序主要通過(guò)計(jì)算機(jī)視覺(jué)技術(shù)實(shí)現(xiàn)人臉識(shí)別。首先,程序使用OpenCV庫(kù)中的Haar Cascade分類器來(lái)檢測(cè)輸入圖像中的人臉。然后,它會(huì)將人臉與事先保存在“person”文件夾中的圖像進(jìn)行比較,以確定是否存在匹配的人臉。如果存在匹配的人臉,則程序會(huì)在圖像中框出人臉并顯示相應(yīng)的姓名。如果不存在匹配的人臉,則程序僅在圖像中框出人臉。

下面是程序的主要部分的解釋:

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

# 打開(kāi)攝像頭并捕獲實(shí)時(shí)圖像
cap = cv2.VideoCapture(0)

# 讀取person文件夾中的圖像和姓名
person_images = []
person_names = []
for filename in os.listdir('person'):
    if filename.endswith('.jpg'):
        # 使用utf-8編碼打開(kāi)文件
        with open(os.path.join('person', filename), 'rb') as f:
            person_images.append(cv2.imdecode(np.frombuffer(f.read(), np.uint8), cv2.IMREAD_COLOR))
        person_names.append(os.path.splitext(filename)[0])

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 轉(zhuǎn)換圖像格式以進(jìn)行人臉檢測(cè)
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 使用Haar Cascade分類器檢測(cè)人臉
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

    # 在圖像中框出檢測(cè)到的人臉
    for (x, y, w, h) in faces:
        # 檢查人臉是否屬于person文件夾中的某個(gè)人
        found_person = False
        for i in range(len(person_images)):
            person_image = person_images[i]
            person_name = person_names[i]
            # 將person圖像轉(zhuǎn)換為灰度圖像以進(jìn)行比較
            person_gray = cv2.cvtColor(person_image, cv2.COLOR_BGR2GRAY)
            # 檢查是否存在與person圖像相匹配的人臉
            match = cv2.matchTemplate(gray[y:y + h, x:x + w], person_gray, cv2.TM_CCOEFF_NORMED)
            if match.max() > 0.8:
                # 如果找到匹配的人臉,則將其標(biāo)記為“found_person”,并繪制人臉框
                found_person = True
                cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
                # 在人臉框上方寫出人名
                cv2.putText(frame, person_name, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
                break
        if not found_person:
            # 如果沒(méi)有找到匹配的人臉,則將其標(biāo)記為“unknown”,并繪制人臉框
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2)
            cv2.putText(frame, 'unknown', (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 255), 2)

          

與person文件夾中的圖像進(jìn)行比較以檢測(cè)人臉

我們已經(jīng)成功地檢測(cè)出了人臉,并將其框出來(lái)?,F(xiàn)在我們將探討如何與person文件夾中的圖像進(jìn)行比較以檢測(cè)人臉。

首先,我們需要讀取person文件夾中的圖像和姓名。我們可以使用os模塊中的listdir函數(shù)列出person文件夾中的所有文件名,然后使用cv2.imread函數(shù)讀取每個(gè)圖像。

import os

person_folder = 'person'
person_images = []
person_names = []

# 獲取person文件夾中的所有文件名
for filename in os.listdir(person_folder):
? ? # 如果文件名以'.jpg'或'.png'結(jié)尾,則讀取該圖像并將其添加到person_images列表中
? ? if filename.endswith('.jpg') or filename.endswith('.png'):
? ? ? ? image = cv2.imread(os.path.join(person_folder, filename))
? ? ? ? person_images.append(image)
? ? ? ? # 使用文件名中的數(shù)字作為該人員的姓名
? ? ? ? person_names.append(filename.split('.')[0])

接下來(lái),我們需要將每個(gè)person圖像轉(zhuǎn)換為灰度圖像以進(jìn)行比較。我們可以使用cv2.cvtColor函數(shù)將BGR圖像轉(zhuǎn)換為灰度圖像。

for i in range(len(person_images)):
    person_image = person_images[i]
    # 將person圖像轉(zhuǎn)換為灰度圖像以進(jìn)行比較
    person_gray = cv2.cvtColor(person_image, cv2.COLOR_BGR2GRAY)

現(xiàn)在,我們可以使用matchTemplate函數(shù)將當(dāng)前人臉與person圖像進(jìn)行比較,以確定當(dāng)前人臉是否屬于person文件夾中的某個(gè)人。matchTemplate函數(shù)可以將當(dāng)前人臉的灰度圖像與person圖像的灰度圖像進(jìn)行比較,并返回一個(gè)相似度矩陣。我們可以使用max方法獲取相似度矩陣中的最大值,并將其與一個(gè)預(yù)設(shè)的閾值(例如0.8)進(jìn)行比較,以確定當(dāng)前人臉是否與person圖像匹配。?

    for (x, y, w, h) in faces:
        # 檢查人臉是否屬于person文件夾中的某個(gè)人
        found_person = False
        for i in range(len(person_images)):
            person_image = person_images[i]
            person_name = person_names[i]
            # 將person圖像轉(zhuǎn)換為灰度圖像以進(jìn)行比較
            person_gray = cv2.cvtColor(person_image, cv2.COLOR_BGR2GRAY)
            # 檢查是否存在與person圖像相匹配的人臉
            match = cv2.matchTemplate(gray[y:y + h, x:x + w], person_gray, cv2.TM_CCOEFF_NORMED)
            if match.max() > 0.8:
                found_person = True
                # 將人物名稱繪制在檢測(cè)到的人臉上
                cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
                cv2.putText(frame, person_name, (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
                break

        # 如果找不到相應(yīng)的人物,則將“Unknown”繪制在檢測(cè)到的人臉上
        if not found_person:
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2)
            cv2.putText(frame, 'Unknown', (x, y - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
        
    # 將幀顯示在窗口中
    cv2.imshow('Face Recognition', frame)
    
    # 等待退出鍵
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 釋放資源
cap.release()
cv2.destroyAllWindows()

這段代碼將每個(gè)檢測(cè)到的人臉與存儲(chǔ)在“person”文件夾中的圖像進(jìn)行比較。如果存在與任何一個(gè)圖像匹配的人臉,則在該人臉上方框和標(biāo)注該人的名稱。否則,將該人臉框在紅色方框內(nèi),并標(biāo)注“Unknown”。(完整代碼中沒(méi)有加入這行,如果需要可以加上)

最后,它將幀顯示在GUI窗口中,并等待退出鍵按下后釋放資源并關(guān)閉窗口。

?cv2AddChineseText方法

在原生的cv2.putText()方法里并不支持中文只能顯示英文,在網(wǎng)上查閱了很多方法都不奏效于是我決定重構(gòu)這個(gè)方法:

def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30):
    if (isinstance(img, np.ndarray)):  # 判斷是否OpenCV圖片類型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    # 創(chuàng)建一個(gè)可以在給定圖像上繪圖的對(duì)象
    draw = ImageDraw.Draw(img)
    # 字體的格式
    fontStyle = ImageFont.truetype(
        "simsun.ttc", textSize, encoding="utf-8")
    # 繪制文本
    draw.text(position, text, textColor, font=fontStyle)
    # 轉(zhuǎn)換回OpenCV格式
    return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

?完整代碼

import cv2
import os
import tkinter as tk
from PIL import Image, ImageTk,ImageDraw
import numpy as np

from PIL import ImageFont

def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30):
    if (isinstance(img, np.ndarray)):  # 判斷是否OpenCV圖片類型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    # 創(chuàng)建一個(gè)可以在給定圖像上繪圖的對(duì)象
    draw = ImageDraw.Draw(img)
    # 字體的格式
    fontStyle = ImageFont.truetype(
        "simsun.ttc", textSize, encoding="utf-8")
    # 繪制文本
    draw.text(position, text, textColor, font=fontStyle)
    # 轉(zhuǎn)換回OpenCV格式
    return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

# 加載自定義字體
font = ImageFont.truetype(r"C:\Users\ge\Desktop\test1\Cuesor\msyh.ttc", size=30)

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

# 創(chuàng)建GUI窗口
root = tk.Tk()
root.geometry('640x480')
root.title('人臉識(shí)別')

# 創(chuàng)建標(biāo)簽用于顯示圖像
image_label = tk.Label(root)
image_label.pack()

# 打開(kāi)攝像頭并捕獲實(shí)時(shí)圖像
cap = cv2.VideoCapture(0)

# 創(chuàng)建 PhotoImage 對(duì)象
photo = None

# 讀取person文件夾中的圖像和姓名
person_images = []
person_names = []
for filename in os.listdir('person'):
    if filename.endswith('.jpg'):
        # 使用utf-8編碼打開(kāi)文件
        with open(os.path.join('person', filename), 'rb') as f:
            person_images.append(cv2.imdecode(np.frombuffer(f.read(), np.uint8), cv2.IMREAD_COLOR))
        person_names.append(os.path.splitext(filename)[0])


# 循環(huán)處理攝像頭捕獲的圖像
while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 轉(zhuǎn)換圖像格式以進(jìn)行人臉檢測(cè)
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 使用Haar Cascade分類器檢測(cè)人臉
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

    # 在圖像中框出檢測(cè)到的人臉
    for (x, y, w, h) in faces:
        # 檢查人臉是否屬于person文件夾中的某個(gè)人
        found_person = False
        for i in range(len(person_images)):
            person_image = person_images[i]
            person_name = person_names[i]
            # 將person圖像轉(zhuǎn)換為灰度圖像以進(jìn)行比較
            person_gray = cv2.cvtColor(person_image, cv2.COLOR_BGR2GRAY)
            # 檢查是否存在與person圖像相匹配的人臉
            match = cv2.matchTemplate(gray[y:y + h, x:x + w], person_gray, cv2.TM_CCOEFF_NORMED)
            if match.max() > 0.8:
                print(person_name)
                found_person = True
                # 在圖像中框出人臉并顯示姓名
                cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 255), 2)
                # 在圖像中框出人臉并顯示姓名
                cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 255), 2)
                frame = cv2AddChineseText(frame, person_name, (x + (w/2)-10, y - 30), (0, 255, 255), 30)
                break

        # 如果沒(méi)有找到匹配的人臉,則在圖像中框出人臉但不顯示姓名
        if not found_person:
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

    # 將圖像轉(zhuǎn)換為PIL Image格式以在GUI中顯示

    image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
    photo = ImageTk.PhotoImage(image)

    # 更新標(biāo)簽以顯示圖像
    image_label.configure(image=photo)
    image_label.image = photo

    # 處理GUI事件以避免程序掛起
    root.update()
#關(guān)閉攝像頭并銷毀窗口
cap.release()
cv2.destroyAllWindows()

人臉識(shí)別技術(shù)在現(xiàn)代生活中有著廣泛的應(yīng)用,例如人臉解鎖手機(jī)、人臉識(shí)別支付、安防領(lǐng)域等。但是,人臉識(shí)別技術(shù)還存在一些局限性和改進(jìn)的空間。

首先,人臉識(shí)別技術(shù)的準(zhǔn)確性受到許多因素的影響,例如光照、姿勢(shì)、表情、遮擋等。為了提高人臉識(shí)別的準(zhǔn)確性,可以采用更先進(jìn)的算法,例如基于深度學(xué)習(xí)的人臉識(shí)別算法。此外,還可以通過(guò)采用更好的硬件設(shè)備來(lái)提高圖像采集的質(zhì)量。

其次,當(dāng)前的人臉識(shí)別技術(shù)主要針對(duì)單個(gè)人臉進(jìn)行識(shí)別,對(duì)于多個(gè)人臉的情況處理較為困難。為了解決這個(gè)問(wèn)題,可以探索如何將多個(gè)人臉的特征進(jìn)行有效地提取和匹配。

最后,人臉識(shí)別技術(shù)還涉及到隱私保護(hù)等倫理問(wèn)題。在應(yīng)用人臉識(shí)別技術(shù)時(shí),需要注意隱私保護(hù)的問(wèn)題,避免對(duì)個(gè)人隱私造成侵害。

總的來(lái)說(shuō),人臉識(shí)別技術(shù)在未來(lái)還有很大的發(fā)展空間,隨著科技的不斷進(jìn)步,相信人臉識(shí)別技術(shù)的應(yīng)用將更加廣泛,也將更加普及化和便利化。

人臉識(shí)別技術(shù)正在廣泛應(yīng)用于各個(gè)領(lǐng)域,例如安全監(jiān)控、人臉支付、人臉解鎖等等。本文介紹的人臉識(shí)別應(yīng)用程序只是冰山一角,隨著技術(shù)的不斷發(fā)展,我們可以期待更加高效、準(zhǔn)確的人臉識(shí)別應(yīng)用程序的出現(xiàn)。如果您對(duì)人臉識(shí)別技術(shù)感興趣,不妨關(guān)注相關(guān)的技術(shù)發(fā)展和應(yīng)用案例,為您的職業(yè)生涯增添一份技術(shù)的底氣。感謝閱讀本文,如果您覺(jué)得有用,請(qǐng)點(diǎn)贊、收藏和關(guān)注,謝謝啦??!

過(guò)幾天我會(huì)在此基礎(chǔ)上加上錄入人臉信息的功能,感興趣的小伙伴不要錯(cuò)過(guò)哦。

再次感謝不離不棄的粉絲,之后仍會(huì)不定期更新哦~~

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-412928.html

到了這里,關(guān)于python基于opencv和tkinter實(shí)現(xiàn)人臉識(shí)別【內(nèi)附完整代碼】的文章就介紹完了。如果您還想了解更多內(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工具包成功實(shí)現(xiàn)人臉檢測(cè)與人臉識(shí)別,包括傳統(tǒng)視覺(jué)和深度學(xué)習(xí)方法(附完整代碼,模型下載......)

    使用OpenCV工具包成功實(shí)現(xiàn)人臉檢測(cè)與人臉識(shí)別,包括傳統(tǒng)視覺(jué)和深度學(xué)習(xí)方法(附完整代碼,模型下載......)

    要實(shí)現(xiàn)人臉識(shí)別功能,首先要進(jìn)行人臉檢測(cè),判斷出圖片中人臉的位置,才能進(jìn)行下一步的操作。 參考鏈接: 1、OpenCV人臉檢測(cè) 2、【OpenCV-Python】32.OpenCV的人臉檢測(cè)和識(shí)別——人臉檢測(cè) 3、【youcans 的圖像處理學(xué)習(xí)課】23. 人臉檢測(cè):Haar 級(jí)聯(lián)檢測(cè)器 4、OpenCV實(shí)戰(zhàn)5:LBP級(jí)聯(lián)分類器

    2024年02月08日
    瀏覽(28)
  • 基于OpenCV提供的人臉識(shí)別算法LBPH實(shí)現(xiàn)人臉識(shí)別

    基于OpenCV提供的人臉識(shí)別算法LBPH實(shí)現(xiàn)人臉識(shí)別

    本文通過(guò)學(xué)習(xí)LBPH人臉識(shí)別算法,簡(jiǎn)要了解人臉識(shí)別技術(shù)的原理,實(shí)現(xiàn)人臉采集、訓(xùn)練人臉模型實(shí)現(xiàn)人臉識(shí)別。 OpenCV庫(kù)自帶的人臉級(jí)聯(lián)分級(jí)器具有很好的人臉檢測(cè)和人臉追蹤效果,它是一個(gè)基于Haar特征的Adaboost級(jí)聯(lián)分類器。特別注意,OpenCV庫(kù)雖然自帶人臉級(jí)聯(lián)分級(jí)器,但是識(shí)

    2024年02月03日
    瀏覽(20)
  • 基于MFC和OpenCV實(shí)現(xiàn)人臉識(shí)別

    基于MFC和OpenCV實(shí)現(xiàn)人臉識(shí)別

    筆記主要參考B站視頻“【C語(yǔ)言項(xiàng)目】軟件開(kāi)發(fā):人臉識(shí)別”。 項(xiàng)目原理速覽查看B站視頻“【學(xué)習(xí)筆記】基于OpenCV實(shí)現(xiàn)人臉識(shí)別的原理講解”。 可能會(huì)用到的資料有如下所示,下載鏈接見(jiàn)文末: 《奇牛編程-人臉識(shí)別資料》 1 ,但是其中有一些命名錯(cuò)誤可能會(huì)導(dǎo)致程序調(diào)用失

    2024年02月07日
    瀏覽(24)
  • 基于樹(shù)莓派和opencv實(shí)現(xiàn)人臉識(shí)別

    基于樹(shù)莓派和opencv實(shí)現(xiàn)人臉識(shí)別

    源碼我放在github上了 https://github.com/FjnuThomas/-opencv- 各位哥哥姐姐clone代碼別忘了給個(gè)小心心哦?? 前言 一、人臉檢測(cè) 二、圖像采集 三、開(kāi)始訓(xùn)練 四、人臉識(shí)別 總結(jié) 我們這學(xué)期選修了一門嵌入式Linux,期末選擇了基于樹(shù)莓派和opencv實(shí)現(xiàn)人臉識(shí)別作為期末作業(yè)。為了展示的方便

    2023年04月23日
    瀏覽(25)
  • 基于 OpenCV + Python 的人臉識(shí)別上課簽到系統(tǒng)

    基于 OpenCV + Python 的人臉識(shí)別上課簽到系統(tǒng)

    目錄 前言 安裝第三方庫(kù) 第一步:采集人臉圖像 (1)修改姓名學(xué)號(hào) (2)運(yùn)行capture_face.py? (3)采集人臉圖像? (4)查看采集到的人臉圖像 第二步:訓(xùn)練模型 第三步:識(shí)別簽到 (1)建立簽到表 (2)運(yùn)行sign_in.py,進(jìn)行簽到 (3)查看簽到結(jié)果 第四步:設(shè)計(jì)GUI 完整項(xiàng)目的

    2024年02月04日
    瀏覽(25)
  • Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單人臉檢測(cè)/識(shí)別實(shí)戰(zhàn)案例 之六 簡(jiǎn)單進(jìn)行人臉訓(xùn)練與識(shí)別

    Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單人臉檢測(cè)/識(shí)別實(shí)戰(zhàn)案例 之六 簡(jiǎn)單進(jìn)行人臉訓(xùn)練與識(shí)別

    目錄 Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單人臉檢測(cè)/識(shí)別實(shí)戰(zhàn)案例 之六 簡(jiǎn)單進(jìn)行人臉訓(xùn)練與識(shí)別 一、簡(jiǎn)單介紹 二、簡(jiǎn)單進(jìn)行人臉訓(xùn)練與識(shí)別 1、LBPH(Local Binary Patterns Histograms)算法進(jìn)行人臉訓(xùn)練和識(shí)別 2、實(shí)現(xiàn)步驟: 3、判斷是誰(shuí)的人臉: 案例中涉及的關(guān)鍵函數(shù)說(shuō)

    2024年04月26日
    瀏覽(144)
  • Python基于深度學(xué)習(xí)的人臉識(shí)別項(xiàng)目源碼+演示視頻,利用OpenCV進(jìn)行人臉檢測(cè)與識(shí)別 preview

    Python基于深度學(xué)習(xí)的人臉識(shí)別項(xiàng)目源碼+演示視頻,利用OpenCV進(jìn)行人臉檢測(cè)與識(shí)別 preview

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

    2024年04月13日
    瀏覽(93)
  • 人工智能-OpenCV+Python實(shí)現(xiàn)人臉識(shí)別(人臉檢測(cè))

    在OpenCV中使用Haar特征檢測(cè)人臉,那么需要使用OpenCV提供的xml文件(級(jí)聯(lián)表)在haarcascades目錄下。這張級(jí)聯(lián)表有一個(gè)訓(xùn)練好的AdaBoost訓(xùn)練集。首先要采用樣本的Haar特征訓(xùn)練分類器,從而得到一個(gè)級(jí)聯(lián)的AdaBoost分類器。Haar特征值反映了圖像的灰度變化情況。例如:臉部的一些特征

    2024年02月06日
    瀏覽(91)
  • 基于OpenCv和tensorflow的人臉識(shí)別設(shè)計(jì)與實(shí)現(xiàn)

    基于OpenCv和tensorflow的人臉識(shí)別設(shè)計(jì)與實(shí)現(xiàn)

    項(xiàng)目名稱: 基于OpenCv和tensorflow的人臉識(shí)別 項(xiàng)目地址:https://gitee.com/yq233/opencv 環(huán)境配置: Python tensorflow2 OpenCv categories: 人工智能 description: Opencv是一個(gè)開(kāi)源的的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),內(nèi)部實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,對(duì)于python而言,在引用opencv庫(kù)的時(shí)候需要

    2024年02月03日
    瀏覽(31)
  • 基于python+opencv的人臉識(shí)別打卡(手把手教你)

    基于python+opencv的人臉識(shí)別打卡(手把手教你)

    2.1新建members.csv文件 文件內(nèi)容依次是id,First_name,Last_name,如圖: 2.2新建face文件夾 里面存放采集的人臉信息,用于訓(xùn)練 2.3注意事項(xiàng) 臉部識(shí)別特征模塊 Path路徑為你創(chuàng)建環(huán)境下的cv2包中haarcascade_frontalface_default.xml對(duì)應(yīng)的地址 只加了opencv中臉部特征,沒(méi)加眼部識(shí)別。(cv2包中還有眼

    2024年02月02日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包