ml.utils
— ML 工具集¶
ml.utils
模块包含用于机器学习的工具类和函数。
class NMS - 软非最大抑制 (Soft-Non-Maximum Suppression)¶
NMS
对象用于收集一组边界框及其关联的分数,然后筛选出重叠且分数较低的边界框。此外,它还将子窗口中检测到的边界框重新映射回原始图像坐标。
构造¶
- class ml.utils.NMS(window_w: int, window_h: int, roi: tuple[int, int, int, int]) NMS ¶
创建一个
NMS
对象,指定给定的窗口大小和感兴趣区域(ROI)。窗口的宽度/高度与图像模型的输入张量相同。ROI 是由Normalization()
对象返回的感兴趣区域,它对应于模型运行时图像的区域。这允许NMS
对象将子窗口中检测到的边界框重新映射回原始图像坐标。方法¶
- add_bounding_boxes(xmin: float, ymin: float, xmax: float, ymax: float, score: float, label_index: int) None ¶
向
NMS
对象添加一个边界框,包含给定的坐标、分数和标签索引。xmin
、ymin
、xmax
和ymax
是边界框的坐标,范围为 0.0 到 1.0,其中 (0.0, 0.0) 是图像的左上角,(1.0, 1.0) 是图像的右下角。score
是边界框的置信度分数(0.0-1.0)。label_index
是与边界框相关联的标签索引。
- get_bounding_boxes(threshold: float = 0.1, sigma: float = 0.1) list[tuple[int, int, int, int, float, int]] ¶
返回一个已被
NMS
对象过滤并重新映射到原始图像坐标的边界框列表。边界框元组为(x, y, w, h, score, label_index)
。调用此方法后,如果您希望处理一组新的边界框,应创建一个新的NMS
对象。边界框的分数必须高于
threshold
才会被保留。sigma
控制用于通过软非最大抑制算法对重叠边界框应用分数惩罚的高斯函数。较高的sigma
值将导致对重叠边界框进行更强烈的抑制。