Dataset Cannot Process With GCPs but works without GCPs

Hi, I am a new user of ODM trying to process my first dataset of images. My images are frames extracted from a GoPro Hero 8 video, so they do not have any GPS metadata in them.

When I try to process the dataset without any GCPs, I get a fairly accurate 3D model, but I do not get the right scale on my output. The with of my 3D model is around 2 metres (which is off by about 20x). As a result, my orthophoto and DEM are very pixellated.

I tried to manually mark GCPs on my images to correct the scaling issue, but when I do that, the dataset cannot process.

2022-02-22 11:06:03,963 INFO: -------------------------------------------------------
2022-02-22 11:06:03,981 INFO: 0169.png resection inliers: 1479 / 1756
2022-02-22 11:06:03,992 INFO: Adding 0169.png to the reconstruction
2022-02-22 11:06:04,039 INFO: -------------------------------------------------------
2022-02-22 11:06:39,204 DEBUG: Ceres Solver Report: Iterations: 101, Initial cost: 2.372447e+16, Final cost: 4.424758e+11, Termination: NO_CONVERGENCE
2022-02-22 11:06:40,067 INFO: Removed outliers: 698
2022-02-22 11:06:40,525 INFO: Reconstruction 0: 116 images, 49227 points
2022-02-22 11:06:40,525 INFO: 1 partial reconstructions in total.
[INFO]    Export reconstruction stats
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" compute_statistics --diagram_max_points 100000 "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm"
/code/SuperBuild/install/bin/opensfm/opensfm/stats.py:1117: RuntimeWarning: invalid value encountered in true_divide
res_colors /= highest - lowest
2022-02-22 11:06:51,169 DEBUG: locator: <matplotlib.colorbar._ColorbarAutoLocator object at 0x7fccaf01d5e0>
2022-02-22 11:06:51,169 DEBUG: Using auto colorbar locator <matplotlib.colorbar._ColorbarAutoLocator object at 0x7fccaf01d5e0> on colorbar
2022-02-22 11:06:51,170 DEBUG: Setting pcolormesh
<__array_function__ internals>:5: UserWarning: Warning: converting a masked element to nan.
/usr/local/lib/python3.9/dist-packages/matplotlib/colors.py:1019: UserWarning: Warning: converting a masked element to nan.
data = np.asarray(value)
2022-02-22 11:06:55,847 DEBUG: locator: <matplotlib.colorbar._ColorbarAutoLocator object at 0x7fccb47a3430>
2022-02-22 11:06:55,847 DEBUG: Using auto colorbar locator <matplotlib.colorbar._ColorbarAutoLocator object at 0x7fccb47a3430> on colorbar
2022-02-22 11:06:55,847 DEBUG: Setting pcolormesh
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" export_geocoords --reconstruction --proj "+proj=utm +zone=44 +south +datum=WGS84 +units=m +no_defs +type=crs" --offset-x 417915.0 --offset-y 3167268.0 "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm"
[INFO]    Updating /var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/config.yaml
[INFO]    undistorted_image_max_size: 1920
[INFO]    Undistorting /var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm ...
2022-02-22 11:07:16,742 DEBUG: Undistorting image 0179.png
2022-02-22 11:07:16,743 DEBUG: Undistorting image 0188.png
2022-02-22 11:07:16,743 DEBUG: Undistorting image 0189.png
2022-02-22 11:07:16,743 DEBUG: Undistorting image 0190.png
2022-02-22 11:07:16,743 DEBUG: Undistorting image 0225.png
2022-02-22 11:07:16,744 DEBUG: Undistorting image 0208.png
2022-02-22 11:07:16,744 DEBUG: Undistorting image 0183.png
2022-02-22 11:07:16,745 DEBUG: Undistorting image 0211.png
2022-02-22 11:07:16,744 DEBUG: Undistorting image 0215.png
2022-02-22 11:07:16,745 DEBUG: Undistorting image 0145.png
2022-02-22 11:07:16,745 DEBUG: Undistorting image 0213.png
2022-02-22 11:07:16,746 DEBUG: Undistorting image 0240.png
2022-02-22 11:07:16,763 DEBUG: Undistorting image 0174.png
2022-02-22 11:07:16,770 DEBUG: Undistorting image 0171.png
2022-02-22 11:07:16,770 DEBUG: Undistorting image 0173.png
2022-02-22 11:07:16,764 DEBUG: Undistorting image 0148.png
2022-02-22 11:07:16,771 DEBUG: Undistorting image 0172.png
2022-02-22 11:07:16,771 DEBUG: Undistorting image 0238.png
2022-02-22 11:07:16,771 DEBUG: Undistorting image 0168.png
2022-02-22 11:07:16,770 DEBUG: Undistorting image 0241.png
2022-02-22 11:07:17,229 DEBUG: Undistorting image 0161.png
2022-02-22 11:07:17,300 DEBUG: Undistorting image 0162.png
2022-02-22 11:07:17,464 DEBUG: Undistorting image 0135.png
2022-02-22 11:07:17,511 DEBUG: Undistorting image 0143.png
2022-02-22 11:07:17,613 DEBUG: Undistorting image 0154.png
2022-02-22 11:07:17,711 DEBUG: Undistorting image 0210.png
2022-02-22 11:07:17,801 DEBUG: Undistorting image 0169.png
2022-02-22 11:07:17,803 DEBUG: Undistorting image 0140.png
2022-02-22 11:07:17,801 DEBUG: Undistorting image 0249.png
2022-02-22 11:07:17,870 DEBUG: Undistorting image 0239.png
2022-02-22 11:07:17,801 DEBUG: Undistorting image 0136.png
2022-02-22 11:07:17,904 DEBUG: Undistorting image 0243.png
2022-02-22 11:07:17,869 DEBUG: Undistorting image 0248.png
2022-02-22 11:07:17,943 DEBUG: Undistorting image 0144.png
2022-02-22 11:07:17,835 DEBUG: Undistorting image 0139.png
2022-02-22 11:07:17,802 DEBUG: Undistorting image 0137.png
2022-02-22 11:07:17,801 DEBUG: Undistorting image 0142.png
2022-02-22 11:07:18,004 DEBUG: Undistorting image 0141.png
2022-02-22 11:07:18,098 DEBUG: Undistorting image 0236.png
2022-02-22 11:07:18,139 DEBUG: Undistorting image 0167.png
2022-02-22 11:07:18,144 DEBUG: Undistorting image 0147.png
2022-02-22 11:07:18,207 DEBUG: Undistorting image 0244.png
2022-02-22 11:07:18,293 DEBUG: Undistorting image 0245.png
2022-02-22 11:07:18,409 DEBUG: Undistorting image 0246.png
2022-02-22 11:07:18,492 DEBUG: Undistorting image 0165.png
2022-02-22 11:07:18,556 DEBUG: Undistorting image 0151.png
2022-02-22 11:07:18,619 DEBUG: Undistorting image 0250.png
2022-02-22 11:07:18,675 DEBUG: Undistorting image 0175.png
2022-02-22 11:07:18,720 DEBUG: Undistorting image 0160.png
2022-02-22 11:07:18,803 DEBUG: Undistorting image 0158.png
2022-02-22 11:07:18,836 DEBUG: Undistorting image 0219.png
2022-02-22 11:07:18,841 DEBUG: Undistorting image 0157.png
2022-02-22 11:07:19,007 DEBUG: Undistorting image 0164.png
2022-02-22 11:07:19,052 DEBUG: Undistorting image 0152.png
2022-02-22 11:07:19,044 DEBUG: Undistorting image 0149.png
2022-02-22 11:07:19,005 DEBUG: Undistorting image 0237.png
2022-02-22 11:07:19,144 DEBUG: Undistorting image 0223.png
2022-02-22 11:07:19,048 DEBUG: Undistorting image 0163.png
2022-02-22 11:07:19,039 DEBUG: Undistorting image 0192.png
2022-02-22 11:07:19,185 DEBUG: Undistorting image 0198.png
2022-02-22 11:07:19,221 DEBUG: Undistorting image 0187.png
2022-02-22 11:07:19,098 DEBUG: Undistorting image 0194.png
2022-02-22 11:07:19,331 DEBUG: Undistorting image 0217.png
2022-02-22 11:07:19,383 DEBUG: Undistorting image 0166.png
2022-02-22 11:07:19,384 DEBUG: Undistorting image 0222.png
2022-02-22 11:07:19,480 DEBUG: Undistorting image 0197.png
2022-02-22 11:07:19,543 DEBUG: Undistorting image 0146.png
2022-02-22 11:07:19,626 DEBUG: Undistorting image 0234.png
2022-02-22 11:07:19,632 DEBUG: Undistorting image 0202.png
2022-02-22 11:07:19,744 DEBUG: Undistorting image 0201.png
2022-02-22 11:07:19,852 DEBUG: Undistorting image 0247.png
2022-02-22 11:07:19,856 DEBUG: Undistorting image 0205.png
2022-02-22 11:07:20,008 DEBUG: Undistorting image 0233.png
2022-02-22 11:07:20,014 DEBUG: Undistorting image 0204.png
2022-02-22 11:07:20,019 DEBUG: Undistorting image 0191.png
2022-02-22 11:07:20,089 DEBUG: Undistorting image 0226.png
2022-02-22 11:07:20,164 DEBUG: Undistorting image 0229.png
2022-02-22 11:07:20,167 DEBUG: Undistorting image 0196.png
2022-02-22 11:07:20,243 DEBUG: Undistorting image 0159.png
2022-02-22 11:07:20,278 DEBUG: Undistorting image 0153.png
2022-02-22 11:07:20,282 DEBUG: Undistorting image 0150.png
2022-02-22 11:07:20,315 DEBUG: Undistorting image 0195.png
2022-02-22 11:07:20,424 DEBUG: Undistorting image 0182.png
2022-02-22 11:07:20,427 DEBUG: Undistorting image 0185.png
2022-02-22 11:07:20,467 DEBUG: Undistorting image 0220.png
2022-02-22 11:07:20,501 DEBUG: Undistorting image 0193.png
2022-02-22 11:07:20,577 DEBUG: Undistorting image 0186.png
2022-02-22 11:07:20,680 DEBUG: Undistorting image 0199.png
2022-02-22 11:07:20,685 DEBUG: Undistorting image 0228.png
2022-02-22 11:07:20,689 DEBUG: Undistorting image 0232.png
2022-02-22 11:07:20,744 DEBUG: Undistorting image 0231.png
2022-02-22 11:07:20,819 DEBUG: Undistorting image 0203.png
2022-02-22 11:07:21,055 DEBUG: Undistorting image 0178.png
2022-02-22 11:07:21,057 DEBUG: Undistorting image 0216.png
2022-02-22 11:07:21,063 DEBUG: Undistorting image 0242.png
2022-02-22 11:07:21,059 DEBUG: Undistorting image 0206.png
2022-02-22 11:07:21,101 DEBUG: Undistorting image 0200.png
2022-02-22 11:07:21,147 DEBUG: Undistorting image 0180.png
2022-02-22 11:07:21,153 DEBUG: Undistorting image 0214.png
2022-02-22 11:07:21,228 DEBUG: Undistorting image 0218.png
2022-02-22 11:07:21,271 DEBUG: Undistorting image 0177.png
2022-02-22 11:07:21,359 DEBUG: Undistorting image 0170.png
2022-02-22 11:07:21,364 DEBUG: Undistorting image 0181.png
2022-02-22 11:07:21,447 DEBUG: Undistorting image 0209.png
2022-02-22 11:07:21,551 DEBUG: Undistorting image 0235.png
2022-02-22 11:07:21,556 DEBUG: Undistorting image 0227.png
2022-02-22 11:07:21,560 DEBUG: Undistorting image 0155.png
2022-02-22 11:07:21,660 DEBUG: Undistorting image 0224.png
2022-02-22 11:07:21,664 DEBUG: Undistorting image 0184.png
2022-02-22 11:07:21,751 DEBUG: Undistorting image 0221.png
2022-02-22 11:07:21,814 DEBUG: Undistorting image 0212.png
2022-02-22 11:07:21,953 DEBUG: Undistorting image 0207.png
2022-02-22 11:07:22,002 DEBUG: Undistorting image 0176.png
2022-02-22 11:07:22,153 DEBUG: Undistorting image 0230.png
2022-02-22 11:07:22,155 DEBUG: Undistorting image 0138.png
2022-02-22 11:07:22,004 DEBUG: Undistorting image 0156.png
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" export_visualsfm --points "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm"
[INFO]    Finished opensfm stage
[INFO]    Running openmvs stage
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" export_openmvs "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm"
[INFO]    Running dense reconstruction. This might take a while.
[INFO]    Estimating depthmaps
[INFO]    running "/code/SuperBuild/install/bin/OpenMVS/DensifyPointCloud" "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/undistorted/openmvs/scene.mvs"  --resolution-level 3 --min-resolution 320 --max-resolution 1920 --max-threads 20 --number-views-fuse 2 -w "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/undistorted/openmvs/depthmaps" -v 0 --geometric-iters 0 --cuda-device -1
11:07:33 [App     ] Build date: Feb 16 2022, 02:56:37
11:07:33 [App     ] CPU: Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz (20 cores)
11:07:33 [App     ] RAM: 31.10GB Physical Memory 2.00GB Virtual Memory
11:07:33 [App     ] OS: Linux 5.10.0-1044-oem (x86_64)
11:07:33 [App     ] SSE & AVX compatible CPU & OS detected
11:07:33 [App     ] Command line: /var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/undistorted/openmvs/scene.mvs --resolution-level 3 --min-resolution 320 --max-resolution 1920 --max-threads 20 --number-views-fuse 2 -w /var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/undistorted/openmvs/depthmaps -v 0 --geometric-iters 0 --cuda-device -1
11:07:34 [App     ] Preparing images for dense reconstruction completed: 116 images (387ms)
11:07:34 [App     ] Selecting images for dense reconstruction completed: 0 images (103ms)

Fused depth-maps 0 (100%, 0ms)
11:07:34 [App     ] Densifying point-cloud completed: 0 points (502ms)
11:07:34 [App     ] MEMORYINFO: {
11:07:34 [App     ] 	VmPeak:	 3161336 kB
11:07:34 [App     ] 	VmSize:	 2973308 kB
11:07:34 [App     ] } ENDINFO
[INFO]    running "/code/SuperBuild/install/bin/OpenMVS/DensifyPointCloud" --filter-point-cloud -1 -i "/var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/undistorted/openmvs/scene_dense.mvs" -v 0 --cuda-device -1
11:07:34 [App     ] Build date: Feb 16 2022, 02:56:37
11:07:34 [App     ] CPU: Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz (20 cores)
11:07:34 [App     ] RAM: 31.10GB Physical Memory 2.00GB Virtual Memory
11:07:34 [App     ] OS: Linux 5.10.0-1044-oem (x86_64)
11:07:34 [App     ] SSE & AVX compatible CPU & OS detected
11:07:34 [App     ] Command line: --filter-point-cloud -1 -i /var/www/data/ad4a29c0-56c7-41af-8e9f-0dfbeed4ced1/opensfm/undistorted/openmvs/scene_dense.mvs -v 0 --cuda-device -1
11:07:34 [App     ] error: empty initial point-cloud

===== 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 192, 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 https://docs.opendronemap.org/flying/

This is the relevant portion of the error message, I will attach the complete console output as a file.

A few of the things seem different from a successful log are -

<__array_function__ internals>:5: UserWarning: Warning: converting a masked element to nan.
/usr/local/lib/python3.9/dist-packages/matplotlib/colors.py:1019: UserWarning: Warning: converting a masked element to nan.
11:07:34 [App     ] Preparing images for dense reconstruction completed: 116 images (387ms)
11:07:34 [App     ] Selecting images for dense reconstruction completed: 0 images (103ms)

Fused depth-maps 0 (100%, 0ms)
11:07:34 [App     ] Densifying point-cloud completed: 0 points (502ms)

Seems like the point cloud is not getting made. What would cause this ?

Please help me understand the factors that may be causing these errors and how I can debug/solve them.

Also, how can I access more detailed logging from OpenSFM, OpenMVS apart from the console logs?

Thanks

I can’t attach the log as I can’t upload attachments, I will post any other relevant section as required.

2 Likes

Can you share your GCP file? That might hold the insights we need to help.

2 Likes

Thanks for your response. Sure, here it is -

+proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defs	
735964.90	3160132.52	NaN	770.00	1270.00	0135.png	gcp_e
735964.90	3160132.52	NaN	776.00	1280.00	0136.png	gcp_e
735964.90	3160132.52	NaN	790.00	1278.00	0137.png	gcp_e
735960.80	3160156.67	NaN	909.09	546.42	0143.png	gcp_d
735960.80	3160156.67	NaN	894.52	586.30	0144.png	gcp_d
735960.80	3160156.67	NaN	883.35	658.23	0145.png	gcp_d
735960.38	3160161.24	NaN	895.88	584.85	0146.png	gcp_c
735960.38	3160161.24	NaN	899.09	691.69	0147.png	gcp_c
735960.38	3160161.24	NaN	975.95	716.96	0148.png	gcp_c
735954.10	3160202.52	NaN	694.26	213.54	0194.png	gcp_b
735954.10	3160202.52	NaN	696.33	273.80	0195.png	gcp_b
735954.10	3160202.52	NaN	700.24	353.12	0196.png	gcp_b
735953.54	3160207.34	NaN	672.60	304.11	0197.png	gcp_a
735953.54	3160207.34	NaN	637.95	386.42	0198.png	gcp_a
735953.54	3160207.34	NaN	709.11	427.49	0199.png	gcp_a

This was generated using the GCP interface.

2 Likes

Welcome!

Reconstruction without geoinformation can be a bit touchy with GCP files.

Can you try passing 0 as the Z/Height value instead of NaN and re-trying?

1 Like

I can do that, let me quickly run it and get back to you. Thanks for the input!

1 Like

Looks like it passes that openMVS stage but fails while filtering points when I set the altitudes to 0.

Logs:

2022-02-24 06:09:14,375 INFO: 0218.png resection inliers: 1242 / 1726
2022-02-24 06:09:14,385 INFO: Adding 0218.png to the reconstruction
2022-02-24 06:09:14,450 INFO: -------------------------------------------------------
2022-02-24 06:09:14,451 INFO: Shots and/or GCPs are well-conditioned. Using naive 3D-3D alignment.
2022-02-24 06:10:00,816 DEBUG: Ceres Solver Report: Iterations: 101, Initial cost: 8.873045e+05, Final cost: 6.532676e+03, Termination: NO_CONVERGENCE
2022-02-24 06:10:01,665 INFO: Removed outliers: 503
2022-02-24 06:10:02,132 INFO: Reconstruction 0: 116 images, 49690 points
2022-02-24 06:10:02,132 INFO: 1 partial reconstructions in total.
[INFO]    Export reconstruction stats
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" compute_statistics --diagram_max_points 100000 "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm"
2022-02-24 06:10:13,974 DEBUG: locator: <matplotlib.colorbar._ColorbarAutoLocator object at 0x7f0c45358550>
2022-02-24 06:10:13,974 DEBUG: Using auto colorbar locator <matplotlib.colorbar._ColorbarAutoLocator object at 0x7f0c45358550> on colorbar
2022-02-24 06:10:13,974 DEBUG: Setting pcolormesh
2022-02-24 06:10:18,581 DEBUG: locator: <matplotlib.colorbar._ColorbarAutoLocator object at 0x7f0c4bd716d0>
2022-02-24 06:10:18,581 DEBUG: Using auto colorbar locator <matplotlib.colorbar._ColorbarAutoLocator object at 0x7f0c4bd716d0> on colorbar
2022-02-24 06:10:18,581 DEBUG: Setting pcolormesh
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" export_geocoords --reconstruction --proj "+proj=utm +zone=43 +datum=WGS84 +units=m +no_defs +type=crs" --offset-x 735959.0 --offset-y 3160172.0 "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm"
[WARNING] Negative GSD estimated, this might indicate a flipped Z-axis.
[INFO]    Updating /var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/config.yaml
[INFO]    undistorted_image_max_size: 1920
[INFO]    Undistorting /var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm ...
2022-02-24 06:10:40,236 DEBUG: Undistorting image 0144.png
2022-02-24 06:10:40,237 DEBUG: Undistorting image 0141.png
2022-02-24 06:10:40,237 DEBUG: Undistorting image 0147.png
2022-02-24 06:10:40,237 DEBUG: Undistorting image 0163.png
2022-02-24 06:10:40,237 DEBUG: Undistorting image 0149.png
2022-02-24 06:10:40,238 DEBUG: Undistorting image 0178.png
2022-02-24 06:10:40,238 DEBUG: Undistorting image 0216.png
2022-02-24 06:10:40,239 DEBUG: Undistorting image 0206.png
2022-02-24 06:10:40,239 DEBUG: Undistorting image 0152.png
2022-02-24 06:10:40,240 DEBUG: Undistorting image 0194.png
2022-02-24 06:10:40,240 DEBUG: Undistorting image 0162.png
2022-02-24 06:10:40,240 DEBUG: Undistorting image 0135.png
2022-02-24 06:10:40,240 DEBUG: Undistorting image 0166.png
2022-02-24 06:10:40,241 DEBUG: Undistorting image 0222.png
2022-02-24 06:10:40,244 DEBUG: Undistorting image 0227.png
2022-02-24 06:10:40,241 DEBUG: Undistorting image 0151.png
2022-02-24 06:10:40,267 DEBUG: Undistorting image 0155.png
2022-02-24 06:10:40,281 DEBUG: Undistorting image 0243.png
2022-02-24 06:10:40,282 DEBUG: Undistorting image 0167.png
2022-02-24 06:10:40,278 DEBUG: Undistorting image 0239.png
2022-02-24 06:10:40,951 DEBUG: Undistorting image 0236.png
2022-02-24 06:10:41,043 DEBUG: Undistorting image 0234.png
2022-02-24 06:10:41,045 DEBUG: Undistorting image 0202.png
2022-02-24 06:10:41,168 DEBUG: Undistorting image 0199.png
2022-02-24 06:10:41,424 DEBUG: Undistorting image 0186.png
2022-02-24 06:10:41,426 DEBUG: Undistorting image 0159.png
2022-02-24 06:10:41,540 DEBUG: Undistorting image 0153.png
2022-02-24 06:10:41,754 DEBUG: Undistorting image 0196.png
2022-02-24 06:10:41,754 DEBUG: Undistorting image 0224.png
2022-02-24 06:10:41,873 DEBUG: Undistorting image 0190.png
2022-02-24 06:10:41,965 DEBUG: Undistorting image 0226.png
2022-02-24 06:10:42,138 DEBUG: Undistorting image 0231.png
2022-02-24 06:10:42,413 DEBUG: Undistorting image 0203.png
2022-02-24 06:10:42,413 DEBUG: Undistorting image 0223.png
2022-02-24 06:10:42,414 DEBUG: Undistorting image 0219.png
2022-02-24 06:10:42,414 DEBUG: Undistorting image 0225.png
2022-02-24 06:10:42,603 DEBUG: Undistorting image 0220.png
2022-02-24 06:10:42,693 DEBUG: Undistorting image 0193.png
2022-02-24 06:10:42,780 DEBUG: Undistorting image 0207.png
2022-02-24 06:10:42,781 DEBUG: Undistorting image 0212.png
2022-02-24 06:10:42,930 DEBUG: Undistorting image 0210.png
2022-02-24 06:10:43,200 DEBUG: Undistorting image 0211.png
2022-02-24 06:10:43,304 DEBUG: Undistorting image 0221.png
2022-02-24 06:10:43,389 DEBUG: Undistorting image 0248.png
2022-02-24 06:10:43,392 DEBUG: Undistorting image 0198.png
2022-02-24 06:10:43,590 DEBUG: Undistorting image 0192.png
2022-02-24 06:10:43,590 DEBUG: Undistorting image 0185.png
2022-02-24 06:10:43,752 DEBUG: Undistorting image 0187.png
2022-02-24 06:10:44,096 DEBUG: Undistorting image 0217.png
2022-02-24 06:10:44,099 DEBUG: Undistorting image 0188.png
2022-02-24 06:10:44,101 DEBUG: Undistorting image 0189.png
2022-02-24 06:10:44,595 DEBUG: Undistorting image 0218.png
2022-02-24 06:10:44,598 DEBUG: Undistorting image 0191.png
2022-02-24 06:10:44,601 DEBUG: Undistorting image 0204.png
2022-02-24 06:10:44,602 DEBUG: Undistorting image 0233.png
2022-02-24 06:10:44,721 DEBUG: Undistorting image 0229.png
2022-02-24 06:10:45,007 DEBUG: Undistorting image 0246.png
2022-02-24 06:10:45,010 DEBUG: Undistorting image 0165.png
2022-02-24 06:10:44,858 DEBUG: Undistorting image 0244.png
2022-02-24 06:10:45,220 DEBUG: Undistorting image 0245.png
2022-02-24 06:10:45,223 DEBUG: Undistorting image 0200.png
2022-02-24 06:10:45,345 DEBUG: Undistorting image 0242.png
2022-02-24 06:10:45,459 DEBUG: Undistorting image 0164.png
2022-02-24 06:10:45,681 DEBUG: Undistorting image 0237.png
2022-02-24 06:10:45,771 DEBUG: Undistorting image 0228.png
2022-02-24 06:10:45,773 DEBUG: Undistorting image 0232.png
2022-02-24 06:10:45,986 DEBUG: Undistorting image 0176.png
2022-02-24 06:10:45,994 DEBUG: Undistorting image 0179.png
2022-02-24 06:10:46,110 DEBUG: Undistorting image 0182.png
2022-02-24 06:10:46,226 DEBUG: Undistorting image 0150.png
2022-02-24 06:10:46,570 DEBUG: Undistorting image 0195.png
2022-02-24 06:10:46,574 DEBUG: Undistorting image 0184.png
2022-02-24 06:10:46,663 DEBUG: Undistorting image 0172.png
2022-02-24 06:10:46,669 DEBUG: Undistorting image 0168.png
2022-02-24 06:10:46,781 DEBUG: Undistorting image 0137.png
2022-02-24 06:10:46,897 DEBUG: Undistorting image 0169.png
2022-02-24 06:10:47,231 DEBUG: Undistorting image 0213.png
2022-02-24 06:10:47,238 DEBUG: Undistorting image 0240.png
2022-02-24 06:10:47,239 DEBUG: Undistorting image 0145.png
2022-02-24 06:10:47,350 DEBUG: Undistorting image 0238.png
2022-02-24 06:10:47,539 DEBUG: Undistorting image 0208.png
2022-02-24 06:10:47,542 DEBUG: Undistorting image 0183.png
2022-02-24 06:10:47,652 DEBUG: Undistorting image 0215.png
2022-02-24 06:10:47,761 DEBUG: Undistorting image 0197.png
2022-02-24 06:10:47,914 DEBUG: Undistorting image 0146.png
2022-02-24 06:10:48,102 DEBUG: Undistorting image 0181.png
2022-02-24 06:10:48,197 DEBUG: Undistorting image 0235.png
2022-02-24 06:10:48,204 DEBUG: Undistorting image 0209.png
2022-02-24 06:10:48,309 DEBUG: Undistorting image 0180.png
2022-02-24 06:10:48,522 DEBUG: Undistorting image 0214.png
2022-02-24 06:10:48,611 DEBUG: Undistorting image 0158.png
2022-02-24 06:10:48,616 DEBUG: Undistorting image 0161.png
2022-02-24 06:10:48,728 DEBUG: Undistorting image 0157.png
2022-02-24 06:10:48,853 DEBUG: Undistorting image 0175.png
2022-02-24 06:10:48,965 DEBUG: Undistorting image 0250.png
2022-02-24 06:10:49,198 DEBUG: Undistorting image 0160.png
2022-02-24 06:10:49,294 DEBUG: Undistorting image 0241.png
2022-02-24 06:10:49,297 DEBUG: Undistorting image 0173.png
2022-02-24 06:10:49,391 DEBUG: Undistorting image 0174.png
2022-02-24 06:10:49,582 DEBUG: Undistorting image 0148.png
2022-02-24 06:10:49,683 DEBUG: Undistorting image 0171.png
2022-02-24 06:10:49,775 DEBUG: Undistorting image 0143.png
2022-02-24 06:10:49,779 DEBUG: Undistorting image 0177.png
2022-02-24 06:10:49,889 DEBUG: Undistorting image 0170.png
2022-02-24 06:10:50,002 DEBUG: Undistorting image 0247.png
2022-02-24 06:10:50,206 DEBUG: Undistorting image 0201.png
2022-02-24 06:10:50,337 DEBUG: Undistorting image 0205.png
2022-02-24 06:10:50,522 DEBUG: Undistorting image 0230.png
2022-02-24 06:10:50,524 DEBUG: Undistorting image 0138.png
2022-02-24 06:10:50,526 DEBUG: Undistorting image 0156.png
2022-02-24 06:10:50,668 DEBUG: Undistorting image 0154.png
2022-02-24 06:10:50,773 DEBUG: Undistorting image 0140.png
2022-02-24 06:10:50,899 DEBUG: Undistorting image 0139.png
2022-02-24 06:10:51,098 DEBUG: Undistorting image 0136.png
2022-02-24 06:10:51,270 DEBUG: Undistorting image 0142.png
2022-02-24 06:10:51,277 DEBUG: Undistorting image 0249.png
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" export_visualsfm --points "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm"
[INFO]    Finished opensfm stage
[INFO]    Running openmvs stage
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" export_openmvs "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm"
[INFO]    Running dense reconstruction. This might take a while.
[INFO]    Estimating depthmaps
[INFO]    running "/code/SuperBuild/install/bin/OpenMVS/DensifyPointCloud" "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/undistorted/openmvs/scene.mvs"  --resolution-level 3 --min-resolution 320 --max-resolution 1920 --max-threads 20 --number-views-fuse 2 -w "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/undistorted/openmvs/depthmaps" -v 0 --geometric-iters 0 --cuda-device -1
06:11:04 [App     ] Build date: Feb 16 2022, 02:56:37
06:11:04 [App     ] CPU: Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz (20 cores)
06:11:04 [App     ] RAM: 31.10GB Physical Memory 2.00GB Virtual Memory
06:11:04 [App     ] OS: Linux 5.10.0-1044-oem (x86_64)
06:11:04 [App     ] SSE & AVX compatible CPU & OS detected
06:11:04 [App     ] Command line: /var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/undistorted/openmvs/scene.mvs --resolution-level 3 --min-resolution 320 --max-resolution 1920 --max-threads 20 --number-views-fuse 2 -w /var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/undistorted/openmvs/depthmaps -v 0 --geometric-iters 0 --cuda-device -1
06:11:04 [App     ] Preparing images for dense reconstruction completed: 116 images (612ms)
06:11:05 [App     ] Selecting images for dense reconstruction completed: 116 images (100ms)

Estimated depth-maps 1 (0.86%, 493ms, ETA 0ms)...
Estimated depth-maps 2 (1.72%, 980ms, ETA 55s)...
Estimated depth-maps 3 (2.59%, 1s, ETA 55s)...
Estimated depth-maps 4 (3.45%, 1s, ETA 54s)...
Estimated depth-maps 5 (4.31%, 2s, ETA 53s)...
Estimated depth-maps 6 (5.17%, 2s, ETA 52s)...
Estimated depth-maps 7 (6.03%, 3s, ETA 51s)...
Estimated depth-maps 8 (6.90%, 3s, ETA 51s)...
Estimated depth-maps 9 (7.76%, 4s, ETA 51s)...
Estimated depth-maps 10 (8.62%, 4s, ETA 50s)...
Estimated depth-maps 11 (9.48%, 5s, ETA 49s)...
Estimated depth-maps 12 (10.34%, 5s, ETA 49s)...
Estimated depth-maps 13 (11.21%, 6s, ETA 49s)...
Estimated depth-maps 14 (12.07%, 6s, ETA 48s)...
Estimated depth-maps 15 (12.93%, 7s, ETA 48s)...
Estimated depth-maps 16 (13.79%, 7s, ETA 47s)...
Estimated depth-maps 17 (14.66%, 8s, ETA 47s)...
Estimated depth-maps 18 (15.52%, 8s, ETA 46s)...
Estimated depth-maps 19 (16.38%, 9s, ETA 46s)...
Estimated depth-maps 20 (17.24%, 9s, ETA 45s)...
Estimated depth-maps 21 (18.10%, 9s, ETA 45s)...
Estimated depth-maps 22 (18.97%, 10s, ETA 44s)...
Estimated depth-maps 23 (19.83%, 10s, ETA 43s)...
Estimated depth-maps 24 (20.69%, 11s, ETA 43s)...
Estimated depth-maps 25 (21.55%, 11s, ETA 42s)...
Estimated depth-maps 26 (22.41%, 12s, ETA 42s)...
Estimated depth-maps 27 (23.28%, 12s, ETA 41s)...
Estimated depth-maps 28 (24.14%, 13s, ETA 41s)...
Estimated depth-maps 29 (25.00%, 13s, ETA 40s)...
Estimated depth-maps 30 (25.86%, 14s, ETA 40s)...
Estimated depth-maps 31 (26.72%, 14s, ETA 39s)...
Estimated depth-maps 32 (27.59%, 15s, ETA 39s)...
Estimated depth-maps 33 (28.45%, 15s, ETA 39s)...
Estimated depth-maps 34 (29.31%, 16s, ETA 38s)...
Estimated depth-maps 35 (30.17%, 16s, ETA 38s)...
Estimated depth-maps 36 (31.03%, 16s, ETA 37s)...
Estimated depth-maps 37 (31.90%, 17s, ETA 37s)...
Estimated depth-maps 38 (32.76%, 17s, ETA 36s)...
Estimated depth-maps 39 (33.62%, 18s, ETA 35s)...
Estimated depth-maps 40 (34.48%, 18s, ETA 35s)...
Estimated depth-maps 41 (35.34%, 19s, ETA 34s)...
Estimated depth-maps 42 (36.21%, 19s, ETA 34s)...
Estimated depth-maps 43 (37.07%, 20s, ETA 34s)...
Estimated depth-maps 44 (37.93%, 20s, ETA 33s)...
Estimated depth-maps 45 (38.79%, 20s, ETA 33s)...
Estimated depth-maps 46 (39.66%, 21s, ETA 32s)...
Estimated depth-maps 47 (40.52%, 21s, ETA 32s)...
Estimated depth-maps 48 (41.38%, 22s, ETA 31s)...
Estimated depth-maps 49 (42.24%, 22s, ETA 31s)...
Estimated depth-maps 50 (43.10%, 23s, ETA 30s)...
Estimated depth-maps 51 (43.97%, 23s, ETA 30s)...
Estimated depth-maps 52 (44.83%, 24s, ETA 29s)...
Estimated depth-maps 53 (45.69%, 24s, ETA 29s)...
Estimated depth-maps 54 (46.55%, 25s, ETA 29s)...
Estimated depth-maps 55 (47.41%, 25s, ETA 28s)...
Estimated depth-maps 56 (48.28%, 26s, ETA 28s)...
Estimated depth-maps 57 (49.14%, 26s, ETA 27s)...
Estimated depth-maps 58 (50.00%, 27s, ETA 27s)...
Estimated depth-maps 59 (50.86%, 27s, ETA 26s)...
Estimated depth-maps 60 (51.72%, 28s, ETA 26s)...
Estimated depth-maps 61 (52.59%, 28s, ETA 25s)...
Estimated depth-maps 62 (53.45%, 29s, ETA 25s)...
Estimated depth-maps 63 (54.31%, 29s, ETA 24s)...
Estimated depth-maps 64 (55.17%, 29s, ETA 24s)...
Estimated depth-maps 65 (56.03%, 30s, ETA 23s)...
Estimated depth-maps 66 (56.90%, 30s, ETA 23s)...
Estimated depth-maps 67 (57.76%, 31s, ETA 22s)...
Estimated depth-maps 68 (58.62%, 31s, ETA 22s)...
Estimated depth-maps 69 (59.48%, 32s, ETA 21s)...
Estimated depth-maps 70 (60.34%, 32s, ETA 21s)...
Estimated depth-maps 71 (61.21%, 33s, ETA 21s)...
Estimated depth-maps 72 (62.07%, 33s, ETA 20s)...
Estimated depth-maps 73 (62.93%, 34s, ETA 20s)...
Estimated depth-maps 74 (63.79%, 34s, ETA 19s)...
Estimated depth-maps 75 (64.66%, 35s, ETA 19s)...
Estimated depth-maps 76 (65.52%, 35s, ETA 18s)...
Estimated depth-maps 77 (66.38%, 36s, ETA 18s)...
Estimated depth-maps 78 (67.24%, 36s, ETA 17s)...
Estimated depth-maps 79 (68.10%, 36s, ETA 17s)...
Estimated depth-maps 80 (68.97%, 37s, ETA 16s)...
Estimated depth-maps 81 (69.83%, 37s, ETA 16s)...
Estimated depth-maps 82 (70.69%, 38s, ETA 15s)...
Estimated depth-maps 83 (71.55%, 38s, ETA 15s)...
Estimated depth-maps 84 (72.41%, 39s, ETA 14s)...
Estimated depth-maps 85 (73.28%, 39s, ETA 14s)...
Estimated depth-maps 86 (74.14%, 40s, ETA 14s)...
Estimated depth-maps 87 (75.00%, 40s, ETA 13s)...
Estimated depth-maps 88 (75.86%, 41s, ETA 13s)...
Estimated depth-maps 89 (76.72%, 41s, ETA 12s)...
Estimated depth-maps 90 (77.59%, 41s, ETA 12s)...
Estimated depth-maps 91 (78.45%, 42s, ETA 11s)...
Estimated depth-maps 92 (79.31%, 42s, ETA 11s)...
Estimated depth-maps 93 (80.17%, 43s, ETA 10s)...
Estimated depth-maps 94 (81.03%, 43s, ETA 10s)...
Estimated depth-maps 95 (81.90%, 44s, ETA 9s)...
Estimated depth-maps 96 (82.76%, 44s, ETA 9s)...
Estimated depth-maps 97 (83.62%, 45s, ETA 8s)...
Estimated depth-maps 98 (84.48%, 45s, ETA 8s)...
Estimated depth-maps 99 (85.34%, 46s, ETA 7s)...
Estimated depth-maps 100 (86.21%, 46s, ETA 7s)...
Estimated depth-maps 101 (87.07%, 46s, ETA 6s)...
Estimated depth-maps 102 (87.93%, 47s, ETA 6s)...
Estimated depth-maps 103 (88.79%, 47s, ETA 6s)...
Estimated depth-maps 104 (89.66%, 48s, ETA 5s)...
Estimated depth-maps 105 (90.52%, 48s, ETA 5s)...
Estimated depth-maps 106 (91.38%, 49s, ETA 4s)...
Estimated depth-maps 107 (92.24%, 49s, ETA 4s)...
Estimated depth-maps 108 (93.10%, 50s, ETA 3s)...
Estimated depth-maps 109 (93.97%, 50s, ETA 3s)...
Estimated depth-maps 110 (94.83%, 51s, ETA 2s)...
Estimated depth-maps 111 (95.69%, 51s, ETA 2s)...
Estimated depth-maps 112 (96.55%, 51s, ETA 1s)...
Estimated depth-maps 113 (97.41%, 52s, ETA 1s)...
Estimated depth-maps 114 (98.28%, 52s, ETA 926ms)...
Estimated depth-maps 115 (99.14%, 53s, ETA 462ms)...
Estimated depth-maps 116 (100.00%, 53s, ETA 0ms)...
Estimated depth-maps 116 (100%, 53s691ms)

Filtered depth-maps 1 (0.86%, 584ms, ETA 0ms)...
Filtered depth-maps 50 (43.10%, 685ms, ETA 904ms)...
Filtered depth-maps 109 (93.97%, 786ms, ETA 50ms)...
Filtered depth-maps 116 (100%, 797ms)

Fused depth-maps 1 (0.86%, 188ms, ETA 0ms)...
Fused depth-maps 4 (3.45%, 377ms, ETA 10s)...
Fused depth-maps 7 (6.03%, 531ms, ETA 8s)...
Fused depth-maps 10 (8.62%, 647ms, ETA 6s)...
Fused depth-maps 13 (11.21%, 781ms, ETA 6s)...
Fused depth-maps 19 (16.38%, 886ms, ETA 4s)...
Fused depth-maps 26 (22.41%, 1s, ETA 3s)...
Fused depth-maps 30 (25.86%, 1s, ETA 3s)...
Fused depth-maps 37 (31.90%, 1s, ETA 2s)...
Fused depth-maps 43 (37.07%, 1s, ETA 2s)...
Fused depth-maps 51 (43.97%, 1s, ETA 1s)...
Fused depth-maps 59 (50.86%, 1s, ETA 1s)...
Fused depth-maps 65 (56.03%, 1s, ETA 1s)...
Fused depth-maps 74 (63.79%, 1s, ETA 1s)...
Fused depth-maps 80 (68.97%, 1s, ETA 882ms)...
Fused depth-maps 88 (75.86%, 2s, ETA 668ms)...
Fused depth-maps 93 (80.17%, 2s, ETA 544ms)...
Fused depth-maps 101 (87.07%, 2s, ETA 343ms)...
Fused depth-maps 112 (96.55%, 2s, ETA 89ms)...
Fused depth-maps 116 (100%, 2s549ms)
06:12:02 [App     ] Densifying point-cloud completed: 2339191 points (57s993ms)
06:12:04 [App     ] MEMORYINFO: {
06:12:04 [App     ] 	VmPeak:	 5108220 kB
06:12:04 [App     ] 	VmSize:	 5030256 kB
06:12:04 [App     ] } ENDINFO
[INFO]    running "/code/SuperBuild/install/bin/OpenMVS/DensifyPointCloud" --filter-point-cloud -1 -i "/var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/undistorted/openmvs/scene_dense.mvs" -v 0 --cuda-device -1
06:12:05 [App     ] Build date: Feb 16 2022, 02:56:37
06:12:05 [App     ] CPU: Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz (20 cores)
06:12:05 [App     ] RAM: 31.10GB Physical Memory 2.00GB Virtual Memory
06:12:05 [App     ] OS: Linux 5.10.0-1044-oem (x86_64)
06:12:05 [App     ] SSE & AVX compatible CPU & OS detected
06:12:05 [App     ] Command line: --filter-point-cloud -1 -i /var/www/data/8fed8ef4-9b6d-46de-a3a2-e97ed714ebc3/opensfm/undistorted/openmvs/scene_dense.mvs -v 0 --cuda-device -1

Point visibility checks 1503651 (64.28%, 3s, ETA 1s)...
Point visibility checks 2242470 (95.87%, 6s, ETA 258ms)...
Point visibility checks 2339191 (100%, 8s564ms)
06:12:17 [App     ] MEMORYINFO: {
06:12:17 [App     ] 	VmPeak:	  747088 kB
06:12:17 [App     ] 	VmSize:	  663464 kB
06:12:17 [App     ] } ENDINFO
[INFO]    Finished openmvs stage
[INFO]    Running odm_filterpoints stage
Traceback (most recent call last):
File "/code/run.py", line 59, in <module>
retcode = app.execute()
File "/code/stages/odm_app.py", line 130, in execute
raise e
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 2 more times]
File "/code/opendm/types.py", line 327, in run
self.process(self.args, outputs)
File "/code/stages/odm_filterpoints.py", line 31, in process
outputs['boundary'] = compute_boundary_from_shots(tree.opensfm_reconstruction, avg_gsd * 20, reconstruction.get_proj_offset()) # 20 is arbitrary
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

What could be the reason behind this ?

1 Like

Can you attach the whole geo.txt and gcp_list.txt files you’re using?

Looks like one of them might have a mix of NaN and 0.

1 Like

Hey.

I am not using a geo.txt file, is that required? I only passed a file containing the list of GCPs that I’ve pasted in my previous post.

Do I need a geo.txt as well?

Edit: I just read about the file and as I don’t have GPS metadata in my images, I assume I have no need of that file. I am only passing gcp_list.txt as of the present moment.

1 Like

geo.txt is to define the GPS positions for each image. That is really the proper way to geolocate data that does not have embedded geolocation data in EXIF.

You’re sort of (ab)using gcp_list.txt as applied. It’s mostly meant to refine positioning, not to establish it outright, though folks have had success with that workflow prior.

Do you think you could prep a geo.txt for maybe a 10-image contiguous subset to test that it reconstructs properly with that?

1 Like

Understood.

So it’s a hit or a miss whether the GCPs work without geolocation of the images?

If I am able to store exif data in my images but it is though a regular drone GPS receiver (without RTK) , would that give me reasonable accuracy ?

As a follow up question, what differences arise while trying to collect data for a large area vs a small area?

For instance, I want to map a stretch of land that is 100m x 40m. As a small area, it could fit easily in (say) 25 pictures with good overlap. I could also take many more, say 100 or 150 pictures during the same flight but pictures will end up being almost repeated. Which of these is better to work with?

Also, what are ideal flight altitudes? Does that depend on the area I want to map? Would 30m be a good altitude to fly at for an area of the dimensions I mentioned earlier?

I am new to this and am finding data collection tricky business.

2 Likes

Flight height AGL is determined by your required GSD/image resolution.

Re number of images, there generally isn’t a lot to be gained by overlapping more than about 80% front and side lap, other than when you want a 3D model.

1 Like

Yes, seemingly. They’re incredibly powerful when used with geolocated datasets, and a great tool to have in the toolbox. The fact that you’re already working with them is great! They’ll serve you well in the future.

Barring some horrible stuff like really poor satellite constellation, manufacturing issue (I’m looking at you 3DR Solo Rev.A GPS), or bad flying environment (metal canyon), you should get pretty solid geolocation. GCPs can help refine this further. Do you need to care about this? Depends upon your output product quality needs/standards. Also, don’t use Google Earth imagery to determine if you’re located well or not. It is best to compare to truth data like survey marker locations or local municipality data.

If you’re flying fast while collecting without stopping, you’ll likely see Bowling due to Rolling Shutter Distortion.
You may also see it when taking a single-grid or cross-grid nadir survey due to overly-aggressive self-calibration of the lens model. Skooching the gimbal a few degress off from nadir (-80 or so) should help that.

Gordon has you set for these two!

I’d say I’m not new to this and it’s still tricky business for me :person_shrugging: Don’t feel bad. Just ask questions!

1 Like

Thanks for your response!

Do I understand correctly that for Orthophoto and DEM purposes, I need Nadir pictures with 80% overlap?

Do I need to change my camera angle/overlaps for 3D models?

2 Likes

Yes, seemingly. They’re incredibly powerful when used with geolocated datasets, and a great tool to have in the toolbox. The fact that you’re already working with them is great! They’ll serve you well in the future.

Do they only make sense for large areas or do they have an application for smaller areas as well, when used with geolocation?

Further Questions:

What good is Nadir data and what good is data at other angles?

Can flying at a slow speed (2m/s) reduce Bowling?

1 Like

There is a lot of information in the ODM documentation here and here.
I suggest starting with those.

Regarding GCPs, they are always useful, but it really depends on what you want to do with the orthophoto or the model you are creating. For a 3D printed model, (almost) nobody will care. For an architect that will use your model to design a building, it’s another story. Overall, they will always help to reduce the eventual warping of your model, and its absolute precision (of course that will depend on the precision of the tool you use to get the mark center, a RTK receiver is a must in that case).

To reduce bowling a slight forward angle (think 5° from nadir) helps a lot, as well as flying a cross angle pattern at another elevation from the terrain.

Flying slow will help to manage the rolling shutter effect if your camera is not a global shutter camera. I’m not sure about the impact on bowling (never had the issues on my datasets yet).

Finally, to create 3D models of a building for example, you will need not only nadir pictures, but also some for the facades. Remember this when planning a mission. Also, don’t do only two elevations picture (one pass horizontal, one pass 45°, one pass nadir), the more you have, the better the model will be. Be mindful of the object height too. A resolution of 1cm/px at the base is going to be different for the parts of the building higher in height, and with that, the overlap between pictures will be smaller too.

4 Likes

Welcome!

Excellent guidance! Thanks so much!

nshubham, gromain gave you excellent guidance!

2 Likes

My pleasure. I’m getting started too so it really helps to explain things to others! :slight_smile:

What I always try to remember is “what is not in the pictures will not be in the model” and “preparation is the key”. I think that’s the most important bit!

4 Likes

For 3D models, I find that you need to make sure you have enough overlap of hard to see areas (under trees etc), and enough overlapping images to have enough tie points to connect them to the easy to see open areas. This can mean 90% or more overlap required in some areas, but 75-80% is often enough for areas that are relatively flat with plenty of features.

I’ve never had any issues with bowling over very large areas with >95% nadir images, but have made sure to overlap flight plans at different heights AGL, fly at different headings, and include a few images at -80 or 85°.

3 Likes

All good advice. 83% overlap in all dimensions is the 3D minimum. Aiming for higher (and doing all the above) is a great recipe for success.

3 Likes

So I have an update and another question about the GCPs. After seeing another post on the forum with a similar problem and disabling --auto-boundary , my dataset was able to process successfully. This gave me a good point cloud, but not the right depths. Also, my orthophoto output is mostly white with occasional spoltches of color.


Attaching the image.

Any ideas what could be going wrong?

1 Like