coneypo / Dlib_face_recognition_from_camera

Detect and recognize the faces from camera / 调用摄像头进行人脸识别,支持多张人脸同时识别
http://www.cnblogs.com/AdaminXie/p/9010298.html
MIT License
2.07k stars 572 forks source link

关于收集人脸库的问题 #5

Closed sophiazy closed 6 years ago

sophiazy commented 6 years ago

您好,感觉你这个工作做得挺好的,想问一下,每个人需要几张图片作为特征,还有这几张图片的角度和远近需要不一样吗?希望得到您的回复,谢谢~

coneypo commented 6 years ago

您好,感觉你这个工作做得挺好的,想问一下,每个人需要几张图片作为特征,还有这几张图片的角度和远近需要不一样吗?希望得到您的回复,谢谢~

处理流程:

人脸录入 >>> 特征提取 >>> 人脸识别

人脸录入时候需要进行人脸检测,用的是 Dlib 的正向人脸检测器 detector = dlib.get_frontal_face_detector() 这个检测器是基于 HOG 的; This face detector is made using the now classic Histogram of Oriented Gradients (HOG) feature combined with a linear classifier, an image pyramid, and sliding window detection scheme.

所以录入照片的时候,最好是正向人脸,保证之后人脸的特征可以被提取出来;

至于多角度远近,其实不需要太在意,因为图像变成 128 D 的 vector,我们根据这 128 D 的特征向量进行人脸识别/分类/计算相似度,在另一维度远近角度这些 features 其实没有什么意义,只要能保证能够提取出来特征就行了;

需要几张照片和精度的关系,我没有具体去测,不过我录入个五六张差不多就能够识别出来了; 其实“识别”是计算 128 D 特征的欧式距离,你可以以欧式距离作为参考,离得近相似度高,到底是不是同一个人,我程序里面设置的 dist=0.4,两张人脸的特征如果欧式距离小于0.4就认为是同一张脸;

sophiazy commented 6 years ago

好的,谢谢您的回复