Skip to main content

Utility functions to manipulate and compute metrics on boxes

Project description

CI Coverage pypi versions

PowerBoxes

Powerboxes is a package containing utility functions for transforming bounding boxes and computing metrics. It is implemented in Rust with python bindings. It shows a significant speedup over the equivalent numpy implementations in Python, or other libraries such as shapely.

Installation

pip install powerboxes

Python Usage

import powerboxes as pb
import numpy as np

# Create a bounding box
box = np.array([[0, 0, 1, 1]])

# Compute the area of the box
area = pb.box_areas(box)

# Compute the intersection of the box with itself
intersection = pb.iou_distance(box, box)

Functions available

Box Transformations and utilities

  • box_areas: Compute the area of list of boxes
  • box_convert: Convert a box from one format to another. Supported formats are xyxy, xywh, cxcywh.
  • remove_small_boxes: Remove boxes with area smaller than a threshold
  • mask_to_boxes: Convert a mask to a list of boxes

Box Metrics

  • iou_distance: Compute the intersection over union matrix of two sets of boxes
  • parallel_iou_distance: Compute the intersection over union matrix of two sets of boxes in parallel
  • giou_distance: Compute the generalized intersection over union matrix of two sets of boxes
  • parallel_giou_distance: Compute the generalized intersection over union matrix of two sets of boxes in parallel

Box NMS

  • nms: Non-maximum suppression, returns the indices of the boxes to keep

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

powerboxes-0.2.0.tar.gz (27.2 kB view hashes)

Uploaded Source

Built Distributions

powerboxes-0.2.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

powerboxes-0.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (473.0 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

powerboxes-0.2.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (492.5 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

powerboxes-0.2.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

powerboxes-0.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (473.1 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

powerboxes-0.2.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (492.7 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

powerboxes-0.2.0-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

powerboxes-0.2.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl (473.2 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

powerboxes-0.2.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (492.9 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

powerboxes-0.2.0-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

powerboxes-0.2.0-pp37-pypy37_pp73-macosx_10_12_x86_64.whl (495.0 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

powerboxes-0.2.0-cp312-none-win_amd64.whl (334.2 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

powerboxes-0.2.0-cp312-none-win32.whl (318.5 kB view hashes)

Uploaded CPython 3.12 Windows x86

powerboxes-0.2.0-cp312-cp312-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-cp312-cp312-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

powerboxes-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

powerboxes-0.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

powerboxes-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.12+ i686

powerboxes-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (473.9 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

powerboxes-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl (504.5 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

powerboxes-0.2.0-cp311-none-win_amd64.whl (335.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

powerboxes-0.2.0-cp311-none-win32.whl (319.7 kB view hashes)

Uploaded CPython 3.11 Windows x86

powerboxes-0.2.0-cp311-cp311-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-cp311-cp311-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

powerboxes-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

powerboxes-0.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

powerboxes-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.12+ i686

powerboxes-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (473.6 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

powerboxes-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl (506.8 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

powerboxes-0.2.0-cp310-none-win_amd64.whl (335.6 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

powerboxes-0.2.0-cp310-none-win32.whl (319.5 kB view hashes)

Uploaded CPython 3.10 Windows x86

powerboxes-0.2.0-cp310-cp310-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-cp310-cp310-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

powerboxes-0.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

powerboxes-0.2.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

powerboxes-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

powerboxes-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (473.5 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

powerboxes-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl (505.6 kB view hashes)

Uploaded CPython 3.10 macOS 10.12+ x86-64

powerboxes-0.2.0-cp39-none-win_amd64.whl (335.4 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

powerboxes-0.2.0-cp39-none-win32.whl (320.4 kB view hashes)

Uploaded CPython 3.9 Windows x86

powerboxes-0.2.0-cp39-cp39-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-cp39-cp39-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

powerboxes-0.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

powerboxes-0.2.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

powerboxes-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

powerboxes-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (473.9 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

powerboxes-0.2.0-cp39-cp39-macosx_10_12_x86_64.whl (493.1 kB view hashes)

Uploaded CPython 3.9 macOS 10.12+ x86-64

powerboxes-0.2.0-cp38-none-win_amd64.whl (336.0 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

powerboxes-0.2.0-cp38-none-win32.whl (319.5 kB view hashes)

Uploaded CPython 3.8 Windows x86

powerboxes-0.2.0-cp38-cp38-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-cp38-cp38-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

powerboxes-0.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

powerboxes-0.2.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

powerboxes-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

powerboxes-0.2.0-cp38-cp38-macosx_11_0_arm64.whl (474.2 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

powerboxes-0.2.0-cp38-cp38-macosx_10_12_x86_64.whl (493.1 kB view hashes)

Uploaded CPython 3.8 macOS 10.12+ x86-64

powerboxes-0.2.0-cp37-none-win_amd64.whl (336.0 kB view hashes)

Uploaded CPython 3.7 Windows x86-64

powerboxes-0.2.0-cp37-none-win32.whl (319.3 kB view hashes)

Uploaded CPython 3.7 Windows x86

powerboxes-0.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

powerboxes-0.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

powerboxes-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

powerboxes-0.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

powerboxes-0.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

powerboxes-0.2.0-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

powerboxes-0.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

powerboxes-0.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (1.5 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

powerboxes-0.2.0-cp37-cp37m-macosx_11_0_arm64.whl (473.7 kB view hashes)

Uploaded CPython 3.7m macOS 11.0+ ARM64

powerboxes-0.2.0-cp37-cp37m-macosx_10_12_x86_64.whl (493.2 kB view hashes)

Uploaded CPython 3.7m macOS 10.12+ x86-64

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