Custom camera position/orientation for orthophotos

Hi,

I recently started using ODM and love the tools that it provides. I used ODM to generate a high-quality 3d model of an object and would now like to create several artificial images (like an orthophoto) from different camera angles/positions.

More specifically, I have an object with several faces and I would like to generate an artificial image for each camera position/orientation that look towards each face from a constant distance away.

My initial thought is to use RANSAC to find all planes and then adjust the camera coordinate system that is outputted by OpenSFM. However, I imagine there must be an easier way of doing this within ODM without constantly generating new 3d models.

I was wondering if anyone who is more familiar with the software knows a simpler way of doing this. Any help would be greatly appreciated.

1 Like

Welcome!

That sounds like a really interesting problem to solve!

What is your application?

Unfortunately, I won’t be able to assist, but others may well be able.

Can you provide some more context so folks can have a better look?

Thank you for your response! Basically, we are using ODM to create 3d models of objects and do not care about the geo-referencing portion. Once we have the 3d model, we want to snap orthophotos for each face of the objects. We don’t provide gps or gcp data.

I guess I’m struggling to find where in the code the coordinate frame of the camera for the orthomosaic is set. If I could find the location in the code, I could easily manipulate it to take photos from different angles. For example, if I wanted to, I could just rotate the camera by 45 degrees and get a different orthophoto.

2 Likes

Oh, cool!

I think that’s all in the OpenSFM module, but I may very well be wrong.

I’ll keep looking - I’ll dive more into OpenSFM now.

I guess a simpler question from my side that might help me think about it better - when you create a 3d map with a drone, and ODM creates an orthographic image, how does it know to look straight down at the ground? Why do you not end up with an angled orthographic image?

1 Like

This is the module that renders the orthophoto: odm_orthophoto/OdmOrthoPhoto.cpp at main · OpenDroneMap/odm_orthophoto · GitHub

The mesh “cloud” (the mesh vertices) are aligned with the rendering area and then are rasterized using an iterative process (there’s no camera projections).

2 Likes

Got it, thank you so much!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.