查看原文
其他

人工智能|Python一次进行多张照片的人脸比对

陈鸥辉 信息科技时代 2024-03-15

本课前期准备:利用《推荐|Python 爬虫系列教程一爬取批量百度图片》爬取某明星的一些照片,比如我就觉得童瑶与章子怡长得太像,很难辨别,想各爬取她俩10张照片,看看《人工智能|Python调用百度人脸对比检测体验》的人脸对比结果会如何?

爬取照片:各爬了10张,删掉一些不太合适的照片,留下仅5张。

参考程序:

import base64
import os
from aip import AipFace
#以下为我的 APPID AK SK
APP_ID = '23049248'
API_KEY = '1KKYsD0eI0ysMYqFez9GULM0'
SECRET_KEY = 'pgjS7RvAOxY2KoK5YbQZGXgvOP4CoSE7'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
for root,dirs,filenames in os.walk("img/"):
pass#获取目录,子文件夹,子文件名
#print(filenames)
images=[]
for file in filenames:
images.append({'image': str(base64.b64encode(open("img/"+file, 'rb').read()),'utf-8'), 'image_type': 'BASE64'})
#调用人脸两两比对
for x in range(len(images)):
for y in range(x+1,len(images)):
tmpimages = [images[x]]
tmpimages.append(images[y])
result_json = client.match(tmpimages)
#print(result_json)
result = result_json['result']['score']
if result > 80:
print(filenames[x]+"与"+filenames[y]+"是同一个人")
else:
print(filenames[x]+"与"+filenames[y]+"不是同一个人")

运行结果:

有意思,章子怡1与6不是同一个人,但是1与2是同一个人,2与6也是同一个人。容差改成70再看看会如何?改小就完全对了。

相关知识

人脸比对(Face Compare):是衡量两个人脸之间相似度的算法

人脸比对算法的输入是两个人脸特征(注:人脸特征由人脸提特征算法获得),输出是两个特征之间的相似度。人脸验证、人脸识别、人脸检索都是在人脸比对的基础上加一些策略来实现。相对人脸提特征过程,单次的人脸比对耗时极短,几乎可以忽略。

基于人脸比对可衍生出人脸验证(Face Verification)、人脸识别(Face Recognition)、人脸检索(Face Retrieval)、人脸聚类(Face Cluster)等算法。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存