将 YOLO26 与 SAHI 配合用于切片推理#
本指南介绍如何将 YOLO26 与 SAHI(切片辅助超推理)配合使用。我们将深入介绍 SAHI 是什么、为什么切片推理对大规模应用至关重要,以及如何将这些功能与 YOLO26 集成,以提升目标检测性能。
SAHI 简介#
SAHI(切片辅助超推理)是一个创新库,旨在优化针对大规模和高分辨率图像的目标检测算法。它的核心功能是将图像划分为易于处理的切片,在每个切片上运行目标检测,然后将结果拼接回去。SAHI 兼容多种目标检测模型,包括 YOLO 系列,因此兼具灵活性,并能确保计算资源得到优化利用。
观看: 如何将 SAHI 与 Ultralytics YOLO26 搭配使用以检测小目标 | 切片辅助超推理 🚀
SAHI 的主要功能#
- 无缝集成:SAHI 可以轻松集成 YOLO 模型,让你无需大幅修改代码即可开始切片和检测。
- 资源高效:将大型图像拆分为较小的部分后,SAHI 可优化内存使用,让你能够在资源有限的硬件上执行高质量检测。
- 高精度:SAHI 通过在拼接过程中采用智能算法合并重叠的检测框,保持检测精度。
什么是切片推理?#
切片推理是指将大型或高分辨率图像划分为较小的片段(切片),在这些切片上执行目标检测,然后重新组合切片,以还原原始图像中的目标位置。这项技术在计算资源有限,或处理可能导致内存问题的超高分辨率图像时非常有用。
切片推理的优势#
-
降低计算负担:较小的图像切片处理速度更快、占用内存更少,因此即使在性能较低的硬件上也能顺畅运行。
-
保持检测质量:由于每个切片都是独立处理的,只要切片足够大,能够涵盖关注的目标,目标检测质量就不会下降。
-
增强可扩展性:这项技术可以更轻松地将目标检测扩展到不同尺寸和分辨率的图像,适用于从卫星图像到医学诊断的各种应用。
| 不使用 SAHI 的 YOLO26 | |
|---|---|
![]() | ![]() |
安装和准备#
安装#
首先,安装最新版本的 SAHI 和 Ultralytics:
pip install -U ultralytics sahi导入模块并下载资源#
以下是下载一些测试图像的方法:
from sahi.utils.file import download_from_url
# 下载测试图像
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)使用 YOLO26 进行标准推理#
实例化模型#
你可以像这样实例化 YOLO26 模型来执行目标检测:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path="yolo26n.pt",
confidence_threshold=0.3,
device="cpu", # 或 'cuda:0'
)执行标准预测#
使用图像路径执行标准推理。
from sahi.predict import get_prediction
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
result.export_visuals(export_dir="demo_data/", hide_conf=True)可视化结果#
导出并可视化预测的边界框和掩码:
from PIL import Image
# 打开预测图像
processed_image = Image.open("demo_data/prediction_visual.png")
# 显示预测图像
processed_image.show()使用 YOLO26 进行切片推理#
通过指定切片尺寸和重叠比例来执行切片推理:
from PIL import Image
from sahi.predict import get_sliced_prediction
result = get_sliced_prediction(
"demo_data/small-vehicles1.jpeg",
detection_model,
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
# 导出结果
result.export_visuals(export_dir="demo_data/", hide_conf=True)
# 打开预测图像
processed_image = Image.open("demo_data/prediction_visual.png")
# 显示预测图像
processed_image.show()处理预测结果#
SAHI 提供了一个 PredictionResult 对象,可将其转换为多种标注格式:
# 访问目标预测列表
object_prediction_list = result.object_prediction_list
# 转换为 COCO 标注和 COCO 预测格式
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]批量预测#
要对目录中的图像进行批量预测:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="yolo26n.pt",
model_device="cpu", # 或 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)现在,你已准备好将 YOLO26 与 SAHI 配合使用,执行标准推理和切片推理。
引用与致谢#
如果你在研究或开发工作中使用 SAHI,请引用 SAHI 原论文并注明作者:
@article{akyon2022sahi,
title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
journal={2022 IEEE International Conference on Image Processing (ICIP)},
doi={10.1109/ICIP46576.2022.9897990},
pages={966-970},
year={2022}
}我们衷心感谢 SAHI 研究团队创建并维护这一对计算机视觉社区极具价值的资源。如需详细了解 SAHI 及其创建者,请访问 SAHI GitHub 仓库。
常见问题#
将 Ultralytics YOLO26 与 SAHI(切片辅助超推理)集成进行切片推理,可通过将高分辨率图像划分为易于处理的切片,优化目标检测任务。这种方法可以改善内存使用并确保较高的检测准确率。首先,你需要安装 ultralytics 和 sahi 库:
pip install -U ultralytics sahi然后,下载测试图像:
from sahi.utils.file import download_from_url # 下载测试图像 download_from_url( "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg", "demo_data/small-vehicles1.jpeg", ) download_from_url( "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png", "demo_data/terrain2.png", )如需更详细的说明,请参阅我们的切片推理指南。
在大型图像目标检测中使用 SAHI 和 Ultralytics YOLO26 有以下几项优势:
- 降低计算负担:较小的切片处理速度更快、占用内存更少,因此即使在资源有限的硬件上,也能执行高质量检测。
- 保持检测准确率:SAHI 使用智能算法合并重叠的检测框,从而保持检测质量。
- 增强可扩展性:SAHI 可将目标检测任务扩展到不同尺寸和分辨率的图像,因此适用于卫星图像分析和医学诊断等多种应用。
在我们的文档中详细了解切片推理的优势。
可以,使用 YOLO26 和 SAHI 时,你可以将预测结果可视化。以下是导出并可视化结果的方法:
from PIL import Image result.export_visuals(export_dir="demo_data/", hide_conf=True) processed_image = Image.open("demo_data/prediction_visual.png") processed_image.show()此命令会将可视化预测结果保存到指定目录,然后你可以加载图像,在笔记本或应用程序中查看。详细指南请参阅标准推理部分。
SAHI(切片辅助超推理)提供了多项功能,可与 Ultralytics YOLO26 的目标检测能力互补:
- 无缝集成:SAHI 可以轻松集成 YOLO 模型,只需极少的代码调整。
- 资源高效:它会将大型图像划分为较小的切片,从而优化内存使用和处理速度。
- 高准确率:通过在拼接过程中有效合并重叠的检测框,SAHI 能够保持较高的检测准确率。
如需深入了解,请阅读 SAHI 的主要功能。
要使用 YOLO26 和 SAHI 处理大规模推理项目,请遵循以下最佳实践:
- 安装所需库:确保你使用的是最新版本的 ultralytics 和 sahi。
- 配置切片推理:根据具体项目确定最佳切片尺寸和重叠比例。
- 运行批量预测:利用 SAHI 的功能对目录中的图像执行批量预测,以提高效率。
批量预测示例:
from sahi.predict import predict predict( model_type="ultralytics", model_path="path/to/yolo26n.pt", model_device="cpu", # 或 'cuda:0' model_confidence_threshold=0.4, source="path/to/dir", slice_height=256, slice_width=256, overlap_height_ratio=0.2, overlap_width_ratio=0.2, )如需了解更详细的步骤,请访问我们的批量预测章节。

