darknet-ocr
darknet-ocr copied to clipboard
CPU的预测速度速度比GPU要快?
CPU是24核48线程,显卡是 GTX 1080 Ti 这个在predict部分打的日志 CPU: dnn.main - INFO - detection_time:3.1608s dnn.main - INFO - ocr_time:2.0797s GPU dnn.main - INFO - detection_time:3.3761s dnn.main - INFO - ocr_time:5.1645s
测试图预测出了52个boxes。 GPU是哪个部分还需要做优化的吗?
不知道具体楼主是怎么测的。就提一下,测GPU的话,第一次predict涉及到初始化,一般不纳入计算。
不知道具体楼主是怎么测的。就提一下,测GPU的话,第一次predict涉及到初始化,一般不纳入计算。
知道。用别的图片进行过初始化了,您测试过吗?相同的图片在GPU和CPU下各是多少时间?
不知道具体楼主是怎么测的。就提一下,测GPU的话,第一次predict涉及到初始化,一般不纳入计算。
知道。用别的图片进行过初始化了,您测试过吗?相同的图片在GPU和CPU下各是多少时间?
我这边扫描大的扫描件 (1080p)可以控制在0.5秒一张(对比8核16线程的CPU,大概在3秒),还有大型表格件,gpu 1.5秒 对比 同上的cpu是7.5秒。我用的RTX Titan, 推算过去,就inference而言,1080Ti应该不会慢这个数值太多。
上述时间是 全程 (CTPN + CNN)两个模型总共的时间。
不知道具体楼主是怎么测的。就提一下,测GPU的话,第一次predict涉及到初始化,一般不纳入计算。
知道。用别的图片进行过初始化了,您测试过吗?相同的图片在GPU和CPU下各是多少时间?
我这边扫描大的扫描件 (1080p)可以控制在0.5秒一张(对比8核16线程的CPU,大概在3秒),还有大型表格件,gpu 1.5秒 对比 同上的cpu是7.5秒。我用的RTX Titan, 推算过去,就inference而言,1080Ti应该不会慢这个数值太多。
上述时间是 全程 (CTPN + CNN)两个模型总共的时间。
感谢回复。 我换上了RTX titan做测试。 test文件夹中的“img.jpeg”总耗时2.886s,其中CTPN 2.1s,CNN 0.7s config中有什么需要调整的参数吗? 我只修改过ocrType和把GPU改成了True ocrType = 'chinese-5k' ocrPath = 'models/ocr/{}/ocr.weights'.format(ocrType) textPath = 'models/text/text.weights' darkRoot ='darknet/libdarknet.so' ##darknet TEXT_LINE_SCORE=0.7 ##text line prob scale = 900 ##可动态修改 no care text.cfg height,width maxScale = 1800 GPU = True #False ## gpu for darknet or cpu for opencv.dnn anchors = '16,11, 16,16, 16,23, 16,33, 16,48, 16,68, 16,97, 16,139, 16,198, 16,283'
我有两个容器 一个GPU版本的,执行了darknet的编译,没有做CPU优化 另一个CPU版本的,用的就是作者云盘提供的镜像
你的GPU测试时间肯定有问题,GPU肯定会比CPU快。请确保编译对GPU的支持。编译darknet用Makefile-GPU这个文件. ##测试配置:
机器ubuntu14
cpu 8核i7
GPU 1080ti cuda10.1 cudnn7.6
config.py配置 scale=900; maxScale=1800; GPU=False CPU场景下:img.jpeg这张图片耗时大概,: 1.68s
GPU场景下: img.jpeg这张图片耗时大概,:0.96秒 scale=900; maxScale=1800; GPU=False
GPU2080TI:时间是0.83秒
可以优化加速的地方
(1) GPU 文字检测将img转换为C图像加载array_to_image函数耗时大概在0.2秒,在一个版本会用C内置的函数加载图片,会更快些。
(2)NMS环节,nms环节耗时0.2秒(nms环节可以先进行过滤,再nms,可提速0.18秒左右),修改helper/detectors.py line 32如下:
ind = scores>TEXT_PROPOSALS_MIN_SCORE text_proposals = text_proposals[ind] scores=scores[ind] text_proposals, scores = nms(text_proposals,scores,TEXT_PROPOSALS_MIN_SCORE,TEXT_PROPOSALS_NMS_THRESH)
(3)如果图像文字较少,可以将scale改为600,CPU能够到1秒内,GPU不到0.5秒。
我用 Ubuntu 18.04 测试,GPU 的速度也同样没有 CPU 快...
编译了OpenCV,没有使用优化。配置文件中开启了 GPU 为 True
到 darknet 文件夹,复制 GPU 的 Makefile 并编译。
不知道有人解决没...
@wenlihaoyu 大佬考虑补一份文档吗,比如编译所需要的依赖包,cuda 版本要求什么的~ [比心]
我用 2080Ti 测试示例的 test/img.jpeg GPU 需要 1.73s,CPU 需要 1.76s cuda10.0 cudnn7.6
不知道是什么原因,Makefile 用的 GPU 的,配置文件也改了, opencv 用的是 CPU 优化后的版本。
请问我还需要提供哪些信息来定位问题呢~
我用 Ubuntu 18.04 测试,GPU 的速度也同样没有 CPU 快...
编译了OpenCV,没有使用优化。配置文件中开启了 GPU 为 True
到 darknet 文件夹,复制 GPU 的 Makefile 并编译。
不知道有人解决没...
@wenlihaoyu 大佬考虑补一份文档吗,比如编译所需要的依赖包,cuda 版本要求什么的~ [比心]
同样问题还有 #84
我现在也还没解决这个问题 我等会贴一份我制作GPU的Dockerfile
请问一下各位大佬,你们解决CPU预测时间比GPU短的问题了吗