和芯片无关
和板卡无关
天工开物开发包 OpenExplorer 版本:openexplorer/ai_toolchain_ubuntu_22_j6_gpu:v3.8.1,容器docker内开发
fcos3d模型的训练 + 训练数据集3D框可视化 + predict可视化
公司自采数据集训练fcos3d检测模型的问题,后处理NMS没有过滤框
算是之前的帖子的延展,https://developer.horizon.a就uto/forum/13717
可能也是相机姿态不水平导致的,已经使用豆包完成了bev水平面上 旋转多边形IOU的计算,并且自己完成了NMS的其他部分,检测效果不好的原因是输入网络的图片尺寸很小
/usr/local/lib/python3.10/dist-packages/hat/core/nms/box3d_nms.py 里面的nms_bev计算的结果不对,只适用于水平情况,不适用于倾斜场景的
- 下面的图片是使用后处理/usr/local/lib/python3.10/dist-packages/hat/models/task_modules/fcos3d/post_process.py里面自带的NMS的结果,box2d3d_multiclass_nms,里面3个重叠框的,并没有去除重叠很多的框,证明这个函数是不适用这种情况的

下面的图片是加入了自己写好的额外的NMS部分的结果,可见多余的框已经被过滤掉了

其他 NMS 的,原图,对照


旋转多边形IOU的计算,以及source code的






存在不能过滤的情况,主要是还需要经过去扭曲,内参变换到图像坐标系,前后向
nms过滤后,过滤前,3个框的自车坐标系3D可视化,nms只过滤了1个,iou阈值0.2,第一个置信度最高,中间被去掉了,导致最后的框和第一个框的 iou_bev=0



下面的就是自己写的NMS的source code,3d的box是在相机坐标系下面,而且是中心点在底部,适用 任意旋转矩形的IOU计算和NMS,先是计算多边形的面积,相交面积的
