mapillary / OpenSfM

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

Feature Inquiry: Extra EXIF Parameters (Heading and Orientation) #670

Open Saijin-Naib opened 4 years ago

Saijin-Naib commented 4 years ago

Does OpenSFM take advantage of extra EXIF information such as GPS Img Direction, GPS Image Direction Ref, and User Comment (Yaw, Pitch, Roll) to help with the processing and reconstruction?

OpenCamera, for instance, can optionally write these parameters, which in addition to normal GPS EXIF for lat/long/elevation, you get heading and orientation as Yaw/Pitch/Roll.

Let's say you get those orientation values from the flight log of a sUAS, and join them to the images in pre-processing. Wouldn't that help with matching and reconstruction?

To me, this seems like a great bit of extra data to use.

Example attached:
image

Thanks!

pierotofy commented 4 years ago

There's support for compass and even accelerometer, but no pitch/yaw/roll https://github.com/mapillary/OpenSfM/blob/71d405dd80be3175d458d20b6ffad8ea28924f7d/opensfm/src/map/src/shot.cc#L43

That's understandable; not every camera has a gimbal attached (and most cameras in fact do not have a gimbal).

Saijin-Naib commented 4 years ago

Do you think, given the recent proliferation of flying cameras, micro-gimbals, embedded Android, and IMU-based camera stabilization ala GoPro, that these extra info might be beneficial to take advantage of when present?

I know that I could attach all of the heading/Yaw/Pitch/Roll to my SUAS. data from the Ardupilot dataflash logs, for instance.

shayannikoohemat commented 3 years ago

If you have camera parameters( and rotation(YPR) and translation(XYZ) you can do the reconstruction directly from this information. For larger projects, you can use Pix4d.com.

YanNoun commented 3 years ago

@Saijin-Naib @pierotofy that's a feature that we're currently discussing and I'm hoping to see someday this year.