为了账号安全,请及时绑定邮箱和手机立即绑定

“NoneType”对象没有“大小”属性 - 如何使用 mtcnn 进行人脸检测?

“NoneType”对象没有“大小”属性 - 如何使用 mtcnn 进行人脸检测?

慕桂英3389331 2022-07-12 16:19:11
我正在尝试使用 pytorch 在神经网络(facenet 网络)中实时构建人脸识别,并使用 MTCNN 进行面部检测import cv2  capture = cv2.VideoCapture(0)  while(True):         ret, frame = capture.read()        frames_tracked = []         print('\rTracking frame: {}'.format(i + 1), end='')        boxes,_ = mtcnn.detect(frame)        frame_draw = frame.copy()        draw = ImageDraw.Draw(frame_draw)        for box in boxes:       draw.rectangle(box.tolist(), outline=(255, 0, 0), width=6)                 frames_tracked.append(frame_draw.resize((640, 360), Image.BILINEAR))         d = display.display(frames_tracked[0], display_id=True)        i = 1        try:              while True:          d.update(frames_tracked[i % len(frames_tracked)])           i += 1        except KeyboardInterrupt:      pass     if cv2.waitKey('q') == 27:          break    capture.release()   cv2.destroyAllWindows()但它会引发这个错误:这是整个追溯http://dpaste.com/0HR58RQAttributeError:“NoneType”对象没有属性“大小”这个问题有解决方案吗?是什么导致了这个错误?谢谢你的建议
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

让我们再看看那个错误。


AttributeError: 'NoneType' object has no attribute 'size'

因此,您(或 mtcnn)在您的代码中某处试图从变量中调用size属性。None您正在使用以下命令frame传递:mtcnn


 boxes,_ = mtcnn.detect(frame)

这正是您看到该错误的地方。因为您将 None 变量传递给mtcnn. 为了防止它,您可以在调用此方法之前阻止它。换句话说 :


ret, frame = capture.read()

if frame == None:

    continue


查看完整回答
反对 回复 2022-07-12
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信