需要任意两张同一个人的照片能够准确分辨出是不是同一个人,尽量简化识别过程,不需要知道是谁,也最好不用建立索引文件。
现在这个版本的insughtface很奇怪,不知道为什么自己建立索引的时候需要每个人2张照片以上才能识别成功,不然就会报一个莫名其妙的错误。
首先上项目地址:
https://github.com/littletomatodonkey/insight-face-paddlehttps://github.com/littletomatodonkey/insight-face-paddle 按照里面的要求装一些依赖就好了
然后测试一下官方自带的数据:
# 建立索引
insightfacepaddle --build_index ./demo/friends/index.bin --img_dir ./demo/friends/gallery --label ./demo/friends/gallery/label.txt
# 检测人脸
insightfacepaddle --det --input ./demo/friends/query/friends1.jpg --output ./output
# 检测+识别
insightfacepaddle --det --rec --index ./demo/friends/index.bin --input ./demo/friends/query/friends2.jpg --output ./output
如果这个能跑通的话至少说明环境没问题了。
注意项目目录里面有一个 insightface_paddle.py 文件,绝大部分的逻辑都在这个里面,我们的修改也主要在这个里面进行。
首先找到InsightFace类,
在里面加一个函数:
# 人脸比对
def build_embedding(self,pic_1,pic_2):
img_1 = cv2.imread(pic_1)
img_2 = cv2.imread(pic_2)
box_list_1, np_feature_1 =