Skip to main content

Routines for computation of hessian affine keypoints in images.

Project description

GithubActions Codecov Pypi Downloads ReadTheDocs

Hessian Affine + SIFT keypoints in Python

This is an implementation of Hessian-Affine detector.

The implementation uses a Lowe’s (Lowe 1999, Lowe 2004) like pyramid to sample Gaussian scale-space and localizes local extrema of the Detetminant of Hessian Matrix operator computed on normalized derivatives. Then a Baumberg-Lindeberg discovery of a local affine shape is employed (Lindeberg 1998, Baumberg 2000, Mikolajzyk 2002) to compute affine shape of each det of Hessian extrema. Finally a local neighbourhood is normalized to a fixed size patch and SIFT descriptor(Lowe 1999, Lowe 2004) computed.

BUILDING

There are wheels publishe on pypi using cibuildwheel.

IMPLEMENTATION

Implementation depends on OpenCV (2.3.1+). Although, the code is original, the affine iteration and normalization was derived from the code of Krystian Mikolajczyk.

The SIFT descriptor code was patented under a US Patent 6,711,293, which expired on March 7th 2019, so the license is no longer required for use.

OUTPUT

NOTE THIS IS NO LONGER THE CASE. WE MAY REINSTATE THIS.

The built binary rewrites output file: <input_image_name>.hesaff.sift

The output format is compatible with the binaries available from the page “Affine Covariant Features”. The geometry of an affine region is specified by: u,v,a,b,c in a(x-u)(x-u)+2b(x-u)(y-v)+c(y-v)(y-v)=1. The top left corner of the image is at (u,v)=(0,0). The geometry of an affine region is followed by N descriptor values (N = 128).

File format:

N
m
u1 v1 a1 b1 c1 d1(1) d1(2) d1(3) ... d1(N)
      :
      :
um vm am bm cm dm(1) dm(2) dm(3) ... dm(N)

PROPER USE

If you use this code, please refer to

Perdoch, M. and Chum, O. and Matas, J.: Efficient Representation of Local Geometry for Large Scale Object Retrieval. In proceedings of CVPR09. June 2009.

TBD: A reference to technical report describing the details and some retrieval results will be placed here.

NOTES

Requires opencv. On ubuntu you can: sudo apt-get install libopencv-dev. You can also build / use wheels.

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

pyhesaff-2.1.1.tar.gz (108.4 kB view details)

Uploaded Source

Built Distributions

pyhesaff-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyhesaff-2.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (8.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

pyhesaff-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyhesaff-2.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (8.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

pyhesaff-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyhesaff-2.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (8.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

pyhesaff-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyhesaff-2.1.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (8.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

pyhesaff-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.8 MB view details)

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

pyhesaff-2.1.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (8.8 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

File details

Details for the file pyhesaff-2.1.1.tar.gz.

File metadata

  • Download URL: pyhesaff-2.1.1.tar.gz
  • Upload date:
  • Size: 108.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pyhesaff-2.1.1.tar.gz
Algorithm Hash digest
SHA256 1d513ec66bd2a9799d7ea98c89f80618dddd52711f06c412d8defa22b650b428
MD5 e4acd470293aa0d2cc7a3a899ef9b6a3
BLAKE2b-256 252afb03a8272b7e673fd121dc00e65e932c372271c7219955221bbae2982c7e

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd0ebb98de94ece860c04f6a746ab2bc5374b326b847caa953256bd9a1fc5c62
MD5 9ab9701ab71aaabb666a99b93eac2517
BLAKE2b-256 02614c2e897defd357cfcdcb3a16d2490ceaa20a6aeb6edba9e43c05243816e1

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1f7ff2f48bccae8394e2b1bd6a7d360315ed99dfcde4a658e35ab366feb659b5
MD5 8f0fde816ae792a7d1ac0dee26a5b43c
BLAKE2b-256 8c0efe8e23108e082e5372c371ad9d6780f512a456c6df6c154bf6aa636ad9c9

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46f1e5b34eb271456246e675b80e7cfb5be5fda1e275ad8fbf35429262e3cbe1
MD5 8a243cf30a968b847bbf4b866e21d860
BLAKE2b-256 bb30ad07f6b3a5d544b36a4412835ddc380875a0f9c82a79423a990ca938604a

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8a34314e8d78f3395b6d6b6506ba960efc47ed0ec0cbc227bb5b46d5ddeb2fb4
MD5 f262604cda65d3263c11254545eb4ed1
BLAKE2b-256 e831eabd04bdc32ba46459d2c869f73fc37523ec6e59133300a78cee8a6e11bd

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c16613140eb7c6a5371395b80546f5abaec704b86ed0ab5c8f33310da3fa939
MD5 ca465bef0dba795afee58753a94289aa
BLAKE2b-256 5b322f0152900866c197eb7e9cf862cb2a226056038365e4448c7051d7110743

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d59ac7fb54e1550cdb2abe1fabc7ad05885265eb8c31dd7ab6b53191607cdb2f
MD5 3e28ef5dcbaa3d215122888456db3fd7
BLAKE2b-256 03146d03f33f34095e426ce48ff4ae6232449fb8589061bf10f2c7d0efe4de86

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 92a3ff3d0500232ec863fa8ec3750ee21515afbfd8ad75b2343b51beeac78429
MD5 26a62d7babb6a1a3661e4fcc41f99c43
BLAKE2b-256 e299c7bd441fed67306b218c97db45bce5f97e2462c214704fd0cccac3e1333b

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bbe579c42f51fd2628148eed3e2af883f9e7718d841bff3f74deeb6c8980a6d3
MD5 63a38100f26f84361fb4e7821a303b80
BLAKE2b-256 abd581021ff451fc0a2c580ffa9bc72b73cf25da2a7ba47c6ef949eac8f2caa7

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2acff4cde7bffe966375c19cfb86534562bff27b8602d6a504cf06e0647c25de
MD5 29f425a2d72c4f08f87a3e947e9a80d8
BLAKE2b-256 65620acbe9fab716ed94db0cdb5b2fe5476855891924de127669cb0ffd0153dd

See more details on using hashes here.

File details

Details for the file pyhesaff-2.1.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyhesaff-2.1.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4390f8e6708ba7b1eec3a9b837ed2799459945047a7aa09534407c12997f0ed3
MD5 0c260d0869179889d2c1e3994907e919
BLAKE2b-256 2a820badd5dbabc0cefe7928133ac55a9b61b321c2523d5015c9c6d385829641

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