mapillary / mapillary/OpenSfM

OPK Parser exception with DJI image

Open
#1,098 6 comments 0 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

I try to use opensfm to parse images taken by a DJI drone equipped with RTK

Image

To verify the correctness of the parser, I use https://github.com/mapillary/OpenSfM/pull/838#issuecomment-1212630210 mentioned method directly triangulation and obtains the sparse model and camera pose with poor accuracy.

But I found that, as shown in the above visualization, some images are completely wrong in the parsed orientation, while others are correct.

I used incremental reconstruction to obtain GT and tried to find the difference between the two, but I found that it was difficult to find a pattern. Some orientations differed by 180 degrees, and some differed by 90 degrees. How can I solve this problem?

Here is a set of images I used for testing: https://drive.google.com/file/d/15ETwKP3Hn1MgdJDdNs6-4ae5uH33xV9V/view?usp=drive_link

test method:

  1. Perform an incremental rebuild using opensfm and observe that everything is OK
  2. run ./bin/opensfm reconstruct --algorithm triangulation data/dji, Camera pose error observed

If the camera pose is wrong, then the pairs selection mechanism based on the opk parsing result is wrong, which is a bug for the system.

Can someone help me find the problem?

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

Download the linked DJI image set and reproduce the issue with ./bin/opensfm reconstruct --algorithm triangulation data/dji. Compare its camera poses and pair selection with the incremental reconstruction and inspect the OPK parsing path referenced by PR #838. Done means identifying and documenting the cause of the inconsistent 90- or 180-degree orientations, with a verified correction.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-vision
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.