This might be a bit off from the main interest on this forum, but then, you never know.
For my part, the thrill for UAV's was originally the interst for what they could be used for, not the UAV's themselvs. But like most newcomers , I soon learned to tune the expectations for small UAV's down a level or two. Strangely enough, it wasn't all that easy. Lot's of the functionality requested isn't there (yet), more skills then initially thought of are needed, and so on.
After the T3-4 (map a quarter of a mile) competition, I started to explore what software that was around, with regard to image processing and creation of digital elevation models (dem's) and orthophotos. What I discovered was that there were quite a few, but with a price tag usually starting at about 5K USD or more, besides not neccessarily particulary easy to use. Well, there were also open source and low cost softwares, some with limited/specialized functionality, and often with high requirements for the users qualifications.
Well, not to make this an essay, I will jump to the point. After I got aware of MS Photosynth and similar software, things started to lighten. With Photosynth (and similar), it is basically possible to extract the same kind of information as from high cost laser-scans. Not the same amount of data, but in many respects with comparable possibilities for utilizations. The problem seemed however to be that Photosynth pointclouds were not georeferenced, and could therefore not be directly imported into other software for further processing.
Therefore, when I finally got some spare time, I started to develope a software/tool for exactly this, georeferencing of pointclouds. By now, I have a functional software, but still need to do more testing. So, I want to get in touch with others who have the same interest in processing of aerial photos, and who do use UAVs for this purpose.
If so, and if you have some time spend on experimenting with new software, please send me a PM.
So for the software, what does it do?
PC-GoeRef (Point Cloud GeoReferencing)
PC-GeoRef is like the name suggests, a tool for georeferencing of 3D pointclouds. I have only tested the software on pointclouds derived with
MS Photosynth so far, but in theory it should work on pointclouds from
other sources as well. (Probably a need for writing new routines for
reading the different file-formats).
Basically, the process consists of two parts;
1. Identifying points in the pointcloud that corresponds to a set of points with known coordinates, GCP's (Ground Control Points).
2. Performing a coordinat transformation on the pointcloud, in order to georeference the pointcloud.
The idea is to use the (georeferenced) pointclouds as basis for building real world digital elevation models, orthophotos and for furter
processing in other software. Eg. in LIBLAS tools, GRASS GIS, AutoCad,
ArcGIS, etc. (Points are simple objects and can relatively easily be
exported to most fileformats).
The process starts by aquiering a pointcloud, eg. by using Photosynth, and some tool like PhotosynthPointCloudExporter for retrieving the points. The synth shown below was made as part of the T3-4 competition here at DIYDrones and can be viewed here: http://photosynth.net/view.aspx?cid=1d31dfca-a6b5-41ef-9e08-7717b5b...
Notice the red dot on the roof of the small house on the pickture below, (added in MS Pain after the comp). That is one of the GCP's
By using a bright color which differs from the surroundings, there is a good chance for Photosynth to notice it, and to store it during the
image matching process. Since Photosynth also stores the color of the
points that are registered, that can be used to finding the gcp in the
pointcloud, even if the pointcloud consists of several 1000 points.
This is where PC-GeoRef comes into the pickture. The process starts by opening a pickture with a gcp marker in it, and clicking on the
marker in order to learn it's color by RGB-value.
Then the pointcloud-file are read and filtered by color. These points
then become candidates for automatic matching with GCP's with known
coordinats. (The red lines to the left have the same colour as the
filtered points from the pointcloud).
Next, a test-transformation is performed on the matched points, and last a transformation of the whole pointcloud is carried out. This is
commonly called a Helmert- or Affine-tranformation. I am using a custom
method for this transformation. It is currently using 7-parameter
(translation x, y ,z, rotation about x-, y-, z-axis and one scale for
all directions). The method can however easily be extended to individual
scaling of all individual axis. (For that I will need more matched
points then the 3 I found in my first successfull test-synth).
So for the results: As can be seen from the example above (all numbers are in meters), I found an almost incredible high accuracy in
the pointcloud derived from Photosynth. In this first test, I actually
found the differences in distance measurements to be in the field of
plus/minus 30cm, for GCP's spaced more then 100m apart. I will offcource
need to do more testing before I can tell what accurracy that can be
expected, but the first results were indeed interesting.
- More testing, (alfa/beta-testers wanted...)
- Writing file-export to a few formats,
- Cleaning up the code,
- Demonstrating production and use of dem's
- Then possibly sale of the software, (low cost ;-)