提交 e41f2a8f 编写于 作者: G gaotingquan 提交者: Tingquan Gao

support PCALighting

上级 963dcb9c
......@@ -45,6 +45,7 @@ from ppcls.data.preprocess.ops.operators import RandomCropImage
from ppcls.data.preprocess.ops.operators import RandomRotation
from ppcls.data.preprocess.ops.operators import Padv2
from ppcls.data.preprocess.ops.operators import RandomRot90
from ppcls.data.preprocess.ops.operators import PCALighting
from .ops.operators import format_data
from paddle.vision.transforms import Pad as Pad_paddle_vision
......
......@@ -721,8 +721,8 @@ class Pad(object):
# Process fill color for affine transforms
major_found, minor_found = (int(v)
for v in PILLOW_VERSION.split('.')[:2])
major_required, minor_required = (
int(v) for v in min_pil_version.split('.')[:2])
major_required, minor_required = (int(v) for v in
min_pil_version.split('.')[:2])
if major_found < major_required or (major_found == major_required and
minor_found < minor_required):
if fill is None:
......@@ -868,4 +868,31 @@ class RandomGrayscale(object):
return img
def __repr__(self):
return self.__class__.__name__ + '()'
\ No newline at end of file
return self.__class__.__name__ + '()'
class PCALighting(object):
"""Lighting noise(AlexNet - style PCA - based noise)"""
def __init__(self):
self.alphastd = 0.1
self.eigval = [0.2175, 0.0188, 0.0045]
self.eigvec = [
[-0.5675, 0.7192, 0.4009],
[-0.5808, -0.0045, -0.8140],
[-0.5836, -0.6948, 0.4203],
]
self.eigval = np.array(self.eigval).astype(np.float32)
self.eigvec = np.array(self.eigvec).astype(np.float32)
def __call__(self, img):
if self.alphastd == 0:
return img
img = img.transpose((2, 0, 1))
alpha = np.random.normal(0, self.alphastd, size=(3)).astype(np.float32)
rgb = self.eigvec * np.broadcast_to(alpha.reshape(1, 3), (
3, 3)) * np.broadcast_to(self.eigval.reshape(1, 3), (3, 3))
rgb = rgb.sum(1).squeeze()
img = img + rgb.reshape(3, 1, 1)
return img.transpose((1, 2, 0))
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册