问题标签 [data-augmentation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3229 浏览

python - 在 PyTorch 中显示增强图像的示例

我想展示一些增强训练图像的样本。

我的转换包括这样的标准 ImageNet transforms.Normalize

但是,由于Normalise,图像以奇怪的颜色显示。

这个答案说我需要访问原始图像,这在加载时应用转换时很困难:

在使用标准化图像进行计算时,我将如何以通常的颜色显示一些示例增强图像?

0 投票
0 回答
218 浏览

tensorflow - 用于 keras model.fit 的 steps_per_epoch 与数据增强

我正在使用张量流+keras。使用数据增强时,我不确定 model.fit 中的 steps_per_epoch 参数。我的数据扩充是使用 tfrecord 中的 map 函数完成的,而不是 keras 中的图像生成器。这样,如果我将数据增加 4 倍,我的 steps_per_epoch 也会增加 4 倍吗?

0 投票
1 回答
201 浏览

object-detection - 在 AWS Sagemaker 中使用大尺寸图像(例如 2000 x 2000)作为训练数据时,它们是否会自动缩放到 300 x 300?

我正在开展一个项目,该项目训练 ML 模型以预测 Waldo 在 Where's Wally 中的位置?使用 AWS Sagemaker 的图像,底层对象检测算法为 Single Shot Detection,但我认为使用尺寸为 2000 x 2000 的实际拼图图像作为训练数据是不可能的,SSD 会将图像自动调整为 300 x 300这将使沃尔多变得毫无意义。SSD 会自动调整图像大小,还是会在 2000 x 2000 图像上进行训练?我应该将所有拼图的大小调整为包含 Waldo 的 300 x 300 图像,还是可以包含尺寸为 2000+ x 2000+ 的实际拼图图像和 300 x 300 裁剪图像的混合?

我正在考虑通过在包含 Wally 的位置裁剪这些较大的图像来增强数据,这样我就可以拥有 300 x 300 的图像,其中 Wally 不会在页面上缩小为污迹并且实际上是可见的 - 这是个好主意吗?我认为 SSD 确实在 2000 x 2000 图像上进行训练,但 FPS 会降低很多 - 这是错误的吗?我觉得如果我不使用 2000 x 2000 图像进行训练,在我开始提供大尺寸模型图像(实际拼图图像)的预测阶段,模型将无法准确预测位置 - 是不是这样吗?

0 投票
3 回答
91 浏览

python - How to augment long string containing (0,1,2,3,4,5,6,?) by replacing a '?' with the the largest neighboring number?

I'm trying to augment a lengthy string that can contain multiple number of digits (0,1,2,3,4,5,6,?) Consider a string "000000000004?0??100001??2?0?10000000". I'm trying to replace all the question marks (?) by the neighbouring largest digit. The comparison should be done from both left character and right character to the question mark (?).

Input String: "000000000004?0??100001??2?0?10000000" Output String: "000000000004401110000122220110000000"

I wrote a function that ends up replacing them during the first iteration of the loop itself which results in replacing the ? by the highest number i.e, 4 in this case. Check the code snippet below.

Wrong Output: "000000000004404410000144240410000000"

Input String: "000000000004?0??100001??2?0?10000000"

Expected Output String: "000000000004401110000122220110000000"

Actual Output String: "000000000004404410000144240410000000"

There are multiple strings like this with different combinations of digit and ?. I hope I have explained it well. Please help. Thanks.

0 投票
2 回答
203 浏览

python - 使用 Keras 进行数据增强会产生几乎是白色的图像

我正在尝试使用 keras ImageDataGenerator 进行数据扩充。我正在从包含一列中图像的路径和另一列中的标签的数据框中提取图像。现在,我只是想水平翻转图像。但是当我绘制图像时,图像看起来亮度被推到了最大值。我想知道这里发生了什么......有什么想法吗?

这是一张原始图片

这是增强的图像

0 投票
1 回答
25765 浏览

python - TensorDataset 上的 PyTorch 转换

我正在使用TensorDataset从 numpy 数组创建数据集。

如何将数据增强(转换)应用于TensorDataset

例如,使用ImageFolder,我可以将转换指定为其参数之一torchvision.datasets.ImageFolder(root, transform=...)

根据PyTorch 的一位团队成员的回复,默认情况下不支持。有没有其他方法可以做到这一点?

随意询问是否需要更多代码来解释问题。

0 投票
1 回答
378 浏览

python - Tensorflow 2.0 CNN 训练:图像增强功能将像素值移动到 [0, 1] 范围之外。这是一个问题吗?

我正在研究我的特定数据增强功能,以在TensorFlow 2.0中训练CNN。我使用的图像数据存储在多维 RGB 数组中;它的所有像素值都是 [0, 1] 范围内的浮点数。numpy

在使用函数tensorflow.image.random_brightness文档)时,我发现它的像素值超出了 [0, 1] 范围(高于或低于)。当我尝试使用可视化它们时,matplotlib.pyplot.imshow()我收到以下消息:

使用 RGB 数据将输入数据裁剪到 imshow 的有效范围(浮点数为 [0..1] 或整数为 [0..255])。

我还发现,当我尝试重新规范化该范围内的数据时,图像会恢复到原来的样子(使整个过程变得毫无用处)。

[0, 1] 范围之外的像素值是 CNN 训练的问题吗?如果这代表一个问题,我该怎么做才能使像素值在正确的范围内,而不放弃调整亮度?

0 投票
1 回答
1345 浏览

tensorflow - TensorFlow 对象检测 API 增强

我很好奇 TensorFlow 对象检测 API 中调整大小和扩充的顺序。例如,我正在使用配置文件ssd_mobilenet_v2_oid_v4.config。这使用fixed_shape_resizerssd_random_crop。那么这两个模块之间的交互是什么?

是否ssd_random_crop采取中定义的大小作物fixed_shape_resizer?如果先调整大小,那么调整大小后的作物大小是多少?而且我认为它们都需要具有相同的确切尺寸才能创建适当的批次?

0 投票
1 回答
218 浏览

python - 镜像包含锚定数据的 CNN 训练图像有哪些缺点?

我正在训练各种 CNN(AlexNet、InceptionV3 和 ResNet)。该数据集由游戏的屏幕截图和一个包含 4 个类的数组组成,该数组将给定捕获的输入表示为 [w,a,s,d]。

为了减少我需要收集的数据,我研究了使用出现频率较低的类的镜像捕获。例如,如果我正在镜像左转捕获,我也会更改标签,因此 [0,1,0,0] 将变为 [0,0,0,1]。我不确定镜像是否会起作用,因为原始图像左下角的小地图包含 GPS 路线。

我还没有训练任何模型。

我正在通过opencv镜像图像并调整标签:

镜像训练数据集会对 CNN 造成什么影响?
即它是否会看不到左下角的小地图,因为它只出现在一半的训练示例中?

示例捕获及其镜像副本

0 投票
1 回答
404 浏览

tensorflow - How to properly perform data-augmentation on MRI and prepare them for deep learning?

I'm trying to using deep learning (3D CNN) to perform brain disease classification. Currently, the input size is set to be 96*96*96. This is due to the original scan have a size of 256*256*256. I first removed the background by resizing to 192*192*192 then downsampled by a factor of 2.
However, my dataset only contains 825 subjects. I want to augment the dataset to sufficient size but it troubled me a lot.
First of all, 96^3 result in 884k voxels for input. From my past experience, the number of training samples should be a lot more than the number of input units. So my first question is: Am I right about the training data should be more than input units (in this case, more than 884k).
Secondly, to perform data augmentation, what techniques are recommended? So far I tried rotation around 3 axes with 10-degree interval. But that only augments the data size by a factor of 100.
Thirdly, when training models, I used to append input data to a list and used sklearn's train-test-split function to split them. Another way is to use keras' ImageDataGenerator.flow_from_directory. However, now I'm dealing with 3D data, and no memory could afford loading thousand of 3d arrays altogether. And ImageDataGenerator does not support nifti file format. Is there any way I could prepare all my 3d arrays for my training without exhausting my memory? (I would imagine something like ImageDataGenerator. Of course, this is under my understanding that data generator sends data into the model one batch at a time. Correct me if I'm wrong)