- Notifications
You must be signed in to change notification settings - Fork631
Framework agnostic sliced/tiled inference + interactive ui + error analysis plots
License
obss/sahi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Object detection and instance segmentation are by far the most important applications in Computer Vision. However, the detection of small objects and inference on large images still need to be improved in practical usage. Here comes the SAHI to help developers overcome these real-world problems with many vision utilities.
Command | Description |
---|---|
predict | perform sliced/standard video/image prediction using anyultralytics/mmdet/huggingface/torchvision model |
predict-fiftyone | perform sliced/standard prediction using anyultralytics/mmdet/huggingface/torchvision model and explore results infiftyone app |
coco slice | automatically slice COCO annotation and image files |
coco fiftyone | explore multiple prediction results on your COCO dataset withfiftyone ui ordered by number of misdetections |
coco evaluate | evaluate classwise COCO AP and AR for given predictions and ground truth |
coco analyse | calculate and export many error analysis plots |
coco yolo | automatically convert any COCO dataset toultralytics format |
📜 List of publications that cite SAHI (currently 300+)
🏆 List of competition winners that used SAHI
Official paper (ICIP 2022 oral)
2025 Video Tutorial (RECOMMENDED)
'VIDEO TUTORIAL: Slicing Aided Hyper Inference for Small Object Detection - SAHI'
Error analysis plots & evaluation (RECOMMENDED)
Interactive result visualization and inspection (RECOMMENDED)
Installation details:
- Install
sahi
using pip:
pip install sahi
- On Windows,
Shapely
needs to be installed via Conda:
conda install -c conda-forge shapely
- Install your desired version of pytorch and torchvision:
pip install torch==2.6.0 torchvision==0.21.0 --index-url https://download.pytorch.org/whl/cu126
(torch 2.1.2 is required for mmdet support):
pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu121
- Install your desired detection framework (yolov5):
pip install yolov5==7.0.14 sahi==0.11.21
- Install your desired detection framework (ultralytics):
pip install ultralytics>=8.3.86
- Install your desired detection framework (mmdet):
pip install mimmim install mmdet==3.3.0
- Install your desired detection framework (huggingface):
pip install transformers>=4.42.0 timm
Find detailed info onsahi predict
command atcli.md.
Find detailed info on video inference atvideo inference tutorial.
Find detailed info on image/dataset slicing utilities atslicing.md.
Find detailed info atError Analysis Plots & Evaluation.
Find detailed info atInteractive Result Visualization and Inspection.
Find detailed info on COCO utilities (yolov5 conversion, slicing, subsampling, filtering, merging, splitting) atcoco.md.
If you use this package in your work, please cite it as:
@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}}
@software{obss2021sahi,author ={Akyon, Fatih Cagatay and Cengiz, Cemil and Altinuc, Sinan Onur and Cavusoglu, Devrim and Sahin, Kadir and Eryuksel, Ogulcan},title ={{SAHI: A lightweight vision library for performing large scale object detection and instance segmentation}},month = nov,year =2021,publisher ={Zenodo},doi ={10.5281/zenodo.5718950},url ={https://doi.org/10.5281/zenodo.5718950}}
sahi
library currently supports allUltralytics (YOLOv8/v10/v11/RTDETR) models,MMDetection models,Detectron2 models, andHuggingFace object detection models. Moreover, it is easy to add new frameworks.
All you need to do is, create a new .py file undersahi/models/ folder and create a new class in that .py file that implementsDetectionModel class. You can take theMMDetection wrapper orYOLOv5 wrapper as a reference.
- Install theuv package manager on your system.
- Installpre-commit hooks with
uv run pre-commit install
.
About
Framework agnostic sliced/tiled inference + interactive ui + error analysis plots