OpenCV人脸识别智能考勤机

问题描述 投票:1回答:1
import cv2
import numpy as np
import os
from PIL import Image

Face_recognizer = cv2.face.LBPHFaceRecognizer_create()
faces_path = 'E:/Django/smartAttendance/facedataset'
if not os.path.exists('./face_recognizer'):
    os.makedirs('./face_recognizer')
def fetchFacesID (faces_path):
    photo_paths = [os.path.join(faces_path,f) for f in os.listdir(faces_path)]
    faces = []
    Student_ID = []
    for image in photo_paths:
        face_img = Image.open(image) .convert('L')
        face_np = np.asarray(face_img, 'uint8')
        ID = int(os.path.split(image)[-1].split('.')[1])
        faces.append(face_np)
        Student_ID.append(ID)
        cv2.imshow("Training images", face_np)
        cv2.waitKey(10)
    return np.asarray(Student_ID), faces

Student_ID, faces = fetchFacesID(faces_path)
Face_recognizer.train(Student_ID, faces)
Face_recognizer.write('face_recognizer/trainedDataset.yml')
cv2.destroyAllWindows()

我正在尝试训练我的数据集,并希望在识别出面部后显示特定学生的姓名,但是在训练过程中出现以下错误。谁能帮我吗?

这是错误:

Traceback (most recent call last):
  File "E:/Django/smartAttendance/train_dataset.py", line 24, in <module>
    Student_ID, faces = fetchFacesID(faces_path)
  File "E:/Django/smartAttendance/train_dataset.py", line 17, in fetchFacesID
    ID = int(os.path.split(image)[-1].split('.')[1])
ValueError: invalid literal for int() with base 10: 'None'
python database int yaml
1个回答
0
投票

打印os.path.split(image)[-1].split('.')[1]。在for循环的某个时刻,此表达式的值被评估为None,而python无法将None转换为int。

© www.soinside.com 2019 - 2024. All rights reserved.