You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

albumentations的Normalize变换是否会对mask执行归一化操作?

albumentations.Normalize 对mask的处理逻辑与集成指南

1. 变换对mask的处理规则

albumentations.Normalize(mean, std) 内部默认只会对输入的image执行减均值、除以标准差的归一化操作,完全不会修改mask的数值。该变换会自动识别输入目标的类型,仅对图像类张量做数值变换,掩码会原封不动返回。

2. 正确集成方式

你不需要对Normalize做特殊参数调整,直接将其放入变换组合即可,参考示例:

import albumentations as A
from albumentations.pytorch import ToTensorV2

# 定义变换流水线
train_transform = A.Compose([
    A.RandomResizedCrop(height=256, width=256),
    A.HorizontalFlip(p=0.5),
    A.ColorJitter(p=0.3),
    # 直接插入Normalize即可,不需要额外配置掩码相关参数
    A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
    ToTensorV2(),
])

# 调用变换时按规范传参
aug_output = train_transform(image=input_image_array, mask=input_mask_array)
processed_image = aug_output['image']
processed_mask = aug_output['mask']

如果需要传入多个掩码,只需在Compose阶段声明附加目标即可,Normalize依然不会修改这些掩码:

train_transform = A.Compose(
    [
        A.RandomResizedCrop(height=256, width=256),
        A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ToTensorV2(),
    ],
    # 声明附加掩码,类型和主mask一致
    additional_targets={"mask1": "mask", "mask2": "mask"}
)

3. 是否需要手动添加处理逻辑

正常场景下不需要为掩码额外添加和Normalize相关的处理逻辑。如果你有特殊需求,比如需要将掩码的取值范围从0255缩放到01,可以单独对掩码做数值转换,不要通过修改Normalize的参数实现。


内容的提问来源于stack exchange,提问作者Olli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:06:04