yolov8旋转目标检测输出的角度转化为适合机械爪抓取的角度(包含代码实现)

本文介绍了如何将YOLOv8旋转目标检测的输出角度转换为适合机械爪抓取的角度,详细阐述了转换规则,并提供了代码实现。通过判断检测角度,确定机械爪抓取时的正负角度,确保正确抓取物体。
摘要由CSDN通过智能技术生成

1. 机械爪抓取时旋转的角度定义

X轴正方向(右)为零度方向,角度取值范围[-90°,90°)
确认角度的方法:
逆时针旋转X轴,X轴碰到矩形框长边时旋转过的角度记为angleX
1.如果angleX小于90°,则度数就是angleX
2.如果angleX大于90°,则度数就是-(180-angleX);也等于将X轴顺时针旋转碰到长边时的角度取负值。

X轴正方向(右)为零度方向,角度取值范围[0°,180°)
确认角度的方法:
逆时针旋转X轴,X轴碰到矩形框长边时旋转的角度记为angleX

[-90°,90°)表示方式转换为[0°,180°)表示方式:
1.如果angleX >0,则angleX不变;
2.如果angleX<0,则angleX = 180-|angleX|

1.1 换一种说法

以X轴正方向(右)为零度方向,X轴逆时针转是正角度,顺时针转是负角度,角度的取值范围是[-90, 90]

度数的绝对值是X轴绕旋转矩形框的长边旋转得到的。度数的符号是根据是顺时针旋转还是逆时针旋转确定的。度数值域是[-90,90]

假设X轴绕长边逆时针旋转与长边重合时的度数是θ。如果θ小于90度那么输出的角度就是θ
如果θ大于90度那么角度是负值,度数的绝对值应该是X轴绕长边顺时针旋转与长边重合时的度数(也等于180减去X轴绕长边逆时针旋转的度数)。

在这里插入图片描述

2. yolov8旋转目标检测输出的角度

yolov8_obb预测的角度θX轴顺时针旋转第一次碰到的边的度数。

第一次碰到的边是width,另一条边是heightwidth可能大于height、也可能小于等于height
A. 当width > height时适合机械爪抓取的角度是
B. 当width < height时适合机械爪抓取的角度是90-θ
C. 当二者相等时抓widthheight都是一样的。
在这里插入图片描述

2.1 将yolov8_obb预测的角度转换为适合机械爪抓取的角度

请添加图片描述

2.2 角度转换代码实现

/***************************************************
 * 功    能:根据顶点表示的多边形求适合机械爪抓取的角度
 * 参    数:IN     pts  多边形顶点
 * 返 回 值:适合机械爪抓取的角度
 * 备    注:多边形的顶点是通过cv::RotatedRect的void points(Point2f pts[]) const;得到的
 ***************************************************/
float calculateRobotAngle(cv::Point2f pts[]) <
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值