Albumentations中label_fields配置无效问题求助
问题原因与解决方案
错误根源
你在BboxParams的label_fields里指定了['person'],但调用augmentor时传入的标签参数名是class_labels,两者名称不匹配,导致Albumentations无法识别对应标签字段,抛出该异常。
修复方案(二选一即可)
方案1:修改label_fields匹配传入的参数名
把BboxParams中的label_fields改为['class_labels'],和调用时的参数名保持一致:
augmentor = alb.Compose([ alb.RandomCrop(width=450, height=450), alb.HorizontalFlip(p=0.5), alb.RandomBrightnessContrast(p=0.2), alb.RandomGamma(p=0.2), alb.RGBShift(p=0.2), alb.VerticalFlip(p=.5) ], bbox_params=alb.BboxParams(format='albumentations', label_fields=['class_labels'])) # 调用部分无需修改 augmented = augmentor(image=img, bboxes=[coords], class_labels=['person'])
方案2:修改调用时的参数名匹配label_fields
保持label_fields=['person']不变,将调用时的参数名改为person:
augmentor = alb.Compose([ alb.RandomCrop(width=450, height=450), alb.HorizontalFlip(p=0.5), alb.RandomBrightnessContrast(p=0.2), alb.RandomGamma(p=0.2), alb.RGBShift(p=0.2), alb.VerticalFlip(p=.5) ], bbox_params=alb.BboxParams(format='albumentations', label_fields=['person'])) # 修改调用时的参数名 augmented = augmentor(image=img, bboxes=[coords], person=['person'])
额外说明
label_fields的作用是告诉Albumentations:哪些额外参数是和bbox对应的标签,需要随bbox一起做变换(比如裁剪、翻转时标签要和bbox关联保留)- 确保
label_fields中的每个字段名,都能在调用augmentor时找到对应的参数,且参数值的长度要和bboxes的长度一致(比如每个bbox对应一个标签)
内容的提问来源于stack exchange,提问作者aSquaredRush
相关产品推荐
相关产品推荐

