人脸识别追踪python代码
时间: 2024-12-26 19:07:44 浏览: 0
在Python中使用人脸识别追踪,可以结合OpenCV库以及深度学习框架如dlib或face_recognition。以下是一个基本的示例,使用OpenCV和Haar级联分类器进行人脸检测,然后使用`cv2.Tracker`类进行追踪:
```python
import cv2
# 加载预训练的人脸检测器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# 初始化摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取帧并转换为灰度图
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
if len(faces) > 0:
# 选择第一个发现的人脸进行追踪
x, y, w, h = faces[0]
tracker = cv2.Tracker_create('BOOSTING') # 使用Boosting追踪器
tracker.init(frame, (x, y, w, h))
while True:
ret, frame = cap.read()
if not ret:
break
# 更新追踪器并绘制边框
success, box = tracker.update(frame)
if success:
x, y, w, h = [int(v) for v in box]
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
else:
print("Tracking failure")
break
# 显示追踪结果
cv2.imshow('Face Tracking', frame)
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
else:
print("No face detected")
# 清理
cap.release()
cv2.destroyAllWindows()
```
阅读全文