问题标签 [image-preprocessing]

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 投票
1 回答
455 浏览

python - 如何加速处理图像中的大量补丁?

我编写了一个函数来处理图像,在其中我提取了许多补丁,然后使用相同的函数(func)处理它们以生成新图像。但是,这非常慢,因为有两个循环,func,补丁的数量,补丁的大小。我不知道如何加速这段代码。

功能如下。

func 可以非常灵活且耗时。我以一个为例。下面的函数要计算补丁的中心点除以补丁的中位数。但是,我不希望那些值为 255 的像素计算中位数(255 是无效像素的默认值)。所以我在 numpy 中使用掩码数组。屏蔽数组使代码变慢了好几次,我不知道如何优化它。

我尝试过或得到的想法:

  1. 我在循环之前使用了一些 numpy 函数来提取补丁,期望这可以比patch = img[i:i+f_height,j:j+f_width]. 我找到 了从python中有效地从图像中提取特定大小的补丁中提取补丁的函数 起初我尝试了skimage.util.shape中的view_as_windows。代码已更改,如下所示。这比 code1 需要更多的时间。我还尝试了 sklearn.feature_extraction.image.extract_patches_2d 并发现这比 code3 快,但仍然比 code1 慢。(谁能告诉我为什么会这样?)
  1. 这个操作有点像卷积或滤波器,除了func。我想知道那些lib如何处理这个问题,你们能给我一些线索吗?

  2. 在这种情况下我们可以避免两个循环吗?也许这可以加速代码。

  3. 我有显卡。我可以更改代码以在 gpus 上运行它并使其并行处理补丁以使其更快吗?

  4. 将代码更改为 C。这是我想做的最后一件事,因为这可能有点乱。

大家能给我一些想法或建议吗?

0 投票
1 回答
2909 浏览

python - 图像预处理和数据增强应该如何用于语义分割?

我有一个不平衡的小数据集,其中包含 4116 个 224x224x3 (RGB) 航拍图像。由于数据集不够大,我很可能会遇到过拟合问题。图像预处理和数据增强有助于解决这个问题,如下所述。

“过度拟合是由于要学习的样本太少,导致您无法训练可以泛化到新数据的模型。给定无限数据,您的模型将暴露于手头数据分布的每个可能方面:您永远不会过拟合。数据增强采用从现有训练样本中生成更多训练数据的方法,通过大量随机变换来增强样本,从而产生看起来可信的图像。”

Deep Learning with Python by François Chollet,第 138-139 页,5.2.5 使用数据增强

我已阅读Medium - Image Data Preprocessing for Neural Networks并查看了斯坦福的CS230 - 数据预处理CS231 - 数据预处理课程。它在SO question中再次突出显示,我知道没有“一刀切”的解决方案。这就是迫使我问这个问题的原因:

“因为我们想要实现高空间分辨率,所以没有使用翻译增强。”

参考:Researchgate - 使用深度卷积神经网络对城市遥感图像中的小物体进行语义分割和不确定性建模



我知道我将使用Keras - ImageDataGenerator 类,但不知道在小对象任务的语义分割中使用哪些技术和哪些参数。有人可以启发我吗?提前致谢。:)

0 投票
0 回答
1811 浏览

python - 如何使用python制作矢量图形图像

我正在尝试制作一个将图像转换为矢量图形图像的项目,我该怎么做?

0 投票
1 回答
198 浏览

python - 对输入数据进行白化时模型未训练和负损失

我正在做分割,我的数据集有点小(1840 张图像),所以我想使用数据增强。我正在使用 keras 文档中提供的生成器,它产生一个包含一批图像和相应掩码的元组,这些掩码以相同的方式增强。

然后我用这个生成器训练我的模型:

但是通过使用这个我得到了负损失并且模型没有训练:

我还想补充一点,如果我不使用 featurewise_center 和 featurewise_std_normalization,模型正在训练。但是我正在使用一个带有批量标准化的模型,如果输入被标准化,它的性能会更好,所以这就是我真的想使用特征参数的原因。

我希望我能很好地解释我的问题,并且你们中的一些人可能会帮助我,因为我真的不明白。

编辑:我的模型是带有自定义 Conv2D 和 Conv2DTranspose 块的 U-Net:

我创建我的模型并编译它:

0 投票
1 回答
46 浏览

deep-learning - 深度学习中哪种图像预处理更好

下面介绍三种从uint8转换为float32的预处理方法。建议在 conv2d->batch norm->ReLU 结构中使用哪一个(例如鲁棒性和避免死亡 ReLU 问题),或者有什么建议?

  1. cs231n中所述,使用在训练集上计算的均值和标准差的零中心和归一化图像。我认为当训练集很大时,这种方法会花费很多。

  2. 就像tensorflow 模型中的代码一样,

    image /= 255 image -= 0.5 image *= 2.0

  3. 只需将图像除以 255

0 投票
3 回答
6738 浏览

python - 使用opencv python从二进制图像中删除小白点

我有一个二进制图像,我想使用 opencv python 从图像中删除小白点。您可以在此处参考我的问题在此处输入链接描述

我的原始图像是

在此处输入图像描述

我希望输出图像为:

在此处输入图像描述

0 投票
1 回答
243 浏览

python - 使用 keras 中的图像数据生成器进行图像数据增强

我目前正在从事计算机视觉项目,我想使用图像数据生成器根据相应目录中的类加载我的图像。

我想通过feature_std_normalization

我在创建数据生成器对象时声明了 feature_std_normalization=True 但在训练时它给出了错误:

local/lib/python3.6/dist-packages/keras_preprocessing/image/image_data_generator.py:716:UserWarning:此 ImageDataGenerator 指定featurewise_center,但它不适合任何训练数据。首先调用.fit(numpy_data). warnings.warn('此 ImageDataGenerator 指定 '

dategen.fit ()当图像来自generator.flow_from_directory()原样datagen.fit()使用 X_train但我没有它时如何使用

0 投票
1 回答
3517 浏览

scikit-image - AttributeError: 'str' object has no attribute 'shape' - 使用 scikit-image 调整图像大小时

我正在尝试遍历目录并使用 scikit-image 调整每个图像的大小,但我不断收到以下错误:

我的代码:

0 投票
1 回答
6549 浏览

python - numpy.core._exceptions.UFuncTypeError: ufunc 'add' 不包含带有签名匹配的循环

我正在遍历一个目录以调整图像大小,然后将新调整的图像保存在另一个现有目录中。我不断收到以下错误:

编码:

0 投票
1 回答
261 浏览

python - 用于读取数字的清洁图像 Pytesseract

我正在尝试从填充了名称和数字列的数据表中读取一些条目。这是原始图片:

在此处输入图像描述

在二值化、转换为黑/白和反转之间,我发现反转图像会产生最佳效果。

当我向下滚动到更多图像时,这让我可以处理大约 90% 以上的列,但我仍然无法处理其中的一堆。有时,列中的括号合并了我在每列中的两个数字。有什么办法可以解决括号与数字混合的问题,或者删除所有绿色文本?