#bounding-box #boxes #compute #metrics #rotated

powerboxesrs

用于操作和计算盒子度量值的实用函数

9 个版本

0.2.3 2024 年 5 月 27 日
0.2.2 2024 年 2 月 24 日
0.2.1 2024 年 1 月 15 日
0.2.0 2023 年 12 月 28 日
0.1.3 2023 年 11 月 22 日

4#boxes

Download history 43/week @ 2024-05-15 163/week @ 2024-05-22 34/week @ 2024-05-29 3/week @ 2024-06-05

每月下载量 578

MIT 许可证

82KB
1.5K SLoC

CI Coverage Crates.io

PowerBoxesrs

Powerboxes 是一个包含转换边界框和计算度量的实用函数的包。

安装

cargo add powerboxesrs

可用函数

盒子转换和实用工具

  • box_areas: 计算盒子列表的面积
  • box_convert: 将一个盒子从一个格式转换为另一个格式。支持的格式有 xyxyxywhcxcywh
  • remove_small_boxes: 删除面积小于阈值的盒子
  • mask_to_boxes: 将掩码转换为盒子列表

盒子度量

  • iou_distance: 计算两组盒子的交并比矩阵
  • parallel_iou_distance: 并行计算两组盒子的交并比矩阵
  • giou_distance: 计算两组盒子的广义交并比矩阵
  • parallel_giou_distance: 并行计算两组盒子的广义交并比矩阵
  • tiou_distance: 计算两组盒子的跟踪交并比矩阵

旋转盒子度量

  • rotated_iou_distance: 计算以 cxcywha 格式表示的两个旋转盒子集合的交并比矩阵
  • rotated_giou_distance: 计算以 cxcywha 格式表示的两个旋转盒子集合的广义交并比矩阵

盒子 NMS

  • nms: 非最大值抑制,返回要保留的盒子的索引
  • rtree_nms: 非最大值抑制,返回要保留的盒子的索引,内部使用 r-tree 以避免二次复杂度,当有大量盒子时很有用。

在 Rust 中使用它

查看 文档 了解更多详情。以下是一个简单的示例

use ndarray::array;
use powerboxesrs::boxes::box_areas;
let boxes = array![[1., 2., 3., 4.], [0., 0., 10., 10.]];
let areas = box_areas(&boxes);
assert_eq!(areas, array![4., 100.]);

依赖关系

~4MB
~78K SLoC