obss/sahi
Framework agnostic sliced/tiled inference + interactive ui + error analysis plots
什么是 SAHI?
SAHI(Slicing‑Aided Hyper Inference)是一个轻量级的 Python 库,可轻松在超大图像或视频上运行 目标检测 和 实例分割 模型。核心思想是 切片推理:输入图像会自动被切割成重叠的瓦片,每个瓦片被送入标准检测器,然后将结果合并回来。这解决了模型仅看到低分辨率整体图像时容易遗漏微小物体的常见问题。
主要特性(README 中描述)
| 特性 | 说明 |
|---|---|
| 切片推理 | 自动将大图像切分为瓦片,对每个瓦片运行任何支持的检测器,并将检测结果合并。 |
| 框架无关 | 支持 Ultralytics YOLO(v5, v8, YOLO‑X, YOLO‑E 等)、MMDetection、Detectron2、HuggingFace 🤗 Transformers、TorchVision、Roboflow / RF‑DETR 和 GroundingDINO。 |
| CLI 工具 | sahi predict、predict‑fiftyone、coco slice、coco evaluate、coco analyse、coco yolo 等,支持快速命令行使用和数据集处理。 |
| FiftyOne 集成 | 在 FiftyOne 应用中可视化预测结果和错误分析。 |
| COCO 工具 | 切分 COCO 数据集,格式转换,评估 AP/AR,生成错误分析图表。 |
| 视频支持 | 相同的切片逻辑适用于视频帧,支持实时或批量推理。 |
| 预训练模型支持 | 无需额外代码——只需将 SAHI 指向支持库中的任意模型检查点即可。 |
| 丰富的文档与笔记本 | 每个主要检测器都有 Colab 笔记本,完整的文档网站,以及一篇描述该方法的论文(ICIP 2022)。 |
安装(快速)
pip install sahi # 核心库
# 可选 – 安装你想要使用的检测器,例如:
# pip install ultralytics>=8.3 # YOLO 系列
# pip install torch torchvision # 用于 TorchVision 模型
# pip install transformers timm # HuggingFace 模型
# pip install yolov5==7.0.14 # YOLOv5
# pip install mim && mim install mmdet==3.3.0 # MMDetection
README 还提供了 PyTorch、CUDA 和每个检测框架的详细版本匹配说明。
快速入门示例(来自文档)
from sahi import AutoDetectionModel, get_sliced_prediction
# 选择任意支持的模型 – 这里使用 ultralytics 的 YOLOv8
model = AutoDetectionModel.from_pretrained(
model_type="yolov8",
model_path="yolov8n.pt",
confidence_threshold=0.3,
device="cuda:0",
)
result = get_sliced_prediction(
"large_image.jpg",
detection_model=model,
slice_height=512,
slice_width=512,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
# 可视化或导出合并后的检测结果
result.save("output.jpg")
相同的流程也适用于视频(对每一帧调用 get_sliced_prediction)以及其它支持的后端。
何时使用 SAHI?
- 卫星或航空影像:单张图像可达数万像素宽,小物体(汽车、船只、动物)容易被遗漏。
- 医学影像(如全切片病理):需要在不降采样的情况下处理高分辨率扫描。
- 监控视频:希望在多帧中高效检测微小物体。
- 基准测试 / 研究 – 库包含切分 COCO 数据集、评估 AP/AR、生成错误分析图表的工具。
- 快速原型开发 – 无需重写现有检测器代码;只需用 SAHI 的 CLI 或 Python API 包装即可。
资源
- 论文:Slicing Aided Hyper Inference(ICIP 2022)– DOI 10.1109/ICIP46576.2022.9897990
- 文档:https://github.com/obss/sahi/tree/main/docs
- Colab 笔记本:每个主要检测器都有(README 中的链接)。
- HuggingFace Space 演示 – https://huggingface.co/spaces/fcakyon/sahi-yolox
- 社区:600+ 引用,竞赛获奖者,错误分析讨论论坛。
总结:SAHI 是一个真实、持续维护的开源库,通过自动切片、预测和合并结果,使任何主流目标检测模型都能应用于超大图像或视频流。它专注于 AI/ML 领域(计算机视觉),为开发者提供 CLI 便利性和 Python API。
相关
- 项目
- 项目
- 项目
- 项目
- 项目