scape-research / SOSNet

Pretrained pytorch model for the SOSNet descriptor [CVPR 2019]
https://research.scape.io/sosnet/
136 stars 28 forks source link

SOSNet: Second Order Similarity Regularization for Local Descriptor Learning

SOSNet model implementation in PyTorch for the paper:

SOSNet: Second Order Similarity Regularization for Local Descriptor Learning
Yurun Tian, Xin Yu, Bin Fan, Fuchao Wu, Huub Heijnen and Vassileios Balntas
CVPR 2019

[Project page] [Paper] [Poster] [Slides]

Loading the SOSNet demo

The SOSNet model definition can be found in sosnet_model.py.

Below we show an example on how to load the network and run it on a minibatch.

# Init the 32x32 version of SOSNet
sosnet32 = sosnet_model.SOSNet32x32()
net_name = "liberty"
sosnet32.load_state_dict(torch.load(os.path.join('sosnet-weights',"sosnet-32x32-"+net_name+".pth")))
sosnet32.cuda().eval();

# create a random mini-batch of 100 items
x = torch.rand(100,1,32,32).cuda()
# forward feed it to the network
fx = sosnet32(x)
print(fx.size())
# fx.size() -> (100,128)

Matching demo

We provide a demo on how to match two images in the SOSNet-demo notebook.

Citation

Please cite the following work if you use the code:

@InProceedings{sosnet2019cvpr,
author={Yurun Tian and Xin Yu and Bin Fan and Fuchao Wu and Huub Heijnen and Vassileios Balntas },
title = {SOSNet: Second Order Similarity Regularization for Local Descriptor Learning},
booktitle = {CVPR},
year = {2019}}