给定一组 2D space 中的边界框,将它们分组为行
Given a set of bounding boxes in an 2D space, group them into rows
给定一组 N 个顶点坐标的边界框:
"vertices": [
{
"y": 486,
"x": 336
},
{
"y": 486,
"x": 2235
},
{
"y": 3393,
"x": 2235
},
{
"y": 3393,
"x": 336
}
]
我想将边界框分组到行中。换句话说,给定此图像中边界框的图形表示:
我想要一个算法 returns:
[1,2,3]
[4,5,6]
[7,8]
[编辑:澄清]分组决策(例如 [4,5,6] 和 [7,8])应基于某种误差最小化,例如最小二乘法。
是否有执行此操作的算法或库(最好在 python 中)?
我认为这是一个聚类问题。其实因为可以忽略x坐标,所以我觉得这是一个1维的聚类问题。一些标准的聚类算法(例如 k-means)有助于最小化聚类中心的平方和,这相当于您正在寻找的东西。不幸的是,他们不能保证找到全球最佳解决方案。一维聚类是一种特殊情况,有精确的算法 - 请参阅 Cluster one-dimensional data optimally?。
给定一组 N 个顶点坐标的边界框:
"vertices": [
{
"y": 486,
"x": 336
},
{
"y": 486,
"x": 2235
},
{
"y": 3393,
"x": 2235
},
{
"y": 3393,
"x": 336
}
]
我想将边界框分组到行中。换句话说,给定此图像中边界框的图形表示:
我想要一个算法 returns:
[1,2,3]
[4,5,6]
[7,8]
[编辑:澄清]分组决策(例如 [4,5,6] 和 [7,8])应基于某种误差最小化,例如最小二乘法。
是否有执行此操作的算法或库(最好在 python 中)?
我认为这是一个聚类问题。其实因为可以忽略x坐标,所以我觉得这是一个1维的聚类问题。一些标准的聚类算法(例如 k-means)有助于最小化聚类中心的平方和,这相当于您正在寻找的东西。不幸的是,他们不能保证找到全球最佳解决方案。一维聚类是一种特殊情况,有精确的算法 - 请参阅 Cluster one-dimensional data optimally?。