aws-sdk - 使用 SageMaker 对象检测进行预测的图像大小?
问题描述
我正在使用 AWS SageMaker“内置”对象检测算法 (SSD),我们已经在一系列带注释的 512x512 图像 (image_shape=512) 上对其进行了训练。我们已经部署了一个端点,当使用它进行预测时,我们得到了好坏参半的结果。
如果我们用于预测的图像大小在 512x512 左右,我们将获得很高的准确性和良好的结果。如果图像明显更大(例如 8000x10000),我们会得到非常不准确的结果,或者没有结果。如果我手动将这些大图像的大小调整为 512x512 像素,我们正在寻找的特征就不再是肉眼可辨别的了。这表明,如果我的端点正在调整图像大小,那么这将解释模型为何陷入困境。
注意:虽然像素大小很大,但我的图像基本上是白色背景上的线条图。它们有很少的颜色和大块纯白色,因此它们的压缩效果很好。我遇到了 6Mb 的请求大小限制。
所以,我的问题是:
- 在 image_shape=512 训练模型是否意味着我的预测图像也应该是相同的大小?
- 是否有一种普遍接受的方法来对非常大的图像进行对象检测?我可以设想如何将图像切成更小的图块,然后将每个图块提供给我的模型,但是如果有一些“开箱即用”的东西可以为我做这件事,那会节省一些精力。
解决方案
你的理解是正确的。端点根据参数调整图像大小image_shape
。要回答您的问题:
- 只要调整后的图像中对象的比例(即像素的扩展)在训练数据和预测数据之间相似,训练的模型就应该工作。
- 裁剪是一种选择。另一种方法是按照 David 的建议为大图像和小图像训练单独的模型。
推荐阅读
- javascript - 如何在叶地图中显示给定半径内的标记
- sql - 不同路由器但相同调制解调器上的 SQL Server 的连接字符串
- java - Android工作室创建新意图
- android - 如何在 Android 中的 TextInputLayout 上显示边框
- ios - 协议“App”只能用作通用约束,因为它具有 Self 或关联的类型要求
- ios - Swift:将 uid = uid 的 Firestore 子集合中的数据存储到对象中
- oracle - 如何使用 sysdba 连接到本地 oracle 数据库 19c
- html - 单击另一个按钮时如何关闭 HTML 中的按钮,以便折叠的文本不会重叠/按钮的数据
- c++ - “collect2.exe:错误:ld 返回 1 退出状态”是我在尝试使用 c lang 时得到的
- httpclient - 带有 Angular 元素的 SPFx Webpart 在 SharePoint 页面中不起作用