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

我正在尝试使用 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/0HR58RQ


AttributeError:“NoneType”对象没有属性“大小”


这个问题有解决方案吗?是什么导致了这个错误?谢谢你的建议


慕桂英3389331
浏览 168回答 1
1回答

慕娘9325324

让我们再看看那个错误。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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python