Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Obtaining 3d positions (and normals) of extracted cctag markers #2429

Open
wlter opened this issue Jun 10, 2024 · 4 comments
Open

Obtaining 3d positions (and normals) of extracted cctag markers #2429

wlter opened this issue Jun 10, 2024 · 4 comments

Comments

@wlter
Copy link

wlter commented Jun 10, 2024

Hi,

I would like to use (cctag) markers to uniquely identify a set of positions, which should be a byproduct of the processing chain, if I understand the software correctly.

The scene I'll be working with:

  • Physically at least 32 markers are ordered around a semi-sphere, so some will always be occluded in some views.
  • Since meshroom supports cctag markers I'd like to go with those.

What I am looking for

  • relative positions of the markers in 3d space (together with their unique ID)
  • ideally position + normal, but not necessarily
  • ideally also with a physical scaling, but no necessarily

What I am not looking for

  • I am not looking for the actual photogrammetry result. Don't need the mesh, the texturing or any other features.

A nice bonus would be

  • if there's a way to create the sparse reconstruction only from markers (no other features like dpsift etc)
  • if there's a way to take into account that each marker is unique

I feel like the software internally already has the info that I am looking for, but I don't know how to get to it.
Would be grateful if someone could help me out :)

@msanta
Copy link

msanta commented Jun 11, 2024

You can use the ConvertSfMFormat node to export the cctags as a JSON. Select only the 'structure' export option.
image

Example output:

        {
            "landmarkId": "25375",
            "descType": "cctag3",
            "color": [
                "2",
                "0",
                "0"
            ],
            "X": [
                "0",
                "1.7763568394002505e-15",
                "0"
            ]
        },
        {
            "landmarkId": "27864",
            "descType": "cctag3",
            "color": [
                "1",
                "0",
                "0"
            ],
            "X": [
                "-6.3424587249755859",
                "-9.5071029663085938",
                "3.9209086894989014"
            ]
        },

The 'color' key represents the marker ID.

@msanta
Copy link

msanta commented Jun 11, 2024

For scaling markers see https://github.com/alicevision/Meshroom/wiki/CCTAG-scaling

@wlter
Copy link
Author

wlter commented Jun 21, 2024

Thank you so much, this is amazing!
I was a bit sceptical that the software would find all markers and the correct IDs, since it doesn't show all markers in all images, but it did on first try!

I assume the normals for the markers don't exist as info as such do they?

@msanta
Copy link

msanta commented Jun 22, 2024

I assume the normals for the markers don't exist as info as such do they?

Not that I know of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants