Skip to content

NezumiRonin/JigsawPuzzleSolver

 
 

Repository files navigation

##Unsupervised Learning of Visual Representions by solving Jigsaw Puzzles.

This is the author implementaion of Unsupervised Learning of Visual Representaions by Solving Jigsaw Puzzles.

@inproceedings{norooziECCV16,
    Author = {Mehdi Noroozi and Paolo Favaro},
    Title = {Unsupervised Learning of Visual Representions by solving Jigsaw Puzzles},
    Booktitle = {ECCV},
    Year = {2016}
}

Requirements

This software has all the same requirements as Caffe.

Training Jigsaw Puzzle Solver

At first generate the imagenet dataset in a way described in paper. Make the data generation

cd generate_jps_dataset
make

Execute data generation

generate_jps_dataset /path/to/original/imagenet/lmdb/dataset /output/peth/to/jps/datastet

The first argument is the path to ImageNet lmdb dataset includes shuffled images with original size. Caffe indludes scripts to generate this dataset.

Then you need to make the customized Caffe version that generates puzzles on the fly.

cd caffe-maste-jps
make all matcaffe

To train jigsaw puzzle solver use solver_cfn_jps.prototxt, you need to set dataset produced above in train_val_cfn_jps.prototxt.

To train CFN for recognition use solver_cfn_rec.prototxt, you need to set ImageNet lmdb path which includes resized 256x256 images in train_val_cfn_rec.prototxt.

You can use cfn_jps_test.m and cfn_rec_test.m to test the trained models in matlab. The trained models are available on the project page.

To reproduce ImageNet classfication experiment results(Table 2), you need to train CFN for recognition initialized with jigsaw puzzle solver weights and lock desired convolutinal layers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 31.9%
  • C++ 27.6%
  • Shell 23.4%
  • Perl 5.5%
  • TeX 2.9%
  • Makefile 2.5%
  • Other 6.2%