Skip to content

Conversation

@servantftransperfect
Copy link
Contributor

@servantftransperfect servantftransperfect commented Nov 18, 2025

  • Update the logic for alembic importation (Not a meshroom generated alembic but a generic one)
  • Update meshroom nodes importAlembic and sfmPoseInjecting to use that
  • Modify the existing code to use a mesh in sfm. Remove smooth constraints for the moment and instead use sfmtriangulation to set the point depth, assuming the structure will be constant for our current needs.

This comment was marked as outdated.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@servantftransperfect servantftransperfect marked this pull request as ready for review November 19, 2025 11:15
value="",
desc.FloatParam(
name="framerate",
label="Framerate",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
label="Framerate",
label="Frame Rate",

Comment on lines 32 to 33
description="Alembic doesn't export the camera resolutions. \n"
"Setup the images width for all images, the height will depends on the sensor size ratio.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description="Alembic doesn't export the camera resolutions. \n"
"Setup the images width for all images, the height will depends on the sensor size ratio.",
description="Alembic does not export camera resolutions. \n"
"Setup the image width for all images, the height will depend on the sensor size ratio.",

),
desc.FloatParam(
name="framerate",
label="Framerate",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
label="Framerate",
label="Frame Rate",

description="Alembic frame rate to compute frame id from time",
value=24.0,
range=(10.0, 50.0, 1.0),
enabled=lambda node: pathlib.Path(node.posesFilename.value).suffix == ".abc"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
enabled=lambda node: pathlib.Path(node.posesFilename.value).suffix == ".abc"
enabled=lambda node: pathlib.Path(node.posesFilename.value).suffix.lower() == ".abc"

" - EulerZXY: Euler rotation in degrees (Y*X*Z)",
values=["EulerZXY"],
value="EulerZXY",
enabled=lambda node: pathlib.Path(node.posesFilename.value).suffix == ".json"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
enabled=lambda node: pathlib.Path(node.posesFilename.value).suffix == ".json"
enabled=lambda node: pathlib.Path(node.posesFilename.value).suffix.lower() == ".json"

for (int idRef = 0; idRef < possibleParameters.size(); idRef++)
{
const Vec3 & refpt = possibleParameters[idRef].first;
const Vec3 & refnormal = possibleParameters[idRef].second;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this normal is not used ?

Comment on lines +384 to +387
if (count > bestInliersCount)
{
bestInliersCount = count;
result = landmark;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The score is just the number of times the landmark would be seen as inlier.
In some cases, this score could be the same for different landmark candidates.
For the score, we could sum up the reprojections error (and potentially add an extra value (e.g. _maxError) in case the reprojection error is bigger than the inlier threshold)



cam->setSensorWidth(happ / (dw / sensorWidthPix));
cam->setSensorHeight(vapp / (dh / sensorWidthPix));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since dh = dw * vapp / happ
SensorHeight = vapp / (dh / sensorWidthPix)
SensorHeight = vapp / ( (dw * vapp / happ) / sensorWidthPix)
SensorHeight = happ / (dw / sensorWidthPix)
SensorHeight = SensorWidth

po::options_description optionalParams("Optional parameters");
optionalParams.add_options()
("imageWidth", po::value<int>(&imageWidth)->default_value(imageWidth),
"Alembic doesn't export the camera resolutions. Setup the images width for all images, the height will depends on the sensor size ratio.")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Alembic doesn't export the camera resolutions. Setup the images width for all images, the height will depends on the sensor size ratio.")
"Alembic does not export camera resolutions. Setup the image width for all images, the height will depend on the sensor size ratio.")

}

/**
* @brief Get a set of poses from a alembic file (assumes the file format is ok).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* @brief Get a set of poses from a alembic file (assumes the file format is ok).
* @brief Get a set of poses from an alembic file (assumes the file format is ok).

@servantftransperfect servantftransperfect force-pushed the dev/meshSfm branch 2 times, most recently from eccce63 to 71ccf03 Compare November 26, 2025 14:46
@CedricThebault CedricThebault merged commit 91ead56 into develop Nov 27, 2025
3 of 4 checks passed
@CedricThebault CedricThebault deleted the dev/meshSfm branch November 27, 2025 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants