mapillary / OpenSfM

Open source Structure-from-Motion pipeline
https://www.opensfm.org/
BSD 2-Clause "Simplified" License
3.3k stars 848 forks source link

Orthomosiac Generation #43

Closed nickponline closed 8 years ago

nickponline commented 8 years ago

Hi there,

I'm considering adding functionality to OpenSfm to create an orthophoto as it doesn't look like this exists. I was wondering if that would be useful? If there is a partial work I'm happy to build of that or take direction on a suggested approach?

Regards,

Nick

waps101 commented 8 years ago

Hi Nick,

This is something I would be very interested in and pleased to see added to OpenSfM.

Cheers,

Will

nickponline commented 8 years ago

Hi Will,

Is there anything I can build off to get started or a preferred approach?

Nick

paulinus commented 8 years ago

Hi Nick and Will,

OpenSfM does not compute orthophotos on its own, but can be used as a part of the process.

The typical approach to create orthophotos is

  1. Compute the camera positons (OpenSfM does this part)
  2. Compute depth maps or dense point clouds
  3. Compute a mesh and texture it using the images
  4. Take a picture (the orthophoto) of that mesh

https://github.com/OpenDroneMap/OpenDroneMap is a project that installs and runs the required software for all of the process. The python-port branch has the option to use OpenSfM for computing the camera positions.

nickponline commented 8 years ago

Does this branch generate the orthophoto using Python? If it does it might be a good starting point.

On Thu, Oct 22, 2015 at 1:26 PM, Pau Gargallo notifications@github.com wrote:

Hi Nick and Will,

OpenSfM does not compute orthophotos on its own, but can be used as a part of the process.

The typical approach to create orthophotos is

  1. Compute the camera positons (OpenSfM does this part)
  2. Compute depth maps or dense point clouds
  3. Compute a mesh and texture it using the images
  4. Take a picture (the orthophoto) of that mesh

https://github.com/OpenDroneMap/OpenDroneMap is a project that installs and runs the required software for all of the process. The python-port branch has the option to use OpenSfM for computing the camera positions.

— Reply to this email directly or view it on GitHub https://github.com/mapillary/OpenSfM/issues/43#issuecomment-150346930.

paulinus commented 8 years ago

It generates the orthophoto using a C++ code (https://github.com/OpenDroneMap/OpenDroneMap/tree/python-port/odm_orthophoto). Python there refers only to the run.py script with is the one in charge of running the required tools for each of the processes

nickponline commented 8 years ago

Then Would it make sense to just port the cpp implementation to Python and integrate into osfm?

On Thursday, October 22, 2015, Pau Gargallo notifications@github.com wrote:

It generates the orthophoto using a C++ code ( https://github.com/OpenDroneMap/OpenDroneMap/tree/python-port/odm_orthophoto). Python there refers only to the run.py script with is the one in charge of running the required tools for each of the processes

— Reply to this email directly or view it on GitHub https://github.com/mapillary/OpenSfM/issues/43#issuecomment-150350932.

paulinus commented 8 years ago

super late answer here: that would be more complex than just using ODM directly. I don't think is a good plan. I would rather help improving ODM on that side.