人脸对比

简介: 【7月更文挑战第31天】人脸对比

在face_predict下新建face-compare.py,完成人脸对比。

人脸比较:将两张人脸图像进行对比

将两者之间的相似值进行打印

阈值为0.6,阈值越小,条件越苛刻

import cv2
import face_recognition

加载被比较的图像

source_image = face_recognition.load_image_file("Face_database/hyz/hyz.png")

加载测试图像

compare_image = face_recognition.load_image_file("Facedatabase/hyz/hyz
near.png")

获取人脸位置并做单人脸容错处理

source_locations = face_recognition.face_locations(source_image)
if len(source_locations) != 1:
print("注意:图像一只能有一张人脸哦!")
exit(0)

获取人脸位置并做单人脸容错处理

compare_locations = face_recognition.face_locations(compare_image)
if len(compare_locations) != 1:
print("注意:图像二只能有一张人脸哦!")
exit(0)

绘制图像一的人脸

for (top, right, bottom, left) in source_locations:
print(top, right, bottom, left)
cv2.rectangle(source_image, (left, top), (right, bottom), (0, 255, 0), 2)

绘制图像二的人脸

for (top, right, bottom, left) in compare_locations:
print(top, right, bottom, left)
cv2.rectangle(compare_image, (left, top), (right, bottom), (0, 255, 0), 2)

获取图像一的面部编码

source_face_encoding = face_recognition.face_encodings(source_image)[0]
source_encodings = [
source_face_encoding,
]

获取图像二的面部编码

compare_face_encoding = face_recognition.face_encodings(compare_image)[0]

显示两张得到人脸后的图像

source_image = source_image[:, :, ::-1]
cv2.imshow("image", source_image)
cv2.waitKey(0)
compare_image = compare_image[:, :, ::-1]
cv2.imshow("image", compare_image)
cv2.waitKey(0)

查看面部一与面部二的比较结果,阈值为0.6,阈值越小越苛刻

face_distances = face_recognition.compare_faces(source_encodings, compareface
encoding, 0.6)

输出结果

print("正常阈值为0.6时,测试图像是否与已知图像{}匹配!".format("是" if face_distances else "不是"))
将两张照片图像加载进来后,先判断照片中是否只有一张人脸。如果照片中多于一张人脸,提示并退出;如果两张照片中都只有一张人脸,那么就将人脸圈出来,圈出来的人脸进行编码后进行比对,阈值为0.6,小于该阈值,就认为两张图像属于一张人脸。

相关文章
|
10月前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
212 11
|
3月前
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
3月前
|
缓存 NoSQL API
Django缓存机制详解:从配置到实战应用
本文介绍了 Django 缓存机制的基础知识与实战应用,涵盖缓存概念、Redis 安装配置、缓存策略及 API 使用,并通过 RBAC 权限系统演示缓存的读写与删除操作,助力提升 Web 应用性能。
106 0
|
9月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
349 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
12月前
|
JavaScript 前端开发 Java
vue2知识点:vue-cli脚手架配置代理服务器
vue2知识点:vue-cli脚手架配置代理服务器
213 7
|
11月前
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
|
12月前
图片的大小
【10月更文挑战第7天】
735 1
GOLANG MAP 查找
GOLANG MAP 查找
225 3
|
小程序 Java
28. 【Java教程】Scanner 类
28. 【Java教程】Scanner 类
242 7
|
Windows
苹果笔记本如何安装windows系统
苹果笔记本如何安装windows系统
1493 1