Koldim2001/YOLO-Patch-Based-Inference

Python library for YOLO small object detection and instance segmentation

What it solves

该库解决了在高分辨率图像中检测小目标的难题——在标准神经网络中,这些小目标往往会丢失或被下采样。它简化了“基于补丁的推理”(类似 SAHI)的流程,即将图像划分为更小且有重叠的裁剪块,以确保小目标以更高的相对尺度被捕获。

How it works

库实现了一个两步管线用于目标检测和实例分割:

  1. CroppingMakeCropsDetectThem 类根据用户自定义的尺寸和重叠比例将图像切分为若干补丁,然后在每个补丁上运行支持的 YOLO 模型。
  2. ConsolidationCombineDetections 类合并所有重叠裁剪的结果,并使用 IoU 或 IoS 指标进行非极大值抑制(NMS),去除重复检测。

它支持广泛的 Ultralytics 模型,包括 YOLOv8、v9、v10、v11、v12、FastSAM 和 RTDETR。

Who it’s for

面向需要在大图像中检测小目标的计算机视觉开发者和研究者,使用基于 YOLO 的模型并希望以简洁的方式处理图像切片和结果合并。

Highlights

  • Broad Model Support:兼容几乎所有最新的 Ultralytics 检测和分割模型。
  • Flexible Tiling:可自定义裁剪尺寸和重叠比例,以优化检测精度。
  • Advanced NMS:提供“智能排序器”和类别无关的 NMS 选项,更好地处理重复抑制。
  • Custom Visualization:内置 visualize_results 函数,可对边界框和分割掩码进行时尚、可定制的渲染。
  • Performance Options:支持批量推理以加速处理,并提供 memory_optimize 开关,在内存占用与分割精度之间取得平衡。