mapillary / mapillary/OpenSfM

[Question] Implementing scale constraints for non-georeferenced datasets

Open
#737 1 comment 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.8k
Forks
899
PR merge metrics
No merged PRs in 30d

Description

Hey all ✋

I've been looking at the possibility to implement scale constraints for datasets that have no georeferencing information (no GPS and no GCPs). The use case is that sometimes people use images that have no spatial information (for example, datasets such as https://github.com/pierotofy/dataset_banana) but still have a wish to perform measurements on the results. A straightforward approach is to let OpenSfM run the reconstruction, then manually choose two points on the point cloud and perform a linear transformation based on a scaling factor.

I was wondering if a different approach could be doable by allowing a user to specify a sort of ground_control_line with two points A and B and the desired distance:

image

[image] [pixel_a_x] [pixel_a_y] [pixel_b_x] [pixel_b_y] [distance (meters)]

This mostly comes down to allowing a user to specify constraints in 2D rather than 3D, which can make the operation simpler.

I have the itch that perhaps this could be best handled as a post-processing operation on the dense result (raycast point A and B, find the points closest to the ray intersection, then scale), but wondering if perhaps this could be solved as part of an additional bundle adjustment constraint or as part of the alignment_constraints function and thus integrated in OpenSfM?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the alignment_constraints function and the bundle-adjustment path mentioned in the issue, then compare them with the proposed dense-result post-processing approach. Determine whether a 2D ground_control_line can constrain reconstruction for non-georeferenced datasets, and define tests or an example showing that the requested distance is preserved.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-vision
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.