找不到人脸时如何处理 deepFace.analyze() 中的错误?

Posted

技术标签:

【中文标题】找不到人脸时如何处理 deepFace.analyze() 中的错误?【英文标题】:how to handle error in deepFace.analyze() when no face is found? 【发布时间】:2021-07-13 03:33:22 【问题描述】:
img=cv2.imread(face.jpg)
predictions= DeepFace.analyze(img)

错误:无法检测到人脸。请确认图片是人脸照片或考虑将enforce_detection参数设置为False。

将 enforce_detection 设置为 false 会导致即使图像中没有人脸也能读取情绪

我们如何处理这个错误,让它告诉我们没有人脸?

【问题讨论】:

【参考方案1】:

解决此问题的最佳方法是读取错误并显示:“考虑将 enforce_detection 参数设置为 False。”

所以你可以通过不强制来简单地解决这个问题 人脸检测。

return DeepFace.verify(img1, img2 , enforce_detection=False)['verified']

我的代码有错误,你的代码可能是

DeepFace.analyze(img1 , enforce_detection=False)

【讨论】:

【参考方案2】:
try:
  img=cv2.imread(face.jpg)
  predictions= DeepFace.analyze(img)
except:
  print("No face detected")

【讨论】:

这段代码没有运行 deepFace.analyze(img) 并没有检测到所有图像的人脸,即使该图像包含人脸 唯一与你的代码不同的是捕获错误。所以显然 ML 模型无法识别人脸。【参考方案3】:

在这里试试这个脚本!祝你好运!

from deepface import DeepFace
import os
file = open("path to file you want to save your results in", 'w')

# giving directory for your pictures
dirname = "the path of the directory"
  
for files in os.listdir(dirname):
    try:
        obj = DeepFace.analyze(img_path = ("the path of the directory" + files), actions = ['age', 'gender', 'race', 'emotion'])
        file.write(files)
        file.write(str(obj) + "\n")
    except Exception: 
        file.write(files)
        file.write("face_was not detected" + "\n")
file.close()

【讨论】:

以上是关于找不到人脸时如何处理 deepFace.analyze() 中的错误?的主要内容,如果未能解决你的问题,请参考以下文章

使用打字稿时如何处理快速控制器方法参数?

将maxInstances用于webdriverio时如何处理登录用户

使用 ActiveMerchant 时如何处理超时?

在片段之间切换时如何处理相机?

应用关闭时如何处理 UNNotificationAction?

执行 Flux.map() 时如何处理错误