Simple Vignette Correction

From wikipedia: In photography and optics, vignetting is a reduction of an image’s brightness or saturation toward the periphery compared to the image center.

When presenting a collection of images as a mosaic, the vignetting in the imagery can cause visual discontinuities at the image borders. Here I present a simple strategy to model and correct the vignette in a collection of images.

Step 1: Compute the pixel-wise average for a set of images

I start by creating 2d numpy array of float32 type with the same dimension as our camera. Each [u, v] position in the numpy array is …
Read the rest... >>

DJI Phantom 4 Pro camera vs. Sony A6000

Recently I flew a DJI Phantom 4 Pro v2 head to head with an in-house (U of MN AEM UAS Lab) developed fixed wing UAS. This comparison isn’t entirely apples to apples, but maybe someone will find it useful.

DJI is the king of the hill for small UAS aerial surveys. Once you figure out the apps and a few basic things, operating one of these is pretty much click and fly and makes aerial survey work about as easy as it can be. Some quick details of our system:

  • Camera horizontal field of view: about 67 degrees.
  • 20 Megapixel

Read the rest... >>

Adventures in Aerial Image Stitching Episode #7

Lens Distortion Issues (or Fun with Optimizers)

For this episode I present a plot of optimized camera locations.   I have a set of 840 images.  Each image is taken from a specific location and orientation in space.  Let us call that a camera pose.  I can also find features in the images and match them up between pairs of images.  The presumption is that all the features and all the poses together create a giant puzzle with only one correct solution.  When all the features are moved to their correct 3d location, when all the cameras are in their correct …
Read the rest... >>

Automated Movie Frame Extracting and Geotagging

This is a short tutorial on an automated method to extract and geotag movie frames.  One specific use case is that you have just flown a survey with your quad copter using a 2-axis gimbal pointing straight down, and a gopro action cam in movie mode.  Now you’d like to create a stitched map from your data using tools like pix4d or agisoft.

The most interesting part of this article is the method I have developed to correlate the frame timing of a movie with the aircraft’s flight data log.  This correlation process yields a result such that for any …
Read the rest... >>

Image Stitching Tutorial Part #1: Introduction



During the summer of 2014 I began investigating image stitching techniques and technologies for a NOAA sponsored UAS marine survey project.  In the summer of 2015 I was hired by the University of Minnesota Department of Aerospace Engineering and Mechanics to work on a Precision Agriculture project that also involves UAS’s and aerial image stitching.

Over the past few months I have developed a functional open-source image stitching pipeline written in python and opencv.  It is my intention with this series of blog postings to introduce this work and further explain our approach to aerial image processing and stitching.…
Read the rest... >>

Adventures in Aerial Image Stitching

A small UAV + a camera = aerial pictures.




This is pretty cool just by itself.  The above images are downsampled, but at full resolution you can pick out some pretty nice details.  (Click on the following image to see the full/raw pixel resolution of the area.)


The next logical step of course is to stitch all these individual images together into a larger map.  The questions are: What software is available to do image stitching?  How well does it work?  Are there free options?  Do I need to explore developing my own software tool set?


Various aerial imaging …
Read the rest... >>