泉州做网站便宜,个人主页源码,网站建设的自查整改报告,个人虚拟网站错误 ValueError: bbox_params must be specified for bbox transformations 是因为使用了需要处理边界框#xff08;bboxes#xff09;的增强操作#xff0c;但在 albumentations.Compose 中没有正确设置bbox_params 参数。
bbox_params 是用来指定如何处理边界框的配置。…错误 ValueError: bbox_params must be specified for bbox transformations 是因为使用了需要处理边界框bboxes的增强操作但在 albumentations.Compose 中没有正确设置bbox_params 参数。
bbox_params 是用来指定如何处理边界框的配置。
解决方案
修改数据增强部分代码添加 bbox_params 参数。
from albumentations import BboxParamstransform A.Compose([A.HorizontalFlip(p0.5),A.VerticalFlip(p0.5),A.RandomRotate90(p0.5),A.ShiftScaleRotate(shift_limit0.1, scale_limit0.2, rotate_limit20, p0.7),A.RandomBrightnessContrast(p0.2),A.GaussNoise(var_limit(10.0, 50.0), p0.3),],bbox_paramsBboxParams(formatpascal_voc, # 边界框的格式Pascal VOC 为 [xmin, ymin, xmax, ymax]label_fields[class_labels], # 必须指定与边界框对应的标签min_visibility0.2, # 边界框最小可见性小于此值将被移除)
)同步修改其他部分代码
在调用 transform 的地方需要为 bboxes 提供对应的 class_labels例如
augmented transform(imageimage,bboxes[[xmin, ymin, xmax, ymax]], # 提供原始边界框坐标class_labels[object] # 对应的标签与 bbox_params 中的配置匹配
)完整的增强示例代码
以下是如何应用增强的完整示例
from albumentations import Compose, HorizontalFlip, VerticalFlip, RandomRotate90, ShiftScaleRotate, RandomBrightnessContrast, GaussNoise, BboxParams
import cv2# 数据增强配置
transform Compose([HorizontalFlip(p0.5),VerticalFlip(p0.5),RandomRotate90(p0.5),ShiftScaleRotate(shift_limit0.1, scale_limit0.2, rotate_limit20, p0.7),RandomBrightnessContrast(p0.2),GaussNoise(var_limit(10.0, 50.0), p0.3),],bbox_paramsBboxParams(formatpascal_voc,label_fields[class_labels],min_visibility0.2,)
)# 示例图片和边界框
image cv2.imread(example.jpg)
bboxes [[50, 50, 200, 200]] # 示例边界框格式为 [xmin, ymin, xmax, ymax]
class_labels [object] # 示例标签# 执行数据增强
augmented transform(imageimage, bboxesbboxes, class_labelsclass_labels)
aug_image augmented[image]
aug_bboxes augmented[bboxes]
aug_labels augmented[class_labels]# 保存增强结果
cv2.imwrite(augmented_image.jpg, aug_image)
print(增强后的边界框, aug_bboxes)关键点总结 添加 bbox_params 指定边界框格式pascal_voc 对应 [xmin, ymin, xmax, ymax]。设置 label_fields对应每个边界框的标签。 调整调用方式 每次调用增强时提供 bboxes 和 class_labels。 边界框过滤 使用 min_visibility 确保增强后边界框的可见性避免完全失效的边界框。