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

[sfm] Use opengl coordinate system in Alembic & Meshes and add new alignment from Cameras X Axis #1030

Merged
merged 27 commits into from
Sep 8, 2022

Conversation

fabiencastan
Copy link
Member

@fabiencastan fabiencastan commented Apr 20, 2021

  • Use opengl coordinate system in Alembic and Meshes
  • Move sfmData files version to 1.2.3.
  • Move alignment function from software to the sfm/utils module
  • New method in the sfmTransform to align on all cameras X axis
  • Take orientation metadata into account

@fabiencastan fabiencastan requested a review from a user April 20, 2021 17:21
* of the camera centers is the origin of the world coordinate system,
* a dominant Y axis is defined based on the X axis of all cameras,
* and the scale is set so that the optical centers RMS is "1.0".
* (Hartley-like normalization, p.180)
Copy link
Member

Choose a reason for hiding this comment

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

Can you please provide a usable reference (p.180 of what?)

Copy link
Member

Choose a reason for hiding this comment

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

Richard Hartley and Andrew Zisserman. 2003. Multiple View Geometry in Computer Vision (2nd. ed.). Cambridge University Press, USA.
It's the bible of computer vision, so you only cite the page... ;-)

@fabiencastan fabiencastan force-pushed the dev/sfmTransform_orientationCameraX branch from f2e276d to f6d773f Compare April 21, 2021 20:29
@fabiencastan fabiencastan force-pushed the dev/sfmTransform_orientationCameraX branch from f7b4a6b to 2f2ab54 Compare April 30, 2021 14:05
@ghost ghost force-pushed the dev/sfmTransform_orientationCameraX branch from 9ac22ae to 0c2ec95 Compare August 16, 2021 11:47
@ghost ghost force-pushed the dev/sfmTransform_orientationCameraX branch from c102e75 to c57ce3f Compare August 20, 2021 13:35
@fabiencastan fabiencastan added this to the 2.5.0 milestone Sep 13, 2021
@servantftechnicolor servantftechnicolor force-pushed the dev/sfmTransform_orientationCameraX branch from c57ce3f to b49dc33 Compare March 22, 2022 08:41
@servantftechnicolor servantftechnicolor force-pushed the dev/sfmTransform_orientationCameraX branch from b49dc33 to a59b419 Compare April 25, 2022 10:54
@servantftechnicolor servantftechnicolor force-pushed the dev/sfmTransform_orientationCameraX branch from a59b419 to 3b8c22b Compare June 1, 2022 12:26
@fcastan fcastan force-pushed the dev/sfmTransform_orientationCameraX branch from 1de6683 to 10a5b01 Compare June 3, 2022 20:32
Comment on lines 536 to 539
Mat3 R_image = Eigen::AngleAxisd(-degreeToRadian(orientationToRotationDegree(orientation)), Vec3(0, 0, 1)).toRotationMatrix();

Eigen::Vector3d oriented_X = R_image * Eigen::Vector3d::UnitX();
Eigen::Vector3d oriented_Y = R_image * Eigen::Vector3d::UnitY();
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
Mat3 R_image = Eigen::AngleAxisd(-degreeToRadian(orientationToRotationDegree(orientation)), Vec3(0, 0, 1)).toRotationMatrix();
Eigen::Vector3d oriented_X = R_image * Eigen::Vector3d::UnitX();
Eigen::Vector3d oriented_Y = R_image * Eigen::Vector3d::UnitY();
const Mat3 R_image = Eigen::AngleAxisd(-degreeToRadian(orientationToRotationDegree(orientation)), Vec3(0, 0, 1)).toRotationMatrix();
const Eigen::Vector3d oriented_X = R_image * Eigen::Vector3d::UnitX();
const Eigen::Vector3d oriented_Y = R_image * Eigen::Vector3d::UnitY();

Comment on lines 573 to 576
Mat3 R_image = Eigen::AngleAxisd(-degreeToRadian(orientationToRotationDegree(orientation)), Vec3(0, 0, 1)).toRotationMatrix();
Eigen::Vector3d oriented_X = R_image * Eigen::Vector3d::UnitX();
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
Mat3 R_image = Eigen::AngleAxisd(-degreeToRadian(orientationToRotationDegree(orientation)), Vec3(0, 0, 1)).toRotationMatrix();
Eigen::Vector3d oriented_X = R_image * Eigen::Vector3d::UnitX();
const Mat3 R_image = Eigen::AngleAxisd(-degreeToRadian(orientationToRotationDegree(orientation)), Vec3(0, 0, 1)).toRotationMatrix();
const Eigen::Vector3d oriented_X = R_image * Eigen::Vector3d::UnitX();

@tanstella tanstella force-pushed the dev/sfmTransform_orientationCameraX branch from 036590f to cea7f4f Compare August 10, 2022 10:28
@servantftechnicolor servantftechnicolor force-pushed the dev/sfmTransform_orientationCameraX branch from cea7f4f to 1ffe759 Compare September 7, 2022 08:49
@fabiencastan fabiencastan force-pushed the dev/sfmTransform_orientationCameraX branch from 1ffe759 to ca64bd7 Compare September 7, 2022 15:31
@fabiencastan fabiencastan changed the title [sfm] Alignment: new computeNewCoordinateSystemFromCamerasXAxis [sfm] Use opengl coordinate system in Alembic & Meshes and add new alignment from Cameras X Axis Sep 8, 2022
@fabiencastan fabiencastan merged commit 22f1743 into develop Sep 8, 2022
@fabiencastan fabiencastan deleted the dev/sfmTransform_orientationCameraX branch September 8, 2022 16:29
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.

4 participants