Python Tensorflow目标检测慢视频

Python Tensorflow目标检测慢视频,python,tensorflow,machine-learning,image-processing,keras,Python,Tensorflow,Machine Learning,Image Processing,Keras,我根据我的自定义数据集(与足球相关)训练了一个tensorflow模型 我在图像上测试了该模型,结果与预期一样,但视频性能非常低。我从360p上下载了一段视频(文件大小为9MB),视频性能非常低,约为5-9fps 代码如下 #必要的导入 导入操作系统 导入tensorflow作为tf 从object\u detection.utils导入标签\u映射\u util 从object_detection.utils导入可视化_utils作为viz_utils 从object_detection.bu

我根据我的自定义数据集(与足球相关)训练了一个tensorflow模型

我在图像上测试了该模型,结果与预期一样,但视频性能非常低。我从360p上下载了一段视频(文件大小为9MB),视频性能非常低,约为5-9fps

代码如下

#必要的导入
导入操作系统
导入tensorflow作为tf
从object\u detection.utils导入标签\u映射\u util
从object_detection.utils导入可视化_utils作为viz_utils
从object_detection.builders导入模型_builder
从object_detection.utils导入配置_util
#加载管道配置并构建检测模型
configs=config_util.get_configs_from_pipeline_文件('Tensorflow/workspace/models/my_effi_d2/pipeline.config'))
检测\u model=model\u builder.build(model\u config=configs['model'],is\u training=False)
#恢复检查点
ckpt=tf.compat.v2.train.Checkpoint(模型=检测\模型)
ckpt.restore(os.path.join('Tensorflow/workspace/models/my_effi_d2/','ckpt-4'))。expect\u partial()
@功能
def检测_fn(图像):
图像,形状=检测\模型。预处理(图像)
预测(图像、形状)
检测=检测模型。后处理(预测、预测、形状)
返回检测
category\u index=label\u map\u util.create\u category\u index\u from\u labelmap('Tensorflow/workspace/annotations/label\u map.pbtxt'))
video=cv2.VideoCapture('target.mp4')
大小=(640480)
尽管如此:
ret,frame=video.read()
图像\u np\u展开=np。展开\u dims(帧,轴=0)
#图像\u np=np.数组(帧)
#输入\u tensor=tf。将\u转换为\u tensor(np.展开\u dims(图像\u np,0),数据类型=tf.float32)
检测=检测(输入张量)
num\u detections=int(detections.pop('num\u detections'))
检测={key:value[0,:num\u检测].numpy()
对于键,为detections.items()中的值
检测['num_检测']=num_检测
#检测类应为int。
检测['detection\u classes']=检测['detection\u classes'].astype(np.int64)
标签标识偏移量=1
带有检测的图像\u np\u=图像\u np.copy()
即,在图像数组上可视化方框和标签(
图像\u np\u和\u检测,
检测[“检测盒”],
检测['detection_classes']+标签id_偏移,
检测[“检测分数”],
类别索引,
使用标准化坐标=真,
最大盒数至绘图=2,
最小得分阈值=.30,
不可知论(模式=假)
cv2.imshow('object detection',cv2.resize(图像\u np\u带有\u detections,size))
如果cv2.waitKey(10)&0xFF==ord('q'):
打破
如果ret==False:
打印(“视频不存在”)
打破
video.release()
所有路径都是相对于根文件夹的。 无论如何,在检测视频中的物体时,是否有更高的性能

其他信息:

  • 没有gpu。我的笔记本电脑是2015年的。我已经在Google colab上训练了这个模型
  • Tensorflow 2.4.1和Python 3.6.13(virtualenv)
  • 我正在笔记本电脑上本地运行视频测试。tensorflow的所有版本都与google colab的版本匹配

以“常见问题”列表结束帖子不是一个好主意;最好直接提供信息,而不是以FAQ形式(编辑)。Ok不知道