问题标签 [image-whitening]

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 投票
3 回答
9428 浏览

python - 这是在python中美白图像的正确方法吗?

我正在尝试zero-centerwhiten CIFAR10数据集,但我得到的结果看起来像随机噪声!
Cifar10数据集包含60,000大小为 的彩色图像32x32。训练集包含图像50,000,测试集包含10,000图像。
以下代码片段显示了我为使数据集变白所做的过程:

输出:

并尝试显示生成的图像:

在此处输入图像描述

顺便说一句,但是data_train[0].shape如果(3,32,32)我根据我得到的重塑白化图像

这可能只是一个可视化问题吗?如果是这样,我怎样才能确保是这样?

更新:
感谢@AndrasDeak,我以这种方式修复了可视化代码,但输出看起来仍然是随机的:

在此处输入图像描述

更新 2:
这是我在运行下面给出的一些命令时得到的:如下所示,toimage 可以很好地显示图像,但试图重塑它会弄乱图像。 在此处输入图像描述

在此处输入图像描述

由于某种奇怪的原因,这是我一开始得到的,但经过几次尝试,它变成了以前的图像。 在此处输入图像描述

0 投票
1 回答
7242 浏览

tensorflow - 如何对张量流中的一批图像执行 tf.image.per_image_standardization

我想知道如何对一批图像进行图像白化。

根据https://www.tensorflow.org/api_docs/python/tf/image/per_image_standardization中的文档,据说tf.image.per_image_standardization将 3D 张量(即图像)作为输入,其形状为:[height, width, channels]

是缺少功能还是有不同的方法?

任何帮助深表感谢。

0 投票
1 回答
2738 浏览

machine-learning - python中用于机器学习的ZCA白化

我正在训练 1000 张 28x28 大小的图像。但在训练之前,我通过参考如何实施 ZCA 美白?蟒蛇

由于我有 1000 个大小为 28x28 的数据图像,经过展平后,它变为 1000x784。但如下代码所示,X 是否是我的 1000x784 图像数据集?

如果是这样,则意味着 ZCAMatrix 大小为 1000x1000。在这种情况下,对于预测,我有一个大小为 28x28 的图像,或者我们可以说,大小为 1x784。因此将 ZCAMatrix 与图像相乘是没有意义的。

所以我认为,X 是图像数据集的转置。我对吗?如果我是对的,那么 ZCAMatrix 的大小是 784x784。

现在我应该如何计算 ZCA 白化图像,我应该使用np.dot(ZCAMatrix, transpose_of_image_to_be_predict)还是np.dot(image_to_be_predict, ZCAMatrix)?建议将不胜感激。

以及一个使用示例:

0 投票
1 回答
178 浏览

python - 图像处理中的值错误

我正在对数据库中的图像进行白化。由于代码很大,我只给出代码中出现错误的函数——

我收到的错误消息是这样的 -

我尝试将变量 patch_size 的值更改为 6,但出现以下错误 -

我又走了一步,将值更改为 1。编译器也又走了一步,给出了以下错误 -

我正在处理的数据库是成熟的数据库,例如 orl faces 和 faces 95。

任何人都可以解释编译器这种奇怪行为的原因并更正这段代码。

0 投票
1 回答
839 浏览

matlab - 用matlab做PCA和美白

我的任务是使用给定的 2 维 5000 数据进行 PCA 和白化变换。

我对 PCA 的理解是用协方差矩阵的特征向量分析数据的主轴并将主轴旋转到 x 轴!

所以这就是我所做的。

我首先计算了特征值和向量。结果是

所以我发现主轴的特征值为 8.903923357227459,[-0.999423951036524,-0.033937679569230]其特征向量是第二个对应项。

之后,因为它是二维数据,我让 cos(theta) 为 -0.9994.. 和sin(theta)=-0.033937. 因为我认为数据的主轴(特征向量 [-0.999423951036524,-0.033937679569230])必须是 x 轴,所以我做了旋转轴R= [cos(-Theta)-sin(-theta);sin(-theta) cos(-theta)]。让原始数据集A=>2*5000,我做A*R了旋转数据。

此外,对于美白情况,使用 Cholesky 美白,我将美白变换矩阵设为inv(Covariance Matrix).

我的算法有问题吗?如果有错误或误解,有人可以作证吗?非常感谢您。

0 投票
0 回答
276 浏览

python - 使用精明的边缘检测在python中将图像背景设为白色

我想在 python 中将此图像的背景更改为白色背景。我尝试了精明的边缘检测,但很难找到产品顶部的边缘,如您在第二张图片中所见。我尝试了不同的阈值,但这会导致更多的背景不是白色的。这可能是由于图像中产品的顶部与背景颜色几乎相同。

有没有一种方法可以检测出这样的微小差异?我也试过在产品后面加个绿屏,但是因为产品的反光状态,产品变绿了。

这是我的代码:

图像前

后像

0 投票
0 回答
47 浏览

python - 使用 PCA 白化和 LDF(线性判别函数)编码贝叶斯分类器时的一个非常奇怪的现象

它与 MNIST 数据一起使用。你可以在这个网站上找到 mnist 数据: 

数据

代码中用到了四个文件,即

  • train-images-idx3-ubyte.gz:训练集图像(9912422 字节)

  • train-labels-idx1-ubyte.gz:训练集标签(28881字节)

  • t10k-images-idx3-ubyte.gz:测试集图像(1648877 字节)

  • t10k-labels-idx1-ubyte.gz:测试集标签(4542字节)

我首先使用PCA Whitening处理数据,然后使用LDF来判断样本是c1还是c2,其中c1和c2是类别。

奇怪的是

我设置c1为0,c2为1,正确的是0.8122931442080378,但是,当我简单地将c2改为0,c1改为1时,正确的改为0.5938534278959811 !!!!!!

我尝试其他情况,例如交换 1 和 9,或交换 1 和 7。在上述情况下,正确的没有变化,分别为 0.9925373134328358 和 0.9889042995839112

请告诉我为什么。非常感谢!

我的代码如下:

请记住在第 47/48 行更改 os 路径

0 投票
0 回答
19 浏览

conv-neural-network - 用于 U-Net 的 ZCA 白化/球形图像作为预处理步骤

用于图像预处理的零相位分量分析球形或 ZCA 球形已被广泛用于 CNN,作为一种出色的归一化方法,我发现这很有趣。但是当我深入研究 U-Net 的世界时,我很困惑为什么没有任何出版物讨论过将它用作预处理工具。我相信 U-Net 不需要球化或美白;有人可以具体解释为什么会这样,因为我无法找到有关该主题的信息吗?

我的主要认识之一是编码器和解码器的重复批量归一化已经产生了归一化,因此球化或白化会导致数据归一化的过度杀伤。