Skip to main content

Routines for computation of hessian affine keypoints in images.

Project description

CircleCI Travis Appveyor 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.0.tar.gz (106.9 kB view details)

Uploaded Source

Built Distributions

pyhesaff-2.1.0-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.0-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.0-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.0-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

File details

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

File metadata

  • Download URL: pyhesaff-2.1.0.tar.gz
  • Upload date:
  • Size: 106.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for pyhesaff-2.1.0.tar.gz
Algorithm Hash digest
SHA256 1efffc9f712959667bac417c43d2300eff4aa185c7c57486f9d3fa94e49289f0
MD5 9993dc68ad887eadea5e84b15bd3763e
BLAKE2b-256 a1efe4cef2bd84bd5b22f1603a0722c2da5358d5580a3268a3f5ab7737fb14d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyhesaff-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b05a1a5b8f70b66f1e5da15a0fb7f3fcacc758c9d84a808fbfcb70e18da9f23
MD5 a04d2467b5ecdce1ebcf91a994f71a12
BLAKE2b-256 a828d50ce50643c12a6d7612dbb5e6ab4d0f4fe3ba8a8881d7c180235c4c7f33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyhesaff-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a39e82384a2c0aa3a2be88c191e99ecb676bbd2ce3afcc92fce96149da9159f
MD5 1238214c2046cbdc3f53689b2112ca13
BLAKE2b-256 84729aead1193bd717a0a504c506575bc6ed5ad8e96c8cb7cc66f857f4816178

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyhesaff-2.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71cdd76d2ba7489865813e54f7b4313ebb38f21a4de5d55ef8a47bc16d4fa4db
MD5 bec6166f9e9c4c55f99f120a294251c1
BLAKE2b-256 56afe8592ef7850d65494e4957f4ed3decea6ab57440b336ac66a31e5b62e54b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyhesaff-2.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4128d67ad5d6088aa6a15efe106511283c0134a1add160cbf27e76c6190896c
MD5 e4a81f75d5d9aeae0f82346c47a79e8b
BLAKE2b-256 92200e47070b8fe71681e23ea7edfe9132a8407f5882cbb3bfba04fddd01e7e9

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