【发布时间】:2021-04-18 07:03:30
【问题描述】:
我想训练一些模型来处理灰度图像,例如可用于显微镜应用 (Source)。因此,我想在灰度图像网络上训练我的模型,使用 pytorch 灰度转换 (torchvision.transforms.Grayscale) 将 RGB 图像网络转换为灰度图像网络。 pytorch 内部将颜色空间从 RGB 旋转到 YPbPr,如下所示:
Y' 为灰度通道,因此转换后的 Pb 和 Pr 可以忽略不计。其实pytorch甚至只计算
grayscale = (0.2989 * r + 0.587 * g + 0.114 * b)
为了标准化图像数据,我需要知道 grayscale-imagenet 的平均像素值,以及标准偏差。可以计算吗?
我成功地使用了计算平均像素强度
meanGrayscale = 0.2989 * r.mean() + 0.587 * g.mean() + 0.114 * b.mean()
转换图像然后计算灰度均值与首先计算 RGB 均值然后将其转换为灰度均值的结果相同。
但是,我现在对计算方差或标准差一无所知。有人有什么想法,或者知道一些关于这个话题的好文献吗?这甚至可能吗?
我发现了一个出版物“建新宫 - 澄清标准偏差椭圆”......他在那里做了二维(据我所知)。我只是不知道如何在 3D 中做到这一点。
【问题讨论】:
-
为什么不直接计算计算灰度值的均值和偏差??
-
啊,是的,我现在试过了。目前根据 tqdm 状态栏,计算平均值可能需要大约 27 小时。我仍然只使用一个处理器内核来浏览所有图像,因此我可能会缩短计算时间。我会试试这个。
-
有趣。由于取平均值是您能想到的最简单的操作,因此请准备好 3 年的时间来真正处理您的图像。
-
如果您显示您的代码,您可能会得到更好的帮助。
-
谢谢。我附加了更多处理器并实现了多处理。这将计算时间缩短到 3.5 小时。
标签: image-processing color-scheme standard-deviation rotational-matrices