今天在公司的服务器上小试了人脸识别的Python库,这个库的名字就是斐声国际的face_recognition,简称fr

安装的过程有点曲折,首先要dlib支持,在dlib之前还需要安装boost,中间不知道死过多少回,后来终于

pip install face_recognition 安装成功
然后就是贴代码,首先用ls看一下目前工作的目录是哪里,然后在里面上传几张照片,分别是
fernando.jpg,也就是我啦,另外放了一张我的身份证照片id_card.jpg,还有yummy.jpg,这是我老婆的照片,还有一张是考拉的照片,命名为Koala.jpg,以及我当初在西门子的同事合影,命名为siemens.jpg,这样我就要测试face_recognition的功能了
import face_recognition as fr
这一步当然是引入这个库了
fernando=fr.load_image_file("fernando.jpg"),这是导入我的正常照片
yummy=fr.load_image_file("yummy.jpg"),这是导入我老婆的照片
id_card=fr.load_image_file("id_card.jpg"),导入我的身份证照片
siemens=fr.load_image_file("siemens.jpg"),导入我在西门子时的同事合影,里面的我比现在年轻10岁
koala=fr.load_image_file("Koala.jpg"),导入一张考拉的照片
然后就是见证奇迹的时候了:
print(fr.face_locations(fernando)),成功地找到了我的脸
print(fr.face_locations(yummy)),成功地找到了我老婆的脸
print(fr.face_locations(id_card)),没找到脸,奇了怪!………………后来,我发现身份证的照片方向错了,所以正立后重新导入了一次,于是被face_recognition成功地发现了我的脸
print(fr.face_locations(koala)),没找到脸,这很正常,如果能在考拉的照片上能发现一张人的脸,该是多么恐怖的一件事
print(fr.face_locations(siemens)),这个就牛逼了!我西门子同事合影上面有18个人呀,18个罗汉修女,全被找到了,一张脸都没丢下!
然后,我要看看在西门子同事合影上能不能找到我呢?
fernando_encoding=fr.face_encodings(fernando)[0],先对自己编个码
yummy_encoding=fr.face_encodings(yummy)[0],再对老婆也编个码
siemens_encoding=fr.face_encodings(siemens),对西门子的同事也编个码
id_card_encoding=fr.face_encodings(id_card),对我的身份证照片也编个码
print(fr.compare_faces([fernando_encoding],siemens_encoding)),恭喜你,在西门子同事合影里找到了我的脸,太可怕了,我10年前的脸都被你给识别出来了!
print(fr.compare_faces([id_card_encoding],siemens_encoding)),恭喜你,在西门子同事合影里也找到了类似我身份证照片的脸
print(fr.compare_faces([yummy_encoding],siemens_encoding)),哈哈,在西门子同事合影里没找到我的老婆,这就对了!

今天就试到这里吧,face_recognition库还是蛮厉害的,接下来我要把它移植到嵌入式系统里去,然后识别摄像头里的人脸,慢慢玩!