Ubuntu下Python-OpenCV如何實(shí)現(xiàn)人臉檢測

小樊
81
2024-10-11 02:36:39
欄目: 編程語言

在Ubuntu下使用Python和OpenCV實(shí)現(xiàn)人臉檢測,你可以按照以下步驟操作:

  1. 安裝OpenCV: 如果你還沒有安裝OpenCV,可以使用pip命令來安裝。在終端中輸入以下命令:
pip install opencv-python
  1. 編寫代碼: 創(chuàng)建一個(gè)新的Python文件,例如face_detection.py,并添加以下代碼:
import cv2

# 加載預(yù)訓(xùn)練的人臉檢測器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 打開攝像頭
cap = cv2.VideoCapture(0)

while True:
    # 讀取攝像頭幀
    ret, frame = cap.read()

    if not ret:
        break

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

    # 檢測人臉
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

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

    # 顯示結(jié)果幀
    cv2.imshow('Face Detection', frame)

    # 按q鍵退出循環(huán)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 釋放攝像頭資源并關(guān)閉窗口
cap.release()
cv2.destroyAllWindows()

這段代碼首先加載了一個(gè)預(yù)訓(xùn)練的人臉檢測器(Haar級(jí)聯(lián)分類器),然后打開攝像頭并進(jìn)入一個(gè)循環(huán),不斷地讀取攝像頭幀并進(jìn)行人臉檢測。在檢測到人臉時(shí),它會(huì)在幀上繪制矩形框,并顯示結(jié)果幀。當(dāng)按下q鍵時(shí),循環(huán)結(jié)束并釋放攝像頭資源。

注意:為了運(yùn)行上述代碼,你需要確保你的系統(tǒng)上已經(jīng)安裝了OpenCV的Haar級(jí)聯(lián)分類器數(shù)據(jù)文件。這些文件通常位于/usr/share/opencv/data/目錄下。如果它們不存在,你可能需要從OpenCV的GitHub倉庫下載它們,并將它們復(fù)制到正確的位置。

另外,上述代碼使用的是Haar級(jí)聯(lián)分類器,它是一種較舊的人臉檢測方法。對(duì)于更先進(jìn)的人臉檢測算法,你可以考慮使用基于深度學(xué)習(xí)的方法,例如MTCNN、SSD或YOLO等。這些方法通常需要更多的計(jì)算資源和訓(xùn)練數(shù)據(jù),但它們?cè)跈z測精度和速度方面通常優(yōu)于Haar級(jí)聯(lián)分類器。

0