alicevision / Meshroom

3D Reconstruction Software

Home Page:http://alicevision.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[question] How do I get the camera / mesh position to stay the same?

Sweru-bit opened this issue · comments

Describe the problem
I am basically using Meshroom to do a stop motion video in 3D in 30 fps. I have the issue that my meshes are jumping around a bit and the roatation is also changing. To do these meshes, I have imported the cameras.sfm file using the node ImportFromKnownPoses, applied the settings match from known camera poses as well as lock previously reconstructed scenes. The positions in the sfm file are all locked as well. Still, it does appear as if the camera positions are being overwritten by the StructureFromMotion node as seen in the 3D Viewer. The first picture shows only the imported camera positions, the second also shows the positions after structure from motion,
StructureFromMotion
sfmAndStructureFromMotion
The same pictures were used to make the camera.sfm which was imported and for the second run.

The problem increases when I use a different dataset (shot from exactly the same positions) as seen in this screenshot.

DifferentPhotos

I assume this results in different meshes which also have different rotations which can be seen in this screenshot where the images were taken ~ one second apart.
First mesh:
Mesh1
First and second mesh:
Mesh1And38

Pipeline, Pictures & the obj files:
DifferentCameraPositions.zip

Is the difference in camera position the cause for my mesh moving? How do I make sure that the mesh stays in the same position?

Desktop (please complete the following and other pertinent information):

  • OS: win 10
  • Python version 3.8.2
  • Meshroom version: newest release / currend build

I did the following:

  • duplicated the camera init node from the first sfm and adjust the folder only in viewpoint image paths
    grafik

  • created new photogrammetry pipeline

  • add FromKnownPose

  • add sfmalignment with from_camera_pose_id

  • connect as follows:

grafik
In featurematching I reduced the Known poses geoetric error to 0

The result is not an exact match, but ok

To get an exact match, use sfmtransfer
grafik

We can even leave out the "fromknownpose" and do it like this
grafik

Instead of keeping the viewId, you can also use "from_filepath" in SfMTransfer (if you name your images the same way for each scene, and you can use a regex if the name is not exactly the same).

@fabiencastan I can not get it to work with from_filepath. Even with default values in the file matching pattern or (\w+).jpeg as my regex and inputting the same file in the reference and input, it results in an error while from_viewId works properly. Do you have any idea what I am doing wrong?
TestPipeline.zip

I had the same issue with from_filepath