I have been using webodm for a while and it’s the first time I encounter an error with my datasets being unable to obtain results. I am clueless on what is wrong, so if you guys can give me a hand and point into some direction to fix the issue I would appreciate it.
My data set are 302 pictures.
The settings for processing: auto-boundary: true, dsm: true, dtm: true, rerun-from: odm_postprocess
I paste below the console output where the error is displayed. I had tried reprocessing several times to no avail.
[INFO] DTM is turned on, automatically turning on point cloud classification
[INFO] Initializing ODM 2.8.0 - Thu May 05 15:24:06 2022
[INFO] ==============
[INFO] auto_boundary: True
[INFO] boundary: {}
[INFO] build_overviews: False
[INFO] camera_lens: auto
[INFO] cameras: {}
[INFO] cog: True
[INFO] copy_to: None
[INFO] crop: 3
[INFO] debug: False
[INFO] dem_decimation: 1
[INFO] dem_euclidean_map: False
[INFO] dem_gapfill_steps: 3
[INFO] dem_resolution: 5
[INFO] depthmap_resolution: 640
[INFO] dsm: True
[INFO] dtm: True
[INFO] end_with: odm_postprocess
[INFO] fast_orthophoto: False
[INFO] feature_quality: high
[INFO] feature_type: sift
[INFO] force_gps: False
[INFO] gcp: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\gcp\gcp_file_1651758777851.txt
[INFO] geo: None
[INFO] gps_accuracy: 10
[INFO] ignore_gsd: False
[INFO] matcher_neighbors: 8
[INFO] matcher_type: flann
[INFO] max_concurrency: 12
[INFO] merge: all
[INFO] mesh_octree_depth: 11
[INFO] mesh_size: 200000
[INFO] min_num_features: 10000
[INFO] name: 0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0
[INFO] optimize_disk_space: False
[INFO] orthophoto_compression: DEFLATE
[INFO] orthophoto_cutline: False
[INFO] orthophoto_kmz: False
[INFO] orthophoto_no_tiled: False
[INFO] orthophoto_png: False
[INFO] orthophoto_resolution: 5
[INFO] pc_classify: True
[INFO] pc_csv: False
[INFO] pc_ept: True
[INFO] pc_filter: 2.5
[INFO] pc_geometric: False
[INFO] pc_las: False
[INFO] pc_quality: medium
[INFO] pc_rectify: False
[INFO] pc_sample: 0
[INFO] pc_tile: False
[INFO] primary_band: auto
[INFO] project_path: C:\WebODM\resources\app\apps\NodeODM\data
[INFO] radiometric_calibration: none
[INFO] rerun: None
[INFO] rerun_all: False
[INFO] rerun_from: [‘odm_postprocess’]
[INFO] resize_to: 2048
[INFO] sfm_algorithm: incremental
[INFO] skip_3dmodel: False
[INFO] skip_band_alignment: False
[INFO] skip_orthophoto: False
[INFO] skip_report: False
[INFO] sm_cluster: None
[INFO] smrf_scalar: 1.25
[INFO] smrf_slope: 0.15
[INFO] smrf_threshold: 0.5
[INFO] smrf_window: 18.0
[INFO] split: 999999
[INFO] split_image_groups: None
[INFO] split_overlap: 150
[INFO] texturing_data_term: gmi
[INFO] texturing_keep_unseen_faces: False
[INFO] texturing_outlier_removal_type: gauss_clamping
[INFO] texturing_skip_global_seam_leveling: False
[INFO] texturing_skip_local_seam_leveling: False
[INFO] texturing_tone_mapping: none
[INFO] tiles: False
[INFO] time: False
[INFO] use_3dmesh: False
[INFO] use_exif: False
[INFO] use_fixed_camera_params: False
[INFO] use_hybrid_bundle_adjustment: False
[INFO] verbose: False
[INFO] ==============
[INFO] Running dataset stage
[INFO] Loading dataset from: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\images
[INFO] Loading images database: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\images.json
[INFO] Found 301 usable images
[INFO] Coordinates file already exist: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\odm_georeferencing\coords.txt
[INFO] GCP file already exist: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\odm_georeferencing\gcp_list_utm.txt
[INFO] Parsing SRS header: WGS84 UTM 19S
[INFO] Parsing SRS header: WGS84 UTM 19S
[INFO] Finished dataset stage
[INFO] Running split stage
[INFO] Normal dataset, will process all at once.
[INFO] Finished split stage
[INFO] Running merge stage
[INFO] Normal dataset, nothing to merge.
[INFO] Finished merge stage
[INFO] Running opensfm stage
[WARNING] C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\image_list.txt already exists, not rerunning OpenSfM setup
[WARNING] C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\exif already exists, not rerunning photo to metadata
[WARNING] Detect features already done: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\features exists
[WARNING] Match features already done: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\matches exists
[WARNING] Found a valid OpenSfM tracks file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\tracks.csv
[WARNING] Found a valid OpenSfM reconstruction file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\reconstruction.json
[INFO] Already extracted cameras
[INFO] Export reconstruction stats
[WARNING] Found existing reconstruction stats C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\stats\stats.json
[WARNING] Will skip exporting C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\reconstruction.geocoords.json
[INFO] Undistorting C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm …
[WARNING] Already undistorted (nominal)
[WARNING] Found a valid OpenSfM NVM reconstruction file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\undistorted/reconstruction.nvm
[INFO] Finished opensfm stage
[INFO] Running openmvs stage
[WARNING] Found a valid OpenMVS reconstruction file in: C:\WebODM\resources\app\apps\NodeODM\data\0a30ef2a-14e6-4d1d-89d6-5dbda843fbd0\opensfm\undistorted\openmvs\scene_dense_dense_filtered.ply
[INFO] Finished openmvs stage
[INFO] Running odm_filterpoints stage
File “C:\WebODM\resources\app\apps\ODM\run.py”, line 59, in
retcode = app.execute()
File “C:\WebODM\resources\app\apps\ODM\stages\odm_app.py”, line 130, in execute
raise e
File “C:\WebODM\resources\app\apps\ODM\stages\odm_app.py”, line 94, in execute
self.first_stage.run()
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 346, in run
self.next_stage.run(outputs)
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 346, in run
self.next_stage.run(outputs)
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 346, in run
self.next_stage.run(outputs)
[Previous line repeated 2 more times]
File “C:\WebODM\resources\app\apps\ODM\opendm\types.py”, line 327, in run
self.process(self.args, outputs)
File “C:\WebODM\resources\app\apps\ODM\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’
Strange, as I have processed a dataset of the same place with the same GCPs (earlier versions of WebODM) in a previous stage of construction with success, which is why I am surprised about this error now.
In total my GCP file has 117 lines after the header, I am using 5 GCPs, and the GCPs are found in definetely more than only 3 photos. By the way I am using some UAV Ground Control Points made of fabric that you find over amazon to identify my GCP on the ground.
I think I comply with that the documentation states. This is the whole GCP file:
Most of the time is user error right… in this case, it was not the GCP file the problem but the pictures, the only difference from my previous analysis until this point was the post processing of pictures, because of shadows and time of the day, this time I post processed the pictures in lightroom, corrected exposure and shadows and exported them, I used these pictures for the analysis, for some reason, lightroom deleted part of the metadata of the pictures and this was causing the problem. I used the original pictures with the same GCP file, analysis worked with no issues at all and I have my results now… Thanks @pierotofy for your ideas and time…