Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用DeepFace.detectFace()实际检测图像中的人脸?_Python_Image Processing_Cv2 - Fatal编程技术网

Python 如何使用DeepFace.detectFace()实际检测图像中的人脸?

Python 如何使用DeepFace.detectFace()实际检测图像中的人脸?,python,image-processing,cv2,Python,Image Processing,Cv2,我正在尝试识别和计算一个文件夹中的每个图片中的人脸数量,我正在使用Deepface来完成这项工作。我在web上只找到了一个对函数DeepFace.detectFace()的引用,该函数应该可以识别面,但我在正确实现框架时遇到了一些问题,除了这个函数之外,我没有找到任何其他对该函数的引用: 输入文件仅为“jpg”和“jpeg”文件 我的代码如下: from deepface import DeepFace import os import os.path import numpy as np B

我正在尝试识别和计算一个文件夹中的每个图片中的人脸数量,我正在使用Deepface来完成这项工作。我在web上只找到了一个对函数
DeepFace.detectFace()
的引用,该函数应该可以识别面,但我在正确实现框架时遇到了一些问题,除了这个函数之外,我没有找到任何其他对该函数的引用:

输入文件仅为“jpg”和“jpeg”文件

我的代码如下:

from deepface import DeepFace
import os
import os.path
import numpy as np

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
imgs = []
path = os.path.join(BASE_DIR, 'images')
valid_images = [".jpg", ".gif", ".png", ".tga", ".jpeg"]
# image = Image.open(os.path.join(path, file))

for file in os.listdir(path):
    print(file)
    ext = os.path.splitext(file)[1]
    if ext.lower() not in valid_images:
        continue
    print(ext)
    image_face = DeepFace.detectFace(file)
    print(image_face)
我得到以下错误:

2020-08-17 22:33:34.148103:W tensorflow/stream_executor/platform/default/dso_loader.cc:59]无法加载动态库'libcudart.so.10.1';dlerror:libcudart.so.10.1:无法打开共享对象文件:没有此类文件或目录
2020-08-17 22:33:34.148135:I tensorflow/stream_executor/cuda/cudart_stub.cc:29]如果您的机器上没有设置GPU,请忽略上面的cudart dler错误。
/home/user/.local/share/virtualenvs/image\u cleaning-iUI7F59N/lib/python3.7/site packages/pandas/compat/\uuuuu init\uuuu.py:120:UserWarning:无法导入lzma模块。您安装的Python不完整。尝试使用lzma压缩将导致运行时错误。
警告。警告(msg)
150_save_2020-08-17-21:44:28_9245.png
.png
回溯(最近一次呼叫最后一次):
文件“face_detection.py”,第18行,在
image\u face=DeepFace.detectFace(文件)
文件“/home/user/.local/share/virtualenvs/image\u cleaning-iUI7F59N/lib/python3.7/site packages/deepface/deepface.py”,第513行,位于detectFace中
img=functions.detectFace(img_路径)[0]#detectFace返回(1224224,3)
文件“/home/user/.local/share/virtualenvs/image\u cleaning-iUI7F59N/lib/python3.7/site packages/deepface/commons/functions.py”,第200行,位于detectFace中
提升值错误(“确认”,img,“存在”)
ValueError:(“确认”“150_save_2020-08-17-21:44:28_9245.png”“存在”)

您正在输入一个文件名。你应该给出图像数组

import cv2

img = cv2.imread(os.path.join(path, file))
image_face = DeepFace.detectFace(img)
输出:


将精确的图像路径传递给detectFace函数,而不是通过opencv读取

#!pip install deepface
from deepface import DeepFace
img = DeepFace.detectFace("img1.jpg")

伟大的Image\u face为我提供了图像矩阵。你知道如何计算每张图片中有多少张脸吗?你可以使用
cv2.CascadeClassifier('haarcascade\u frontalface\u default.xml')。检测多尺度(img)
此代码的输出将是一个numpy数组(x,4)。数字x是当前图像中的面数。