Skip to content

jerry-shijieli/GMM_based_Change_Detection_Framework_Using_Very_High_resolution_Satellite_Imagery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project: GMM based Change Detection Framework Using Very High-resolution Satellite Imagery

High resolution images provided by satellites are good resource to use to identify and quantify landscapes changes. We explore a detection method to identify landscape changes using high resolution satellite images. This grid based method is helpful in Bi-temporal change detection. By given two satellite images from the same area, it can identify changes accurately. In our project, we divide each high-resolution satellite image into equally-sized square grids and fit each grid of RGB pixels using one Gaussian distribution. Next, we use symmetric Kullback-Leibler (KL) divergence of two Gaussian distributions at the same location of various time as metrics of image changes. Then a Gaussian Mixture Model (GMM) is used to cluster the KL divergence map into various levels of change, which is a good visualization of change detection between the two images over time.

Getting Started

The models and algorithms of our project is implemented in Python code with the help of IPython Notebook for data and result visualization. All experiments are executed on local machine.

Prerequisites

Following Python packages have to be installed before executing the project code

numpy
scipy
sklearn
skimage
matplotlib

Installing

IPython notebook can be installed separately using pip

pip install ipython

Or with Anaconda bundle.

conda update conda
conda update ipython

And it can be viewed using available web browser by the following command-line in terminal inside the directory of code:

ipython notebook

Running the tests

Most of our code are recorded in ipython notebook cells. This notebook can be executed cell by cell in sequential order, or execute all at once using the Kernel starter. And the results will be visualized in images shown below the corresponding cells. We also extracted all codes and saved in python script which can be executed separately and save results in the very directory. To execute, use command-line in terminal:

python high_resolution_image_change_detection.py

Expected Results

The final product of our code execution should be a pair of maps on the same landscape area with major changes marked in transparent color blocks. For example, temporal changes are detected and marked as red and yellow blocks in the following pair of maps

Change Detection on Maps

For more details and intermediate results, please check the ipython notebooks in the folder code

Built With

Contributing

All team members contribute equivalently to this development of this project. See the final report for details.

Versioning

We use both git and hand-labeled file names for versioning. The existence of various versions at the same time is for the sake of result comparisons and code optimization.

Team Members

Acknowledgments

  • Thank Prof. Raju Vatsavai for the support and advice on this project.
  • Thank all TAs for suggestions on both algorithms and software tools to faciliate project development.
  • Thank all team members for contributions on project idea design, software implementation and experiment documentation.

Releases

No releases published

Packages

No packages published