Sac*_*tel 6 machine-learning object-detection deep-learning tensorflow
我已经为自定义对象检测训练了一个faster_rcnn_inception_resnet_v2_atrous_coco模型(可在此处获得).
为了预测,我在我的图像上使用了对象检测演示jupyter笔记本文件.还检查了每个步骤消耗的时间,发现它sess.run一直在占用.
但是在GPU上预测(3000 x 2000)像素大小(大约1-2 [MB])的图像需要大约25-40 [秒].
有人能解决这个问题吗?
我已经执行了分析,链接到下载分析文件
链接到完整的分析
系统信息:
培训及预测虚拟机中创建Azure的门户与Standard_NV6(细节在这里它使用),NVIDIA的Tesla M60 GPU
pip3 install --upgrade tensorflow-gpu大图像自然需要更多时间。即使在 400*400 等较低分辨率下,Tensorflow 对象检测也能表现良好。
获取原始图像的副本,将其大小调整为较低的分辨率以执行对象检测。您将获得边界框坐标。现在计算原始高分辨率图像的相应边界框坐标。在原始图像上绘制边界框。
IE
假设您有一张 3000*2000 的图像,复制它并将其大小调整为 300*200。对调整大小的图像执行对象检测,检测到具有边界框(50,100,150,150)的对象,即(ymin,xmin,ymax,xmax)
现在较大的原始图像对应的框坐标为(500,1000,1500,1500)。在其上绘制矩形。
对小图像进行检测,然后在原始图像上绘制边界框。 性能将会得到极大的提高。
注意:TensorFlow 支持标准化坐标。
即,如果您有一个高度为 100 且 ymin = 50 的图像,则标准化 ymin 为 0.5。您只需分别乘以 y 和 x 坐标的高度或宽度,即可将标准化坐标映射到任何尺寸的图像。
我建议使用 OpenCV (cv2) 进行所有图像处理。
| 归档时间: |
|
| 查看次数: |
563 次 |
| 最近记录: |