Skip to main content

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.

Metadata

Release files for pyhesaff 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pyhesaff 2.2.0
File
pyhesaff-2.2.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pyhesaff-2.2.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
pyhesaff-2.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyhesaff-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
pyhesaff-2.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyhesaff-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
pyhesaff-2.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyhesaff-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
pyhesaff-2.2.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyhesaff-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
pyhesaff-2.2.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pyhesaff-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details

Total release size: 385.3 MB

Release files / pyhesaff-2.2.0-cp314-cp314-win_amd64.whl

Download URL pyhesaff-2.2.0-cp314-cp314-win_amd64.whl
Size 4.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
27e6890bc3fc5d136d665198bf18a972d3fa6117eca7fff92b16c5c6471b5d6c
BLAKE2b-256 checksum
How to use checksums
a3d768a91b62cd937054631ee6e3280ab287ce24173a289bd3dee3d438c12a77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL pyhesaff-2.2.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 59.7 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1df592d641d94ba0c67e0b1a361d3b7b7b1a9a55c803f3f8c3301c4822047eae
BLAKE2b-256 checksum
How to use checksums
34b5760660deb039df8d90ca10d2b4b4dd6c54651c99481027da2ac525c77e0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp313-cp313-win_amd64.whl

Download URL pyhesaff-2.2.0-cp313-cp313-win_amd64.whl
Size 4.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4dd49a598d44bbff5e85cf0b53939038f44c466b9655789709445bbdebfcc278
BLAKE2b-256 checksum
How to use checksums
05c051ff75cc54cb4d52d80fd2496ffe2f6bce66e03780eb94021ba1b649de1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL pyhesaff-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 59.7 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cb5319640c794018f3e7eec261022cdd2d269fe213194c228d0ed87e8a5fe300
BLAKE2b-256 checksum
How to use checksums
01a511d1cb77492fa3172c5c43185afacd39da778f9ec2dcd69950b5dfda6fdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp312-cp312-win_amd64.whl

Download URL pyhesaff-2.2.0-cp312-cp312-win_amd64.whl
Size 4.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
284e4a90a95a5d44bdba07672d85fe2048230293402244987934f5de1970e50c
BLAKE2b-256 checksum
How to use checksums
2f7b40fd9e50b634add7e8ada3b6f52c8e6ac7cd6ca63f5fb24700b37ca3a011
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL pyhesaff-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 59.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
76880807d287de9fec756832a1cec81f2cd19b914df2e555ca5cc1bbdf2cd6c7
BLAKE2b-256 checksum
How to use checksums
021ce2e3bdbd3af9b2ffe81b9cc466699ebf0eb68b9a20290e14ac5e00a74bee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp311-cp311-win_amd64.whl

Download URL pyhesaff-2.2.0-cp311-cp311-win_amd64.whl
Size 4.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b6705fe13a8615e9041fb33e97a88f165e13eebf052e5c66b22e6869f7cde77e
BLAKE2b-256 checksum
How to use checksums
4fe79b741de104f8f5751875bfac1ad854be7f38617d9dc06a6dcd4e928ab81f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL pyhesaff-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 59.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
76fb9a7a28e5d62737dae266ba536da1138bd332ca975ad4cabf3f1db5fd297a
BLAKE2b-256 checksum
How to use checksums
18c19eb1054dc9303b0a850e8ee0d7b84fc0cfef3c5fc9d198460b1b1b1425c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp310-cp310-win_amd64.whl

Download URL pyhesaff-2.2.0-cp310-cp310-win_amd64.whl
Size 4.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
7e1de546fd2c194f9b13a320905b731f29af9f8b7af610886554175dcd518aa0
BLAKE2b-256 checksum
How to use checksums
a9c4bd1727b53ecb450bcb289df5779980a74d1b629630b7af1bfca6ef5d2637
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL pyhesaff-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 59.7 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e5ebe8ffbb6f2b22e8a04db160a693af56a6a8064cce9c6b38552d387f263c6a
BLAKE2b-256 checksum
How to use checksums
163666ef08b4d7d3fe9c820c1db4027eac0cc355e720b757e1bf2941c2074b2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp39-cp39-win_amd64.whl

Download URL pyhesaff-2.2.0-cp39-cp39-win_amd64.whl
Size 4.5 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
782085c55ed6d6386b4b781a50deca53c7d39e6fa3e1caee9fb8913f324deb47
BLAKE2b-256 checksum
How to use checksums
c4fb1d77267eb331d92004f6691da6b4cefa62897c69d71b41b973f84078dd5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyhesaff-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL pyhesaff-2.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 59.7 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e4c41935ae30b6b9deea3fa62517a60b39db7a6938a27fecf01b6bff8c08ffb8
BLAKE2b-256 checksum
How to use checksums
726ce8d12f955e3516d47834be75bd2701c31edbfefd23362b372f70a8ecf5f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

2.2.0 This release

12 release files

2.1.3

6 release files

2.1.2

6 release files

2.1.1

11 release files

2.1.0

5 release files

2.0.1

28 release files

1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page