网上很多关于face_recognition的使用介绍,但好像没多少篇文章深入研究过这个库的API的使用,这个库有几个坑:
1. compare_faces
这个接口返回一个True或False的列表,但比对的known_face_encodings是有多个的话,会返回多个True,这个接口是没法知道哪个才是最匹配的,要知道哪个最匹配,得用face_distance这个接口
2. 当要识别的人,不在known_face_encodings里面的时候,compare_faces和known_face_encodings很可能依然返回识别成功,例如默认的tolerance为0.6,但识别一个不在known_face_encodings里面的人,返回的distance可能是0.4或0.5,这就是误识别了,这就很尴尬了。这个时候就要调低tolerance,但是调低tolerance后,例如设成0.3, 去识别一个在known_face_encodings里面的人时,却识别不成功了,得到的distance可能是0.45,这就很糟糕了。我说到的这种情况是使用的模型为'hog','cnn'的没测试过,‘cnn’的要调用cuda,在cpu上使用'cnn'速度超慢的,几秒钟才识别一张照片。