跳转至

📝 更新日志

🚀 SAHI v0.12.8 发布说明

此补丁版本新增了 LibreYOLO 检测后端,修复了 COCO 类别重映射、切片、掩码转换和框合并中的七个问题,并加快了布尔掩码的生成速度。

✨ 新功能

  • LibreYOLO 检测后端 (#1425)。使用 pip install libreyolo 安装后,通过 model_type="libreyolo" 加载 MIT 许可的 LibreYOLO 模型。它复用 Ultralytics 封装,所有语言的模型指南都已包含它 (#1467)。

🐛 修复

  • 与切片边界相接的切片标注会被保留 (#1462)。当多边形的边恰好落在切片边界上时,交集会同时包含多边形和线段,标注会因面积为 0 而被丢弃。现在会保留其中的多边形部分。
  • NMM 会合并重叠度恰好等于匹配阈值的框 (#1464)。这些框此前会被保留框占用但不会被合并,因此会从输出中消失,保留框也不会扩大。
  • get_bool_mask_from_coco_segmentation 返回布尔数组 (#1463)。此前返回的是 float64 画布,因此 Mask.bool_mask 无法用于图像索引。
  • 类别重映射对每个 id 只映射一次 (#1465)。使用 remapping_dict={0: 1, 1: 2} 时,两个类别都会变成 id 2,加载时会抛出 KeyError。
  • 子采样、上采样、按面积过滤和裁剪 bbox 后的 Coco 对象保留正确的类别 (#1466)。此前它们会对已经重映射的 id 再次应用 remapping_dict,clip_bboxes_to_img_dims=True 也会受到影响。
  • 类别感知的 NMM 和 greedy NMM 可以处理没有检测结果的图像 (#1470),不再抛出 AttributeError。
  • fix_shift_amount_list 和 fix_full_shape_list 接受空列表 (#1459),不再抛出 IndexError。

⚡ 性能

  • 从 COCO 多边形生成布尔掩码的速度提升约 8 倍 (#1463)。掩码现在绘制在 uint8 画布上而不是 float64 画布上,在 Intel Core i7-13850HX 上生成一张 1080p 掩码的时间从 1.03 ms 降至 0.13 ms,内存占用减少到八分之一。

📚 文档

  • 中文和土耳其语文档再次与英文文档保持一致 (#1461)。
  • RT-DETR 指南使用该后端实际加载的 Ultralytics 权重 (#1467),coco slice 的 CLI 文档不再列出它并不支持的 --backend 选项 (#1460)。

🚀 SAHI v0.12.7 发布说明

此补丁版本为 COCO 评估新增了可选的 ultrafast-pycocotools 后端,修复了 COCO 和视频工具中的四处崩溃与计数错误,提升了后处理和切片预测的速度,并将 Python 3.10 及以上版本的 torch 最低版本提高到 2.13.0。

✨ 新功能

  • sahi coco evaluate 可以使用 ultrafast-pycocotools 运行 (#1452)。使用 pip install "sahi[ultrafast]" 安装后,在命令行中传入 --backend ultrafast,或在 sahi.scripts.coco_evaluation.evaluate 中传入 backend="ultrafast"。默认后端仍为 pycocotools,测试会检查两个后端在 bbox 和 segm 上返回相同的结果 (#1457)。

🐛 修复

  • COCO 评估支持以列表形式传入 IoU 阈值 (#1452)。此前以列表形式传入 iou_thrs 时,汇总步骤会因 NumPy 的 "nonzero on 0d arrays" 错误而中断。现在阈值始终以数组形式保存。
  • 视频预测正确计算跳过的帧 (#1449)。此前进度条总数只在显示可视化时才考虑 frame_skip_interval,导出视频使用的是 fps / frame_skip_interval 而不是 fps / (frame_skip_interval + 1),因此播放速度比源视频快。
  • remove_invalid_coco_results 会跳过不是四个值的 bbox (#1455),不再抛出 IndexError。
  • get_coco_segmentation_from_obb_points 对空输入返回空列表 (#1456),不再抛出 IndexError。

⚡ 性能

  • 边界框分散时,NMS 和贪婪 NMM 重新使用存储对路径 (#1443)。自 0.12.5 起,它们总是按需从 STRtree 读取行,而在边界框分散时这比存储对列表更慢。现在它们会像 NMM 一样根据拥挤程度选择路径,输出不变。
  • 流式后处理会移除已处理完的边界框 (#1426)。已确定的边界框会从后续的 STRtree 查询中移除,因此拥挤输入所查询的树会随着循环运行不断缩小。
  • 切片预测只解码一次源图像 (#1445)。get_sliced_prediction 此前会解码文件四次,现在复用切片时已有的解码结果。
  • slice_image 的峰值内存更低 (#1421)。本地文件直接通过 OpenCV 解码为 NumPy 数组,不再经过 Pillow;read_image_size 从文件头读取尺寸,无需解码图像。16 位文件以及其他 OpenCV 无法处理的文件仍像以前一样走 Pillow 路径。

📦 构建

  • Python 3.10 及以上版本的 torch 最低版本为 2.13.0 (#1440),Python 3.9 为 2.8.0,Python 3.8 为 2.4.1,均为各版本仍提供 wheel 的最新 torch。
  • 开发环境安装会选择与机器匹配的 torch 构建 (#1446),CUDA 或 CPU,而不再总是 CPU。
  • CI 测试 Python 3.13 和 3.14 (#1433)。

📚 文档

  • 文档中的命令、默认值和示例与代码一致 (#1427, #1452)。其中包括 coco evaluate 的选项,现在列出的是 --type segm、--max_detections 和 --backend。
  • 快速入门以一次预测结束,页面带有下一页链接,API 参数以表格展示 (#1428, #1429)。
  • 文档指向实际发布的网站并提供 markdown (#1431),演示链接在 GitHub 之外也能打开 (#1435)。
  • 新增一个测量批量切片推理速度的 notebook (#1447),在运行它的机器上测量,并检查批处理不会改变检测结果。
  • README 安装示例使用 CUDA 13.0 上的 torch 2.13.0。
  • 常规清理 (#1430, #1436, #1441, #1442, #1444):清除 notebook 输出,修复 autoref 警告和失效链接,统一标点。

🚀 SAHI v0.12.6 发布说明

此补丁版本包含一项性能修复。NMM 后处理不再随着合并组变大而变慢,而拥挤场景正好会产生这种形状的合并组。

⚡ 性能

  • NMM 不再重复扫描已经填好的合并列表 (#1422)。此前每个候选框都要先在已合并到当前保留框的 Python 列表中查找一遍,然后才去检查 merge_to_keep 数组。这次查找的开销与组内已有边界框的数量成正比,而拥挤场景最终只会形成少数几个非常大的组,因此几乎每个候选框都要付出这份开销。边界框被追加到合并列表和被记录进 merge_to_keep 是同一步完成的,所以仅凭数组查找就已经能得出结论,列表查找只是重复了一遍。移除它不会改变任何一个分组,并把合并记账的复杂度从与组大小成二次关系降为线性。稠密路径、存储对路径和流式路径共用这段记账逻辑,因此三者都会受益,numba 后端也通过稠密路径继承了该改动。

拥挤场景下 NMM 合并耗时的优化前后对比

在密集布局上使用 IOS / 0.3 运行 NMM:

边界框数量 优化前 优化后 加速比
2000 324 ms 199 ms 1.6x
5000 2132 ms 896 ms 2.4x
10000 13303 ms 3531 ms 3.8x
20000 80153 ms 14625 ms 5.5x
33337 297170 ms 48926 ms 6.1x

📚 文档

  • 中文文档已覆盖 0.12.5 (#1423)。

🚀 SAHI v0.12.5 发布说明

此补丁版本完成了从 0.12.2 开始的后处理内存优化工作。此前的优化后来被发现只在边界框 较为分散时有效;本版本还修复了测试过程中发现的两个正确性问题。

🐛 修复

  • 后处理内存占用不再受边界框密集程度影响 (#1417)。通过为每对相交的边界框存储一条记录来避免 N x N 重叠矩阵,只能在边界框较为分散时节省内存。当边界框大量重叠时,几乎每个边界框都与 其他边界框相交,相交对数量会接近 N^2,所存列表的开销也会接近它所取代的矩阵;而这恰好是 切片推理在拥挤场景和小目标图像中产生的布局。合并循环每次只读取一行匹配项,NMS 和 greedy NMM 也只会读取保留下来的边界框所对应的行,因此现在会按需从 STRtree 查询这些行。无论边界框如何布局, 峰值内存都限制在 O(N + max_degree)。NMM 会为每个边界框而不只是保留框读取一行,因此在预计 相交对列表不会过大时仍会保留该列表。
  • 非正数 match_threshold 不再构建度量矩阵 (#1417)。两种度量值都非负,因此每一对边界框都满足 metric >= 0,邻接关系就是完全图。稠密路径此前仍会计算所有重叠度来得出这一结果,导致这个本来 不需要任何重叠计算的配置反而开销最大,并在 25000 个边界框时重现了 #1374 中的内存不足问题。现在仅根据分数顺序即可得出结果。
  • NMM 不再将保留框合并到自身 (#1416)。 此前通过让保留框的 merge_to_keep 条目保持为 -1 来标记它,但 -1 同时也用于标记尚未被认领的 边界框,因此稍后处理的边界框可能会认领一个保留框,并将其加入合并列表。当重复框的分数相同时, 这会使保留框出现在自身的合并列表中,同一个索引既能作为保留框访问,又能作为被合并框访问。 现在保留框会指向自身,使其无法再被认领,同时不改变其他结果。
  • 零面积边界框不再触发除零警告 (#1416)。 此前度量计算会对每一对边界框执行 inter / denom,之后才丢弃无效条目,因此退化边界框会产生 RuntimeWarning。现在会屏蔽除法运算,而不是事后屏蔽结果。

⚡ 性能

在密集和分散布局上使用 IOS / 0.3 进行后处理:

布局 边界框数量 NMS 优化前 NMS 优化后 优化前峰值内存 优化后峰值内存
密集 33337 47180 ms 135 ms 3416 MB 4 MB
密集 20000 15931 ms 57 ms 1232 MB 2 MB
密集 10000 2717 ms 25 ms 311 MB 1 MB
分散 33336 539 ms 188 ms 65 MB 4 MB
  • numba 后端根据边界框密度选择执行路径 (#1418)。其 NMS 和 greedy NMM 循环此前无论输入如何, 都会执行穷举式成对扫描。如果只按预测结果数量选择路径,会使拥挤场景的性能倒退,因为 JIT 循环会 跳过已抑制的候选框,即使输入规模很大也仍有竞争力。因此现在根据邻居数量进行选择,并通过对边界框 采样来估算该数量。此外,分数排序此前使用本身具有二次复杂度的插入排序,现在改为与其他后端相同的 lexsort,包括分数相同时也能生成完全一致的顺序。
每个边界框的平均邻居数(20000 个边界框) NMS 优化前 NMS 优化后 greedy NMM 优化前 greedy NMM 优化后
0.0 909 ms 43 ms 842 ms 89 ms
0.8 781 ms 52 ms 757 ms 84 ms
5.1 495 ms 118 ms 479 ms 151 ms
20.1 241 ms 146 ms 236 ms 148 ms
78.9 141 ms 73 ms 143 ms 71 ms

🚀 SAHI v0.12.4 发布说明

此补丁版本修复了 sahi 命令行界面的问题:在没有预先安装 matplotlib 的环境中,该界面此前 无法使用。

🐛 修复

  • matplotlib 现已声明为依赖项 (#1414)。 sahi.cli 会导入 sahi.scripts.coco_error_analysis,后者又会在模块级导入 matplotlib, 但 [project].dependencies 和所有可选依赖中此前都没有列出 matplotlib。由于采用立即导入, 在全新环境中所有 sahi 命令都会失败,包括 sahi version 等与绘图无关的命令。这个问题一直 没有被发现,是因为典型环境通常会随其他软件包一同安装 matplotlib。

🚀 SAHI v0.12.3 发布说明

此补丁版本启用了 Apple Silicon GPU、增加了土耳其语文档,并清理了自 0.12.2 以来积累的 CI 维护事项。

🐛 修复

  • 设备选择和后处理现在可以检测 Apple MPS (#1408)。select_device() 此前只检测 CUDA, 因此即使 Metal 后端可用,macOS 用户也会回退到 CPU。自动选择顺序现在为 CUDA → MPS → CPU; 当任一 GPU 可用时,都会选择 torchvision 后处理后端。检测通过 torch.backends.mps.is_available() 完成;所有受支持的 torch 版本都提供该方法,并且在非 Apple 构建上会返回 False。
  • 将 threading.currentThread() 替换为 current_thread() (#1392),消除了较新 Python 版本中的 DeprecationWarning。

📚 文档

  • 新增文档的土耳其语翻译,并提供与其匹配的构建步骤和 zensical 配置 (#1401、 #1402、 #1404)。
  • 修正多语言子路径链接 (#1403)。
  • 后端文档现在同时列出 MPS 和 CUDA (#1410)。

🧹 维护与 CI

  • 新增设备选择和后处理后端解析测试 (#1409)。
  • 将 astral-sh/setup-uv 从 8.3.2 升级到 9.0.0 (#1399),将 actions/setup-python 从 6.3.0 升级到 7.0.0 (#1400),并将 actions/checkout 从 7.0.0 升级到 7.0.1 (#1398)。
  • 将 twine 的版本要求放宽到 >=5.1.1,<8.0.0 (#1406)。

⚡ 性能

在 Apple M2 Pro 上使用 IOU 度量进行 NMS,取 5 次运行中的最佳成绩:

边界框数量 numpy numba torchvision (MPS)
100 0.14 ms 0.02 ms 1.44 ms
500 1.53 ms 0.36 ms 1.42 ms
1000 5.46 ms 1.40 ms 1.45 ms
5000 81.37 ms 34.16 ms 4.05 ms
20000 1237.70 ms 462.56 ms 11.75 ms

当边界框数量少于约 500 个时,numba 仍然更快,但此时差异仅约为一毫秒。

完整更新日志: https://github.com/obss/sahi/compare/0.12.2...0.12.3

🚀 SAHI v0.12.2 发布说明

此补丁版本修复了对大量预测结果进行后处理时的内存不足和严重性能下降问题,同时包含自 0.12.1 以来积累的模型、打包和文档修复。

🐛 修复

  • 后处理不再为大型输入分配 N x N 矩阵 (#1395)。v0.11 使用 shapely STRtree,只比较 相邻的边界框;v0.12 将其替换为稠密矩阵,无论边界框如何布局,时间和空间复杂度都是 O(N^2)。 TorchVision 后端没有输入规模保护,会在 GPU 上构建七个 N x N 张量,因此最先耗尽内存。 greedy 循环只会使用 matrix >= match_threshold 的结果,而不会使用度量值本身,因此现在会根据 STRtree 报告的相交对直接构建经过阈值过滤的邻接关系,并以 CSR 格式存储。修复 #1374。
  • 支持按类名加载本地 RF-DETR 模型,并修正 Roboflow 文档 (#1394)。
  • MMDetection 的 has_mask 现在可以处理 RepeatDataset (#1387)。
  • 在 import_utils 中强制执行依赖项和最低版本检查 (#1377)。
  • 所有 OpenCV 发行包保持相同版本,避免安装相互冲突的软件包 (#1393)。

📚 文档

  • 更新并补全中文翻译 (#1371)。
  • 文档默认使用 YOLO26,并链接至 Ultralytics YOLO26 页面 (#1386);CLI 模型列表中也加入了 YOLO26 (#1378)。

🧹 维护与 CI

  • 将 astral-sh/setup-uv 从 8.2.0 升级到 8.3.2 (#1389),并更新 actions/checkout / actions/cache (#1385)。
  • 将 build 的版本要求放宽到 >=0.10,<1.6 (#1382)。

⚡ 性能

33337 个边界框,使用 IOS 度量,阈值为 0.3。优化前后的输出相同 (greedy_nmm 生成 6571 个预测结果,nmm 生成 4639 个预测结果)。

CPU(Intel Core i7-13850HX):

后端 greedy_nmm 优化前 优化后 nmm 优化前 优化后
numpy 15.88s 0.18s 27.06s 0.21s
torchvision 6.22s 0.18s 17.34s 0.21s
numba 1.53s 1.55s 18.56s 0.22s

CUDA(RTX 4000 Ada Laptop,12 GB):

后端 greedy_nmm 优化前 优化后 nmm 优化前 优化后
numpy 15.93s 0.26s 27.00s 0.21s
torchvision OOM,4.14 GiB 0.17s OOM,4.14 GiB 0.23s
numba 1.09s 1.09s 18.82s 0.22s

少于 2000 个边界框的输入以及任何非正数阈值仍使用速度更快的稠密路径。

完整更新日志: https://github.com/obss/sahi/compare/0.12.1...0.12.2

🚀 SAHI v0.12.0 发布说明

这是 SAHI 迄今为止规模最大的版本之一。自 0.11.34 以来共包含 95 个提交 (同时纳入了 0.11.35/0.11.36 热修复版本),带来了重新设计的后处理引擎、 真正的批量推理、无 PyTorch 核心、新增的开放词汇和分割模型,以及全面重构的文档。

🚀 关键更新

⚡ 批量推理、无 PyTorch 核心与加速后处理后端

  • 批量推理:端到端批量处理切片,大幅提升 GPU 吞吐量 (#1336)。
  • 无 PyTorch 核心:核心切片和后处理流程不再硬依赖 PyTorch;只需安装所用后端需要的依赖 (#1336)。
  • 可插拔后处理后端:NMS/NMM 可以在以下后端运行: NumPy(无重型依赖)、Numba(JIT 加速 CPU)或 TorchVision(GPU);系统会根据当前环境自动选择 (#1336)。

🧠 新增模型支持

  • GroundingDINO (HuggingFace):通过 SAHI 的切片流程进行零样本、文本提示驱动的开放词汇检测, 并提供专用的演示 notebook (#1361)。
  • HuggingFace 通用分割 (#1360)。
  • RF-DETR-Seg 分割模型 (#1315)。
  • YOLOE 检测模型 (#1268)。
  • YOLO-World 开放词汇检测 (#1267)。
  • 在 Ultralytics 后端、CLI、文档和 notebooks 中支持 YOLO26 (#1321, #1322, #1356)。

🎚️ 更精细的切片与后处理控制

  • 在 get_sliced_prediction 中新增 force_postprocess_type (#1346)。
  • 所有预测 API 均支持在每次调用时覆盖 confidence_threshold (#1352)。
  • Python API 和 CLI 中的 get_sliced_prediction 均支持进度条和进度回调 (#1255)。

📚 文档

  • 文档迁移至 Zensical,并全面清理代码类型标注和格式 (#1344)。
  • 新增中文 (zh) 翻译并保持同步 (#1253, #1332, #1347)。
  • 新增 API 参考、后处理后端指南、安全政策和行为准则 (#1257, #1272, #1349)。

✨ 性能与改进

  • 显著加速后处理:NMS、NMM 和 GREEDYNMM 现使用 shapely STRtree 空间索引, 大幅加速包含大量切片或检测结果的图像合并 (#1248)。
  • 加速 read_image_as_pil,提高切片吞吐量 (#1353)。
  • 改进预测和切片过程中的性能与资源管理 (#1263)。
  • 提升 nms 性能,并正确处理空预测结果 (#1288)。
  • 使用轻量级内置函数 yolo_bbox_to_voc_bbox 替代 pybboxes (#1320),并移除 pybboxes 和 固定版本的 opencv-python 约束 (#1325)。

🐞 Bug 修复

  • 修复空 shapely_annotation.multipolygon 导致边界框为空的问题 (#1140)。
  • 修复 Detectron2 模型的无效分割掩码 (#1262)。
  • 修正 BoundingBox 中的边距计算 (#1286)。
  • 修复 read_image_as_pil 对 CHW 格式图像的处理 (#1287)。
  • 校验 get_slice_bboxes 中的重叠率(必须小于 1.0) (#1285)。
  • 修正 RTDetrDetectionModel 中模型路径无效时的错误消息 (#1266)。
  • 修复后处理模块中不正确的类型标注 (#1327)。
  • Ultralytics 模型支持更多格式,并改进任务处理 (#1321)。
  • 新增 pywinpty,提升 Windows 开发兼容性 (#1319)。

🧹 维护与 CI

  • 将所有 GitHub Actions 固定到提交 SHA,提升供应链安全性 (#1351)。
  • 新增多操作系统 CI 矩阵,并使用更清晰的工作流名称 (#1334)。
  • CI 和文档升级至 Python 3.12/3.13 (#1259, #1260)。
  • 移除已弃用的 YOLOv5 辅助函数、旧版 requirements.txt、MMDet 工作流和未使用的 Netlify 配置 (#1326, #1342, #1341, #1335)。
  • 将依赖更新至 numpy<3.0、torchvision 0.23.0,并纳入大量 Dependabot 依赖更新 (现在也覆盖 pip)。

🙌 新贡献者

  • @vinnik-dmitry07 在 #1140 中首次贡献
  • @nikvo1 在 #1248 中首次贡献
  • Christopher Field (@volks73) 在 #1262 中首次贡献
  • Haotian Gong (@ZephyrKeXiner) 在 #1253 中首次贡献
  • Yogendra Singh (@yogendrasinghx) 在 #1326 中首次贡献
  • Ivan Buldakov (@ibuldakov) 在 #1315 中首次贡献
  • Vignesh Suresh (@srikrishnavignesh) 在 #1360 中首次贡献
  • Ömer Günaydın (@siromermer) 在 #1361 中首次贡献

完整更新日志: https://github.com/obss/sahi/compare/0.11.34...0.12.0

🚀 SAHI v0.11.31 发布说明

我们很高兴地宣布 SAHI v0.11.31 版本,包含重要的 Bug 修复和改进!

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.30...0.11.31

🚀 SAHI v0.11.30 发布说明

我们很高兴地宣布 SAHI v0.11.30 版本,改进了性能追踪、增强了测试基础设施,并提升了开发者体验!

📈 里程碑

  • 引用 SAHI 的学术论文达到 400 篇! (#1168)

🚀 关键更新

⚡️ 性能与监控

  • 修复了 get_sliced_prediction 中的后处理耗时追踪:现在可以正确分离切片、预测和后处理的耗时,实现准确的性能监控 (#1201) - 感谢 @Toprak2!

🧩 框架更新

  • 重构 Ultralytics 支持,增加 ONNX 模型支持和更好的兼容性 (#1184)
  • 更新 TorchVision 支持至最新 API (#1182)
  • 改进 Detectron2 支持,优化配置处理以防止 KeyError 问题 (#1116) - 感谢 @Arnesh1411!
  • 新增 Roboflow 框架支持,用于 Roboflow Universe 的 RF-DETR 模型 (#1161) - 感谢 @nok!
  • 移除 deepsparse 集成,该框架已停止维护 (#1164)

🧪 测试基础设施

  • 测试套件迁移至 pytest (#1187)
    • 通过更好的并行执行加速测试
    • 扩展 Python 版本覆盖(3.8、3.9、3.10、3.11、3.12)
    • 更新至更新的 PyTorch 版本以实现更好的兼容性测试
    • 改进测试组织和可维护性
  • 重构 MMDetection 测试以提高可靠性 (#1185)

💻 开发者体验

  • 新增 Context7 MCP 集成,用于 AI 辅助开发 (#1198)
    • SAHI 的文档现已在 Context7 MCP 中建立索引
    • 为 AI 编码助手提供最新的、版本特定的代码示例
    • 包含 llms.txt 文件,用于 AI 可读文档
    • 查看 Context7 MCP 安装指南 将 SAHI 文档集成到您的 AI 工作流程中

🛠️ 改进

🧹 代码质量与安全性

  • 不可变边界框,用于线程安全操作 (#1194, #1191) - 感谢 @gboeer!
  • 增强类型提示和文档字符串 (#1195) - 感谢 @gboeer!
  • 预测分数运算符重载,支持直观的分数比较 (#1190) - 感谢 @gboeer!
  • PyTorch 现为软依赖,提高灵活性 (#1162) - 感谢 @ducviet00!

🏗️ 基础设施与稳定性

  • 改进依赖管理和文档 (#1183)
  • 增强 pyproject.toml 配置,实现更好的包管理 (#1181)
  • 优化 CI/CD 工作流,用于 MMDetection 测试 (#1186)

🐛 Bug 修复

  • 修复 CUDA 设备选择,支持 cuda:0 以外的设备 (#1158) - 感谢 @0xf21!
  • 修正参数命名,将 'confidence' 改为 'threshold' 以保持一致性 (#1180) - 感谢 @nok!
  • 修复设备选择函数中的正则表达式格式 (#1165)
  • 解决未安装 PyTorch 时的 torch 导入错误 (#1172) - 感谢 @ducviet00!
  • 修复 AutoDetectionModel.from_pretrained 的模型实例化问题 (#1158)

📦 依赖项

  • 将 OpenCV 包从 4.10.0.84 更新至 4.11.0.86 (#1171) - 感谢 @ducviet00-h2!
  • 移除已停止维护的 matplotlib-stubs 依赖 (#1169)
  • 清理未使用的配置文件 (#1199)

📚 文档

  • 新增 context7.json 以改进 AI 工具集成 (#1200)
  • 更新 README 中的贡献者信息 (#1175, #1179)
  • 新增 Roboflow+SAHI Colab 教程链接 (#1177)

🙏 致谢

特别感谢所有让此版本成为可能的贡献者:@nok、@gboeer、@Toprak2、@Arnesh1411、@0xf21、@ducviet00、@ducviet00-h2、@p-constant 和 @fcakyon!


完整更新日志:https://github.com/obss/sahi/compare/0.11.24...0.11.30

🚀 SAHI v0.11.29 发布说明

🆕 更新内容

完整更新日志:https://github.com/obss/sahi/compare/0.11.28...0.11.29

🚀 SAHI v0.11.28 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.27...0.11.28

🚀 SAHI v0.11.27 发布说明

🆕 更新内容

完整更新日志:https://github.com/obss/sahi/compare/0.11.26...0.11.27

🚀 SAHI v0.11.26 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.25...0.11.26

🚀 SAHI v0.11.25 发布说明

🆕 更新内容

完整更新日志:https://github.com/obss/sahi/compare/0.11.24...0.11.25

🚀 SAHI v0.11.24 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.23...0.11.24

🚀 SAHI v0.11.23 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.22...0.11.23

🚀 SAHI v0.11.22 发布说明

🆕 更新内容

完整更新日志:https://github.com/obss/sahi/compare/0.11.21...0.11.22

📚 核心文档文件

📦 预测工具

  • 执行目标检测推理的详细指南
  • 标准和切片推理示例
  • 批量预测用法
  • 推理时的类别排除
  • 可视化参数和导出格式
  • 各模型集成的交互式示例(YOLOv8、MMDetection 等)

✂️ 切片工具

  • 大图像和数据集切片指南
  • 图像切片示例
  • COCO 数据集切片示例
  • 交互式示例 notebook 参考

🐒 COCO 工具

  • 处理 COCO 格式数据集的全面指南
  • 数据集创建和操作
  • COCO 数据集切片
  • 数据集拆分(训练集/验证集)
  • 类别筛选和更新
  • 基于面积的筛选
  • 数据集合并
  • 格式转换(COCO ↔ YOLO)
  • 数据集采样工具
  • 统计计算
  • 结果验证

💻 CLI 命令

  • SAHI 命令行界面完整参考
  • 预测命令
  • FiftyOne 集成
  • COCO 数据集操作
  • 环境信息
  • 版本检查
  • 自定义脚本用法

👁️ FiftyOne 集成

  • 使用 FiftyOne 可视化和分析预测的指南
  • 数据集可视化
  • 结果探索
  • 交互式分析

📓 交互式示例

所有文档文件都配有 demo 目录 中的交互式 Jupyter notebook:

  • slicing.ipynb - 切片操作演示
  • inference_for_ultralytics.ipynb - YOLOv8/YOLO11/YOLO26 集成
  • inference_for_ultralytics_yoloe.ipynb - YOLOE 集成
  • inference_for_yolov5.ipynb - YOLOv5 集成
  • inference_for_mmdetection.ipynb - MMDetection 集成
  • inference_for_detectron2.ipynb - Detectron2 集成
  • inference_for_huggingface.ipynb - HuggingFace 模型集成
  • inference_for_groundingdino.ipynb - GroundingDINO 零样本检测
  • inference_for_torchvision.ipynb - TorchVision 模型集成
  • inference_for_rtdetr.ipynb - RT-DETR 集成
  • inference_for_roboflow.ipynb - Roboflow RF-DETR 集成

🚦 快速上手

如果您是 SAHI 新用户:

  1. 从预测工具开始,了解基本推理
  2. 探索切片工具,学习处理大图像
  3. 查看 CLI 命令,了解命令行用法
  4. 深入 COCO 工具,学习数据集操作
  5. 尝试 demo 目录 中的交互式 notebook,获取实践经验

🚀 SAHI v0.11.21 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.20...0.11.21

🚀 SAHI v0.11.20 发布说明

🆕 更新内容

完整更新日志:https://github.com/obss/sahi/compare/0.11.19...0.11.20

🚀 SAHI v0.11.19 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.18...0.11.19

🚀 SAHI v0.11.18 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.16...0.11.18

🚀 SAHI v0.11.16 发布说明

🚀 SAHI v0.11.15 发布说明

🚀 SAHI v0.11.14 发布说明

🆕 更新内容

🙌 新贡献者

完整更新日志:https://github.com/obss/sahi/compare/0.11.13...0.11.14

🚀 SAHI v0.11.13 发布说明

🚀 SAHI v0.11.12 发布说明

🚀 SAHI v0.11.11 发布说明

🚀 SAHI v0.11.10 发布说明

🚀 SAHI v0.11.9 发布说明

🚀 SAHI v0.11.8 发布说明

🚀 SAHI v0.11.7 发布说明

🚀 SAHI v0.11.6 发布说明

🚀 SAHI v0.11.5 发布说明

🚀 SAHI v0.11.4 发布说明

🚀 SAHI v0.11.3 发布说明

🚀 SAHI v0.11.2 发布说明

🚀 SAHI v0.11.1 发布说明