GithubHelp home page GithubHelp logo

riven314 / cnn-registration Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yzhq97/cnn-registration

0.0 1.0 0.0 36.48 MB

A image registration method using convolutional neural network features.

License: MIT License

Python 100.00%

cnn-registration's Introduction

cnn-registration

A image registration method using convolutional neural network features written in Python2, Tensorflow API r1.5.0.

process

Introduction

Registration of multi-temporal remote sensing images has been widely applied in military and civilian fields, such as ground target identification, urban development assessment and geographic change assessment. Ground surface change challenges feature point detection in amount and quality, which is a common dilemma faced by feature based registration algorithms. Under severe appearance variation, detected feature points may contain a large proportion of outliers, whereas inliers may be inadequate and unevenly distributed. This work presents a convolutional neural network (CNN) feature based multitemporal remote sensing image registration method with two key contributions: (i) we use a CNN to generate robust multi-scale feature descriptors; (ii) we design a gradually increasing selection of inliers to improve the robustness of feature points registration. Extensive experiments on feature matching and image registration are performed over a multi-temporal satellite image dataset and a multi-temporal unmanned aerial vehicle (UAV) image dataset. Our method outperforms four state-of-the-art methods in most scenarios.

The paper "Multi-temporal Remote Sensing Image Registration Using Deep Convolutional Features" has been published on IEEE Access. See https://ieeexplore.ieee.org/document/8404075/.

citation information:

@article{
    author={Z. Yang and T. Dan and Y. Yang}, 
    journal={IEEE Access}, 
    title={Multi-Temporal Remote Sensing Image Registration Using Deep Convolutional Features}, 
    year={2018}, 
    volume={6}, 
    pages={38544-38555}, 
    doi={10.1109/ACCESS.2018.2853100}, 
    ISSN={2169-3536}
}

Requirements

  • numpy
  • scipy
  • opencv-python
  • matplotlib
  • tensorflow (with or without gpu)
  • lap

To install all the requirements run

pip install -r requirements.txt

Prior to doing so, in some Linux distributions, you may need to install software packages such as the following:

  • pip
  • python2 development package
  • python-setup

and you may need to do "pip install wheel".

Pretrained VGG16 parameters file vgg16partial.npy is available at https://drive.google.com/file/d/1o1xjU9F58x83iR91LoFjLOlBdLN3bPnm/view?usp=sharing. Please download and put it under the src/ directory.

Usage

see src/demo.py

import Registration
from utils.utils import *
import cv2

# load images
IX = cv2.imread(IX_path)
IY = cv2.imread(IY_path)

#initialize
reg = Registration.CNN()

#register
X, Y, Z = reg.register(IX, IY)

#generate regsitered image using TPS
registered = tps_warp(Y, Z, IY, IX.shape)

cnn-registration's People

Contributors

rburkey2005 avatar yzhq97 avatar

Watchers

 avatar

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.