使用 face_recognition 和 cv2 进行人脸识别:空编码错误 Python

     2023-03-16     166

关键词:

【中文标题】使用 face_recognition 和 cv2 进行人脸识别:空编码错误 Python【英文标题】:Face recognition with face_recognition and cv2 : empty encoding error Python 【发布时间】:2021-12-26 00:28:58 【问题描述】:

我在运行 python 人脸识别脚本时遇到问题,它适用于某些图像,但在某些情况下,它给了我错误:

unface_encoding = face_recognition.face_encodings(faceimg)[0]IndexError: list index out of range

似乎unface_encoding 变量为空(?),但我不知道为什么这会发生在某些面孔而不是其他面孔以及如何解决它。我已经阅读了 face_recognition,但它并没有真正帮助我。

我是人脸识别(和 python)方面的初学者,所以任何建议或改进都会对我有所帮助。

这是我的代码:

import face_recognition
import cv2

known_image = face_recognition.load_image_file("known_faces/person.jpg")
unknown_image = face_recognition.load_image_file("unknown_faces/faces.jpg")

image = cv2.imread("unknown_faces/faces.jpg",cv2.IMREAD_COLOR)
face_locations = face_recognition.face_locations(unknown_image)

known_encoding = face_recognition.face_encodings(known_image)[0]

for face in face_locations:
    print(face)
    (a, b, c, d) = face
    faceimg = unknown_image[a:c, d:b]
    faceimg = cv2.cvtColor(faceimg, cv2.COLOR_BGR2RGB)

    unface_encoding = face_recognition.face_encodings(faceimg)[0]

    results = face_recognition.compare_faces([known_encoding], unface_encoding,0.5)
    print(results)
    if results == [True]:
        cv2.rectangle(image, (b, c), (d, a), (0, 128, 0), 2)
    elif results == [False]:
        cv2.rectangle(image, (b, c), (d, a), (0, 0, 255), 1)

cv2.imshow('base', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

如有英文错误,请见谅,

提前致谢

【问题讨论】:

【参考方案1】:

我没有广泛使用face_recognition,但我使用过 OpenCV 和其他面部识别库。通常返回的“人脸”是x, y, w, h 的边界框。矩形通常在x, y, x + w, y + h 之后创建。如果face_recognition 相似,则说明您的盒子制作不正确。试试

faceimg = unknown_image[a:a+c, b:b+d]

【讨论】:

使用 yolov4 人脸检测和 face_recognition

】使用yolov4人脸检测和face_recognition【英文标题】:useyolov4facedetectionwithface_recognition【发布时间】:2021-02-1506:13:26【问题描述】:是否可以使用yolov4进行物体检测并使用face_recognition库识别检测到的人脸,还是需要使用face_recognition... 查看详情

[深度学习]python人脸识别库face_recognition使用教程(代码片段)

Python人脸识别库face_recognition使用教程face_recognition号称是世界上最简单的开源人脸识别库,可以通过Python或命令行识别和操作人脸。face_recognition提供了十分完整的技术文档和应用实例,人脸识别初学者建议研究该库上手... 查看详情

dlib 和 face_recognition 库出错

】dlib和face_recognition库出错【英文标题】:Errorwithdlibandface_recognitionlibrary【发布时间】:2020-11-1722:54:02【问题描述】:导入face_recognition库时出现错误。我也尝试过使用虚拟环境。请帮忙。Traceback(mostrecentcalllast):File"<stdin>",line... 查看详情

face_recognition库实现人脸识别demo(代码片段)

...出名字和图像。 主要方法:demo:#1、加载库importface_recognitionimportcv2importnumpyasnp#2、加载图片fei=cv2.imrea 查看详情

face_recognition库实现人脸识别demo(代码片段)

...出名字和图像。 主要方法:demo:#1、加载库importface_recognitionimportcv2importnumpyasnp#2、加载图片fei=cv2.imrea 查看详情

face_recognition基础接口(代码片段)

face_recognition基础接口face_recognition使用世界上最简单的人脸识别库,在Python或命令行中识别和操作人脸。使用dlib最先进的人脸识别技术构建而成,并具有深度学习功能。该模型在 LabeledFacesintheWild 基准中的准确率为99.38%... 查看详情

利用face_recognition,dlib与opencv调用摄像头进行人脸识别(代码片段)

用已经搭建好 face_recognition,dlib环境来进行人脸识别未搭建好环境请参考:https://www.cnblogs.com/guihua-pingting/p/12201077.html使用OpenCV调用摄像头importface_recognitionimportcv2video_capture=cv2.VideoCapture(0)#VideoCapture打开摄像头,0为笔记本内置... 查看详情

使用 pip 安装 face_recognition 模块时出错

】使用pip安装face_recognition模块时出错【英文标题】:Errorininstallingface_recognitionmoduleusingpip【发布时间】:2022-01-1614:11:12【问题描述】:我在windows10中使用vscode。当我使用pip在vscode中安装face_recognition时出现以下错误,我还尝试在... 查看详情

IndexError:列表索引超出范围,face_recognition

】IndexError:列表索引超出范围,face_recognition【英文标题】:IndexError:listindexoutofrange,face_recognition【发布时间】:2020-05-1204:06:12【问题描述】:我同时使用opencv和人脸识别,但是这行代码:biden_encoding=face_recognition.face_encodings(known_... 查看详情

山东大学项目实训四——face_recognition使用opencv和dlib实现基于视频的人脸识别(代码片段)

Face_Recognition使用Opencv和Dlib实现基于视频的人脸识别文件夹介绍1、Resources\\pictures此文件夹下存放人脸保存结果2、Resources\\video此文件夹下存放带标注视频保存结果3、Resources\\faceS此文件夹下存放各个人物的图片,用于人脸库... 查看详情

无法安装 dlib 和 face_recognition 窗口

】无法安装dlib和face_recognition窗口【英文标题】:Unabletoinstalldlibandface_recognitionwindows【发布时间】:2021-07-0613:10:27【问题描述】:我一直在尝试在anaconda中安装dlib和face_recognition,但未能成功。我确实安装了visualstudio和cmake并尝试... 查看详情

无法将 Keras Generator 图像传递给人脸识别

...20-07-1800:38:34【问题描述】:我正在使用Keras生成图片来喂face_recognition包。以下代码我用来读取和准备要传递给生成器的图片image=cv2.imread(imagePath)gray=cv2.cvtColor(imag 查看详情

带有opencv和dlib face_recognition库的人脸识别考勤系统给出不正确的识别

】带有opencv和dlibface_recognition库的人脸识别考勤系统给出不正确的识别【英文标题】:facerecognitionattendancesystemwithopencvanddlibface_recognitionlibrariesgivingincorrectrecognitions【发布时间】:2020-10-2312:02:53【问题描述】:所以我使用opencvdlib... 查看详情

如何使用多线程和 cv2.VideoCapture()?

】如何使用多线程和cv2.VideoCapture()?【英文标题】:Howtousemultithreadingwithandcv2.VideoCapture()?【发布时间】:2021-05-2013:51:47【问题描述】:我想显示两个或多个单独的视频,并使用cv2应用轻微的图像处理。如果我不使用threading/multipro... 查看详情

如何在多个图像上使用 cv2.split 和 cv2.merge?

】如何在多个图像上使用cv2.split和cv2.merge?【英文标题】:Howtousecv2.splitandcv2.mergeonmultipleimages?【发布时间】:2017-09-2919:03:40【问题描述】:我知道cv2函数split()和merge()。在使用此功能拆分列表中的多个图像时,我需要一些帮助。... 查看详情

如何使用 cv2.face 和 cv2 使用 QT 创建窗口而不会出错?

】如何使用cv2.face和cv2使用QT创建窗口而不会出错?【英文标题】:HowcanIusecv2.faceandcv2withcreatingawindowbyusingQT,withoutgettingerrors?【发布时间】:2020-05-3106:01:36【问题描述】:我想使用openCV,但是使用不同的openCV版本会出现不同的错误... 查看详情

Python face_recognition 无法安装

】Pythonface_recognition无法安装【英文标题】:Pythonface_recognitionwon\'tinstall【发布时间】:2021-11-1021:14:29【问题描述】:我正在尝试为face_recognition安装库。我不断收到错误“错误:必须安装CMake才能构建dlib”我已经安装了CMake和dlib... 查看详情

如何在 cv2 和 python 中使用霍夫圆?

】如何在cv2和python中使用霍夫圆?【英文标题】:howtousehoughcirclesincv2withpython?【发布时间】:2012-10-0902:00:51【问题描述】:我有以下代码,我想检测圆圈。img=cv2.imread("act_circle.png")gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)circles=cv2.HoughCircle... 查看详情