使用Python比较两张人脸图像并获得准确度

news2024/12/25 18:05:08

使用 Python、OpenCV 和人脸识别模块比较两张图像并获得这些图像之间的准确度水平。

一、原理

使用Face Recognition python 模块来获取两张图像的128 个面部编码,并比较这些编码。比较结果返回 True 或 False。如果结果为True ,那么两个图像将是相同的。如果是False,则两个图像将不相同。

二、128 种面部编码

仅当比较结果返回 True 值时,才会打印准确度级别。

三、实现

首先在conda中或终端安装需要的模块

pip install opencv-python
pip install face-recognition

安装后导入模块

创建一个名为 find_face_encodings(image_path) 的新函数,它获取图像位置(路径)并返回 128 个面部编码,这在比较图像时非常有用。

find_face_encodings(image_path) 函数将使用 OpenCV 模块,从我们作为参数传递的路径中读取图像,然后返回使用 face_recognition 模块中的 face_encodings() 函数获得的 128 个人脸编码。使用两个不同的图像路径调用 find_face_encodings(image_path) 函数,并将其存储在两个不同的变量中,image_1和image_2

import cv2
import face_recognition
def find_face_encodings(image_path):
    # reading image
    image = cv2.imread(image_path)
    
    # get face encodings from the image
    face_enc = face_recognition.face_encodings(image)
    
    # return face encodings
    return face_enc[0]
# getting face encodings for first image
image_1 = find_face_encodings("image_1.jpg")

# getting face encodings for second image
image_2  = find_face_encodings("image_2.jpg")

现在,我们可以使用编码执行比较和查找这些图像的准确性等操作。

  • 比较将通过使用 face_recognition 中的 compare_faces() 函数来完成。

  • 通过找到 100 和 face_distance 之间的差异来确定准确性。

# checking both images are same
is_same = face_recognition.compare_faces([image_1], image_2)[0]
print(f"Is Same: {is_same}")
if is_same:
    # finding the distance level between images
    distance = face_recognition.face_distance([image_1], image_2)
    distance = round(distance[0] * 100)
    
    # calcuating accuracy level between images
    accuracy = 100 - round(distance)
    
    print("The images are same")
    print(f"Accuracy Level: {accuracy}%")
else:
    print("The images are not same")

参考链接:https://blog.csdn.net/woshicver/article/details/12860789

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

社交媒体内容创新:Kompas.ai如何引领潮流

在数字营销的激烈竞争中,社交媒体平台已成为品牌与消费者互动的主要战场。随着用户对新鲜、有趣和互动性强的内容需求不断增长,品牌必须不断创新,以维持其在社交媒体上的影响力和吸引力。本文将深入探讨社交媒体平台上内容创新的必要性及其对…

【Python】使用Python计算简单数值积分

题外话,Python语言命名的来源:(见下图)Monty Python巨蟒剧团 1、积分题目(3) 2、解析解答 3、Python计算代码 import math import scipy.integrate as integrate# 积分区间 # x_min 0.0 # 1 # x_min …

【C语言】操作符相关编程题

目录 题目一: 题目二: 题目三: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 题目一: 题目:不创建临时变量,交换两个数…

第一届 _帕鲁杯_ - CTF挑战赛

Mis 签到 题目附件: 27880 30693 25915 21892 38450 23454 39564 23460 21457 36865 112 108 98 99 116 102 33719 21462 21069 27573 102 108 97 103 20851 27880 79 110 101 45 70 111 120 23433 20840 22242 38431 22238 22797 112 108 98 99 116 102 33719 2…

Spring Boot集成zipkin快速入门Demo

1.什么zipkin Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。Zipkin默认支持Http协议&…

提取出图像的感兴趣区域

这是我们的原图像 将图像的数值统计后进行条形图展示 import matplotlib.pyplot as plt from PIL import Image import numpy as np# 图像路径 image_path r"D:\My Data\Figure\OIP.jpg"# 打开图像 image Image.open(image_path)# 将图像转换为numpy数组 image_ar…

Redis持久化策略揭秘:如何实现高可用!

【更多精彩内容,欢迎关注小米的微信公众号“软件求生”】 大家好!我是你们的小米,很高兴和大家分享Redis的持久化知识。Redis作为一款强大的内存数据库,经常被用于缓存和存储临时数据。然而,在很多场景中,我们希望Redis的数据能够持久保存,以备不时之需。那么,Redis如…

SpringBoot 操作 Redis

导入对应版本的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>修改配置文件中的信息 spring:redis:host: 127.0.0.1port: 8888注意: 我这里 xsh…

SVD奇异值分解原理及应用

-------------------------------------------------------------------------------------------------------------------------------- 首先说明&#xff1a;本文的内容来自百家号“人工智能遇见磐创”大佬的整理&#xff0c;感谢原作者&#xff08;本文在原作者的基础上按…

影响钕铁硼磁钢性能的因素及方法

钕铁硼永磁材料自问世以来&#xff0c;就以其优越的磁性能而备受关注&#xff0c;被称为“磁王“&#xff0c;在市场需求的不断地增长下&#xff0c;钕铁硼生产工艺及磁体性能也不断发展和提升。我们一般用剩磁、矫顽力和最大磁能积这几个指标来衡量磁性材料的磁性能。 剩磁 B…

三. TensorRT基础入门-TensorRT简介

目录 前言0. 简述1. 什么是TensorRT2. TensorRT的工作流介绍3. TensorRT的一些限制总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第三章—TensorRT 基础入门&#xf…

2024年3月电风扇家电线上电商(京东天猫淘宝)销售数据排行榜

鲸参谋监测的线上电商&#xff08;京东天猫淘宝&#xff09;平台3月份的电风扇家电销售数据已出炉&#xff01; 根据鲸参谋数据显示&#xff0c;今年3月份&#xff0c;电风扇市场呈现出稳步增长态势。在线上电商平台上电风扇总销量累计约226万件&#xff0c;环比上个月上涨了2…

前程贷v6.5系统测试报告

1.引言部分 1&#xff0e;1 项目背景 本测试报告的具体编写目的&#xff0c;指出预期的读者范围。(3-4句) 项目描述 &#xff08;项目内容&#xff0c;用户需求&#xff09; 本测试报告为**&#xff08;系统名称&#xff09;**系统测试报告&#xff1b;本报告目的在于总结测试…

可平滑替代FTP的传输方案,需要具备哪些特质?

随着技术的发展和网络安全需求的提升&#xff0c;传统的FTP受安全性和效率方面的局限性&#xff0c;已经逐渐不能满足现代企业的需求。因此&#xff0c;许多企业和组织开始寻找替代FTP的方案&#xff0c;以提高文件传输的安全性、效率和便捷性。FTP传输存在的弊端及不足主要包括…

洛谷 A+B 问题 python

题目描述 输入两个整数 a,b&#xff0c;输出它们的和 输入格式 两个以空格分开的整数&#xff08;不是输入两个input&#xff08;&#xff09;解决&#xff09;。 输出格式 一个整数。 输入输出样例 输入 20 30 输出 50 这个问题的难点就是在于python当中进行两个输入数字…

JavaScript-3.DOM

通过HTML DOM,可以访问JavaScript HTML文档中的所有元素 DOM(Document Object Model) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。将网页内的元素封装成一个对象,并建立元素的层级关系,形似一棵树,称为DOM树。 通过可编程的对象模型,…

【简单介绍下Faiss原理和使用】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

【软考---系统架构设计师】软件架构

目录 1 一、软件架构的概念 二、软件架构风格 &#xff08;1&#xff09;数据流风格​​​​​​​ &#xff08;2&#xff09;调用/返回风格 &#xff08;3&#xff09;独立构件风格 &#xff08;4&#xff09;虚拟机风格 &#xff08;5&#xff09;仓库风格 三、架构…

知识图谱的起源与发展

文章目录 知识图谱的发展历史知识图谱的重要性知识图谱与Ontology、语义网络之间的区别知识图谱的定义 知识图谱的发展历史 知识图谱始于20世纪50年代&#xff0c;至今大致分为三个发展阶段&#xff1a;第一阶段 &#xff08;1955年—1977年&#xff09;是知识图谱的起源阶段&a…

C++学习————第八天(C/C++内存管理)

目录 1、1.C/C内存分布 2、 C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 3、C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 4.operator new与operator delete函数 5. new和delete的实现原理 5.1 内置类型 5.2 自定…