在大图像中裁剪感兴趣的小对象以使用 fast-RCNN 进行训练还是直接使用大图像进行训练是个好主意?

问题描述

我对使用 tensorflow/keras 和 fast-rcnn 的对象检测/分割感兴趣。在这里,我试图了解如何为 fast-rcnn 进行图像训练(2GB 到 5GB 图像大小)。用于训练的图像总数约为 10 张,用于验证的图像总数为 7 张。所有图片都有 JSON 注释文件

我的设置: GPU:(英伟达 6GB) 操作系统:Ubuntu 20.04LTS Cuda 工具包/库/驱动程序:已安装 tensorflow-gpu:已安装

单张图片信息: 原始尺寸:32220 x 26780 像素 原始颜色:1670 万(24 BitsPerPixel) 磁盘大小:2468.64 MB(2,588,556,288 字节) 类型:TIFF

图像中感兴趣的对象: 图像中实际对象(需要检测/分割的)的大小非常小。因此,我无法调整原始图像的大小,因为细节可能会丢失。 然而,我确实从原始图像中裁剪了一个对象。现在裁剪的图像信息是, 尺寸:575x515 像素 颜色:1670 万(每像素 24 位) 磁盘大小:790KB 类型:PNG

建议 1: 直接使用原始图像(以 GB 为单位的大小),无需任何修改或裁剪。由于所有图像都不相同,我可能需要进行填充以使它们的大小相同。 在这种情况下,我有一些疑问:

  1. fast-rcnn 会在训练前压缩图像吗?
  2. 在这种情况下我需要的最佳图像尺寸是多少 为 fast-rcnn 配置?
  3. 如何计算训练单人所需的训练时间 图像在这种情况下(使用 GPU)?
  4. fast-rcnn 是否有任何与内存 (gpu) 相关的设置?或者我应该 在 cuda 中寻找这个?
  5. 哪些开源工具将支持填充等操作 巨大的图像文件

提案 2: 将所有 10 个原始图像中的对象裁剪成较小尺寸的图像。使用注释工具对它们进行单独注释。通过填充使所有裁剪的图像设置相等。 在这种情况下,我有一些疑问:

  1. 如果我在较小的图像上训练我的模型,那么在测试期间, fast-rcnn 需要类似的小型数据集?或者它能够 在测试/验证阶段拍摄更大的原始图像?在 简而言之,训练图像数据集的大小是否可以不同 验证数据集?目的是减少训练时间...

如果查询过多,请见谅。如果之前已经回答过这些问题,请分享任何链接

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...