三维目标检测|Iou3D 代码解读一
本文对OpenPCDet项目中的iou3d模块中的iou3d_nms_kernel.cu代码进行解读,本次解决的函数是box_overlap,它的输入是两个包围盒,输出是两个包围盒在bev下的重叠面积,计算流程是
-
确定box_a和box_b的四个角落坐标
从包围盒中提取坐标值创建center_a来保存中心坐标点,创建box_a_corners[5]保存4个角落,通过yaw角对四个角落进行旋转,然后将box_a_corners[4]赋值为box_a_corners[0],构成一个闭环。
-
确定相交多边形的中心和相交顶点
寻找box每条边和另一个box的相交顶点
寻找box角落落在另一个box内部的顶点
以上顶点构成一个相交多边形的顶点,中心点是这些相交点的坐标平均值。
-
将多边形顶点进行排序,然后相邻多边形顶点与中心点构成三角形进行面积计算,相交多边形面积为所有三角形面积和