Koldim2001/YOLO-Patch-Based-Inference
Python library for YOLO small object detection and instance segmentation
What it solves
该库解决了在高分辨率图像中检测小目标的难题——在标准神经网络中,这些小目标往往会丢失或被下采样。它简化了“基于补丁的推理”(类似 SAHI)的流程,即将图像划分为更小且有重叠的裁剪块,以确保小目标以更高的相对尺度被捕获。
How it works
库实现了一个两步管线用于目标检测和实例分割:
- Cropping:
MakeCropsDetectThem类根据用户自定义的尺寸和重叠比例将图像切分为若干补丁,然后在每个补丁上运行支持的 YOLO 模型。 - Consolidation:
CombineDetections类合并所有重叠裁剪的结果,并使用 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开关,在内存占用与分割精度之间取得平衡。