Skip to content

linum-uqam/MegaStitch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MegaStitch: Robust Large Scale Image Stitching

MegaStitch is a novel method for stitching high resolution images in large scale while being robust to drift and inconsistencies. This method was originally developed as an open source tool for the Phytooracle team to geo-correct and stitch their high resolution large scale imagesets. You can find the paper here.

This repository contains all the necessary code to run geo-correction and stitching procedures of MegaStitch method and to reproduce our results. If you find this method and the paper interesting and useful for your research, please cite us using the following bibliography.

@article{zarei2021megastitch,
  title={MegaStitch: Robust Large Scale Image Stitching},
  author={Zarei, Ariyan and Gonzalez, Emmanuel and Merchant, Nirav and Pauli, Duke and Lyons, Eric and Barnard, Kobus},
  year={2021},
  publisher={TechRxiv}
}

This README contains instructions on how to get the data that were used in the paper, install dependencies, and run MegaStitch.

Data


You can also find all the datasets as well as the Ground Control Points (GCPs) for each of them at this link.

Requirements and Installation

You can install the package and its dependencies with this command:

pip install -e .

We recommend to install this tool in a virtual environment.

Old instructions

Currently, there are no installation scripts for this repo. In order to use MegaStitch, you need to make sure that you have all the required python packages and files, and based on your needs, you need to run one of the main entry points of the repo. You can find the list of packages we installed on our conda environment at this text file. It is very important to install the same versions of some of these packages in order for the code to run.

Running MegaStitch and MGRAPH


MegaStitch can be used to stitch and geo-correct a different variety of images. These images can either contain approximate geo-referencing, or not. We tested MegaStitch on different drone datasets and a set of specific super high resolution images of plants acquized by a moving gantry machine over an agriculture field.

As one can read in the paper, MegaStitch have different varieties and can be run with different configurations. The main entry point script to be used for stitching and geo-correction of drone images with GPS information as well as other images captured with handheld cameras is MegaStitch_Main.py. This python script requires the following arguments:

  • -d / --data: The path to the data directory. This directory should contain all the images.

  • -r / --result: The path to the directory where the results will be saved. Different files and folders will be created in this folder.

  • -g / --gcp: The path to Ground Control Points (GCPs) json file. This file should have the same format as this sample file.

  • -s / --settings: The path to the json file that contains the configuration/settings information. You can find a sample of this file here.

In order to run the MGRAPH method, you should use MGRAPH_Main.py with the same arguments. Finally, in order to test Gantry images (high resolution images generated by Phytooracle Gantry System), you should use MegaStitch_Gantry_Main.py with the following set of arguments:

  • -d / --data: The path to the data directory. This directory should contain all the images.

  • -r / --result: The path to the directory where the results will be saved. Different files and folders will be created in this folder.

  • -g / --gcp: The path to Ground Control Points (GCPs) json file. This file should have the same format as this sample file.

  • -s / --settings: The path to the json file that contains the configuration/settings information. You can find a sample of this file here.

  • -m / --method: The name of the method to be used for geo-correction and stitching. It should be one of 'MGRAPH', 'MEGASTITCH-TR-KP', or 'MEGASTITCH-TR-PR'.

  • -n / --dataset_name: The name of the Dataset. It should be one of 'GSE', 'GLE', 'GLL', or 'GSL' based on the dataset being used.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.6%
  • C++ 3.1%
  • Makefile 2.5%
  • CMake 0.8%