社区首页 >问答首页 >合影中的人脸对比

合影中的人脸对比
EN

Stack Overflow用户
提问于 2020-06-25 23:22:57
回答 1查看 213关注 0票数 0

我想比较两张照片。第一个有一个人的脸。第二张是许多面孔的合影。我想看看第一张照片中的人是否会出现在第二张照片中。

我尝试使用python中的deepface和face_recognition库来实现这一点,方法是从合影中逐个提取面孔,并将它们与原始照片进行比较。

代码语言:javascript
代码运行次数:0
复制
face_locations = face_recognition.face_locations(img2_loaded)

        for face in face_locations:
            top, right, bottom, left = face
            face_img = img2_loaded[top:bottom, left:right]
           
            face_recognition.compare_faces(img1_loaded, face_img)

这会导致有关操作数不能与形状(3088,2316,3) (90,89,3)一起广播的错误。当我使用PIL保存从合影中拉出的面孔,然后尝试将它们传递到deepface中时,也会遇到同样的错误。有没有人能推荐一些替代方法来实现这个功能?或者修复我当前的尝试?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-06-27 08:49:44

deepface被设计用来比较两张脸,但你仍然可以比较一对多的人脸识别。

你有两张照片。其中一张只有一张脸部照片。我将其称为img1.jpg。而second有很多面孔。我将其称为img2.jpg。

您可以首先使用OpenCV检测img2.jpg中的人脸。

代码语言:javascript
代码运行次数:0
复制
import cv2
img2 = cv2.imread("img2.jpg")
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(img2, 1.3, 5)

detected_faces = []
for face in faces:
    x,y,w,h = face
    detected_face = img2[int(y):int(y+h), int(x):int(x+w)]
    detected_faces.append(detected_face)

然后,您需要将faces变量的每一项与img1.jpg进行比较。

代码语言:javascript
代码运行次数:0
复制
img1 = cv2.imread("img1.jpg")
targets = face_detector.detectMultiScale(img1, 1.3, 5)
x,y,w,h = targets[0] #this has just a single face
target = img1[int(y):int(y+h), int(x):int(x+w)]

for face in detected_faces:
    #compare face and target in each iteration
    compare(face, target)

我们应该设计比较函数

代码语言:javascript
代码运行次数:0
复制
from deepface import DeepFace

def compare(img1, img2):
    resp = DeepFace.verify(img1, img2)
    print(resp["verified"])

因此,您可以将deepface调整为适合您的情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62585725

复制
相关文章
如何使用Selenium WebDriver查找错误的链接?
当您在网站上遇到404 /页面未找到/无效超链接时,会想到什么想法?啊!当您遇到损坏的超链接时,您会感到烦恼,这是为什么您应继续专注于消除Web产品(或网站)中损坏的链接的唯一原因。您可以使用Selenium WebDriver来利用自动化进行錯誤的链接测试,而无需进行人工检查。
用户7466307
2020/12/29
6.7K0
如何使用Selenium WebDriver查找错误的链接?
selenium 3.0.1遇到问题的解决方案
迄今为止,我个人认为,selenium是最好使用的web应用程序的自动化测试框架,不仅仅因为它是开源的优势之一,更加重要的是它可以支持的语言比较多,像我们熟悉的java,python,c#等,更加开心的是,selenium官方更新和发布了selenium3.0.1版本,selenium版本都是2.x的。
无涯WuYa
2018/10/25
1.2K0
selenium 3.0.1遇到问题的解决方案
Python:Selenium 2:使用
WebDriver在将控制权返回给测试脚本之前,会一直等待到页面完全加载完毕,但如果页面使用了很多AJAX,WebDriver可能无法准确判断页面是否完全加载。
丹枫无迹
2019/09/11
2K0
python selenium xpath使用
/ 表示绝对路径,绝对路径是指从根目录开始 //表示相对路径 .表示当前层 ..表示上一层 *表示通配符 @表示属性 []属性的判断条件表达式
用户5760343
2022/05/13
9130
Selenium Python使用技巧(一)
使用Selenium进行测试自动化已使全球的网站测试人员能够轻松执行自动化的网站测试。Webdriver是Selenium框架的核心组件,您可以使用它执行自动跨浏览器测试针对不同类型的浏览器(例如Google Chrome,Mozilla Firefox,Safari,Opera,Internet Explorer,Microsoft Edge等)访问您的网站或Web应用程序。与其他Web自动化工具/框架相比,使用Selenium Webdriver执行测试自动化的主要优势是支持多种编程语言,例如Python,Java,C,Ruby,PHP,JavaScript,.Net,Perl,Groovy等。
FunTester
2020/02/17
2.2K0
Python Selenium 库使用技巧
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
微软技术分享
2022/12/28
1.2K0
Python Selenium 库使用技巧
Selenium Python使用技巧(三)
在Selenium自动化测试中网页可能需要花费一些时间来加载,或者希望在触发测试代码之前可以看到页面上的特定Web元素。在这种情况下,需要执行“显式等待”,这是一段代码,通过它可以定义要发生的条件,然后再继续执行代码。
FunTester
2020/02/17
1.7K0
Python Selenium的使用(爬虫)
Selenium的使用 14 /10 周一阴 1 动态渲染页面爬取 对于访问Web时直接响应的数据(就是response内容可见),我们使用urllib、requests或Scrapy框架爬取。
Python知识大全
2020/02/13
3.3K0
Python Selenium的使用(爬虫)
Selenium Python使用技巧(二)
您可能需要在多种情况下针对不同的浏览器(例如Firefox,Chrome,Internet Explorer,Edge)测试代码。跨不同浏览器测试网站的做法称为自动浏览器测试。要使用Selenium自动化测试执行自动浏览器测试,您应该在单元测试代码或pytest代码中合并对这些浏览器的选择性处理。下面显示了一个代码片段(利用pytest)来处理多个浏览器:
FunTester
2020/02/17
6.4K0
Python selenium webdriver 基本使用
本文就介绍了Selenium的常用内容:了解Selenium Webdriver 是干什么的
EXI-小洲
2022/12/13
1.6K0
ETL(四):LOOKUP查找转换组件的使用
③ 将“汇总转换”组件中的MANUFACTURER_ID拖拉到“LOOKUP查找转换组件”,效果如下;
数据分析与统计学之美
2021/11/25
5510
django开发时遇到问题的正确求助姿势
自 django博客教程发布以来,已有超过上万名读者学习了该教程。一些学习者跟随教程顺利地完成了个人博客的搭建,但一直以来也不断地收到读者的评论留言、QQ 留言、邮件等求助信息,他们被开发中的一些问题卡主了,并且不知道该如何解决。随着教程阅读者越来越多,我收到的求助信息也越来越多。一个人的力量始终是有限的,我个人也难以回答所有求助者的问题。为此,我想向大家介绍一些当初我学习 django 时遇到问题如何有效求助的一些经验,一些更容易得到解决方案的求助渠道,以及一些可供查阅的 django 资料等。 求助首选
追梦人物
2018/04/17
9750
python selenium chrome使用验证代理
failed to wait for extension background page to load: chrome-extension://oonccdcfgindlahlpdgfkafbecgknmkg/_generated_background_page.html
py3study
2020/01/20
1.4K0
python使用selenium实现网页截图
近期需求:网站首页截图功能,需要将8万个网站全部截取首页图片,并保存下来。 其中chromedriver需要自行下载; 直接上代码! from selenium import webdriver # 获取网页截图 def road_situation(url):     # 初始化一个谷歌浏览器实例     chrome_driver = 'C:\chromedriver.exe'     driver = webdriver.Chrome(executable_path=chrome_driver)  
申霖
2020/12/28
3.7K0
uniapp使用遇到问题汇总
7. uni.$u 和 this 这两个的使用,对于每个vue中定义的数据的调用,尽量还是用this,对于定义的vuex中的变量或者一些工具方法或者api之类的还是用uni,因为this是指的当前调用某个方法的vue实例,关于this的用法
知识浅谈
2022/05/19
7660
MySQL使用遇到问题总结
在MySQL中,为了区分MySQL的关键字与普通字符,MySQL引入了一个反引号,注意检查编写sql
汀丶人工智能
2022/12/21
4720
MySQL使用遇到问题总结
python使用selenium模拟登录网易
#-*-coding:utf-8-*- from selenium import webdriver import time import json name = input("输入登录名:") pwd = input("输入密码:") #name = "******" #pwd = "******" print(name+":"+pwd) driver = webdriver.Chrome() # 创建Chrome对象. driver.maximize_window() driver.imp
JQ实验室
2022/02/10
1.2K0
ElementUI使用Upload组件时传递额外参数
这学期写过一个项目,用到了Element中的Upload组件,项目的需求是除了上传文件到后端,还需要传递额外的参数,在这里耗了一点时间,在网上找了很多解决办法,但都不是我需要的,这里记录一下。
花猪
2022/02/22
4.2K0
ElementUI使用Upload组件时传递额外参数
Python爬虫:学习Selenium并使用Selenium模拟登录知乎
现在开始要学习使用Python进行动态爬虫了,而Selenium是来进行动态爬虫的一种工具
龙哥
2018/10/22
3.5K0
Python爬虫:学习Selenium并使用Selenium模拟登录知乎
点击加载更多

相似问题

如何将动态id从ajax数据传递给Modal

10

将ID从AJAX传递回PHP,再传递回Modal

31

将id值从ahref传递给bootstrap modal php

30

通过Ajax将实体ID传递给Controller

11

将ajax响应数据传递给modal

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文