利用Fancy PCA做图像的data augmentation

Fancy PCA在AlexNet论文中出现,论文地址:ImageNet Classification with Deep Convolutional Neural Networks

Fancy PCA用来对图像数据做data augmentation。

对比用随机增加图像像素强度(所有像素的RGB各加一个固定值)的效果图如下:

利用Fancy PCA做图像的data augmentation_第1张图片

Fancy PCA的做法是,对于每一张图片,利用PCA来找出R/G/B这三维的主成分。

即求出R/G/B这三维的3*3协方差矩阵,求出该矩阵的特征值和特征向量,然后对于每个像素,其RGB加上:

其中p1,p2,p3分别是代表第一、二、三主成分的特征向量,λ是对应特征值,即方差,α是均值为0,方差为0.1的高斯分布的随机值,注意这个随机值在同一张图片上是固定的。

注意这里的PCA是不用先规范化(PCA规范化的目的是怕某一维太大,影响PCA的主成分选择,而此处三维都是相同的大小范围)的,不然所加值太小了,不过也有可能是规范化以后,加的值乘255?这里还没有自己实验过,有待继续补充。

而Fancy PCA的原理,也还有待继续深入。这里只是留下一个笔记。

关于fancy pca 的代码:https://github.com/pixelatedbrian/fortnight-furniture/blob/master/src/fancy_pca.py#L98

这个代码应该是有问题的,图像不应该先规范化。

你可能感兴趣的:(机器学习,机器视觉,人工智能,计算机视觉,深度学习,算法)