前言
接着上一篇:AI识别照片是谁,人脸识别face_recognition开源项目安装使用 | 机器学习_阿良的博客-CSDN博客
根据项目提供的demo代码,调整了一下功能,自己写了一个识别人脸的工具代码。
环境部署
按照上一篇的安装部署就可以了。
代码
不废话,直接上代码。
#!/user/bin/env python # coding=utf-8 """ @project : face_recognition @author : 剑客阿良_ALiang @file : test.py @ide : PyCharm @time : 2022-01-11 19:50:58 """ import face_recognition known_faces = [[], []] def add_person(image_path: str, name: str): image = face_recognition.load_image_file(image_path) try: encoding = face_recognition.face_encodings(image)[0] known_faces[0].append(name) known_faces[1].append(encoding) except IndexError: print("I wasn't able to locate any faces in at least one of the images. Check the image files. Aborting...") def compare(new_image: str): new1 = face_recognition.load_image_file(new_image) unknown_face_encoding = face_recognition.face_encodings(new1)[0] results = face_recognition.compare_faces(known_faces[1], unknown_face_encoding,0.5) print(known_faces[0]) print(results) name = '' for i in range(0, len(known_faces[0])): if results[i]: print(i) name = known_faces[0][i] break if name == '': return 'I do not who' else: return name if __name__ == '__main__': add_person('data/1.jpg', '杨幂') add_person('data/2.jpg', '迪丽热巴') add_person('data/3.jpg', '宋轶') add_person('data/4.jpg', '邓紫棋') print(compare('data/121.jpg')) print(compare('data/123.jpg'))
代码说明:
1、先将一些人脸录进去,指定人物名称,方法为add_person。
2、compare方法用来判断照片是谁。
先看一下我准备的照片。
看一下需要验证的照片
执行结果
可以看出已经识别出杨幂和邓紫棋了。
总结
还是要提醒一下,我多次测试了各类图片,识别还是有一定的误差率的。可以根据自己的情况调整代码。
分享:
这个世界上没有奇迹,有的只是偶然和必然,以及是谁在做些什么。一直期望着能出现奇迹的人们是不会发生奇迹,只有想要用自己的双手创造奇迹的人们,救赎之手才会伸向他们。
——《悠久之翼》