微凉的衣柜 2023-05-22 14:03 采纳率: 63.9%
浏览 19
已结题

如何求空间内任意两个包围框的IoU(交并比)?

如图所示的空间内的两个obb,如何求它们的交并比?

img

采用以下方法求解,发现结果并不对(可能以下方法求oobb是对的):

def naive_iou(box1,box2):
    '''
    3D IoU计算
    box表示形式:[x1,y1,z1,x2,y2,z2] 分别是两对角点的坐标
    '''
    in_w = min(box1[3],box2[3]) - max(box1[0],box2[0])
    in_l = min(box1[4],box2[4]) - max(box1[1],box2[1])
    in_h = min(box1[5],box2[5]) - max(box1[2],box2[2])

    inter = 0 if in_w < 0 or in_l < 0 or in_h < 0 else in_w * in_l * in_h
    union = (box1[3] - box1[0]) * (box1[4] - box1[1]) * (box1[5] - box1[2]) + (box2[3] - box2[0]) * (box2[4] - box2[1]) * (box2[5] - box2[2])  - inter
    iou = inter / union
    return iou

  • 写回答

1条回答 默认 最新

  • 赵4老师 2023-05-22 15:45
    关注

    两个三维矩形包围框求交集和并集,难度不是一般的大。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月7日
  • 已采纳回答 6月29日
  • 创建了问题 5月22日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档