Ground Control Points: Cannot Process Dataset

All right, so I got a dataset already successfully processed without GCP’s for reference

After that I’ve used the Built-in GCP editor and processed the 6 GCP’s like in the description. Also got an export file that looks like this with 341 rows:

Blockquote
+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
19.44 49.83 180.5098901098908 4972.01 641.86 DJI_0111.JPG GCP01
19.44 49.83 180.5098901098908 4994.95 1074.83 DJI_0112.JPG GCP01
19.44 49.83 180.5098901098908 4971.97 1613.52 DJI_0113.JPG GCP01
For this post I’ve changed the numbers for privacy reasons.

Now unfortunately the same image set + the one TXT file always fails the processing.
I’ve tried this txt file names:
gcp_file_1646605495045.txt, gcp_list.txt

What could be wrong? The GCP txt file name?

Hard to say without the data and the GCP file to compare the two, but normally an empty point cloud with a GCP file indicates that it wasn’t done properly somehow.

All right, just bought the GCP editor pro and trying it all over again.

2 Likes

Have had the same issue, keeping a close on this one. I am uploading a small dataset that has failed to complete because of the gcp file. when it is done uploading do you mind taking a look at it to see where I may have gone wrong? I also used gcp editor pro to create the file.

sorry to hijack your thread Daniel.

1 Like

Here is the error I get when gcp_list.txt is included in the process.

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 1
Traceback (most recent call last):
File “/code/stages/odm_app.py”, line 94, in execute
self.first_stage.run()
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
[Previous line repeated 1 more time]
File “/code/opendm/types.py”, line 327, in run
self.process(self.args, outputs)
File “/code/stages/openmvs.py”, line 180, in process
system.run(’"%s" %s’ % (context.omvs_densify_path, ’ '.join(config + gpu_config)))
File “/code/opendm/system.py”, line 106, in run
raise SubprocessException(“Child returned {}”.format(retcode), retcode)
opendm.system.SubprocessException: Child returned 1

===== Done, human-readable information to follow… =====

[ERROR] Uh oh! Processing stopped because of strange values in the reconstruction. This is often a sign that the input data has some issues or the software cannot deal with it. Have you followed best practices for data acquisition? See Flying Tips — OpenDroneMap 2.7.1 documentation

This processes great with no issues without the gcp file.
Not sure what is wrong.

link to dataset and gcp file: Microsoft OneDrive - Access files anywhere. Create docs with free Office Online.

1 Like

Dataset processing is finished, the GCP editor pro provides the GCP file in this format:

EPSG:4326
19.444427179487235	43.83300666666674	198.5098901098908	2627.157077923693	172.80147228681892	DJI_0254.JPG	GCP01
19.444427179487235	43.83300666666674	198.5098901098908	2634.055681690813	592.8519547077078	DJI_0255.JPG	GCP01

So it was either the GCP file format or I missed some GCP’s. It’s all good now.

1 Like

Glad you’re good to go!

1 Like

EPSG:4326
-77.79894215986134 38.73493166928747 NaN 1222.6261864476019 1507.764550159706 DJI_0095.JPG gcp04
-77.79894215986134 38.73493166928747 NaN 1291.2234559919318 2728.8531773238747 DJI_0246.JPG gcp04

I used gcp editor as well, but the file that was produced on my side does not include the geo_z number that yours has. NaN? should I edit those with a 0? Could this be what is causing my dataset to not process?

1 Like

I think soo, can you share your result if you change the NaN with 0? I think the error happen because you miss the third column (geo_z)

<projection>
geo_x geo_y geo_z im_x im_y image_name [gcp_name]
1 Like

Ill give it a go when I get back home. however I would think that gcp editor pro would include the altitude (geo_z) as part of the process, unless I missed something. :eyes:

If you’re using it with surveyed GCPs, then the GPS data will have the Z/height data.

If you’re using it by tagging features in your imagery without having collected GPS data for the GCPs, then you’ll need to provide the Z/height data as it has no means of determing what that will be without trying a reconstruction.

Thanks for the explanation. that helped a lot. I cheated a bit and used elevation data from USGS for the coordinates in the GCP and ran the dataset with GCP file and it successfully processed.

Next time I am going to take it a step further with collecting accurate GPS data of GCP’s I made from cardboard and placing in areas of a map per this article: How to Optimize the Placement of Your Ground Control Points

any recommendations or suggestions welcome.

2 Likes

2 Likes

Glad it to be success. Can you share the difference of absolute+relative accuracy (RMSE, LE90, and CE90 in your report) with & without GCP?

Just curious how far the significance using GCP

1 Like

I’ll that is an interesting comparison. Ill run it without the GCP, then upload both reports

1 Like

Only general stuff like be mindful of how big the target needs to be for you to reliably pick it out at survey altitude, that the design gives you a clear/unambiguous "center’ to look for, and to try and evenly distribute at least 5 of them around your site (four furthest corners [with some inset to ensure proper survey coverage] and pole of inaccessibility or centroid of site). If you can’t do 5, 3 equally distributed over the site is decent but not amazing. Still better than nothing! I had to do that a lot for ag fields late season.

Here is the dataset with the GCP and reports from both with GCP’s included and without GCP’s.

2 Likes

Forgot the link Microsoft OneDrive - Access files anywhere. Create docs with free Office Online.

1 Like

thanks for sharing. I also have hypothesis, if we run without resizing the images, and using higher orthophotos resolution (ex : 2cm/px), it also increasing accuracy, especially relative accuracy. It happen because relative accuracy is correlated with GSD (ground sampling distance). The consequence of not resizing the images, it sometimes my computer will be out of memory and slower processing time.

All of that is just my opinion.

1 Like

Sounds like a sound theory. Ill run it on altra quality at 2.0 gsd with both GCP and no GCP and post the results.

1 Like