Skip to main content

A set of easy-to-use utils that will come in handy in any Computer Vision project

Project description

MetaVision

notebooks | inference | autodistill | maestro


version downloads snyk license python-version colab gradio discord built-with-material-for-mkdocs

👋 hello

We write your reusable computer vision tools. Whether you need to load your dataset from your hard drive, draw detections on an image or video, or count how many detections are in a zone. You can count on us! 🤝

💻 install

Pip install the superverse package in a Python>=3.8 environment.

pip install superverse

Read more about conda, mamba, and installing from source in our guide.

🔥 quickstart

models

Superverse was designed to be model agnostic. Just plug in any classification, detection, or segmentation model. For your convenience, we have created connectors for the most popular libraries like Ultralytics, Transformers, or MMDetection.

import cv2
import superverse as sv
from ultralytics import YOLO

image = cv2.imread(...)
model = YOLO("yolov8s.pt")
result = model(image)[0]
detections = sv.Detections.from_ultralytics(result)

len(detections)
# 5
👉 more model connectors
  • inference

    import cv2
    import superverse as sv
    from inference import get_model
    
    image = cv2.imread(...)
    model = get_model(model_id="yolov8s-640", api_key=<KHULNASOFT API KEY>)
    result = model.infer(image)[0]
    detections = sv.Detections.from_inference(result)
    
    len(detections)
    # 5
    

annotators

import cv2
import superverse as sv

image = cv2.imread(...)
detections = sv.Detections(...)

box_annotator = sv.BoxAnnotator()
annotated_frame = box_annotator.annotate(
  scene=image.copy(),
  detections=detections)

datasets

import superverse as sv
from khulnasoft import Khulnasoft

project = Khulnasoft().workspace(<WORKSPACE_ID>).project(<PROJECT_ID>)
dataset = project.version(<PROJECT_VERSION>).download("coco")

ds = sv.DetectionDataset.from_coco(
    images_directory_path=f"{dataset.location}/train",
    annotations_path=f"{dataset.location}/train/_annotations.coco.json",
)

path, image, annotation = ds[0]
    # loads image on demand

for path, image, annotation in ds:
    # loads image on demand
👉 more dataset utils
  • load

    dataset = sv.DetectionDataset.from_yolo(
        images_directory_path=...,
        annotations_directory_path=...,
        data_yaml_path=...
    )
    
    dataset = sv.DetectionDataset.from_pascal_voc(
        images_directory_path=...,
        annotations_directory_path=...
    )
    
    dataset = sv.DetectionDataset.from_coco(
        images_directory_path=...,
        annotations_path=...
    )
    
  • split

    train_dataset, test_dataset = dataset.split(split_ratio=0.7)
    test_dataset, valid_dataset = test_dataset.split(split_ratio=0.5)
    
    len(train_dataset), len(test_dataset), len(valid_dataset)
    # (700, 150, 150)
    
  • merge

    ds_1 = sv.DetectionDataset(...)
    len(ds_1)
    # 100
    ds_1.classes
    # ['dog', 'person']
    
    ds_2 = sv.DetectionDataset(...)
    len(ds_2)
    # 200
    ds_2.classes
    # ['cat']
    
    ds_merged = sv.DetectionDataset.merge([ds_1, ds_2])
    len(ds_merged)
    # 300
    ds_merged.classes
    # ['cat', 'dog', 'person']
    
  • save

    dataset.as_yolo(
        images_directory_path=...,
        annotations_directory_path=...,
        data_yaml_path=...
    )
    
    dataset.as_pascal_voc(
        images_directory_path=...,
        annotations_directory_path=...
    )
    
    dataset.as_coco(
        images_directory_path=...,
        annotations_path=...
    )
    
  • convert

    sv.DetectionDataset.from_yolo(
        images_directory_path=...,
        annotations_directory_path=...,
        data_yaml_path=...
    ).as_pascal_voc(
        images_directory_path=...,
        annotations_directory_path=...
    )
    

📚 documentation

Visit our documentation page to learn how superverse can help you build computer vision applications faster and more reliably.

🏆 contribution

We love your input! Please see our contributing guide to get started. Thank you 🙏 to all our contributors!

Project details


Download files

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

Source Distribution

superverse-0.3.0.tar.gz (143.5 kB view details)

Uploaded Source

Built Distribution

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

superverse-0.3.0-py3-none-any.whl (179.6 kB view details)

Uploaded Python 3

File details

Details for the file superverse-0.3.0.tar.gz.

File metadata

  • Download URL: superverse-0.3.0.tar.gz
  • Upload date:
  • Size: 143.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for superverse-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ffaa5905228d980fe288d40f45de3343ea88969d7baa5b2abe4d1f23cd7b9a97
MD5 2505b51055607c5a9be6d3908f94bf9b
BLAKE2b-256 cbcd284ae683d0a657b7eff41eed166f7da9f2333f8534794ef650100712e0d7

See more details on using hashes here.

File details

Details for the file superverse-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: superverse-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 179.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for superverse-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3a374441bac545649f1909711708d73752a66fabcc418aa5d48882ec15fab121
MD5 d6e34d6f8a522baaf39ea6ce890d1402
BLAKE2b-256 7cca821b14401d787df67c1580fbb609e252a252e3b745b12a50862c3cb1baca

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