Ana içeriğe geç

📝 CHANGELOG

🚀 SAHI v0.12.2 Release Notes

A patch release fixing out-of-memory failures and severe slowdowns when postprocessing large prediction sets, plus model, packaging and documentation fixes gathered since 0.12.1.

🐛 Fixes

  • Postprocessing no longer allocates an N x N matrix for large inputs (#1395). v0.11 used a shapely STRtree and only compared nearby boxes; v0.12 replaced it with a dense matrix that is O(N^2) in time and memory regardless of layout. The TorchVision backend had no size guard and built seven N x N tensors on the GPU, so it ran out of memory first. The greedy loops only ever use matrix >= match_threshold, never the metric values, so the thresholded adjacency is now built directly from the pairs an STRtree reports as intersecting and stored as CSR. Fixes #1374.
  • RF-DETR local models can be loaded by class name, with corrected Roboflow docs (#1394).
  • MMDetection has_mask now handles RepeatDataset (#1387).
  • Dependency and minimum-version checks are enforced in import_utils (#1377).
  • All OpenCV distributions are kept on one version, avoiding conflicting installs (#1393).

📚 Documentation

  • Chinese translations updated and completed (#1371).
  • Docs default to YOLO26 and link the Ultralytics YOLO26 page (#1386), and YOLO26 is listed among the CLI models (#1378).

🧹 Maintenance & CI

  • Bumped astral-sh/setup-uv 8.2.0 → 8.3.2 (#1389) and updated actions/checkout / actions/cache (#1385).
  • Relaxed the build requirement to >=0.10,<1.6 (#1382).

⚡ Performance

33337 boxes, IOS metric, threshold 0.3. Same outputs before and after (6571 predictions for greedy_nmm, 4639 for nmm).

CPU (Intel Core i7-13850HX):

backend greedy_nmm before after nmm before after
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):

backend greedy_nmm before after nmm before after
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

Inputs below 2000 boxes, and any non-positive threshold, stay on the dense path where it is faster.

Full Changelog: https://github.com/obss/sahi/compare/0.12.1...0.12.2

🚀 SAHI v0.12.0 Release Notes

One of the largest SAHI releases to date — 95 commits since 0.11.34 (rolling in the 0.11.35/0.11.36 hotfixes) — featuring a re-architected postprocessing engine, true batch inference, a torch-free core, new open-vocabulary and segmentation models, and a full documentation overhaul.

🚀 Key Updates

⚡ Batch inference, torch-free core & accelerated postprocessing backends

  • Batch inference — slices are processed in batches end-to-end for major GPU throughput gains (#1336).
  • Torch-free core — the core slicing/postprocessing path no longer hard-depends on PyTorch; install only what your backend needs (#1336).
  • Pluggable postprocessing backends — NMS/NMM run on a selectable backend: NumPy (zero heavy deps), Numba (JIT-accelerated CPU), or TorchVision (GPU), auto-selected for your environment (#1336).

🧠 New model support

  • GroundingDINO (HuggingFace) — zero-shot, text-prompted open-vocabulary detection through SAHI's sliced pipeline, with a dedicated demo notebook (#1361).
  • Universal segmentation from HuggingFace (#1360).
  • RF-DETR-Seg segmentation models (#1315).
  • YOLOE detection model (#1268).
  • YOLO-World open-vocabulary detection (#1267).
  • YOLO26 support across the Ultralytics backend, CLI, docs, and notebooks (#1321, #1322, #1356).

🎚️ Finer control over slicing & postprocessing

  • force_postprocess_type in get_sliced_prediction (#1346).
  • Per-call confidence_threshold override across prediction APIs (#1352).
  • Progress bar + progress callback for get_sliced_prediction in both the Python API and CLI (#1255).

📚 Documentation

  • Migrated docs to Zensical with full code typing & formatting cleanup (#1344).
  • Chinese (zh) translation added and kept in sync (#1253, #1332, #1347).
  • New API reference, postprocessing backends guide, security policy, and Code of Conduct (#1257, #1272, #1349).

✨ Performance & Improvements

  • Significantly faster post-processing — NMS, NMM, and GREEDYNMM now use a shapely STRtree spatial index, dramatically speeding up merging on images with many slices/detections (#1248).
  • Faster read_image_as_pil for quicker slicing throughput (#1353).
  • Improved performance & resource management in prediction and slicing (#1263).
  • Better nms performance with correct empty-prediction handling (#1288).
  • Replaced pybboxes with a lightweight in-house yolo_bbox_to_voc_bbox (#1320) and removed the pybboxes / pinned opencv-python constraints (#1325).

🐞 Bug Fixes

  • Fixed empty bounding boxes caused by an empty shapely_annotation.multipolygon (#1140).
  • Fixed invalid segmentation masks for Detectron2 models (#1262).
  • Corrected margin calculation in BoundingBox (#1286).
  • Fixed CHW-format image handling in read_image_as_pil (#1287).
  • Validate overlap ratios in get_slice_bboxes (must be < 1.0) (#1285).
  • Corrected error message for invalid model path in RTDetrDetectionModel (#1266).
  • Fixed incorrect type annotations in the postprocess module (#1327).
  • Ultralytics model supports additional formats with improved task handling (#1321).
  • Added pywinpty for Windows dev compatibility (#1319).

🧹 Maintenance & CI

  • Pinned all GitHub Actions to commit SHAs for supply-chain security (#1351).
  • Multi-OS CI matrix and clearer workflow naming (#1334).
  • Bumped to Python 3.12/3.13 in CI and docs (#1259, #1260).
  • Removed deprecated YOLOv5 helpers, legacy requirements.txt, MMDet workflow, and unused Netlify config (#1326, #1342, #1341, #1335).
  • numpy<3.0, torchvision 0.23.0, and many Dependabot dependency bumps (now also covering pip).

🙌 New Contributors

  • @vinnik-dmitry07 made their first contribution in #1140
  • @nikvo1 made their first contribution in #1248
  • Christopher Field (@volks73) made their first contribution in #1262
  • Haotian Gong (@ZephyrKeXiner) made their first contribution in #1253
  • Yogendra Singh (@yogendrasinghx) made their first contribution in #1326
  • Ivan Buldakov (@ibuldakov) made their first contribution in #1315
  • Vignesh Suresh (@srikrishnavignesh) made their first contribution in #1360
  • Ömer Günaydın (@siromermer) made their first contribution in #1361

Full Changelog: https://github.com/obss/sahi/compare/0.11.34...0.12.0

🚀 SAHI v0.11.31 Release Notes

We're excited to announce SAHI v0.11.31 with important bug fixes and improvements!

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.30...0.11.31

🚀 SAHI v0.11.30 Release Notes

We're excited to announce SAHI v0.11.30 with improved performance tracking, enhanced testing infrastructure, and better developer experience!

📈 Milestones

  • Academic papers citing SAHI reached 400! (#1168)

🚀 Key Updates

⚡️ Performance & Monitoring

  • Fixed postprocess duration tracking in get_sliced_prediction - now properly separates slice, prediction, and postprocess timings for accurate performance monitoring (#1201) - Thanks @Toprak2!

🧩 Framework Updates

  • Refactored Ultralytics support with ONNX model support and better compatibility (#1184)
  • Updated TorchVision support to latest API (#1182)
  • Improved Detectron2 support with better config handling to prevent KeyError issues (#1116) - Thanks @Arnesh1411!
  • Added Roboflow framework support for RF-DETR models from the Roboflow Universe (#1161) - Thanks @nok!
  • Removed deepsparse integration as the framework is no longer maintained (#1164)

🧪 Testing Infrastructure

  • Migrated test suite to pytest (#1187)
  • Tests now run faster with better parallel execution
  • Extended Python version coverage (3.8, 3.9, 3.10, 3.11, 3.12)
  • Updated to more recent PyTorch versions for better compatibility testing
  • Improved test organization and maintainability
  • Refactored MMDetection tests for better reliability (#1185)

💻 Developer Experience

  • Added Context7 MCP integration for AI-assisted development (#1198)
  • SAHI's documentation is now indexed in Context7 MCP
  • Provides AI coding assistants with up-to-date, version-specific code examples
  • Includes llms.txt file for AI-readable documentation
  • Check out the Context7 MCP installation guide to integrate SAHI docs with your AI workflow

🛠️ Improvements

🧹 Code Quality & Safety

  • Immutable bounding boxes for thread-safe operations (#1194, #1191) - Thanks @gboeer!
  • Enhanced type hints and docstrings throughout the codebase (#1195) - Thanks @gboeer!
  • Overloaded operators for prediction scores enabling intuitive score comparisons (#1190) - Thanks @gboeer!
  • PyTorch is now a soft dependency improving flexibility (#1162) - Thanks @ducviet00!

🏗️ Infrastructure & Stability

  • Improved dependency management and documentation (#1183)
  • Enhanced pyproject.toml configuration for better package management (#1181)
  • Optimized CI/CD workflows for MMDetection tests (#1186)

🐛 Bug Fixes

  • Fixed CUDA device selection to support devices other than cuda:0 (#1158) - Thanks @0xf21!
  • Corrected parameter naming from 'confidence' to 'threshold' for consistency (#1180) - Thanks @nok!
  • Fixed regex string formatting in device selection function (#1165)
  • Resolved torch import errors when PyTorch is not installed (#1172) - Thanks @ducviet00!
  • Fixed model instantiation issues with AutoDetectionModel.from_pretrained (#1158)

📦 Dependencies

  • Updated OpenCV packages from 4.10.0.84 to 4.11.0.86 (#1171) - Thanks @ducviet00-h2!
  • Removed unmaintained matplotlib-stubs dependency (#1169)
  • Cleaned up unused configuration files (#1199)

📚 Documentation

  • Added context7.json for better AI tool integration (#1200)
  • Updated README with new contributors (#1175, #1179)
  • Added Roboflow+SAHI Colab tutorial link (#1177)

🙏 Acknowledgments

Special thanks to all contributors who made this release possible: @nok, @gboeer, @Toprak2, @Arnesh1411, @0xf21, @ducviet00, @ducviet00-h2, @p-constant, and @fcakyon!


Full Changelog: https://github.com/obss/sahi/compare/0.11.24...0.11.30

🚀 SAHI v0.11.29 Release Notes

🆕 What's Changed

Full Changelog: https://github.com/obss/sahi/compare/0.11.28...0.11.29

🚀 SAHI v0.11.28 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.27...0.11.28

🚀 SAHI v0.11.27 Release Notes

🆕 What's Changed

Full Changelog: https://github.com/obss/sahi/compare/0.11.26...0.11.27

🚀 SAHI v0.11.26 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.25...0.11.26

🚀 SAHI v0.11.25 Release Notes

🆕 What's Changed

Full Changelog: https://github.com/obss/sahi/compare/0.11.24...0.11.25

🚀 SAHI v0.11.24 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.23...0.11.24

🚀 SAHI v0.11.23 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.22...0.11.23

🚀 SAHI v0.11.22 Release Notes

🆕 What's Changed

Full Changelog: https://github.com/obss/sahi/compare/0.11.21...0.11.22

📚 Core Documentation Files

📦 Prediction Utilities

  • Detailed guide for performing object detection inference
  • Standard and sliced inference examples
  • Batch prediction usage
  • Class exclusion during inference
  • Visualization parameters and export formats
  • Interactive examples with various model integrations (YOLOv8, MMDetection, etc.)

✂️ Slicing Utilities

  • Guide for slicing large images and datasets
  • Image slicing examples
  • COCO dataset slicing examples
  • Interactive demo notebook reference

🐒 COCO Utilities

  • Comprehensive guide for working with COCO format datasets
  • Dataset creation and manipulation
  • Slicing COCO datasets
  • Dataset splitting (train/val)
  • Category filtering and updates
  • Area-based filtering
  • Dataset merging
  • Format conversion (COCO ↔ YOLO)
  • Dataset sampling utilities
  • Statistics calculation
  • Result validation

💻 CLI Commands

  • Complete reference for SAHI command-line interface
  • Prediction commands
  • FiftyOne integration
  • COCO dataset operations
  • Environment information
  • Version checking
  • Custom script usage

👁️ FiftyOne Integration

  • Guide for visualizing and analyzing predictions with FiftyOne
  • Dataset visualization
  • Result exploration
  • Interactive analysis

📓 Interactive Examples

All documentation files are complemented by interactive Jupyter notebooks in the demo directory:

  • slicing.ipynb - Slicing operations demonstration
  • inference_for_ultralytics.ipynb - YOLOv8/YOLO11/YOLO12 integration
  • inference_for_yolov5.ipynb - YOLOv5 integration
  • inference_for_mmdetection.ipynb - MMDetection integration
  • inference_for_huggingface.ipynb - HuggingFace models integration
  • inference_for_torchvision.ipynb - TorchVision models integration
  • inference_for_rtdetr.ipynb - RT-DETR integration
  • inference_for_sparse_yolov5.ipynb - DeepSparse optimized inference

🚦 Getting Started

If you're new to SAHI:

  1. Start with the prediction utilities to understand basic inference
  2. Explore the slicing utilities to learn about processing large images
  3. Check out the CLI commands for command-line usage
  4. Dive into COCO utilities for dataset operations
  5. Try the interactive notebooks in the demo directory for hands-on experience

🚀 SAHI v0.11.21 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.20...0.11.21

🚀 SAHI v0.11.20 Release Notes

🆕 What's Changed

Full Changelog: https://github.com/obss/sahi/compare/0.11.19...0.11.20

🚀 SAHI v0.11.19 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.18...0.11.19

🚀 SAHI v0.11.18 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.16...0.11.18

🚀 SAHI v0.11.16 Release Notes

🚀 SAHI v0.11.15 Release Notes

🚀 SAHI v0.11.14 Release Notes

🆕 What's Changed

🙌 New Contributors

Full Changelog: https://github.com/obss/sahi/compare/0.11.13...0.11.14

🚀 SAHI v0.11.13 Release Notes

🚀 SAHI v0.11.12 Release Notes

🚀 SAHI v0.11.11 Release Notes

🚀 SAHI v0.11.10 Release Notes

🚀 SAHI v0.11.9 Release Notes

🚀 SAHI v0.11.8 Release Notes

🚀 SAHI v0.11.7 Release Notes

🚀 SAHI v0.11.6 Release Notes

🚀 SAHI v0.11.5 Release Notes

🚀 SAHI v0.11.4 Release Notes

🚀 SAHI v0.11.3 Release Notes

🚀 SAHI v0.11.2 Release Notes

🚀 SAHI v0.11.1 Release Notes