mkd / README.md
ducha-aiki's picture
Add MKD whitening models in safetensors (bitwise copies of manyids2/mkd_pytorch mkd-*-64.pth), LICENSE, card
6f6df73 verified
|
Raw History Blame Contribute Delete
3.19 kB
---
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>.<whitening>.<statistic>`:
- `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}
}
```