我正在尝试使用 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
添加回答
举报
0/150
提交
取消