Global Contrast Normalization


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


1.作用

全局对比度归一化是为了防止图像的不同区域有不同量级的对比度。

2.计算方式

对于每个图像计算其像素均值,并根据其标准差归一化
X X X表示宽 w w w h h h通道为 c c c的输入图像数组, X ˉ = 1 k w h ∑ i = 1 h ∑ j = 1 w ∑ k = 1 c X i j k \bar{X}=\frac{1}{kwh}\sum\limits_{i=1}^h\sum\limits_{j=1}^w\sum\limits_{k=1}^cX_{ijk} Xˉ=kwh1i=1hj=1wk=1cXijk

GCN的计算方式可表示为:
X i j k ′ = s X i j k − X ˉ m a x { ϵ , λ + 1 k w h ∑ i = 1 h ∑ j = 1 w ∑ k = 1 c ( X i j k − X ˉ ) 2 } X^{'}_{ijk} = s\frac{X_{ijk}-\bar{X}}{max\{\epsilon, \sqrt{\lambda+\frac{1}{kwh}\sum\limits_{i=1}^h\sum\limits_{j=1}^w\sum\limits_{k=1}^c(X_{ijk}-\bar{X})^2}\}} Xijk=smax{ϵ,λ+kwh1i=1hj=1wk=1c(XijkXˉ)2 }XijkXˉ

其中 λ \lambda λ通常为10, ϵ \epsilon ϵ通常为一个很小的数,以免除以0.

3.示例代码

import numpy
import scipy
import scipy.misc
from PIL import Image

def global_contrast_normalization(filename, s, lmda, epsilon):
    X = numpy.array(Image.open(filename))

    # replacement for the loop
    X_average = numpy.mean(X)
    print('Mean: ', X_average)
    X = X - X_average

    # `su` is here the mean, instead of the sum
    contrast = numpy.sqrt(lmda + numpy.mean(X**2))

    X = s * X / max(contrast, epsilon)

    # scipy can handle it
    scipy.misc.imsave('result.jpg', X)


global_contrast_normalization("cat.jpg", 1, 10, 0.000000001)

补充

GCN的应用可见Deep SVDD的代码,其中对数据Normalize之前,先对数据进行了GCN,按类别求出了GCN后每个图像像素数据的最大最小值。

# Deep-SVDD-PyTorch/src/datasets/mnist.py line:20-30
# Pre-computed min and max values (after applying GCN) from train data per class
min_max = [(-0.8826567065619495, 9.001545489292527),
          (-0.6661464580883915, 20.108062262467364),
          (-0.7820454743183202, 11.665100841080346),
          (-0.7645772083211267, 12.895051191467457),
          (-0.7253923114302238, 12.683235701611533),
          (-0.7698501867861425, 13.103278415430502),
          (-0.778418217980696, 10.457837397569108),
          (-0.7129780970522351, 12.057777597673047),
          (-0.8280402650205075, 10.581538445782988),
          (-0.7369959242164307, 10.697039838804978)]

参考资料


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值