YCG09 / chinese_ocr

CTPN + DenseNet + CTC based end-to-end Chinese OCR implemented using tensorflow and keras
Apache License 2.0
2.74k stars 1.08k forks source link

关于批量检测和单张检测速度的问题 #178

Open xdwjc opened 5 years ago

xdwjc commented 5 years ago

博主您好,谢谢您无私开源出的项目,小弟有几个问题不太明白想请教下您: 1,我在测试的时候发现测试两张一样的图片,第二张比第一张的速度快很多,这是为什么呢。 2,如果我每次测试都只能传一张,那岂不是每张都很慢,有什么提速的法子吗 3,这个检测速度和测试图片的大小有关系吗

xiaoxy97 commented 5 years ago

同问

bing1zhi2 commented 5 years ago

第一次要加载模型,一般都是加载完后就保持在内存中,再有请求进来就快了吧

xiaoxy97 commented 5 years ago

第一次要加载模型,一般都是加载完后就保持在内存中,再有请求进来就快了吧

但是一次检测n张不一样的图片,每一张都很慢,GPU(Tesla M40)上得五秒 只有一次检测一样的图片,第二张及以后才很快

rchglev commented 5 years ago

The same question.

YCG09 commented 5 years ago

首张比较慢,从第二张开始应该就快了,具体时长跟图片大小有关系,我场景的图片尺寸处理一张平均0.8s-1.2s,显卡是titan x

xdwjc commented 5 years ago

感谢博主的回复,请问跟图片大小有关系,是指图片尺寸(h,w) 越小速度越快吗,您这个图片进模型之前会统一resize到一个固定的值吗,期待您的回复

xdwjc commented 5 years ago

@xiaoxy97 老哥我这这边也是跟你一样的疑问,批量检测一样的图片,从第二张后就很快,在GPU上0.几秒,但是批量检测不一样的图片,第二张开始并不快,请问您知道原因了吗

hello2sys commented 5 years ago

@xdwjc 请问下如何批量检测图片,我看demo是只检测一张的,谢谢!!

kUhNCwlVbsWXClUR commented 5 years ago

@xdwjc 请问下如何批量检测图片,我看demo是只检测一张的,谢谢!!

识别的时候写个for循环不就得了,我就是这么干的!

hello2sys commented 5 years ago

@xdwjc 请问下如何批量检测图片,我看demo是只检测一张的,谢谢!!

识别的时候写个for循环不就得了,我就是这么干的!

我理解应该像训练时候按照batch训练,那么预测时候应该也可以按照batch预测。

lqy123000 commented 5 years ago

GPU上预测不同大小的图片确实会变慢,CPU无影响,估计跟GPU内存分配有关。可以把图片宽度padding到同一大小进行预测。

jewelcai commented 5 years ago

第一次要加载模型,一般都是加载完后就保持在内存中,再有请求进来就快了吧

但是一次检测n张不一样的图片,每一张都很慢,GPU(Tesla M40)上得五秒 只有一次检测一样的图片,第二张及以后才很快

这个问题后来你解决了吗?

jjl001 commented 4 years ago

@xiaoxy97 老哥我这这边也是跟你一样的疑问,批量检测一样的图片,从第二张后就很快,在GPU上0.几秒,但是批量检测不一样的图片,第二张开始并不快,请问您知道原因了吗

@xiaoxy97 老哥我也遇到了同样的问题,第2张的速度大约是第1张的2倍,有什么好办法吗?

jewelcai commented 4 years ago

export TF_CUDNN_USE_AUTOTUNE=0 试试这个

xxxxxxxiao commented 4 years ago

https://github.com/tensorflow/tensorflow/issues/5048