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 ci
pypi version conda version ci
Open In Colab HuggingFace Spaces

Overview

Object detection and instance segmentation are by far the most important fields of applications in Computer Vision. However, detection of small objects and inference on large images are still major issues 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 prediction using any yolov5/mmdet/detectron2 model
predict-fiftyone perform sliced/standard prediction using any yolov5/mmdet/detectron2 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 calcualate and export many error analysis plots
coco yolov5 automatically convert any COCO dataset to yolov5 format

Quick Start Examples

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:
conda install pytorch=1.10.2 torchvision=0.11.3 cudatoolkit=11.3 -c pytorch
  • Install your desired detection framework (yolov5):
pip install yolov5
  • Install your desired detection framework (mmdet):
pip install mmcv-full==1.4.4 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
pip install mmdet==2.21.0
  • Install your desired detection framework (detectron2):
pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html

Framework Agnostic Sliced/Standard Prediction

sahi-predict

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

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.

Find detailed info on MOT utilities (ground truth dataset creation, exporting tracker metrics in mot challenge format) at mot.md.

Citation

If you use this package in your work, please cite it as:

@software{akyon2021sahi,
  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

sahi library currently supports all YOLOv5 models and MMDetection models. Moreover, it is easy to add new frameworks.

All you need to do is, creating a new class in model.py that implements DetectionModel class. You can take the MMDetection wrapper or YOLOv5 wrapper as a reference.

Before opening a PR:

  • Install required development packages:
pip install -U -e .[dev]
  • Reformat with black and isort:
black . --config pyproject.toml
isort .

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.9.0.tar.gz (71.3 kB view details)

Uploaded Source

Built Distribution

sahi-0.9.0-py3-none-any.whl (79.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sahi-0.9.0.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for sahi-0.9.0.tar.gz
Algorithm Hash digest
SHA256 84ef95bbeea602860cf9806f49120892f1e7cfcf7bb5866ea510534bfcec1894
MD5 df30258283ba30c95192b00d9d822733
BLAKE2b-256 60dcc3614969ac3834d50b29e0f5698b5312a9992a37ec82f19a5bc7853170d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sahi-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 79.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for sahi-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebe9ba2a16a3bf577f825339ea1afc1417e544ace27172a744246937bf603bfe
MD5 eb9b1c85f15f8b845556eb2ac972ace7
BLAKE2b-256 0ca56a11dcc30cefbbbd2035003c67043f463379139846dd2459dd388b92cb29

See more details on using hashes here.

Supported by

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