sahi


Namesahi JSON
Version 0.11.20 PyPI version JSON
download
home_pagehttps://github.com/obss/sahi
SummaryA vision library for performing sliced inference on large images/small objects
upload_time2024-12-16 17:07:51
maintainerNone
docs_urlNone
authorOBSS
requires_python>=3.6
licenseMIT
keywords
VCS
bugtrack_url
requirements opencv-python shapely tqdm pillow pybboxes pyyaml fire terminaltables requests click numpy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
<h1>
  SAHI: Slicing Aided Hyper Inference
</h1>

<h4>
  A lightweight vision library for performing large scale object detection & instance segmentation
</h4>

<h4>
    <img width="700" alt="teaser" src="https://raw.githubusercontent.com/obss/sahi/main/resources/sliced_inference.gif">
</h4>

<div>
    <a href="https://pepy.tech/project/sahi"><img src="https://pepy.tech/badge/sahi" alt="downloads"></a>
    <a href="https://pepy.tech/project/sahi"><img src="https://pepy.tech/badge/sahi/month" alt="downloads"></a>
    <br>
    <a href="https://badge.fury.io/py/sahi"><img src="https://badge.fury.io/py/sahi.svg" alt="pypi version"></a>
    <a href="https://anaconda.org/conda-forge/sahi"><img src="https://anaconda.org/conda-forge/sahi/badges/version.svg" alt="conda version"></a>
    <a href="https://github.com/obss/sahi/actions/workflows/package_testing.yml"><img src="https://github.com/obss/sahi/actions/workflows/package_testing.yml/badge.svg" alt="package testing"></a>
  <br>
    <a href="https://ieeexplore.ieee.org/document/9897990"><img src="https://img.shields.io/badge/DOI-10.1109%2FICIP46576.2022.9897990-orange.svg" alt="ci"></a>
  <br>
    <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_yolov5.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"></a>
    <a href="https://huggingface.co/spaces/fcakyon/sahi-yolox"><img src="https://raw.githubusercontent.com/obss/sahi/main/resources/hf_spaces_badge.svg" alt="HuggingFace Spaces"></a>

​    
</div>
</div>

## <div align="center">Overview</div>

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](https://github.com/obss/sahi/blob/main/docs/cli.md#predict-command-usage)  | perform sliced/standard video/image prediction using any [ultralytics](https://github.com/ultralytics/ultralytics)/[mmdet](https://github.com/open-mmlab/mmdetection)/[detectron2](https://github.com/facebookresearch/detectron2)/[huggingface](https://huggingface.co/models?pipeline_tag=object-detection&sort=downloads)/[torchvision](https://pytorch.org/vision/stable/models.html#object-detection) model |
| [predict-fiftyone](https://github.com/obss/sahi/blob/main/docs/cli.md#predict-fiftyone-command-usage)  | perform sliced/standard prediction using any [ultralytics](https://github.com/ultralytics/ultralytics)/[mmdet](https://github.com/open-mmlab/mmdetection)/[detectron2](https://github.com/facebookresearch/detectron2)/[huggingface](https://huggingface.co/models?pipeline_tag=object-detection&sort=downloads)/[torchvision](https://pytorch.org/vision/stable/models.html#object-detection) model and explore results in [fiftyone app](https://github.com/voxel51/fiftyone) |
| [coco slice](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-slice-command-usage)  | automatically slice COCO annotation and image files |
| [coco fiftyone](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-fiftyone-command-usage)  | explore multiple prediction results on your COCO dataset with [fiftyone ui](https://github.com/voxel51/fiftyone) ordered by number of misdetections |
| [coco evaluate](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-evaluate-command-usage)  | evaluate classwise COCO AP and AR for given predictions and ground truth |
| [coco analyse](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-analyse-command-usage)  | calculate and export many error analysis plots |
| [coco yolov5](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-yolov5-command-usage)  | automatically convert any COCO dataset to [ultralytics](https://github.com/ultralytics/ultralytics) format |

## <div align="center">Quick Start Examples</div>

[📜 List of publications that cite SAHI (currently 200+)](https://scholar.google.com/scholar?hl=en&as_sdt=2005&sciodt=0,5&cites=14065474760484865747&scipsc=&q=&scisbd=1)

[🏆 List of competition winners that used SAHI](https://github.com/obss/sahi/discussions/688)

### Tutorials

- [Introduction to SAHI](https://medium.com/codable/sahi-a-vision-library-for-performing-sliced-inference-on-large-images-small-objects-c8b086af3b80)

- [Official paper](https://ieeexplore.ieee.org/document/9897990) (ICIP 2022 oral)

- [Pretrained weights and ICIP 2022 paper files](https://github.com/fcakyon/small-object-detection-benchmark)

- [Visualizing and Evaluating SAHI predictions with FiftyOne](https://voxel51.com/blog/how-to-detect-small-objects/) (2024) (NEW)

- ['Exploring SAHI' Research Article from 'learnopencv.com'](https://learnopencv.com/slicing-aided-hyper-inference/)

- ['VIDEO TUTORIAL: Slicing Aided Hyper Inference for Small Object Detection - SAHI'](https://www.youtube.com/watch?v=UuOjJKxn-M8&t=270s) (RECOMMENDED)

- [Video inference support is live](https://github.com/obss/sahi/discussions/626)

- [Kaggle notebook](https://www.kaggle.com/remekkinas/sahi-slicing-aided-hyper-inference-yv5-and-yx)

- [Satellite object detection](https://blog.ml6.eu/how-to-detect-small-objects-in-very-large-images-70234bab0f98)

- [Error analysis plots & evaluation](https://github.com/obss/sahi/discussions/622) (RECOMMENDED)

- [Interactive result visualization and inspection](https://github.com/obss/sahi/discussions/624) (RECOMMENDED)

- [COCO dataset conversion](https://medium.com/codable/convert-any-dataset-to-coco-object-detection-format-with-sahi-95349e1fe2b7)

- [Slicing operation notebook](demo/slicing.ipynb)

- `YOLOX` + `SAHI` demo: <a href="https://huggingface.co/spaces/fcakyon/sahi-yolox"><img src="https://raw.githubusercontent.com/obss/sahi/main/resources/hf_spaces_badge.svg" alt="sahi-yolox"></a>

- `YOLO11` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_ultralytics.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-yolov8"></a> (NEW)

- `RT-DETR` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_rtdetr.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-rtdetr"></a> (NEW)

- `YOLOv8` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_ultralytics.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-yolov8"></a>

- `DeepSparse` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_sparse_yolov5.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-deepsparse"></a>

- `HuggingFace` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_huggingface.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-huggingface"></a>

- `YOLOv5` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_yolov5.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-yolov5"></a>

- `MMDetection` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_mmdetection.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-mmdetection"></a>

- `Detectron2` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_detectron2.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-detectron2"></a>

- `TorchVision` + `SAHI` walkthrough: <a href="https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_torchvision.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="sahi-torchvision"></a>


<a href="https://huggingface.co/spaces/fcakyon/sahi-yolox"><img width="600" src="https://user-images.githubusercontent.com/34196005/144092739-c1d9bade-a128-4346-947f-424ce00e5c4f.gif" alt="sahi-yolox"></a> 


</details>

### Installation

<img width="700" alt="sahi-installation" src="https://user-images.githubusercontent.com/34196005/149311602-b44e6fe1-f496-40f2-a7ae-5ea1f66e1550.gif">


<details closed>
<summary>
<big><b>Installation details:</b></big>
</summary>

- Install `sahi` using pip:

```console
pip install sahi
```

- On Windows, `Shapely` needs to be installed via Conda:

```console
conda install -c conda-forge shapely
```

- Install your desired version of pytorch and torchvision (cuda 11.3 for detectron2, cuda 11.7 for rest):

```console
conda install pytorch=1.10.2 torchvision=0.11.3 cudatoolkit=11.3 -c pytorch
```

```console
conda install pytorch=1.13.1 torchvision=0.14.1 pytorch-cuda=11.7 -c pytorch -c nvidia
```

- Install your desired detection framework (yolov5):

```console
pip install yolov5==7.0.13
```

- Install your desired detection framework (ultralytics):

```console
pip install ultralytics==8.3.50
```

- Install your desired detection framework (mmdet):

```console
pip install mim
mim install mmdet==3.0.0
```

- Install your desired detection framework (detectron2):

```console
pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html
```

- Install your desired detection framework (huggingface):

```console
pip install transformers timm
```

- Install your desired detection framework (super-gradients):

```console
pip install super-gradients==3.3.1
```

</details>

### Framework Agnostic Sliced/Standard Prediction

<img width="700" alt="sahi-predict" src="https://user-images.githubusercontent.com/34196005/149310540-e32f504c-6c9e-4691-8afd-59f3a1a457f0.gif">

Find detailed info on `sahi predict` command at [cli.md](docs/cli.md#predict-command-usage).

Find detailed info on video inference at [video inference tutorial](https://github.com/obss/sahi/discussions/626).

Find detailed info on image/dataset slicing utilities at [slicing.md](docs/slicing.md).

### Error Analysis Plots & Evaluation

<img width="700" alt="sahi-analyse" src="https://user-images.githubusercontent.com/34196005/149537858-22b2e274-04e8-4e10-8139-6bdcea32feab.gif">

Find detailed info at [Error Analysis Plots & Evaluation](https://github.com/obss/sahi/discussions/622).

### Interactive Visualization & Inspection

<img width="700" alt="sahi-fiftyone" src="https://user-images.githubusercontent.com/34196005/149321540-e6ddd5f3-36dc-4267-8574-a985dd0c6578.gif">

Find detailed info at [Interactive Result Visualization and Inspection](https://github.com/obss/sahi/discussions/624).

### Other utilities

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

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

## <div align="center">Citation</div>

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

## <div align="center">Contributing</div>

`sahi` library currently supports all [Ultralytics (YOLOv8/v10/v11/RTDETR) models](https://github.com/ultralytics/ultralytics), [MMDetection models](https://github.com/open-mmlab/mmdetection/blob/master/docs/en/model_zoo.md), [Detectron2 models](https://github.com/facebookresearch/detectron2/blob/main/MODEL_ZOO.md), and [HuggingFace object detection models](https://huggingface.co/models?pipeline_tag=object-detection&sort=downloads). Moreover, it is easy to add new frameworks.

All you need to do is, create a new .py file under [sahi/models/](https://github.com/obss/sahi/tree/main/sahi/models) folder and create a new class in that .py file that implements [DetectionModel class](https://github.com/obss/sahi/blob/aaeb57c39780a5a32c4de2848e54df9a874df58b/sahi/models/base.py#L12). You can take the [MMDetection wrapper](https://github.com/obss/sahi/blob/aaeb57c39780a5a32c4de2848e54df9a874df58b/sahi/models/mmdet.py#L91) or [YOLOv5 wrapper](https://github.com/obss/sahi/blob/7e48bdb6afda26f977b763abdd7d8c9c170636bd/sahi/models/yolov5.py#L17) as a reference.

Before opening a PR:

- Install required development packages:

```bash
pip install -e ."[dev]"
```

- Reformat with black and isort:

```bash
python -m scripts.run_code_style format
```

## <div align="center">Contributors</div>

<div align="center">

<a align="left" href="https://github.com/fcakyon" target="_blank">Fatih Cagatay Akyon</a>

<a align="left" href="https://github.com/sinanonur" target="_blank">Sinan Onur Altinuc</a>

<a align="left" href="https://github.com/devrimcavusoglu" target="_blank">Devrim Cavusoglu</a>

<a align="left" href="https://github.com/cemilcengiz" target="_blank">Cemil Cengiz</a>

<a align="left" href="https://github.com/oulcan" target="_blank">Ogulcan Eryuksel</a>

<a align="left" href="https://github.com/kadirnar" target="_blank">Kadir Nar</a>

<a align="left" href="https://github.com/madenburak" target="_blank">Burak Maden</a>

<a align="left" href="https://github.com/PushpakBhoge" target="_blank">Pushpak Bhoge</a>

<a align="left" href="https://github.com/mcvarer" target="_blank">M. Can V.</a>

<a align="left" href="https://github.com/ChristofferEdlund" target="_blank">Christoffer Edlund</a>

<a align="left" href="https://github.com/ishworii" target="_blank">Ishwor</a>

<a align="left" href="https://github.com/mecevit" target="_blank">Mehmet Ecevit</a>

<a align="left" href="https://github.com/ssahinnkadir" target="_blank">Kadir Sahin</a>

<a align="left" href="https://github.com/weypro" target="_blank">Wey</a>

<a align="left" href="https://github.com/youngjae-avikus" target="_blank">Youngjae</a>

<a align="left" href="https://github.com/tureckova" target="_blank">Alzbeta Tureckova</a>

<a align="left" href="https://github.com/s-aiueo32" target="_blank">So Uchida</a>

<a align="left" href="https://github.com/developer0hye" target="_blank">Yonghye Kwon</a>

<a align="left" href="https://github.com/aphilas" target="_blank">Neville</a>

<a align="left" href="https://github.com/mayrajeo" target="_blank">Janne Mäyrä</a>

<a align="left" href="https://github.com/christofferedlund" target="_blank">Christoffer Edlund</a>

<a align="left" href="https://github.com/ilkermanap" target="_blank">Ilker Manap</a>

<a align="left" href="https://github.com/nguyenthean" target="_blank">Nguyễn Thế An</a>

<a align="left" href="https://github.com/weiji14" target="_blank">Wei Ji</a>

<a align="left" href="https://github.com/aynursusuz" target="_blank">Aynur Susuz</a>

<a align="left" href="https://github.com/pranavdurai10" target="_blank">Pranav Durai</a>

<a align="left" href="https://github.com/lakshaymehra" target="_blank">Lakshay Mehra</a>

<a align="left" href="https://github.com/karl-joan" target="_blank">Karl-Joan Alesma</a>

<a align="left" href="https://github.com/jacobmarks" target="_blank">Jacob Marks</a>

<a align="left" href="https://github.com/williamlung" target="_blank">William Lung</a>

<a align="left" href="https://github.com/amoghdhaliwal" target="_blank">Amogh Dhaliwal</a>

</div>


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/obss/sahi",
    "name": "sahi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "OBSS",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/83/67/21f4f149bfbfddc492e8ef183bc4878aef38f59e27126211c35221ae5541/sahi-0.11.20.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n<h1>\n  SAHI: Slicing Aided Hyper Inference\n</h1>\n\n<h4>\n  A lightweight vision library for performing large scale object detection & instance segmentation\n</h4>\n\n<h4>\n    <img width=\"700\" alt=\"teaser\" src=\"https://raw.githubusercontent.com/obss/sahi/main/resources/sliced_inference.gif\">\n</h4>\n\n<div>\n    <a href=\"https://pepy.tech/project/sahi\"><img src=\"https://pepy.tech/badge/sahi\" alt=\"downloads\"></a>\n    <a href=\"https://pepy.tech/project/sahi\"><img src=\"https://pepy.tech/badge/sahi/month\" alt=\"downloads\"></a>\n    <br>\n    <a href=\"https://badge.fury.io/py/sahi\"><img src=\"https://badge.fury.io/py/sahi.svg\" alt=\"pypi version\"></a>\n    <a href=\"https://anaconda.org/conda-forge/sahi\"><img src=\"https://anaconda.org/conda-forge/sahi/badges/version.svg\" alt=\"conda version\"></a>\n    <a href=\"https://github.com/obss/sahi/actions/workflows/package_testing.yml\"><img src=\"https://github.com/obss/sahi/actions/workflows/package_testing.yml/badge.svg\" alt=\"package testing\"></a>\n  <br>\n    <a href=\"https://ieeexplore.ieee.org/document/9897990\"><img src=\"https://img.shields.io/badge/DOI-10.1109%2FICIP46576.2022.9897990-orange.svg\" alt=\"ci\"></a>\n  <br>\n    <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_yolov5.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"></a>\n    <a href=\"https://huggingface.co/spaces/fcakyon/sahi-yolox\"><img src=\"https://raw.githubusercontent.com/obss/sahi/main/resources/hf_spaces_badge.svg\" alt=\"HuggingFace Spaces\"></a>\n\n\u200b    \n</div>\n</div>\n\n## <div align=\"center\">Overview</div>\n\nObject 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.\n\n| Command  | Description  |\n|---|---|\n| [predict](https://github.com/obss/sahi/blob/main/docs/cli.md#predict-command-usage)  | perform sliced/standard video/image prediction using any [ultralytics](https://github.com/ultralytics/ultralytics)/[mmdet](https://github.com/open-mmlab/mmdetection)/[detectron2](https://github.com/facebookresearch/detectron2)/[huggingface](https://huggingface.co/models?pipeline_tag=object-detection&sort=downloads)/[torchvision](https://pytorch.org/vision/stable/models.html#object-detection) model |\n| [predict-fiftyone](https://github.com/obss/sahi/blob/main/docs/cli.md#predict-fiftyone-command-usage)  | perform sliced/standard prediction using any [ultralytics](https://github.com/ultralytics/ultralytics)/[mmdet](https://github.com/open-mmlab/mmdetection)/[detectron2](https://github.com/facebookresearch/detectron2)/[huggingface](https://huggingface.co/models?pipeline_tag=object-detection&sort=downloads)/[torchvision](https://pytorch.org/vision/stable/models.html#object-detection) model and explore results in [fiftyone app](https://github.com/voxel51/fiftyone) |\n| [coco slice](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-slice-command-usage)  | automatically slice COCO annotation and image files |\n| [coco fiftyone](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-fiftyone-command-usage)  | explore multiple prediction results on your COCO dataset with [fiftyone ui](https://github.com/voxel51/fiftyone) ordered by number of misdetections |\n| [coco evaluate](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-evaluate-command-usage)  | evaluate classwise COCO AP and AR for given predictions and ground truth |\n| [coco analyse](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-analyse-command-usage)  | calculate and export many error analysis plots |\n| [coco yolov5](https://github.com/obss/sahi/blob/main/docs/cli.md#coco-yolov5-command-usage)  | automatically convert any COCO dataset to [ultralytics](https://github.com/ultralytics/ultralytics) format |\n\n## <div align=\"center\">Quick Start Examples</div>\n\n[\ud83d\udcdc List of publications that cite SAHI (currently 200+)](https://scholar.google.com/scholar?hl=en&as_sdt=2005&sciodt=0,5&cites=14065474760484865747&scipsc=&q=&scisbd=1)\n\n[\ud83c\udfc6 List of competition winners that used SAHI](https://github.com/obss/sahi/discussions/688)\n\n### Tutorials\n\n- [Introduction to SAHI](https://medium.com/codable/sahi-a-vision-library-for-performing-sliced-inference-on-large-images-small-objects-c8b086af3b80)\n\n- [Official paper](https://ieeexplore.ieee.org/document/9897990) (ICIP 2022 oral)\n\n- [Pretrained weights and ICIP 2022 paper files](https://github.com/fcakyon/small-object-detection-benchmark)\n\n- [Visualizing and Evaluating SAHI predictions with FiftyOne](https://voxel51.com/blog/how-to-detect-small-objects/) (2024) (NEW)\n\n- ['Exploring SAHI' Research Article from 'learnopencv.com'](https://learnopencv.com/slicing-aided-hyper-inference/)\n\n- ['VIDEO TUTORIAL: Slicing Aided Hyper Inference for Small Object Detection - SAHI'](https://www.youtube.com/watch?v=UuOjJKxn-M8&t=270s) (RECOMMENDED)\n\n- [Video inference support is live](https://github.com/obss/sahi/discussions/626)\n\n- [Kaggle notebook](https://www.kaggle.com/remekkinas/sahi-slicing-aided-hyper-inference-yv5-and-yx)\n\n- [Satellite object detection](https://blog.ml6.eu/how-to-detect-small-objects-in-very-large-images-70234bab0f98)\n\n- [Error analysis plots & evaluation](https://github.com/obss/sahi/discussions/622) (RECOMMENDED)\n\n- [Interactive result visualization and inspection](https://github.com/obss/sahi/discussions/624) (RECOMMENDED)\n\n- [COCO dataset conversion](https://medium.com/codable/convert-any-dataset-to-coco-object-detection-format-with-sahi-95349e1fe2b7)\n\n- [Slicing operation notebook](demo/slicing.ipynb)\n\n- `YOLOX` + `SAHI` demo: <a href=\"https://huggingface.co/spaces/fcakyon/sahi-yolox\"><img src=\"https://raw.githubusercontent.com/obss/sahi/main/resources/hf_spaces_badge.svg\" alt=\"sahi-yolox\"></a>\n\n- `YOLO11` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_ultralytics.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-yolov8\"></a> (NEW)\n\n- `RT-DETR` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_rtdetr.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-rtdetr\"></a> (NEW)\n\n- `YOLOv8` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_ultralytics.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-yolov8\"></a>\n\n- `DeepSparse` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_sparse_yolov5.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-deepsparse\"></a>\n\n- `HuggingFace` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_huggingface.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-huggingface\"></a>\n\n- `YOLOv5` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_yolov5.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-yolov5\"></a>\n\n- `MMDetection` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_mmdetection.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-mmdetection\"></a>\n\n- `Detectron2` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_detectron2.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-detectron2\"></a>\n\n- `TorchVision` + `SAHI` walkthrough: <a href=\"https://colab.research.google.com/github/obss/sahi/blob/main/demo/inference_for_torchvision.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"sahi-torchvision\"></a>\n\n\n<a href=\"https://huggingface.co/spaces/fcakyon/sahi-yolox\"><img width=\"600\" src=\"https://user-images.githubusercontent.com/34196005/144092739-c1d9bade-a128-4346-947f-424ce00e5c4f.gif\" alt=\"sahi-yolox\"></a> \n\n\n</details>\n\n### Installation\n\n<img width=\"700\" alt=\"sahi-installation\" src=\"https://user-images.githubusercontent.com/34196005/149311602-b44e6fe1-f496-40f2-a7ae-5ea1f66e1550.gif\">\n\n\n<details closed>\n<summary>\n<big><b>Installation details:</b></big>\n</summary>\n\n- Install `sahi` using pip:\n\n```console\npip install sahi\n```\n\n- On Windows, `Shapely` needs to be installed via Conda:\n\n```console\nconda install -c conda-forge shapely\n```\n\n- Install your desired version of pytorch and torchvision (cuda 11.3 for detectron2, cuda 11.7 for rest):\n\n```console\nconda install pytorch=1.10.2 torchvision=0.11.3 cudatoolkit=11.3 -c pytorch\n```\n\n```console\nconda install pytorch=1.13.1 torchvision=0.14.1 pytorch-cuda=11.7 -c pytorch -c nvidia\n```\n\n- Install your desired detection framework (yolov5):\n\n```console\npip install yolov5==7.0.13\n```\n\n- Install your desired detection framework (ultralytics):\n\n```console\npip install ultralytics==8.3.50\n```\n\n- Install your desired detection framework (mmdet):\n\n```console\npip install mim\nmim install mmdet==3.0.0\n```\n\n- Install your desired detection framework (detectron2):\n\n```console\npip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html\n```\n\n- Install your desired detection framework (huggingface):\n\n```console\npip install transformers timm\n```\n\n- Install your desired detection framework (super-gradients):\n\n```console\npip install super-gradients==3.3.1\n```\n\n</details>\n\n### Framework Agnostic Sliced/Standard Prediction\n\n<img width=\"700\" alt=\"sahi-predict\" src=\"https://user-images.githubusercontent.com/34196005/149310540-e32f504c-6c9e-4691-8afd-59f3a1a457f0.gif\">\n\nFind detailed info on `sahi predict` command at [cli.md](docs/cli.md#predict-command-usage).\n\nFind detailed info on video inference at [video inference tutorial](https://github.com/obss/sahi/discussions/626).\n\nFind detailed info on image/dataset slicing utilities at [slicing.md](docs/slicing.md).\n\n### Error Analysis Plots & Evaluation\n\n<img width=\"700\" alt=\"sahi-analyse\" src=\"https://user-images.githubusercontent.com/34196005/149537858-22b2e274-04e8-4e10-8139-6bdcea32feab.gif\">\n\nFind detailed info at [Error Analysis Plots & Evaluation](https://github.com/obss/sahi/discussions/622).\n\n### Interactive Visualization & Inspection\n\n<img width=\"700\" alt=\"sahi-fiftyone\" src=\"https://user-images.githubusercontent.com/34196005/149321540-e6ddd5f3-36dc-4267-8574-a985dd0c6578.gif\">\n\nFind detailed info at [Interactive Result Visualization and Inspection](https://github.com/obss/sahi/discussions/624).\n\n### Other utilities\n\nFind detailed info on COCO utilities (yolov5 conversion, slicing, subsampling, filtering, merging, splitting) at [coco.md](docs/coco.md).\n\nFind detailed info on MOT utilities (ground truth dataset creation, exporting tracker metrics in mot challenge format) at [mot.md](docs/mot.md).\n\n## <div align=\"center\">Citation</div>\n\nIf you use this package in your work, please cite it as:\n\n```\n@article{akyon2022sahi,\n  title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},\n  author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},\n  journal={2022 IEEE International Conference on Image Processing (ICIP)},\n  doi={10.1109/ICIP46576.2022.9897990},\n  pages={966-970},\n  year={2022}\n}\n```\n\n```\n@software{obss2021sahi,\n  author       = {Akyon, Fatih Cagatay and Cengiz, Cemil and Altinuc, Sinan Onur and Cavusoglu, Devrim and Sahin, Kadir and Eryuksel, Ogulcan},\n  title        = {{SAHI: A lightweight vision library for performing large scale object detection and instance segmentation}},\n  month        = nov,\n  year         = 2021,\n  publisher    = {Zenodo},\n  doi          = {10.5281/zenodo.5718950},\n  url          = {https://doi.org/10.5281/zenodo.5718950}\n}\n```\n\n## <div align=\"center\">Contributing</div>\n\n`sahi` library currently supports all [Ultralytics (YOLOv8/v10/v11/RTDETR) models](https://github.com/ultralytics/ultralytics), [MMDetection models](https://github.com/open-mmlab/mmdetection/blob/master/docs/en/model_zoo.md), [Detectron2 models](https://github.com/facebookresearch/detectron2/blob/main/MODEL_ZOO.md), and [HuggingFace object detection models](https://huggingface.co/models?pipeline_tag=object-detection&sort=downloads). Moreover, it is easy to add new frameworks.\n\nAll you need to do is, create a new .py file under [sahi/models/](https://github.com/obss/sahi/tree/main/sahi/models) folder and create a new class in that .py file that implements [DetectionModel class](https://github.com/obss/sahi/blob/aaeb57c39780a5a32c4de2848e54df9a874df58b/sahi/models/base.py#L12). You can take the [MMDetection wrapper](https://github.com/obss/sahi/blob/aaeb57c39780a5a32c4de2848e54df9a874df58b/sahi/models/mmdet.py#L91) or [YOLOv5 wrapper](https://github.com/obss/sahi/blob/7e48bdb6afda26f977b763abdd7d8c9c170636bd/sahi/models/yolov5.py#L17) as a reference.\n\nBefore opening a PR:\n\n- Install required development packages:\n\n```bash\npip install -e .\"[dev]\"\n```\n\n- Reformat with black and isort:\n\n```bash\npython -m scripts.run_code_style format\n```\n\n## <div align=\"center\">Contributors</div>\n\n<div align=\"center\">\n\n<a align=\"left\" href=\"https://github.com/fcakyon\" target=\"_blank\">Fatih Cagatay Akyon</a>\n\n<a align=\"left\" href=\"https://github.com/sinanonur\" target=\"_blank\">Sinan Onur Altinuc</a>\n\n<a align=\"left\" href=\"https://github.com/devrimcavusoglu\" target=\"_blank\">Devrim Cavusoglu</a>\n\n<a align=\"left\" href=\"https://github.com/cemilcengiz\" target=\"_blank\">Cemil Cengiz</a>\n\n<a align=\"left\" href=\"https://github.com/oulcan\" target=\"_blank\">Ogulcan Eryuksel</a>\n\n<a align=\"left\" href=\"https://github.com/kadirnar\" target=\"_blank\">Kadir Nar</a>\n\n<a align=\"left\" href=\"https://github.com/madenburak\" target=\"_blank\">Burak Maden</a>\n\n<a align=\"left\" href=\"https://github.com/PushpakBhoge\" target=\"_blank\">Pushpak Bhoge</a>\n\n<a align=\"left\" href=\"https://github.com/mcvarer\" target=\"_blank\">M. Can V.</a>\n\n<a align=\"left\" href=\"https://github.com/ChristofferEdlund\" target=\"_blank\">Christoffer Edlund</a>\n\n<a align=\"left\" href=\"https://github.com/ishworii\" target=\"_blank\">Ishwor</a>\n\n<a align=\"left\" href=\"https://github.com/mecevit\" target=\"_blank\">Mehmet Ecevit</a>\n\n<a align=\"left\" href=\"https://github.com/ssahinnkadir\" target=\"_blank\">Kadir Sahin</a>\n\n<a align=\"left\" href=\"https://github.com/weypro\" target=\"_blank\">Wey</a>\n\n<a align=\"left\" href=\"https://github.com/youngjae-avikus\" target=\"_blank\">Youngjae</a>\n\n<a align=\"left\" href=\"https://github.com/tureckova\" target=\"_blank\">Alzbeta Tureckova</a>\n\n<a align=\"left\" href=\"https://github.com/s-aiueo32\" target=\"_blank\">So Uchida</a>\n\n<a align=\"left\" href=\"https://github.com/developer0hye\" target=\"_blank\">Yonghye Kwon</a>\n\n<a align=\"left\" href=\"https://github.com/aphilas\" target=\"_blank\">Neville</a>\n\n<a align=\"left\" href=\"https://github.com/mayrajeo\" target=\"_blank\">Janne M\u00e4yr\u00e4</a>\n\n<a align=\"left\" href=\"https://github.com/christofferedlund\" target=\"_blank\">Christoffer Edlund</a>\n\n<a align=\"left\" href=\"https://github.com/ilkermanap\" target=\"_blank\">Ilker Manap</a>\n\n<a align=\"left\" href=\"https://github.com/nguyenthean\" target=\"_blank\">Nguy\u1ec5n Th\u1ebf An</a>\n\n<a align=\"left\" href=\"https://github.com/weiji14\" target=\"_blank\">Wei Ji</a>\n\n<a align=\"left\" href=\"https://github.com/aynursusuz\" target=\"_blank\">Aynur Susuz</a>\n\n<a align=\"left\" href=\"https://github.com/pranavdurai10\" target=\"_blank\">Pranav Durai</a>\n\n<a align=\"left\" href=\"https://github.com/lakshaymehra\" target=\"_blank\">Lakshay Mehra</a>\n\n<a align=\"left\" href=\"https://github.com/karl-joan\" target=\"_blank\">Karl-Joan Alesma</a>\n\n<a align=\"left\" href=\"https://github.com/jacobmarks\" target=\"_blank\">Jacob Marks</a>\n\n<a align=\"left\" href=\"https://github.com/williamlung\" target=\"_blank\">William Lung</a>\n\n<a align=\"left\" href=\"https://github.com/amoghdhaliwal\" target=\"_blank\">Amogh Dhaliwal</a>\n\n</div>\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A vision library for performing sliced inference on large images/small objects",
    "version": "0.11.20",
    "project_urls": {
        "Homepage": "https://github.com/obss/sahi"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91b8defa7dffff8121f2afb748c9dd6a0f101081dae532735a1981cb70e53ca5",
                "md5": "42f9095386a165918412fe015dc524ad",
                "sha256": "153e4624f79a87ee19c890ed3beeb6b5b8021d7db1d3f229c9bc092bf8042971"
            },
            "downloads": -1,
            "filename": "sahi-0.11.20-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "42f9095386a165918412fe015dc524ad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 112371,
            "upload_time": "2024-12-16T17:07:49",
            "upload_time_iso_8601": "2024-12-16T17:07:49.471972Z",
            "url": "https://files.pythonhosted.org/packages/91/b8/defa7dffff8121f2afb748c9dd6a0f101081dae532735a1981cb70e53ca5/sahi-0.11.20-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "836721f4f149bfbfddc492e8ef183bc4878aef38f59e27126211c35221ae5541",
                "md5": "d334f0e6f1db833b7f4d804fd6f01c51",
                "sha256": "685fb52eb8352193a3402a5604ecc1fce5570108550643272b39a9f3f2b24435"
            },
            "downloads": -1,
            "filename": "sahi-0.11.20.tar.gz",
            "has_sig": false,
            "md5_digest": "d334f0e6f1db833b7f4d804fd6f01c51",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 111259,
            "upload_time": "2024-12-16T17:07:51",
            "upload_time_iso_8601": "2024-12-16T17:07:51.980846Z",
            "url": "https://files.pythonhosted.org/packages/83/67/21f4f149bfbfddc492e8ef183bc4878aef38f59e27126211c35221ae5541/sahi-0.11.20.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-16 17:07:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "obss",
    "github_project": "sahi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "opencv-python",
            "specs": [
                [
                    "<=",
                    "4.10.0.84"
                ]
            ]
        },
        {
            "name": "shapely",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.48.2"
                ]
            ]
        },
        {
            "name": "pillow",
            "specs": [
                [
                    ">=",
                    "8.2.0"
                ]
            ]
        },
        {
            "name": "pybboxes",
            "specs": [
                [
                    "==",
                    "0.1.6"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "fire",
            "specs": []
        },
        {
            "name": "terminaltables",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "click",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "<",
                    "2.0.0"
                ]
            ]
        }
    ],
    "lcname": "sahi"
}
        
Elapsed time: 0.42011s