ValueError: bbox_params must be specified for bbox transformations

错误 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(p=0.5),A.VerticalFlip(p=0.5),A.RandomRotate90(p=0.5),A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.2, rotate_limit=20, p=0.7),A.RandomBrightnessContrast(p=0.2),A.GaussNoise(var_limit=(10.0, 50.0), p=0.3),],bbox_params=BboxParams(format='pascal_voc',  # 边界框的格式,Pascal VOC 为 [xmin, ymin, xmax, ymax]label_fields=['class_labels'],  # 必须指定与边界框对应的标签min_visibility=0.2,  # 边界框最小可见性,小于此值将被移除)
)

同步修改其他部分代码

在调用 transform 的地方,需要为 bboxes 提供对应的 class_labels,例如:

augmented = transform(image=image,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(p=0.5),VerticalFlip(p=0.5),RandomRotate90(p=0.5),ShiftScaleRotate(shift_limit=0.1, scale_limit=0.2, rotate_limit=20, p=0.7),RandomBrightnessContrast(p=0.2),GaussNoise(var_limit=(10.0, 50.0), p=0.3),],bbox_params=BboxParams(format='pascal_voc',label_fields=['class_labels'],min_visibility=0.2,)
)# 示例图片和边界框
image = cv2.imread('example.jpg')
bboxes = [[50, 50, 200, 200]]  # 示例边界框,格式为 [xmin, ymin, xmax, ymax]
class_labels = ["object"]  # 示例标签# 执行数据增强
augmented = transform(image=image, bboxes=bboxes, class_labels=class_labels)
aug_image = augmented['image']
aug_bboxes = augmented['bboxes']
aug_labels = augmented['class_labels']# 保存增强结果
cv2.imwrite('augmented_image.jpg', aug_image)
print("增强后的边界框:", aug_bboxes)

关键点总结

  1. 添加 bbox_params

    • 指定边界框格式:'pascal_voc' 对应 [xmin, ymin, xmax, ymax]。
    • 设置 label_fields,对应每个边界框的标签。
  2. 调整调用方式

    • 每次调用增强时,提供 bboxesclass_labels
  3. 边界框过滤

    • 使用 min_visibility 确保增强后边界框的可见性,避免完全失效的边界框。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477480.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA怎么定位java类所用maven依赖版本及引用位置

在实际开发中,我们可能会遇到需要搞清楚代码所用依赖版本号及引用位置的场景,便于排查问题,怎么通过IDEA实现呢? 可以在IDEA中打开项目,右键点击maven的pom.xml文件,或者在maven窗口下选中项目,…

webStorm安装

一、webStorm安装 简介 Webstorm是一款非常受欢迎的优秀开发工具,跟vscode同誉为卧龙凤雏编辑器,是97%开发人员的理想编辑器, 尤其是webstorm,焕然一新的外观,新的导航功能,githob拉取等,更是备…

案例研究|阿特斯的JumpServer分布式部署和多组织管理实践

苏州阿特斯阳光电力科技有限公司(以下简称为阿特斯)是一家集太阳能光伏组件制造和为全球客户提供太阳能应用产品研发、设计、制造、销售的专业公司。 阿特斯集团总部位于加拿大,中国区总部位于江苏省苏州市。通过全球战略和多元化的市场布局…

数字信号处理(Digital Signal Procession)总结

0、导入库 import numpy as np import matplotlib.pyplot as plt import numpy as np from matplotlib import pyplot as plt from scipy.signal import find_peaks1、创建时域信号 创建时间序列 T 0.01 # 采样间隔 fs 100 # 采样频率 L 1000 # 采样点数 tl 0 # 起始时间…

医院信息化与智能化系统(22)

医院信息化与智能化系统(22) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应…

01Web3.0行业

目录 一、什么是Web 3.0? 二、Web 1.0 vs Web 2.0 vs Web 3.0 三、为什么选择Web 3.0 四、从法律角度观察Web 3.0 1. Web 3.0前时代的数字身份 问题1:个人信息的过度收集 问题2:个人信息的泄露和滥用 2. Web 3.0的解决方案及其法律问题 问题一&…

width设置100vh但出现横向滚动条的问题

在去做flex左右固定,中间自适应宽度的布局时, 发现这样一个问题: 就是我明明是宽度占据整个视口, 但是却多出了横向的滚动条 效果是这样的 把width改成100%,就没有滚动条了 原因: body是有默认样式的, 会有一定的默认边距, 把默认边距清除就是正常的了 同时, 如果把高度设…

opencv undefined reference to `cv::noarray()‘ 。window系统配置opencv,找到opencv库,但连接不了

之前都是在ubuntu里用opencv,今天为了方便在平时用Window10系统也用下c版的cv,就想配置一下vscode的cv环境,直接下载了一个编译好的opencv库(带build文件夹的),刚开始用的是visual studio的编译器&#xff…

php常用伪协议整理

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理php常见的伪协议 php伪协议介绍 直观点,就是php可以识别的协议。 类似于我们访问网站的http协议,我们用浏览器访问我们自己本地文件的file协议等。 php可以识别这些协议&#xf…

神经网络(系统性学习二):单层神经网络(感知机)

此前篇章: 神经网络中常用的激活函数 神经网络(系统性学习一):入门篇 单层神经网络(又叫感知机) 单层网络是最简单的全连接神经网络,它仅有输入层和输出层,没有隐藏层。即&#x…

后端:事务

文章目录 1. 事务2. Spring 单独配置DataSource3. 利用JdbcTemplate操作数据库4. 利用JdbcTemplate查询数据5. Spring 声明式事务6. 事务的隔离级别6.1 脏读6.2 不可重复读6.3 幻读6.4 不可重复读和幻读的区别6.5 三种方案的比较 7. 事务的传播特性8. 设置事务 只读(readOnly)9…

Fakelocation Server服务器/专业版 Windows11

前言:需要Windows11系统 Fakelocation开源文件系统需求 Windows11 | Fakelocation | 任务一 打开 PowerShell(以管理员身份)命令安装 Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProto…

MySQL系列之身份鉴别(安全)

导览 前言Q:如何保障MySQL数据库身份鉴别的有效性一、有效性检查1. 用户唯一2. 启用密码验证3. 是否存在空口令用户4. 是否启用口令复杂度校验5. 是否设置口令的有效期6. 是否限制登录失败尝试次数7. 是否设置(超过尝试次数)锁定的最小时长8.…

MySQL面试题补

内连接和外连接的区别: ○1.功能和用法不同:内连接是连接两表都满足情况的数据;而外连接是以一边的表为主表,另一个表只显示匹配的行; ○2.用途:内连接一般是用于检索不同表需要根据共同的列值进行匹配的&a…

线程(三)【线程互斥(下)】

目录 4. 互斥锁4.1 解决数据不一致问题 5. 锁的原理5.1 加锁5.2 解锁 6. 可重入 vs 线程安全 4. 互斥锁 NAMEpthread_mutex_destroy, pthread_mutex_init - destroy and initialize a mutex // 创建、释放锁SYNOPSIS#include <pthread.h>// pthread_mutex_t: 线程库提供…

如何使用AWS Lambda构建一个云端工具(超详细)

首发地址&#xff08;欢迎大家访问&#xff09;&#xff1a;如何使用AWS Lambda构建一个云端工具&#xff08;超详细&#xff09; 1 前言 1.1 无服务器架构 无服务器架构&#xff08;Serverless Computing&#xff09;是一种云计算服务模型&#xff0c;它允许开发者构建和运行…

网络爬虫总结与未来方向

通过深入学习和实际操作&#xff0c;网络爬虫技术从基础到进阶得以系统掌握。本节将全面总结关键内容&#xff0c;并结合前沿技术趋势与最新资料&#xff0c;为开发者提供实用性强的深度思考和方案建议。 1. 网络爬虫技术发展趋势 1.1 趋势一&#xff1a;高性能分布式爬虫 随…

实验十三 生态安全评价

1 背景及目的 生态安全是生态系统完整性和健康性的整体反映&#xff0c;完整健康的生态系统具有调节气候净化污染、涵养水源、保持水土、防风固沙、减轻灾害、保护生物多样性等功能。维护生态安全对于人类生产、生活、健康及可持续发展至关重要。随着城市化进程的不断推进&…

archlinux安装waydroid

目录 参考资料 注意 第一步切换wayland 第二步安装binder核心模组 注意 开始安装 AUR安裝Waydroid 启动waydroid 设置网络&#xff08;正常的可以不看&#xff09; 注册谷歌设备 安装Arm转译器 重启即可 其他 参考资料 https://ivonblog.com/posts/archlinux-way…

鸿蒙NEXT开发案例:随机数生成

【引言】 本项目是一个简单的随机数生成器应用&#xff0c;用户可以通过设置随机数的范围和个数&#xff0c;并选择是否允许生成重复的随机数&#xff0c;来生成所需的随机数列表。生成的结果可以通过点击“复制”按钮复制到剪贴板。 【环境准备】 • 操作系统&#xff1a;W…