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 published on pypi using cibuildwheel. You can install via:

pip install pyhesaff

TO build from scratch you will need development libraries for OpenCV and cmake (via scikit-build) should be able to find them.

On ubuntu 24.04 you can:

sudo apt-get install libopencv-dev

To get the required dependencies.

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 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.

pyhesaff-2.2.0-cp314-cp314-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pyhesaff-2.2.0-cp314-cp314-manylinux_2_28_x86_64.whl (59.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pyhesaff-2.2.0-cp313-cp313-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pyhesaff-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (59.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pyhesaff-2.2.0-cp312-cp312-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pyhesaff-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (59.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pyhesaff-2.2.0-cp311-cp311-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pyhesaff-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (59.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pyhesaff-2.2.0-cp310-cp310-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pyhesaff-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (59.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pyhesaff-2.2.0-cp39-cp39-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.9Windows x86-64

pyhesaff-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl (59.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

File details

Details for the file pyhesaff-2.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyhesaff-2.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyhesaff-2.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 27e6890bc3fc5d136d665198bf18a972d3fa6117eca7fff92b16c5c6471b5d6c
MD5 2801173aa71013ef7a6e36ec80da5697
BLAKE2b-256 a3d768a91b62cd937054631ee6e3280ab287ce24173a289bd3dee3d438c12a77

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.2.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1df592d641d94ba0c67e0b1a361d3b7b7b1a9a55c803f3f8c3301c4822047eae
MD5 9341fc38e630f90e5bda96a72ce8de71
BLAKE2b-256 34b5760660deb039df8d90ca10d2b4b4dd6c54651c99481027da2ac525c77e0b

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyhesaff-2.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyhesaff-2.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4dd49a598d44bbff5e85cf0b53939038f44c466b9655789709445bbdebfcc278
MD5 ebd5bd5736b27cf5a76853a4086f7779
BLAKE2b-256 05c051ff75cc54cb4d52d80fd2496ffe2f6bce66e03780eb94021ba1b649de1e

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb5319640c794018f3e7eec261022cdd2d269fe213194c228d0ed87e8a5fe300
MD5 134bfd785948a98ffa2552be050382a5
BLAKE2b-256 01a511d1cb77492fa3172c5c43185afacd39da778f9ec2dcd69950b5dfda6fdf

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyhesaff-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyhesaff-2.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 284e4a90a95a5d44bdba07672d85fe2048230293402244987934f5de1970e50c
MD5 816db43573cfc6e6a4e39d3e7fb35ac0
BLAKE2b-256 2f7b40fd9e50b634add7e8ada3b6f52c8e6ac7cd6ca63f5fb24700b37ca3a011

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76880807d287de9fec756832a1cec81f2cd19b914df2e555ca5cc1bbdf2cd6c7
MD5 62b7182957ff1c5f9d74e1486ed6c992
BLAKE2b-256 021ce2e3bdbd3af9b2ffe81b9cc466699ebf0eb68b9a20290e14ac5e00a74bee

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyhesaff-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyhesaff-2.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b6705fe13a8615e9041fb33e97a88f165e13eebf052e5c66b22e6869f7cde77e
MD5 acd041ec0a926628996715fd47490d42
BLAKE2b-256 4fe79b741de104f8f5751875bfac1ad854be7f38617d9dc06a6dcd4e928ab81f

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76fb9a7a28e5d62737dae266ba536da1138bd332ca975ad4cabf3f1db5fd297a
MD5 bd9447223b9d75e33193a5ef1c42a52d
BLAKE2b-256 18c19eb1054dc9303b0a850e8ee0d7b84fc0cfef3c5fc9d198460b1b1b1425c2

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyhesaff-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyhesaff-2.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7e1de546fd2c194f9b13a320905b731f29af9f8b7af610886554175dcd518aa0
MD5 4212cfe2fa32107fd7489e13762cef9d
BLAKE2b-256 a9c4bd1727b53ecb450bcb289df5779980a74d1b629630b7af1bfca6ef5d2637

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5ebe8ffbb6f2b22e8a04db160a693af56a6a8064cce9c6b38552d387f263c6a
MD5 3e2ac0d928e2157fde6bb2d2fbdd5a3c
BLAKE2b-256 163666ef08b4d7d3fe9c820c1db4027eac0cc355e720b757e1bf2941c2074b2c

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyhesaff-2.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyhesaff-2.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 782085c55ed6d6386b4b781a50deca53c7d39e6fa3e1caee9fb8913f324deb47
MD5 3e1601804facafde378aa0d6787b0426
BLAKE2b-256 c4fb1d77267eb331d92004f6691da6b4cefa62897c69d71b41b973f84078dd5b

See more details on using hashes here.

File details

Details for the file pyhesaff-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyhesaff-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e4c41935ae30b6b9deea3fa62517a60b39db7a6938a27fecf01b6bff8c08ffb8
MD5 df812573708af3a2de7cf15f7d95904f
BLAKE2b-256 726ce8d12f955e3516d47834be75bd2701c31edbfefd23362b372f70a8ecf5f3

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