A Lasagne and Theano implementation of the paper Convolutional neural network architecture for geometric matching by Ignacio Rocco, Relja Arandjelović, and Josef Sivic.
Download the Pascal VOC dataset.
(Optional) Download the Proposal Flow dataset.
Download the pre-trained weights for VGG16.
(Optional) Download the learned weights if you don't want to train your own model from scratch (NOTE: These weights won't reproduce the figures from the paper, because I haven't implemented the thin-plate-spline transform yet).
Get the code necessary for generating random transformation matrices from this repo.
This is a work-in-progress. Pull requests are welcome. Contact me if you run into issues using the code.
The thin-plate-spline has not yet been implemented. The model has not been trained properly yet, either. The images below were taken from the validation set after training for 300 epochs (about 17 hours on a TITAN X). The image on the left is the center crop, the image in the middle is the result of applying the ground-truth transformation to the center crop, and the image on the right is the result of applying the predicted transformation to the warped image (in other words, the pose of the rightmost image should resemble that of the leftmost image).
Similarly, the images below are from the Proposal Flow dataset: