首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'NoneType‘对象没有属性'size’--如何使用mtcnn进行人脸检测?

'NoneType‘对象没有属性'size’--如何使用mtcnn进行人脸检测?
EN

Stack Overflow用户
提问于 2020-01-28 13:59:56
回答 1查看 2.1K关注 0票数 0

我试图在神经网络(Facenet)中建立实时人脸识别(Facenet),使用py手电筒进行人脸识别,用MTCNN进行人脸检测--我尝试过实时检测人脸(从网络摄像头),但不工作读取帧,然后通过mtcnn检测器进行检测。

代码语言:javascript
运行
复制
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‘对象没有属性'size’

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-28 14:16:32

让我们再看看这个错误。

代码语言:javascript
运行
复制
AttributeError: 'NoneType' object has no attribute 'size'

因此,在代码中的某个地方,您(或mtcnn)试图从一个size变量调用None属性。使用以下命令将frame传递给mtcnn

代码语言:javascript
运行
复制
 boxes,_ = mtcnn.detect(frame)

这正是你看到错误的地方。因为您要向mtcnn传递一个None变量。为了防止这种情况,可以在调用此方法之前阻止它。换言之:

代码语言:javascript
运行
复制
ret, frame = capture.read()
if frame == None:
    continue
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59950464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档