-1

我尝试使用计算机视觉技术通过人脸识别来制作考勤系统。

Python Version: 3.8.10

代码如下,

import cv2
import numpy as np
import face_recognition
import os

path = 'attendanceImages'
images = []
classNames = []
myList = os.listdir(path)
print(myList)
for  cl in myList:
    curImg = cv2.imread(f"{path} / {cl}")
    images.append(curImg)
    classNames.append(os.path.splitext(cl)[0])
print(classNames)

def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]
        encodeList.append(encode)
    return  encodeList

encodeListKnown = findEncodings(images)
print(len(encodeListKnown))  ##--> It would be printed the length of dataset 

注意: -print(len(encodeListKnown))打印后会显示长度,但对于错误,它会失败

面临的错误如下

Traceback (most recent call last):
  File "/home/imdadul/PycharmProjects/faceVerification/AttendanceViaFace.py", line 25, in <module>
    encodeListKnown = findEncodings(images)
  File "/home/imdadul/PycharmProjects/faceVerification/AttendanceViaFace.py", line 20, in findEncodings
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.5.2) /tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

['sohelRana.jpg', 'apurbo.jpg', 'RamCharan.jpg', 'ananyaPanday.jpg', 'imdadulHaque.jpg']
['sohelRana', 'apurbo', 'RamCharan', 'ananyaPanday', 'imdadulHaque']

Process finished with exit code 1

检查已安装软件包的版本提供了附件,请关注那里。 在此处输入图像描述

4

1 回答 1

1

问题已经解决了!

我在curImg = cv2.imread(f"{path}/{cl}")这一行犯了错误。我应该 /. 就是这样。实际上,它没有找到正确的位置,现在已经解决了!

于 2021-10-08T11:40:14.700 回答