在训练过程中增加 运动模糊。
class MotionBlur(object):
def __init__(self, p = 0.5, degree = 5, angle = 45):
self.p = p
self.degree = degree
self.angle = angle
def __call__(self, img):
if random.random() < self.p:
return img
angle = np.random.randint(-self.angle, self.angle+1)
degree = np.random.randint(1, self.degree)
img = np.array(img)
M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle, 1)
motion_blur_kernel = np.diag(np.ones(degree))
motion_blur_kernel = cv2.warpAffine(motion_blur_kernel, M, (degree, degree))
motion_blur_kernel = motion_blur_kernel / degree
blurred = cv2.filter2D(img, -1, motion_blur_kernel)
# convert to uint8
cv2.normalize(blurred, blurred, 0, 255, cv2.NORM_MINMAX)
img = Image.fromarray(blurred.astype('uint8')).convert('RGB')
return img
self.transform = transforms.Compose(
[ transforms.ToPILImage(),
my_transforms.MotionBlur(p=0.5, degree=5, angle=45),
transforms.ToTensor(),
])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)