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]
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)
We provide a demo on how to match two images in the SOSNet-demo notebook.
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}}