dlib人脸识别原理
时间: 2024-01-19 20:16:27 浏览: 48
Dlib人脸识别的基本思路为:计算已知图片中所有人脸对应的特征向量;计算要识别的未知图片中所有人脸对应的特征向量;计算人脸之间的欧式距离;如果两张人脸之间的欧式距离小于设定的阈值,则认为是同一个人,否则认为不是同一个人。具体步骤如下:
1. 加载人脸识别模型。
2. 对于已知图片中的每张人脸,计算其对应的特征向量。
3. 对于要识别的未知图片中的每张人脸,同样计算其对应的特征向量。
4. 计算未知图片中每张人脸与已知图片中每张人脸的欧式距离。
5. 如果某张未知图片中的人脸与已知图片中的某张人脸的欧式距离小于设定的阈值,则认为它们是同一个人,否则认为它们不是同一个人。
代码示例:
```python
import dlib
import numpy as np
# 加载人脸识别模型
detector = dlib.get_frontal_face_detector()
sp = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
facerec = dlib.face_recognition_model_v1('dlib_face_recognition_resnet_model_v1.dat')
# 计算已知图片中所有人脸对应的特征向量
known_face_encodings = []
img = dlib.load_rgb_image('known_face.jpg')
dets = detector(img, 1)
for k, d in enumerate(dets):
shape = sp(img, d)
face_encoding = facerec.compute_face_descriptor(img, shape)
known_face_encodings.append(np.array(face_encoding))
# 计算要识别的未知图片中所有人脸对应的特征向量
unknown_face_encodings = []
img = dlib.load_rgb_image('unknown_face.jpg')
dets = detector(img, 1)
for k, d in enumerate(dets):
shape = sp(img, d)
face_encoding = facerec.compute_face_descriptor(img, shape)
unknown_face_encodings.append(np.array(face_encoding))
# 计算人脸之间的欧式距离
for unknown_face_encoding in unknown_face_encodings:
distances = np.linalg.norm(known_face_encodings - unknown_face_encoding, axis=1)
# 如果两张人脸之间的欧式距离小于设定的阈值,则认为是同一个人,否则认为不是同一个人
threshold = 0.6
if np.any(distances <= threshold):
print('This is a known face!')
else:
print('This is an unknown face!')
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](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)
![](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)