Skip to main content

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

Project description

SAHI: Slicing Aided Hyper Inference

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

teaser

downloads pypi version conda version ci

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.

Getting started

Blogpost

Check the official SAHI blog post.

Installation

  • 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 torchvision
  • Install your desired detection framework (such as mmdet or yolov5):
pip install mmdet mmcv
pip install yolov5

Usage

  • Sliced inference:
result = get_sliced_prediction(
    image,
    detection_model,
    slice_height = 256,
    slice_width = 256,
    overlap_height_ratio = 0.2,
    overlap_width_ratio = 0.2
)

Refer to YOLOv5 Inference Notebook or MMDetection Inference Notebook for detailed usage.

  • Slice an image:
from sahi.slicing import slice_image

slice_image_result, num_total_invalid_segmentation = slice_image(
    image=image_path,
    output_file_name=output_file_name,
    output_dir=output_dir,
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)
  • Slice a coco formatted dataset:
from sahi.slicing import slice_coco

coco_dict, coco_path = slice_coco(
    coco_annotation_file_path=coco_annotation_file_path,
    image_dir=image_dir,
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

Refer to slicing notebook for detailed usage.

Scripts

Find detailed info on script usage (predict, coco2yolov5, coco_error_analysis) at SCRIPTS.md.

COCO Utilities

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

Adding new detection framework support

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.

Contributers

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

Uploaded Source

Built Distribution

sahi-0.4.4-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sahi-0.4.4.tar.gz
  • Upload date:
  • Size: 45.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for sahi-0.4.4.tar.gz
Algorithm Hash digest
SHA256 8aa176ea11df76b0be8b73287b82f12b5bb30f59ebecdccaa8ea28d48d270158
MD5 1fc3a7d2a411eb5e9f3b53e0458cf73b
BLAKE2b-256 a7a9d83f09d1da7d5d2ca868445fb26a4949672567245014a08843317f616c26

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sahi-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 50.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for sahi-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4cb62ee1400cdf92c967f92c4da9704e894af425ba658c5825a2b9ef277aba0e
MD5 54a7291f1d449b7a3404516a564218b0
BLAKE2b-256 6bd06ea2120c51941f67f50ddd31a611b86dd192219ae88ff023e5c256817a63

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