About the multispectral orthophoto

Hello! For multispectral orthophoto, every band images can be textured for the same mesh and compute orthophoto of every band in ODM. Every orthophoto is aligned. But I found a problem! Due to the mvs-texturing, there is no guarantee that the image content is consistent everywhere. For example:
Red band orthophoto:


NIR band orthophoto:

In this red band orthophoto, there are two more cars. And the ndvi idex is error .
Can anyone give some advice? Is there a paper or book recommendation for calculating orthophotos?

That’s a really good point; you can disable outlier removal by setting --texturing-outlier-removal-type none.

Hi
Quick question. After looking here https://docs.opendronemap.org/multispectral.html
I just wanted to verify - running ODM on multispectral only requires to have ALL images together in my /images folder and then individual orthos will be generated for each band according to the EXIF or must I follow some other instruction/procedure? Can I run it without the --radiometric-calibration option?
Tnx

Yep, just place all images in the /images folder, you’ll get a single orthophoto with multiple bands. Yes you can run without --radiometric-calibration.

1 Like

Thank you

Hi
Tried the above as explained for an Agrowing 430,550,NIR data small set (67 images in each band), just for a quick initial test.
Run failed with :

[ERROR] The program could not process this dataset using the current settings. Check that the images have enough overlap, that there are enough recognizable features and that the images are in focus. You could also try to increase the --min-num-features parameter.The program will now exit.

Link to data: https://drive.google.com/open?id=1NKYVaWdDvl437amyT2vwnd6WPhfg5Hp4
Link to log: https://drive.google.com/open?id=1MF9lktL00iObEugFmF2uauxZAvmgBkLR

Per recommendation here https://www.opendronemap.org/2020/02/odm-0-9-8-adds-multispectral-16bit-tiffs-support-and-moar/ , I used the flag --texturing-skip-global-seam-leveling, which didn’t seem to solve it.

Appreciate any assistance.
Thanks.

Cut/paste camera_models.json appears below:

{
“v2 sony agrowing_a6000 3960 2528 brown -6382. green550”: {
“height”: 2528,
“focal_y”: -6382.978723404256,
“focal_x”: -6382.978723404256,
“c_y”: 0.0,
“c_x”: 0.0,
“p2”: 0.0,
“p1”: 0.0,
“k2”: 0.0,
“projection_type”: “brown”,
“k3”: 0.0,
“width”: 3960,
“k1”: 0.0
},
“v2 sony agrowing_a6000 3960 2528 brown -6382. nir”: {
“height”: 2528,
“focal_y”: -6382.978723404256,
“focal_x”: -6382.978723404256,
“c_y”: 0.0,
“c_x”: 0.0,
“p2”: 0.0,
“p1”: 0.0,
“k2”: 0.0,
“projection_type”: “brown”,
“k3”: 0.0,
“width”: 3960,
“k1”: 0.0
},
“v2 sony agrowing_a6000 3960 2528 brown -6382. blue430”: {
“height”: 2528,
“focal_y”: -6382.978723404256,
“focal_x”: -6382.978723404256,
“c_y”: 0.0,
“c_x”: 0.0,
“p2”: 0.0,
“p1”: 0.0,
“k2”: 0.0,
“projection_type”: “brown”,
“k3”: 0.0,
“width”: 3960,
“k1”: 0.0
}
}

Thank you very much for the discussion! I found that ODM can make good use of mvstexturing’s labeling_file. The data_costs and view_selection is calculated only once in the Green band phase.