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.2.dev1657903228.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file sparrow-datums-0.8.2.dev1657903228.tar.gz.

File metadata

  • Download URL: sparrow-datums-0.8.2.dev1657903228.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.13.0-1031-azure

File hashes

Hashes for sparrow-datums-0.8.2.dev1657903228.tar.gz
Algorithm Hash digest
SHA256 59955a83b80c596d2d84dc8d563c6cd7f9a421a846218c9fc09fe04fd4d91bc3
MD5 3e81bccad76ff397b642651409a2400d
BLAKE2b-256 2e4967ee6c2f6be5cae38d21636da6848672ab59b5c5e617705a1dea27451ecf

See more details on using hashes here.

File details

Details for the file sparrow_datums-0.8.2.dev1657903228-py3-none-any.whl.

File metadata

File hashes

Hashes for sparrow_datums-0.8.2.dev1657903228-py3-none-any.whl
Algorithm Hash digest
SHA256 c394c9d34b0cbe1e638d9b680196b4c71855fd1134e2bcb0b2bae8e83e5b10b9
MD5 236295b78e417bcedf2249750cc1a65f
BLAKE2b-256 5969fe1fc9fdb158e9f4bf763d15e6d7a0e1fa59534b74717a2c8d58143a8ea4

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