GithubHelp home page GithubHelp logo

letatanu / deephomography Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 1.0 9.55 MB

The unofficial implementation of the paper Deep Image Homography Estimation.

Python 8.82% Jupyter Notebook 91.18%
homography

deephomography's Introduction

Deep Image Homography Estimation

This project is the unofficial implementation of the paper Deep Image Homography Estimation. A homography is a mapping from a projective space (image) P to Q. From this network, it will estimate a 4-point homography parameterization which maps the four corners from one image into the second image.

An example Result Patch GroundTr Predicted

The pre-trained model is uploaded here.

Dataset

I used MS-COCO dataset as described in the paper. You can download it from here. There are 118287 images in the train set, and 40670 in the test set.

Pre-processing the dataset.

Resize all images in the train and validation sets to the size of 320x240 and resize all images in the test to the size of 640x480. Because I wanted to speed up the train progress, I then combined the resized images in train, validation and test sets into HDF5 files. For more detail, please take a look at the Dataset.py in the models directory.

Training

The model was trained over 49 epochs. The initial learning rate is 0.005, and it is divided by 10 per 30000 iterations. traingImage

Result

The average corner error after 49 epochs is:

  1. In the train set: 6.003
  2. In the validation set: 6.034

Demo

You can run the Demo.py with the pre-trained model to see the predicted reusult.

python Demo.py --image <image url>

deephomography's People

Contributors

letatanu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

deephomography's Issues

pakage version

Can you tell me the version of python and all the package version?
I have a problem with loading model, maybe it's caused by the wrong version.
thank you.

Doesn't work when same patch is fed as inputs.

If I feed the same patch (without any perturbation);
The target will be [[0,0],[0,0],[0,0],[0,0]] in H_4point format or 3x3 identity matrix in H_matrix form. But the output from the model is pretty random. It doesn't work in this case.
Any thoughts on why this is the case?

It also doesn't work in the case of simple translation in the x-direction.
The target will be [[16,0],[16,0],[16,0],[16,0]] in H_4point format.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.