【Rope3d数据集分析】

rope3d中车头航向角分析

在做路侧3D目标检测时,分析了rope3D数据集,发现数据集中的标签文件中的两个角度alpha和rotation_y和官网的描述不符,官网描述的角度范围是[-pi,pi],但是实际标签中的有较多超过3.14的值。问题是rope3d定义的角度的坐标系和描述的不一致。
如图所示,3d框前方的第一个角度为rotation_y,|后面的角度为alpha
如上图所示,3d框前方的第一个角度为rotation_y,|后面的角度为alpha,都有超过pi的值。

在这里插入图片描述
按照官方的描述,y_rotation的角度的计算如下图所示,角BO1D的值即为标签中的y_rotaion。而AOC为alpha值。在这里插入图片描述

而正负号的定义,官网没给明确的定义,我理解是:绕x轴逆时针为正,顺时针为负,这块会去参考kitti等数据集的定义,若错了会对下图进行修正。
随后找到一篇kitti 3D目标检测数据集的alpha和rotation_y的介绍(https://blog.csdn.net/explorer9607/article/details/107906808),搞懂了角度的正负定义,按照右手定则,逆时针为负,顺时针为正,如下:
在这里插入图片描述

导致的问题

训练后,发现一些车辆的车头角度不对,反了:
推理结果如下:进口道和出口道的车辆的弧度值都是-1.4,正确是进口道是-1.4,出口道是1.4。
在这里插入图片描述

解决方法

根据3D目标检测模型的要求,将角度值根据需要的坐标系转换,然后重新训练。一般是改为官网的描述的范围。
修改方法为:

import numpy as np

def trans(raw_rad):
    """将大于pi的转换为0, -pi"""
    if raw_rad > 0:  # 若为顺时针
        if raw_rad > np.pi:
            deg = np.degrees(raw_rad)
            new_deg = 360 - deg
            raw_rad = -(new_deg * np.pi / 180)
    return raw_rad


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值