Skip to main content

Cython implementation of Square Covering approach for Adaptive 2D Keypoints Non-Maximum Suppression

Project description

Cython implementation of Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution

Installation

pip install .

Example

import numpy as np
from anms.ssc import square_covering_adaptive_nms

# randomly generate data
n_kpts = 10000
width, height = 960, 720
kpts_x = np.random.randint(width, size=(n_kpts,))
kpts_y = np.random.randint(height, size=(n_kpts,))
kpts = np.stack([kpts_x, kpts_y], axis=-1)
responses = np.random.random(n_kpts)

kpts_idxs = square_covering_adaptive_nms(
    kpts,  # 2-dimensional array of shape [N, 2]
    responses,  # 1-dimensional array of shape [N,]
    width=width,  # width of image
    height=height,  # height of image
    target_num_kpts=2048,  # desired number of keypoints left
    indices_only=True,  # if True return indices of selected keypoints, else return selected keypoints
    up_tol=10,  # tolerance for more selected keypoints
    max_num_iter=30,  # maximum number of binary search iterations
)

References

Paper: Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution

Original implementation: GitHub

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

adaptive_nms-1.0.0a1-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

adaptive_nms-1.0.0a1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (631.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

adaptive_nms-1.0.0a1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (611.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

adaptive_nms-1.0.0a1-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

adaptive_nms-1.0.0a1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (636.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

adaptive_nms-1.0.0a1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (621.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

adaptive_nms-1.0.0a1-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

adaptive_nms-1.0.0a1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (607.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

adaptive_nms-1.0.0a1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (591.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

adaptive_nms-1.0.0a1-cp39-cp39-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

adaptive_nms-1.0.0a1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (608.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

adaptive_nms-1.0.0a1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (592.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

adaptive_nms-1.0.0a1-cp38-cp38-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

adaptive_nms-1.0.0a1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (623.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

adaptive_nms-1.0.0a1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (607.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file adaptive_nms-1.0.0a1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bf66071fbe2afbc78c55ce2657e4af064246e6affb343799960ba09e2ca8ddac
MD5 549d13419aa31d865caa190bc3c997f2
BLAKE2b-256 f586e5bb62cf0b74e388d4a8ff4279fde0db50c50a50d338c2514ee5d6e39d81

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ca0175e51b44762638032a7b4393d1b3ea6d6d1ccbf6af24c42f26d1401ca388
MD5 b87648a02dc17ca0d2ebd16931c503cb
BLAKE2b-256 37ae625f36d17dea0bb29115f28b077b334cc04578669ea74a9b64743470cc15

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c7fec53b5559f3a7785db9bad246ae37ff52553fc96eac11c03ce811f17e90c
MD5 2bfb14d70cbaac46e47982024133b02e
BLAKE2b-256 d4cb96c03c6f4474a273ab3487faf17e78ce2a132373ffe2110208d5b27a9af6

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a336c27b267ec423d25c74b1e016a72f377e7c60beffdd9e59bbbf3f58f3f38
MD5 a9128ed0fcb77bd416438fd89ef86475
BLAKE2b-256 ef9bb4e8686029daa298e4cfb19513796bf5fbb6783307e0817527900f69dd48

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42fdf413999d7261d4f6fa14b700fb596f170ab6e1719124f563eb2c4337df07
MD5 4f28cb77cf4cb1a379024acfae0e9e90
BLAKE2b-256 b6a4833b1c21dc17cb2b283fbf53cc961d00b42ae559ab1a12948a80513a35f0

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 544ed0f4230018a52def5cf8158faa4f16a70d88557326a89d4ad4c9a29e86a4
MD5 91ce7ed85da6204e88bcecd0effdaeb7
BLAKE2b-256 fafd59876ade11253125cfc475b1bef9422d55a378ef426271e5a5596ddc120c

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 073becb8e6d7ff014476bbaad36bbc3bc6e50b57ffc1769528999e1cb444936a
MD5 b1d4b98b4be44bfe3e15fde0602dfd71
BLAKE2b-256 e944798e1bfe38b2c574054571da53a19e24f07d157f51ec4c7a958437edf1cb

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15eaa8d81691a4a5cc6c103543a7187024cfa0d8b453f4d9bfd64903990ae490
MD5 e7dfdc5334b72a87ac9ddf17e912de5d
BLAKE2b-256 fc8248b3491cfca751519a9ce4984be138c65f2342144c36fa34c83b8f4edeb4

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fab2b7ce91605ec7322907419f211628e2de0e02c17d4a9602af15a0b3fdf909
MD5 6edae94ad4b0fc62986125f6c5a27b4e
BLAKE2b-256 5ab39296684d1e5a810e032e136775f76b289e18ab421ad687f2e4045ff85f3e

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dd7cc4db168cbbbe05d3376e5ab9220f01e10818a5ff30b33964d96f5b7c47c7
MD5 813c4c7b0b2a87ed6b7d84c0743959bb
BLAKE2b-256 c11831c5a130637321c19e3db262edd7d4d34d12d72f5c14de2e49107a2eab49

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9bbbedb336bb6f66bb861e5806d3e9dc7b243e6b8d642eca07e4a2b06bf083c
MD5 3255318f9cf81bc5dbe441633bba68ee
BLAKE2b-256 749c94cd5a6a0e174d839bdbb359936ec74ae5ee6393a989900acd1fdec4a765

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c073a3d9dacdbff2063e03b6bd68e1a4717cffb18d884dc6624e35712aafc902
MD5 bd646fd1f6f0ddd657e27dd0ac590d6f
BLAKE2b-256 1688b112c16df64180094c30d8df7f6295cc95033e1d715d83eb814de6eccb48

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 03c862b5d996c420a7766e15275f7779730c1e609421d002fb6f091dbec2b734
MD5 27803161b0094626c6bc898c794a2af3
BLAKE2b-256 54cb0450f5c0623d4c99a65ffcb8c2d7a0b34e42e8e0d49f446167cdb28bb377

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa97c7a5c51b12a66523fa0a96db00297af55fbfaa9b5b6c3efdd3ee0f793d05
MD5 a4892656f4c2b249065c4043bfd493d8
BLAKE2b-256 39162e98db3cea36bf0424aa57258e746f5c4efcacd74a585f8bf7355d5b9ed4

See more details on using hashes here.

File details

Details for the file adaptive_nms-1.0.0a1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for adaptive_nms-1.0.0a1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 360ff4b529206bfdd04a65d65751083ce99bcfafe9acf7fc7acf4094cd3c0421
MD5 9d578c70681c0fa36060417cc69c6432
BLAKE2b-256 228c924183c2f7a5e41088a798e2fd309e9f8b67ecd4459d7c3c33a466ca1aa1

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