Code Monkey home page Code Monkey logo

drone-images-mosaicing's Introduction

About

In recent times, Unmanned Aerial Vehicles (UAVs), more commonly known as drones, have been finding applications in a range of fields. They are used to capture aerial imagery in sectors like precision agriculture, infrastructure, disaster management, city planning etc. The first crucial step after collecting aerial imagery is to generate a mosaic (or orthomosaic) from the imagery dataset or in a layman’s language a digital map.

This project contains the code written from scratch to generate mosaics out of drone imagery. This code can also be used for panorama generation.

A single-clicked image has a limited field of view (FOV), we need to stitch together several image stills to form a mosaic to increase the FOV. Image mosaicing is a very popular way to obtain a wide FOV image of a scene. The basic idea is to capture images as a camera moves and stitch these images together to obtain a single larger image. The moving camera on the drone can be used to capture more slices of an area. These multiple image slices can be mosaiced together to give an entire view of a scene.

Approach

Assumptions

  • There is atleast 70% overlap (both front and sideways) between the images while the data was collected
  • The images are stored sequentially in the dataset

Methodology

Below is a higher-level overview of the mosaicing technique implemented:

  1. Choose first two images in the dataset
  2. Find matching keypoints between the two images
  3. Calculate the homography using the matched key- points
  4. Using this homography, one image is warped to be in the same frame as the other and a new image of all black pixels is created which can fit both images in the new frame
  5. Repeat step 2 with the current mosaic and the next image, until all the images in the dataset are covered

Stitched Mosaics

The algorithm was tested on two datasets: agricultural farm and of Chandigarh city (the dataset has been personally collected). Below shows some of the mosaics (the mosaics below have been resized for easy viewing. Please see the original mosaics in their respective folders):

Farm Mosaic

Farm Mosaic

City Mosaic

City Mosaic

Future Work

As it is evident that the quality of mosaic is deteriorating with increase in the number of stitched images. That is because the homography error accumulates with each stitch. Need to implement Bundle Adjustment to reduce the propagating error.

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.