QQ837952151 2023-04-10 20:38 采纳率: 75%
浏览 192
已结题

在使用目标识别训练时出现error: (-215:Assertion failed) s >= 0 in function 'setSize'

在使用目标识别训练时。出现了以下问题,训练集为lfw

 File "train_face.py", line 41, in <module>
    recognizer.train(x_train, np.array(y_labels))
cv2.error: OpenCV(4.5.4) /tmp/pip-wheel-4s1eeqwm/opencv-contrib-python_94a16b66d4594a43bcabaeb968fd51a1/opencv/modules/core/src/matrix.cpp:250: error: (-215:Assertion failed) s >= 0 in function 'setSize'

以下是我的代码

import os
import cv2
import numpy as np
import pickle
import face_recognition
import matplotlib.pyplot as plt

current_id = 0
label_ids = {}
x_train = []
y_labels = []
loss_values = []

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
image_dir = os.path.join(BASE_DIR,"dataset")

for root,dirs,files in os.walk(image_dir):
    for file in files:
        path = os.path.join(root, file)
        image = face_recognition.load_image_file(path)
        face_locations = face_recognition.face_locations(image)
        face_encodings = face_recognition.face_encodings(image, face_locations)

        label = os.path.basename(root)
        if not label in label_ids:
            label_ids[label] = current_id
            current_id += 1
            id_ = label_ids[label]
            print(label_ids)

            for face_encoding in face_encodings:
                x_train.append(face_encoding)
                y_labels.append(id_)

#print(x_train)
print(y_labels)
with open ("label.pickle","wb") as f:
    pickle.dump(label_ids, f)

recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(x_train, np.array(y_labels))
recognizer.save("mytrainer.yml")

loss_values = recognizer.getTrainStatus()
iterations = [x['iteration'] for x in loss_values]
losses = [x['loss'] for x in loss_values]

plt.plot(iterations, losses)
plt.xlabel('Iteration')
plt.ylabel('Loss')
plt.show()

  • 写回答

1条回答 默认 最新

  • youcans_ 人工智能领域优质创作者 2023-04-10 22:51
    关注

    (1) 你安装了 opencv-contrib-python 吗?
    (2) 在 Line 40 之前检查一下 xtrain, ylabels 的形状,最好 cv.imshow 一下 xtrain 的每张图片

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月10日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么