One challenge of working with unreferenced data in structure from motion is giving those data reference and context. For the original ukulele reconstruction, I started with an unreferenced model, which OpenDroneMap outputs, imported that into blender (with the
File:Import:Wavefront (.obj) option and manually rotated, translated and scaled it into my scene. This meant rotating it quite a bit on all three axes and moving the model a bit to get it where I wanted it in the scene.
That required a bit of work to get right, but works nicely. But what if instead, we want to apply some proper scale to this, so that it is in some real units?
To accomplish this, I just included a literal scale in the pictures. In the upper left, you can see a builder’s square I pulled from my shop (kinda rusty, eh?) and put down next to the Uke. I set the corner as
0,0 and then figured out the offsets for two other corners, which were 14 and 22.5 inches away.
Then, I found these points in a few of the images, and their offset in x and y from the upper left, and put together a “ground control” file for referencing my model.
Since the units of my builders square are in inches, my final reconstructed model ends up being in inches, which will be very useful later. I lied and gave it a fake coordinate system of UTM zone 17N just so OpenDroneMap would recognize what I put in as “valid” coordinates:
WGS84 UTM 17N
0 0 0 267.70 3744.67 SDIM0031.JPG
0 0 0 6004.83 3355.16 SDIM0037.JPG
14 0 0 1073.88 747.12 SDIM0031.JPG
14 0 0 5559.68 1861.94 SDIM0041.JPG
0 -22.5 0 1975.12 1164.48 SDIM0026.JPG
0 -22.5 0 1122.90 1818.63 SDIM0027.JPG
0 -22.5 0 1618.27 2596.78 SDIM0028.JPG
0 -22.5 0 5188.58 503.86 SDIM0035.JPG
0 -22.5 0 1327.09 4329.79 SDIM0107.JPG
0 0 0 4696.78 3172.61 SDIM0105.JPG
14 0 0 1883.56 3084.36 SDIM0105.JPG
0 -22.5 0 2981.77 2277.64 SDIM0106.JPG
I saved that file as
gcp_file.txt, included with my images, and uploaded to WebODM for processing.
So, how did it turn out? Well, let’s just call this the contour map of Mount Uke (ht Piero Toffanin for the name and the software development):