PaddleX icon indicating copy to clipboard operation
PaddleX copied to clipboard

detector检测一张图片时间太长

Open ihula opened this issue 3 years ago • 15 comments

问题类型:模型部署 问题描述

========================

使用FasterRCNN模型训练后,deploy里的cpp,vs2009编译,detector.exe检测一张图片要3.4秒,图片缩小后花费的时间也差不多,有没有什么方法优化

ihula avatar Mar 08 '21 04:03 ihula

使用的是CPU还是GPU呢,输入图像的分辨率是多少

jiangjiajun avatar Mar 08 '21 09:03 jiangjiajun

使用的CPU,训练图像和测试图像的分辨率都是25921944。将测试图像改800600时间变化也不大。 将训练图像和测试图像都改800*600后,检测一张图片3.0秒左右。

ihula avatar Mar 09 '21 03:03 ihula

参考下这里的方法试试 https://github.com/PaddlePaddle/PaddleX/issues/613#issuecomment-793263413

jiangjiajun avatar Mar 09 '21 09:03 jiangjiajun

use_mkl和mkl_thread_num都已经设置,没什么效果,系统上要安装mkl吗,应该不用吗,fluid_inference_install_dir里的paddle_fluid.dll编译时应该已经包含了mkl吧。

ihula avatar Mar 10 '21 01:03 ihula

你的CPU型号是什么呢

jiangjiajun avatar Mar 10 '21 02:03 jiangjiajun

八核Intel Core i9

ihula avatar Mar 10 '21 02:03 ihula

这里测试得到3秒的速度,是只测了一张图片么,建议设定一个循环来测试下,因为刚启动时,受限于环境初始化,在最开始几轮的预测中,速度可能会比较慢

jiangjiajun avatar Mar 10 '21 07:03 jiangjiajun

一张图片循环测试了二十次,第一次时间会长点,但后面都要3秒多,我只训练了几十张图片,会与训练样本量有关吗? 另外,我把之前用EasyDL上的数据集用PaddleX重新训练并测试,之前用EasyDL训练,用EasyEdge测试一张图片约15毫秒,用PaddleX约1.4秒,但PaddleX的预测结果好很多。但不知EasyDL用的什么模型。 另外,检测速度与图片的大小是不是有关系,与样本的复杂程度是不是有关系,比如检一个圆和检一个显微镜下拍摄的细胞?

ihula avatar Mar 11 '21 01:03 ihula

与图片大小没关系,你的模型结构是FasterRCNN, 骨干网络是什么呢,我们自己来测一下

jiangjiajun avatar Mar 11 '21 01:03 jiangjiajun

骨干网络是ResNet50. PaddleX的训练参数

ihula avatar Mar 12 '21 01:03 ihula

@ihula 我在我们这边的windows电脑上实测了下,由于模型比较大,确实需要比较久的推理时间。如果你对推理时间要求比较高,可以考虑下小一点的yolov3模型;也可以考虑使用GPU进行推理。 测试环境:Intel Core i9-9900 CPU 8物理核16个虚拟核;vs2019;开启mkl加速 模型:官网提供的FasterRCNN 测试图片: 模型中附带的 640 * 480的图片 在预热后,100次平均推理时间为: 1.4s

heliqi avatar Mar 15 '21 13:03 heliqi

谢谢!

ihula avatar Mar 16 '21 04:03 ihula

@ihula 我在我们这边的windows电脑上实测了下,由于模型比较大,确实需要比较久的推理时间。 GPU进行推理。 测试环境:英特尔Core i9-9900 CPU 8物理核16个虚拟核; vs2019;开启MKL加速 模型:官网提供的FasterRCNN 测试图片:模型中附带的640 * 480图片的 在预热后,100次平均推理时间为:1.4秒

你好,我尝试过编译后开启GPU加载图片,但是没有输出预测结果,我修改了预测保存结果,保留roi区,显示不工作

xialei2821212670 avatar Mar 23 '21 14:03 xialei2821212670

@ihula 我在我们这边的windows电脑上实测了下,由于模型比较大,确实需要比较久的推理时间。 GPU进行推理。 测试环境:英特尔Core i9-9900 CPU 8物理核16个虚拟核; vs2019;开启MKL加速 模型:官网提供的FasterRCNN 测试图片:模型中附带的640 * 480图片的 在预热后,100次平均推理时间为:1.4秒

你好,我尝试过编译后开启GPU加载图片,但是没有输出预测结果,我修改了预测保存结果,保留roi区,显示不工作

@xialei2821212670 显示不工作是? 你可以试着在代码中加入打印,看运行到哪一步导致的报错。比如从下面这一行看是图片读取报错、还是model.predict推理报错、还是其他的地方错误。希望你能提供更详细的信息

打印的地方

heliqi avatar Mar 24 '21 11:03 heliqi

问题类型:模型部署 问题描述

========================

使用FasterRCNN模型训练后,deploy里的cpp,vs2009编译,detector.exe检测一张图片要3.4秒,图片缩小后花费的时间也差不多,有没有什么方法优化

批量测量下,发现推理第一张时间比较长,后面时间会变短。

abanger avatar Jan 16 '22 01:01 abanger