python实现人脸识别
时间: 2023-08-28 22:04:51 浏览: 35
实现人脸识别需要用到计算机视觉相关的库,比如OpenCV和dlib等。以下是一个简单的Python代码示例,可以进行人脸检测和识别:
```python
import cv2
import dlib
# 加载人脸检测器和人脸识别模型
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 加载已知人脸的特征向量和标签
known_face_encodings = [...] # 已知人脸的特征向量
known_face_names = [...] # 已知人脸的标签
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read() # 读取摄像头的一帧画面
if not ret:
break
# 检测人脸
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = detector(gray)
# 遍历每个人脸
for face in faces:
# 获取人脸的68个关键点
landmarks = predictor(gray, face)
# 将关键点转换为特征向量
face_encodings = np.array(face_encoder.compute_face_descriptor(frame, landmarks))
# 计算与已知人脸的特征向量的距离
distances = np.linalg.norm(known_face_encodings - face_encodings, axis=1)
min_distance_index = np.argmin(distances)
# 如果匹配到已知人脸,则显示标签
if distances[min_distance_index] < threshold:
name = known_face_names[min_distance_index]
cv2.putText(frame, name, (face.left(), face.top() - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2, cv2.LINE_AA)
cv2.imshow("Frame", frame) # 显示画面
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
需要注意的是,以上代码只是一个简单的示例,实际应用中还需要根据具体情况进行优化和改进。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)