【发布时间】:2020-05-13 23:16:14
【问题描述】:
我正在尝试使用 pytorch 在神经网络(facenet 网络)中实时构建人脸识别,并使用 MTCNN 进行人脸检测 我试过这个来实时检测人脸(来自网络摄像头)但不起作用 读取帧然后通过 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' 对象没有属性 'size'
这个问题有解决方案吗?是什么导致了这个错误?谢谢你的建议
【问题讨论】:
-
我几乎可以肯定您实际上并没有阅读图像。尝试查看
retret和frame发生的事情,它们可能是空的 -
你能发布回溯吗?
-
你能在每次迭代时打印
frame吗?我想查看此回溯之前的最后一个值。 -
它可以在没有 (boxes,_ = mtcnn.detect(frame) ) 行的情况下工作,用整个回溯 @steviestickman 更新帖子
标签: python neural-network pytorch face-detection face-recognition