--- license: mit tags: - kornia - feature-description - local-descriptor --- # kornia/mkd Whitening models for **MKD** (Multiple Kernel Local Descriptor), used by [`kornia.feature.MKDDescriptor`](https://kornia.readthedocs.io/en/latest/feature.html). MKD describes a local patch with kernel embeddings of its gradients. The descriptor is then whitened with statistics learned on the PhotoTourism patch dataset. These files hold those statistics for each kernel type and training set. **Original repo:** [manyids2/mkd_pytorch](https://github.com/manyids2/mkd_pytorch) ## Weights | File | Kernel type | |------|-------------| | `mkd-cart-64.safetensors` | `cart` | | `mkd-polar-64.safetensors` | `polar` | | `mkd-concat-64.safetensors` | `concat` (polar and cart) | Each file holds 18 float32 tensors named `..`: - `training_set` is one of `liberty`, `notredame` and `yosemite`; - `whitening` is `pca` (unsupervised) or `lw` (learned, supervised); - `statistic` is one of `mean`, `eigvecs` and `eigvals`. The upstream pickles nest the same tensors as `{training_set: {whitening: {statistic: tensor}}}`. ## Provenance Each `.safetensors` file holds the tensors of the upstream pickle with the same stem, unchanged: the same dtypes, shapes and bits. The kornia maintainers converted them (converter revision `0c3db846b2`). | File | Upstream source | Source sha256 | sha256 | |------|-----------------|---------------|--------| | `mkd-cart-64.safetensors` | [`mkd-cart-64.pth`](https://github.com/manyids2/mkd_pytorch/raw/master/mkd_pytorch/mkd-cart-64.pth) | `a9f907bbc0eacd19e31228f839ed12ff6ecbbbfafa2bbde1266788c722c38d56` | `696e936d9848af36e872794b0b99d08125ef5a76ce5a99feae3dfd6e76dd8eba` | | `mkd-polar-64.safetensors` | [`mkd-polar-64.pth`](https://github.com/manyids2/mkd_pytorch/raw/master/mkd_pytorch/mkd-polar-64.pth) | `8c5c497a71bb186477fddd722eaedd9a68f5d17ea0e632d226a05a6d19994754` | `30e768eba7b1d03133f8f2a316e31900faccae460ef2fe694ec411f29965470d` | | `mkd-concat-64.safetensors` | [`mkd-concat-64.pth`](https://github.com/manyids2/mkd_pytorch/raw/master/mkd_pytorch/mkd-concat-64.pth) | `e31112000009e0d6e159dd7726aeea9f6a7d746cfe7d59b59bfb86c570667641` | `e9d96de020c89f8f59ee073c972278671b6eb997d17e168d4242e59a8cd4fe88` | The upstream files store each `pca.eigvecs` as a transposed view. A safetensors file stores row-major bytes, so the values here are identical but the tensor is contiguous. For every whitening variant and training set, an `MKDDescriptor` gives bitwise-identical outputs from either file once its parameters are contiguous. ## License MIT. [`LICENSE`](LICENSE) is copied verbatim from manyids2/mkd_pytorch. Its copyright line names the Python Packaging Authority, carried over from a project template; the package's `setup.py` names Arun Mukundan as its author. ## Citation ```bibtex @article{mukundan2018understanding, title = {Understanding and improving kernel local descriptors}, author = {Mukundan, Arun and Tolias, Giorgos and Bursuc, Andrei and J{\'e}gou, Herv{\'e} and Chum, Ond{\v{r}}ej}, journal = {International Journal of Computer Vision}, year = {2018} } ```