如果我的模型花费80毫秒来处理每个帧(12.5帧/秒),但是相机以30帧/秒的速度运行,那么CameraInference如何处理下一个要处理的帧?
是否在处理之前就获取当前帧?还是从帧缓冲区中拉出更早的帧?
代码示例:
with PiCamera() as camera:
camera.sensor_mode = 4
camera.resolution = (1640, 1232)
camera.framerate = 30
camera.start_preview()
with CameraInference(my_model.model()) as inference:
for i, result in enumerate(inference.run()):
if i == args.num_frames:
break
print('frame: {}, dur: {}, result: {}'.format(i, result.duration_ms, result.tensors['y'].data[0]))
camera.stop_preview()
答案 0 :(得分:0)
在当前帧上运行推理时,Vision Bonnet上的推理管道会丢弃帧。您总是会从Python API中获得最新的推断结果。当然,如果inference_fps > camera_fps
,那么就不会掉线。