Skip to main content

A Python package for data structures

Project description

Sparrow Datums

Sparrow Datums is a Python package for vision AI data structures, related operations and serialization/deserialization. Specifically, it makes it easier to work with bounding boxes, key points (TODO), and segmentation masks (TODO). It supports individual objects, frames of objects, multiple frames of objects, objects augmented with class labels and confidence scores, and more.

Sparrow Datums also supports object tracking where the identity of the object is maintained. And that data can be streamed instead of keeping it all in a single file.

Quick Start Example

Installation

pip install -U sparrow-datums

Switching between box parameterizations

import numpy as np
from sparrow_datums import FrameBoxes, PType

boxes = FrameBoxes(np.ones((4, 4)), PType.absolute_tlwh)
boxes.to_tlbr()

# Expected result
# FrameBoxes([[1., 1., 2., 2.],
#             [1., 1., 2., 2.],
#             [1., 1., 2., 2.],
#             [1., 1., 2., 2.]])

Slicing

Notice that all "chunk" objects override basic NumPy arrays. This means that some filtering operations work as expected:

boxes[:2]

# Expected result
# FrameBoxes([[1., 1., 1., 1.],
#             [1., 1., 1., 1.]])

But sub-types do their own validation. For example, FrameBoxes must be a (n, 4) array. Therefore, selecting a single column throws an error:

boxes[:, 0]

# Expected exception
# ValueError: A frame boxes object must be a 2D array

Instead, chunks expose different subsets of the data as properties. For example, you can get the x coordinate as an array:

boxes.x

# Expected result
# array([1., 1., 1., 1.])

Or the width of the boxes:

boxes.w

# Expected result
# array([1., 1., 1., 1.])

If you need to access the raw data, you can do that with a chunk's array property:

boxes.array[0, 0]

# Expected result
# 1.0

Operations

Sparrow Datums comes with common operations for data types. For example, you can compute the pairwise IoU of two sets of FrameBoxes:

from sparrow_datums import pairwise_iou

pairwise_iou(boxes, boxes + 0.1)

# array([[0.57857143, 0.57857143, 0.57857143, 0.57857143],
#        [0.57857143, 0.57857143, 0.57857143, 0.57857143],
#        [0.57857143, 0.57857143, 0.57857143, 0.57857143],
#        [0.57857143, 0.57857143, 0.57857143, 0.57857143]])

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

sparrow-datums-0.8.3.dev1658506880.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file sparrow-datums-0.8.3.dev1658506880.tar.gz.

File metadata

  • Download URL: sparrow-datums-0.8.3.dev1658506880.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.8.13 Linux/5.15.0-1014-azure

File hashes

Hashes for sparrow-datums-0.8.3.dev1658506880.tar.gz
Algorithm Hash digest
SHA256 10300efa501211e16fb2e614105a1152889227016aa13044cb4b925e91729c2e
MD5 1b2ce935829d863dd2ddd711ea187892
BLAKE2b-256 edcc9e0e7e18ede33f27200d1af4958940125b997009b5985df5014f35fc2827

See more details on using hashes here.

File details

Details for the file sparrow_datums-0.8.3.dev1658506880-py3-none-any.whl.

File metadata

File hashes

Hashes for sparrow_datums-0.8.3.dev1658506880-py3-none-any.whl
Algorithm Hash digest
SHA256 c99351c6a6327b41fb423f458de81125bdaf9cf3d2cae713368993d0ec3293c3
MD5 a1d2963c9d71d07cf6b6418b9e2d6b1b
BLAKE2b-256 96be969c8d8fb9475c43708a72b01e24792dce2d6f2d9a3fe3eb5fb39c335c20

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