SfM-tests

SfM-tests

I installed a Sony Alpha 6000 w/ Zeiss 35mm 2.8 FE lens on the Firefly6.

In Mission Planner (Firefly6 AvA version) I designed a small mission over my property (using a polygon - not visible). The mission was flown using the Autopilot. 

 

This mission took about 4 minutes not counting the 2 minutes for ascent and descent over the landing area - this needs to be modified in the future so that altitude can be gained during forward flight versus hover (took too long a time and too much energy at full power to gain elevation above ground).

Create still frames from video

The camera recorded video on its flight in HD (1920x1080p, 29.97 fps).

I used Adobe Creative Cloud Premiere Pro to convert the M4P video to .JPEG images at 5 frames per second (fps) and the highest resolution quality setting.

Open the Premiere Pro

Add the .MP4 file to the Projects

Click on File > Export 

In Export Settings select:

Format: JPEG

Preset: Custom

Output Name: [Select Folder for Archive]

In Basic Settings select:

Make sure the video is in the highest quality setting

Frame Rate: 1 or 5 per second - this needs to be tweaked to ensure you get enough focused frames

Maximum Render Quality is checked.

Orthophoto mosaic

I used Adobe CC Photoshop to convert the .JPEG images into a photo mosaic using the add images to Stack

File > Scripts > Load files into Stack.

Or 

File > Automate > PhotoMerge

 

I also created digital surface models (DSM) equivalent to Orthomosaics in Visual-SfM using the dense point reconstruction (CMVS)

In Cloud Compare I opened the '.bundle.out' file

Agisoft Photoscan Demo (Structure from Motion)

I downloaded Photoscan and got a 30-day trial license.

In the Tools > Preferences settings I set up the GPU with OpenCL to run on all but 1 core of my Workstation:

I then added 304 of the clearest frames from the video.

After the photos were added they are aligned, then a dense point cloud can be generated:

Workflow > Align Photos

Workflow > Build Dense Cloud ...

 

While the process was running I could see in the Windows Resource Monitor and the GPU monitor that the program was using all 32-cores on my workstation and rapidly firing up to 75% of GPU Load as pictures were processed. Processing took about 45 minutes.

The resulting point cloud has over 65 million points:

agisoft_log.txt

I also tested total processing time without GPU acceleration, which was about 4 hours (5 x slower than with GPU acceleration). 

 

After the third flight I found that the camera was taking blurry photos while the UAV was in a steep loitering turn pattern 

I found this site: http://diydrones.com/forum/topics/aerial-mapping-what-is-best-sony-nex-5-setting-for-aerial?commentId=705844%3AComment%3A2091084&xg_source=activity

The ideal camera settings which are recommended for clear photos are: 1/2500+ second shutter speed, f-stops between f/5 - f/9, and ISO ranges between 200-600. 

Third flight test (loiter flight-pattern)

I downloaded the time lapse app from Sony PlayMemories using the Wifi on the a6000 camera. I set the interval to 1 second (the shortest time option). I turned off the review picture option in Settings. The camera was fixed into the mount and I pressed the shutter button a few seconds before arming the FireflY and initiating the flight.

I programmed the FireflY6 to fly a loiter (circling a point) flight pattern to try and establish the angle of longitudinal axis roll for taking pictures off nadir. Most of the resulting images were taken at ~15 degree roll angle.

The camera was set at too slow a shutter speed so many of the images were unusable. I was able to use about 214 photos (@6000x4000 resolution, ~2 Gb total). I ran the process at ultra high resolution through my workstation with GPU in OpenCL. The dense point cloud generation took approximately 18 hours and resulted in a cloud with 685 million points (5.5 Gb .LAZ file). Generation of a mesh surface took approximately 3 hours. These processes ran on 31/32 dual-core Xeon CPU plus the NVidia GPU (6Gb, 2816 CUDA cores).