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
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 video/image prediction using any yolov5/mmdet/detectron2/huggingface model |
predict-fiftyone | perform sliced/standard prediction using any yolov5/mmdet/detectron2/huggingface 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
📜 List of publications that cite SAHI (currently 20+)
🏆 List of competition winners that used SAHI
Tutorials
-
Official paper (ICIP 2022 oral) (NEW)
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.12.1 torchvision=0.13.1 cudatoolkit=11.3 -c pytorch
- Install your desired detection framework (yolov5):
pip install yolov5==6.2.3
- Install your desired detection framework (mmdet):
pip install mmcv-full==1.7.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html
pip install mmdet==2.25.3
- 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
Framework Agnostic Sliced/Standard Prediction
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
Find detailed info at Error Analysis Plots & Evaluation.
Interactive Visualization & Inspection
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:
@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
sahi
library currently supports all YOLOv5 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.
Before opening a PR:
- Install required development packages:
pip install -e ."[dev]"
- Reformat with black and isort:
python -m scripts.run_code_style format
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
Built Distribution
File details
Details for the file sahi-0.11.5.tar.gz
.
File metadata
- Download URL: sahi-0.11.5.tar.gz
- Upload date:
- Size: 80.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb37177f66937d46b7dea7ef253b7053b2e3f8048a821731f3756c1b8b680731 |
|
MD5 | fd1fce6ad437d3b170522ef6001c920f |
|
BLAKE2b-256 | 41a7b79565ac6bdc6f7812b72060c09a9cfc9c4c69684597e6bafcc76c51e9cd |
File details
Details for the file sahi-0.11.5-py3-none-any.whl
.
File metadata
- Download URL: sahi-0.11.5-py3-none-any.whl
- Upload date:
- Size: 94.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5989e24bb79b0700ed56eea190434275a1de3af0a5c7c7c124d5488dbde82a60 |
|
MD5 | 9c1540ce72d598b1ad84371b776fd6d2 |
|
BLAKE2b-256 | e2b851b4241a53b28f4c3c67761e791bcac4961d93e61ec3d4afd951088ac62b |