[Question] Implementing scale constraints for non-georeferenced datasets
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] [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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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