Created by: FlyingQianMM
功能:集成多通道遥感插件
目前在paddlex下新建RemoteSensing文件夹,其中放置transforms.py用于实现自定义数据增强操作,其余皆可复用paddlex框架
1. 读取多通道图像的decode函数实现
将seg_transforms类中的decode函数设置为静态函数,用户在外部重置该函数
train_transforms = transforms.Compose([... ...]) train_transforms.decode_image = custom_transforms.decode_image
2. 自定义transforms
在paddlex/RemoteSensing/transforms.py中实现自定义算子,自定义算子均继承paddlex.seg.transforms.SegTransform
from paddlex.seg import transforms class Clip(transforms.SegTransform): ... ...
多通道遥感中的数据增强均可集成入seg_transforms,只是seg_transforms目前没有Clip算子,故以此作为示例
3. 将seg_transforms和自定义transforms进行组合使用
from paddlex.seg import transforms import paddlex.RemoteSensing.transforms as custom_transforms train_transforms = transforms.Compose([ transforms.RandomVerticalFlip(0.5), transforms.RandomHorizontalFlip(0.5), transforms.ResizeStepScaling(0.5, 2.0, 0.25), transforms.RandomPaddingCrop(im_padding_value=[1000] * channel), custom_transforms.Clip( min_val=clip_min_value, max_val=clip_max_value), transforms.Normalize( min_val=clip_min_value, max_val=clip_max_value, mean=mean, std=std), ])
4. 模型组网时需要图像通道数量,将其作为参数传入即可。
model = pdx.seg.UNet(num_classes=num_classes, input_channel=channel)