pytorch和onnx输出有一点点不一样,按理说应该是严格对齐的
仔细对齐了模型前处理,最后定位到差异是其中一个进行了颜色抖动
transform = transforms.Compose([
transforms.ColorJitter(0.3, 0, 0, 0),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
点进去看源码实现,在transform.py里
if brightness is not None:
brightness_factor = random.uniform(brightness[0], brightness[1])
transforms.append(Lambda(lambda img: F.adjust_brightness(img, brightness_factor)))
最后发现是用PIL库中的ImageEnhance来对亮度进行增强
enhancer = ImageEnhance.Brightness(img)
img = enhancer.enhance(brightness_factor)
return img
#-*- coding: UTF-8 -*-
from PIL import Image
from PIL import ImageEnhance
#原始图像
image = Image.open('lena.jpg')
image.show()
#亮度增强
enh_bri = ImageEnhance.Brightness(image)
brightness = 1.5
image_brightened = enh_bri.enhance(brightness)
image_brightened.show()
#色度增强
enh_col = ImageEnhance.Color(image)
color = 1.5
image_colored = enh_col.enhance(color)
image_colored.show()
#对比度增强
enh_con = ImageEnhance.Contrast(image)
contrast = 1.5
image_contrasted = enh_con.enhance(contrast)
image_contrasted.show()
#锐度增强
enh_sha = ImageEnhance.Sharpness(image)
sharpness = 3.0
image_sharped = enh_sha.enhance(sharpness)
image_sharped.show()