在Ubuntu下使用Python和OpenCV實現人臉檢測,你可以按照以下步驟操作:
pip install opencv-python
face_detection.py
,并添加以下代碼:import cv2
# 加載預訓練的人臉檢測器
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
# 將幀轉換為灰度圖
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)
# 顯示結果幀
cv2.imshow('Face Detection', frame)
# 按q鍵退出循環
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 釋放攝像頭資源并關閉窗口
cap.release()
cv2.destroyAllWindows()
這段代碼首先加載了一個預訓練的人臉檢測器(Haar級聯分類器),然后打開攝像頭并進入一個循環,不斷地讀取攝像頭幀并進行人臉檢測。在檢測到人臉時,它會在幀上繪制矩形框,并顯示結果幀。當按下q鍵時,循環結束并釋放攝像頭資源。
注意:為了運行上述代碼,你需要確保你的系統上已經安裝了OpenCV的Haar級聯分類器數據文件。這些文件通常位于/usr/share/opencv/data/
目錄下。如果它們不存在,你可能需要從OpenCV的GitHub倉庫下載它們,并將它們復制到正確的位置。
另外,上述代碼使用的是Haar級聯分類器,它是一種較舊的人臉檢測方法。對于更先進的人臉檢測算法,你可以考慮使用基于深度學習的方法,例如MTCNN、SSD或YOLO等。這些方法通常需要更多的計算資源和訓練數據,但它們在檢測精度和速度方面通常優于Haar級聯分類器。