Python 人脸检测在终端中不工作
Python face detection not working in terminal
我正在尝试使用 opencv 进行人脸检测 python 程序,但是当我 运行 以下 shell 命令时,我收到以下错误:
当我输入:python main2.py abba.png haarcascade_frontalface_default.xml
我正在使用 opencv 并且我使用了以下文档Realpython face Recognition:
(venv) C:\Users\User\PycharmProjects\main_1>python face_detect.py abba.png haarcascade_frontalface_default.xml
C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\User\PycharmProjects\main_1\face_detect.py': [Errno 2] No such file or directory
(venv) C:\Users\User\PycharmProjects\main_1>python main2.py abba.png haarcascade_frontalface_default.xml
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\main_1\main2.py", line 13, in <module>
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src
.empty() in function 'cv::cvtColor'
这是我使用的代码:
import sys
import cv2
# Get user supplied values
imagePath = sys.argv[1]
cascPath = sys.argv[2]
# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)
# Read the image
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Detect faces in the image
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.cv.CV_HAAR_SCALE_IMAGE
)
print("Found {0} faces!".format(len(faces)))
# Draw a rectangle around the faces
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("Faces found", image)
cv2.waitKey(0)
此错误表示未正确找到图像文件:
C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\User\PycharmProjects\main_1\face_detect.py': [Errno 2] No such file or directory
因此它无法使用 opencv 转换不是有效文件(图像)的颜色。
File "C:\Users\User\PycharmProjects\main_1\main2.py", line 13, in <module>
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src
.empty() in function 'cv::cvtColor'
因此,请检查您的文件夹是否包含您要使用的文件,在您的情况下:abba.png。
使用命令dir
列出目录中的所有目录和文件using windows cmd; ls
是一个 unix 命令。
您可以在 deepface 中应用人脸检测。它包裹了几个面部检测器。在这里,mtcnn 是最健壮但最慢的。 ssd 是最快的。该框架将在后台下载所需的依赖项。
#!pip install deepface
from deepface import DeepFace
detectors = ['opencv', 'ssd', 'mtcnn', 'dlib']
img = DeepFace.detectFace("img.jpg", detector_backend = detectors[0])
我正在尝试使用 opencv 进行人脸检测 python 程序,但是当我 运行 以下 shell 命令时,我收到以下错误:
当我输入:python main2.py abba.png haarcascade_frontalface_default.xml
我正在使用 opencv 并且我使用了以下文档Realpython face Recognition:
(venv) C:\Users\User\PycharmProjects\main_1>python face_detect.py abba.png haarcascade_frontalface_default.xml
C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\User\PycharmProjects\main_1\face_detect.py': [Errno 2] No such file or directory
(venv) C:\Users\User\PycharmProjects\main_1>python main2.py abba.png haarcascade_frontalface_default.xml
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\main_1\main2.py", line 13, in <module>
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src
.empty() in function 'cv::cvtColor'
这是我使用的代码:
import sys
import cv2
# Get user supplied values
imagePath = sys.argv[1]
cascPath = sys.argv[2]
# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)
# Read the image
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Detect faces in the image
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.cv.CV_HAAR_SCALE_IMAGE
)
print("Found {0} faces!".format(len(faces)))
# Draw a rectangle around the faces
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("Faces found", image)
cv2.waitKey(0)
此错误表示未正确找到图像文件:
C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\User\PycharmProjects\main_1\face_detect.py': [Errno 2] No such file or directory
因此它无法使用 opencv 转换不是有效文件(图像)的颜色。
File "C:\Users\User\PycharmProjects\main_1\main2.py", line 13, in <module>
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src
.empty() in function 'cv::cvtColor'
因此,请检查您的文件夹是否包含您要使用的文件,在您的情况下:abba.png。
使用命令dir
列出目录中的所有目录和文件using windows cmd; ls
是一个 unix 命令。
您可以在 deepface 中应用人脸检测。它包裹了几个面部检测器。在这里,mtcnn 是最健壮但最慢的。 ssd 是最快的。该框架将在后台下载所需的依赖项。
#!pip install deepface
from deepface import DeepFace
detectors = ['opencv', 'ssd', 'mtcnn', 'dlib']
img = DeepFace.detectFace("img.jpg", detector_backend = detectors[0])