问题标签 [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.
python - 这是在python中美白图像的正确方法吗?
我正在尝试zero-center
和whiten
CIFAR10
数据集,但我得到的结果看起来像随机噪声!
Cifar10
数据集包含60,000
大小为 的彩色图像32x32
。训练集包含图像50,000
,测试集包含10,000
图像。
以下代码片段显示了我为使数据集变白所做的过程:
输出:
并尝试显示生成的图像:
顺便说一句,但是data_train[0].shape
如果(3,32,32)
我根据我得到的重塑白化图像
这可能只是一个可视化问题吗?如果是这样,我怎样才能确保是这样?
更新:
感谢@AndrasDeak,我以这种方式修复了可视化代码,但输出看起来仍然是随机的:
更新 2:
这是我在运行下面给出的一些命令时得到的:如下所示,toimage 可以很好地显示图像,但试图重塑它会弄乱图像。
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]
。
是缺少功能还是有不同的方法?
任何帮助深表感谢。
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)
?建议将不胜感激。
以及一个使用示例:
python - 图像处理中的值错误
我正在对数据库中的图像进行白化。由于代码很大,我只给出代码中出现错误的函数——
我收到的错误消息是这样的 -
我尝试将变量 patch_size 的值更改为 6,但出现以下错误 -
我又走了一步,将值更改为 1。编译器也又走了一步,给出了以下错误 -
我正在处理的数据库是成熟的数据库,例如 orl faces 和 faces 95。
任何人都可以解释编译器这种奇怪行为的原因并更正这段代码。
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)
.
我的算法有问题吗?如果有错误或误解,有人可以作证吗?非常感谢您。
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 路径
conv-neural-network - 用于 U-Net 的 ZCA 白化/球形图像作为预处理步骤
用于图像预处理的零相位分量分析球形或 ZCA 球形已被广泛用于 CNN,作为一种出色的归一化方法,我发现这很有趣。但是当我深入研究 U-Net 的世界时,我很困惑为什么没有任何出版物讨论过将它用作预处理工具。我相信 U-Net 不需要球化或美白;有人可以具体解释为什么会这样,因为我无法找到有关该主题的信息吗?
我的主要认识之一是编码器和解码器的重复批量归一化已经产生了归一化,因此球化或白化会导致数据归一化的过度杀伤。