Skip to main content

A vision library for performing sliced inference on large images/small objects

Project description

SAHI: Slicing Aided Hyper Inference

A lightweight vision library for performing large scale object detection & instance segmentation

teaser

downloads downloads
pypi version conda version Continious Integration
ci
Open In Colab HuggingFace Spaces

Overview

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 any ultralytics/mmdet/detectron2/huggingface/torchvision model
predict-fiftyone perform sliced/standard prediction using any ultralytics/mmdet/detectron2/huggingface/torchvision model and explore results in fiftyone app
coco slice automatically slice COCO annotation and image files
coco fiftyone explore multiple prediction results on your COCO dataset with fiftyone 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 yolov5 automatically convert any COCO dataset to ultralytics format

Quick Start Examples

📜 List of publications that cite SAHI (currently 300+)

🏆 List of competition winners that used SAHI

Tutorials

sahi-yolox

Installation

sahi-installation
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 (cuda 11.3 for detectron2, cuda 11.7 for rest):
conda install pytorch=1.10.2 torchvision=0.11.3 cudatoolkit=11.3 -c pytorch
conda install pytorch=1.13.1 torchvision=0.14.1 pytorch-cuda=11.7 -c pytorch -c nvidia
  • Install your desired detection framework (yolov5):
pip install yolov5==7.0.13
  • Install your desired detection framework (ultralytics):
pip install ultralytics==8.3.50
  • Install your desired detection framework (mmdet):
pip install mim
mim install mmdet==3.0.0
  • Install your desired detection framework (detectron2):
pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html
  • Install your desired detection framework (huggingface):
pip install transformers timm
  • Install your desired detection framework (super-gradients):
pip install super-gradients==3.3.1

Framework Agnostic Sliced/Standard Prediction

sahi-predict

Find detailed info on sahi predict command at cli.md.

Find detailed info on video inference at video inference tutorial.

Find detailed info on image/dataset slicing utilities at slicing.md.

Error Analysis Plots & Evaluation

sahi-analyse

Find detailed info at Error Analysis Plots & Evaluation.

Interactive Visualization & Inspection

sahi-fiftyone

Find detailed info at Interactive Result Visualization and Inspection.

Other utilities

Find detailed info on COCO utilities (yolov5 conversion, slicing, subsampling, filtering, merging, splitting) at coco.md.

Citation

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}
}

Contributing

Add new frameworks

sahi library currently supports all Ultralytics (YOLOv8/v10/v11/RTDETR) models, MMDetection models, Detectron2 models, and HuggingFace object detection models. Moreover, it is easy to add new frameworks.

All you need to do is, create a new .py file under sahi/models/ folder and create a new class in that .py file that implements DetectionModel class. You can take the MMDetection wrapper or YOLOv5 wrapper as a reference.

Open a Pull Request

Contributors

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sahi-0.11.21.tar.gz (29.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sahi-0.11.21-py3-none-any.whl (114.4 kB view details)

Uploaded Python 3

File details

Details for the file sahi-0.11.21.tar.gz.

File metadata

  • Download URL: sahi-0.11.21.tar.gz
  • Upload date:
  • Size: 29.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.4

File hashes

Hashes for sahi-0.11.21.tar.gz
Algorithm Hash digest
SHA256 2c1041758477270f2c2c2ca2c4d7915a4b9ae7bfbb57a9509debfe3ab93a1a1e
MD5 fcc065e44bdb3dd7e439acf9583eaf67
BLAKE2b-256 bbb038687bcc76fd7ba39e67a77700329849f38c330e0fd2aa49e49a0e1a572f

See more details on using hashes here.

File details

Details for the file sahi-0.11.21-py3-none-any.whl.

File metadata

  • Download URL: sahi-0.11.21-py3-none-any.whl
  • Upload date:
  • Size: 114.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.4

File hashes

Hashes for sahi-0.11.21-py3-none-any.whl
Algorithm Hash digest
SHA256 31fa3dab37284e5cf0e404e74505781523a7faab59f9b2e1f847a436d9b6cf11
MD5 8a753ffa84ccff8469c260373aa4551b
BLAKE2b-256 00b42d591247a23260aca97c3fe5a0eafbf6e523f5fc0c57d60ee2a59ff8f6ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page