mvs-texturing icon indicating copy to clipboard operation
mvs-texturing copied to clipboard

skip MVE

Open blacksino opened this issue 1 year ago • 3 comments

Hello, if I have a well-defined geometry, multiple images, and the corresponding camera poses for the images, how can I skip the MVE part and directly use MVS Texturing?

blacksino avatar Sep 13 '24 03:09 blacksino

Texturing (3D model + images + camera parameters --> textured 3D model)

$codedir/texrecon/build/apps/texrecon/texrecon scene::undistorted surface-clean.ply textured

omah03 avatar Sep 13 '24 12:09 omah03

thanks,just make it work by customizing my own .cam file and images,however,it is a bit of comfuse how to convert my opengl extrinsics to mvs'one,do you have any idea?

blacksino avatar Sep 14 '24 02:09 blacksino

@blacksino

  private func arkitToMVE(_ R: simd_double3x3, _ t: simd_double3) -> (simd_double3x3, simd_double3) {
       let transform = simd_double3x3(rows: [
           simd_double3(1, 0, 0),
           simd_double3(0, -1, 0),
           simd_double3(0, 0, -1)
       ])
       let Rcv = transform * normalizeRotationMatrix(R)
       let tcv = transform * t
       return (Rcv, tcv)
   }

This is my implementation from the arkit coordinate to mve coordinate. Hope it help you.

thomas-hut avatar Sep 26 '24 07:09 thomas-hut

@thomas-graphopti I have got a ply with arkit co ordinates. Do I need to apply same transform for the ply? Or can we directly use ply + arkit camera parameters? Thanks in advance

SB162024 avatar Nov 10 '24 18:11 SB162024

@thomas-graphopti I have got a ply with arkit co ordinates. Do I need to apply same transform for the ply? Or can we directly use ply + arkit camera parameters? Thanks in advance

Hi, @SB162024 . If I understand correctly, you’re asking whether it’s necessary to transform the coordinates of your PLY file when working with ARKit data, or if you can directly use the PLY data along with the ARKit camera parameters.

If your goal is to use mvs-texturing/MVE/OpenMVS to apply textures, you will indeed need to transform the ARKit poses to align with the coordinate system used by MVE. This is because ARKit uses a right-handed, Y-up coordinate system, whereas mvs-texturing/MVE/OpenMVS expects a left-handed coordinate system. Therefore, a conversion is required before you proceed with texturing.

For more details on ARKit’s coordinate system, you can refer to the official documentation here: Understanding World Tracking in ARKit.

I hope this clarifies your question! Let me know if you need further assistance.

thomas-hut avatar Nov 11 '24 07:11 thomas-hut

@thomas-graphopti Thanks for quick reply. Sorry for bothering you again. I tried with converted camera parameters and converted mesh ply file. But the resultan model isnt a textured model. The resultant texture files are almost grey. Have you faced this issue?

SB162024 avatar Nov 11 '24 14:11 SB162024

@SB162024,

The information you have provided is insufficient. To texture a mesh using mve-texturing, you will need to convert your pose, images, and mesh data into the format specified here: MVE File Format. Once formatted correctly, you can use the texrecon tool within mve-texturing to apply textures to your mesh.

thomas-hut avatar Nov 12 '24 02:11 thomas-hut

@thomas-graphopti I'm newbie. Please bear with me. I tried another co ordinate system too but failed. I get the images , ply and pose from reality scan app. I convert images to JPG(heic -> JPG) and then use pose to get the camera parameters and generate cam files (after co ordinate change) and apply similar co ordinate change to my ply file. Then I use MVS texturing. But the texture obj doesn't look good.

SB162024 avatar Nov 12 '24 16:11 SB162024

@SB162024 The MVE provide a visualisation tool umve to verify data format. you should use it to check your data before texturing.

thomas-hut avatar Nov 15 '24 03:11 thomas-hut