前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >倾斜矩形框的IOU计算与Python实现

倾斜矩形框的IOU计算与Python实现

作者头像
狼啸风云
修改2022-09-02 13:30:43
2.3K0
修改2022-09-02 13:30:43
举报

其算法流程大致如下:

给定两个倾斜的矩形R_{i}, R_{j}

1. 首先设置点集P S e t

2. 将两个矩形的交点均加入至P S e t 中;

3. 接着将矩形R_i 包含在R_j 中的顶点加入至P S e t 中;

4. 同样,将矩形R_j 包含在R_i 中的顶点加入至Pset中;

5. 将点集Pset 中的点进行三角化,可排成逆时针,计算面积Area(I)

6. 此时的IOU为

\operatorname{IOU}(i, j)=\frac{\operatorname{Area}(I)}{\text { Area }\left(R_{i}\right)+\operatorname{Area}\left(R_{j}\right)-\operatorname{Area}(I)}

使用Python中的Shapely模块可轻松地进行Skew IOU Computation:

代码语言:javascript
复制
from shapely.geometry import Polygon

def intersection(g, p):
    g=np.asarray(g)
    p=np.asarray(p)
    g = Polygon(g[:8].reshape((4, 2)))
    p = Polygon(p[:8].reshape((4, 2)))
    if not g.is_valid or not p.is_valid:
        return 0
    inter = Polygon(g).intersection(Polygon(p)).area
    union = g.area + p.area - inter
    if union == 0:
        return 0
    else:
        return inter/union
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档