Getting better relative accuracy without RTK

First of all, huge thank you to the developers, this software is amazing.

What I’m trying to do is get roof measurements for roofing contractors, hopefully beating satellite based measurement companies in both resolution and accuracy.

I know that using GCPs and RTK will get my accuracy to within centimeters, however, I really don’t want to spend a ton of money on RTK when all I really need is relative accuracy.

Does ODM have a way that I can put some objects of known size into the dataset and scale the pointcloud to the correct measurement? I’d even be willing to use a work around if it meant saving the cost of an RTK system.

As far as accuracy goes, I’m really only concerned about relative, when I’m taking the photos, would multiple images of the same object at different heights help with reconstructing the 3d model or would this lead to an image of the entire roof trying to be matched to images that are closer up and eventually discarded? I see a lot of guides for getting the best dataset for orthomosaics, but not many for 3d models which is what I’m mainly interested in.

Thanks for any help with these beginner questions.

I don’t know if this will fully answer your question, but here’s an interesting paper where they looked compared accuracy between RTK and GCP’s and looked at the optimal number of GCP’s needed. TLDR is that with a few good GCP’s you can get quite good accuracy w/o RTK


Thank you for the link! I have a pasture which has a Scotch broom problem, and it’d be keen to be able to compare overflights to watch how it grows and how it dies back when I go out there and mow it or pull it.

1 Like

Thanks for the great link. Unfortunately they didn’t really mention how they measured they’re GCPs, only about how they loaded the GCP coordinates into Pix4D. If I decide to use GCPs the next question would be how do I get really good accuracy without an RTK base and rover?

I may try setting out 5 GCPs arranged in a square or rectangle with 20 to 40 foot sides being sure to have it square. Since absolute accuracy doesn’t matter at all for my use case, I could set the first as 0,0 lat/long and then calculate the lat/long for the other 4 GCPs. I think the functionality that I’m looking for is called arbitrary coordinate system in Pix4D.

I can already pretty easily get to within 10 cm relative accuracy using only the EXIF tags from my Air 2S, but I’d really like to get that below 3 cm if I can since even small errors in linear measurements are going to be compounded when measuring area or volume.

re that paper… Most of the field trials put fixed GCP markers in the field at the start of the season, but that probably doesn’t help you much, and you still have to get good GPS values for the markers.

These fancy GCP markers are a great tool to have… (I was trying to find the actual cost but I can only find packages of 10 which cost like $7K, ie almost as much as RTK) so maybe it isn’t a better option.

But re-reading your question… Is your main requirement that the measurements in your models be physically accurate (ie 1m in the model = 1m in the real world), or do you need to align the maps more accurately to the real world and have them be internally spatially accurate?

So if you need measurement accuracy, then I think the question is how accurate ODM is at evenly reproducing spatial accuracy within a given model and if there are factors that impact this internal spatial accuracy?
If you can reliably know that the model is internally accurate, then the issue would be making sure it is scaled to re-world sizes. If this is the case, then if you are on-site anyway, couldn’t you manually measure the size of some obvious objects in the scene so you can scale the output model to be accurate and then go from there?

You could start by flying your own house or similar places you have access to and see if measuring something simple in the scene would let you accurately scale the model.

Other ODM people might have more to say on the internal spatial accuracy within ODM models.

Yes right now, as I understand it, it’s getting the spatial accuracy from my drone’s GPS, which without RTK or PPK correction has errors that aren’t just offset errors, so it’s easily possible to have one measurement +1 meter and another measurement -1 meter, leading to a situation where the spatial accuracy isn’t consistent throughout the whole model.

That’s pretty much exactly what I’d like to accomplish. I’d like to be able to set out some meter sticks or tape measures to quickly have known measurements for reference and ideally have a way to pass this to ODM so that I can get my texture, point cloud, and orthophoto all correctly scaled at once. That may need to be a pretty big feature request though.
As far as requirements go, being able to measure distances within the model is pretty much the only requirement. The model could be put on the north pole, as long as its accurately modeled.

I’ve been testing with a ton of different variables so far, but I’ve just started with ODM, so the tests haven’t been well controlled. I plan on outlining a few variables that I feel are key, then I’ll be sure to post the results here on the forum for anyone else that might want or need the same use case.

I think there’s a lot of instances where someone may only want relative accuracy without absolute accuracy, but ODM only accepts GCPs that are tied to an absolute position, so I believe that the only way to get better relative accuracy is to increase the absolute accuracy, or trick it with some arbitrary coordinates that reflect real world coordinates.

In practice, for a flight that is over a short period of time, we see consistency in the decimeter range, and real measurements much better than that. It’s possible to have large non-random errors, but in practice, your measurements should be quite accurate.

That’s true for two ends of size of project: small projects that have similar GPS biases due to short period of time and really large projects (thousands of images) where the non-random error largely gets balanced out.

1 Like

From section 2.5 of the paper:

To extract location data from each orthomosaic and DSM for the image sets defined in Table 1, the orthomosaics generated in Pix4Dmapper, Metashape, and ODM were loaded into QGIS software v.3.8.3 ( ). To estimate two-dimensional (2D), horizontal accuracy (i.e., X/Y positional error), the GCP locations in each orthophoto were identified, manually marked, and added as a point feature in a new point layer shapefile. To ensure that point features were placed consistently, the project zoom was increased until a point that best approximated the location of the center pixel of each GCP could be selected. The UTM coordinates of each manually-selected point were then exported from the attribute table of the shapefile layer. These UTM coordinates were compared with the known coordinates measured for each of the GCPs in the field, as described in the Data Analysis and Statistics section.

It’s amusing to picture but it seems reproducible which is the important part.

Do I have news for you!

This weekend I’m starting a pilot project to make some 3x3 markers out of 4" bathroom tile. I even have spousal approval to permanently mount them in the yard. :slight_smile: I hope they work as well as I’ve seen discussed on the forums.

1 Like