Code Monkey home page Code Monkey logo

Comments (11)

maturk avatar maturk commented on June 24, 2024

instead of dividing by scale what happens if you multiply by scale

from nerfstudio.

maturk avatar maturk commented on June 24, 2024

There is no bb in the viewer so you have to do some trial and error, sorry

from nerfstudio.

hanjoonwon avatar hanjoonwon commented on June 24, 2024

instead of dividing by scale what happens if you multiply by scale

Thank you for answer :)

When I compare the size before and after rescsle, it looks like the scale factor is applied correctly, but the size is still ridiculously small, like 0.7mm 3.5mm. Is this an intrinsic issue with the old colmap or an issue with the old process?

from nerfstudio.

maturk avatar maturk commented on June 24, 2024

If you are using colmap to process your data, it is impossible to ever even know the true scale of the scene. Colmap does not output poses in the correct scale of the real world, everything is in an arbitrary coordinate system. This is because it is impossible to ever even obtain ground truth scale from only RGB images. The only way you can know the true scale if you use some kind of VSLAM algorithm that has real world depth data when generating your pose estimates.

I think maybe there is a big misunderstanding here. reconstructed 3D points and camera poses from COLMAP are defined up to a scale factor, and the actual metric scale is unknown without additional information. If you want to obtain real-world scale from your reconstructed scene, you need to incorporate additional information.

from nerfstudio.

hanjoonwon avatar hanjoonwon commented on June 24, 2024

If you are using colmap to process your data, it is impossible to ever even know the true scale of the scene. Colmap does not output poses in the correct scale of the real world, everything is in an arbitrary coordinate system. This is because it is impossible to ever even obtain ground truth scale from only RGB images. The only way you can know the true scale if you use some kind of VSLAM algorithm that has real world depth data when generating your pose estimates.

For Instant ngp, it seems to come out close to the actual size, but since I can't get the ground truth with ns-process of a typical image, do I need to resize it with a tool like meshlab?

from nerfstudio.

maturk avatar maturk commented on June 24, 2024

If you are using colmap to process your data, it is impossible to ever even know the true scale of the scene. Colmap does not output poses in the correct scale of the real world, everything is in an arbitrary coordinate system. This is because it is impossible to ever even obtain ground truth scale from only RGB images. The only way you can know the true scale if you use some kind of VSLAM algorithm that has real world depth data when generating your pose estimates.

For Instant ngp, it seems to come out close to the actual size, but since I can't get the ground truth with ns-process of a typical image, do I need to resize it with a tool like meshlab?

It is not possible to reconstruct correct metric poses with colmap. You need some additional information. You can manually resize it if you want (scale it by some numbers to match whatever size you desire in the real world).

from nerfstudio.

maturk avatar maturk commented on June 24, 2024

@hanjoonwon please dont make more issues about this same problem. The problem is that when you just take photos using your camera, there is no way to know the real scale of the scene from only RGB images. The scale ambiguity is a fundamental characteristic of perspective projection (i.e. how 3D world makes 2D images), and it means that the reconstructed scene can be scaled uniformly without changing the projected image, which means it is impossible to get the metric scale of the 3D world from just 2D images without any other prior information about the scene. You can manually rescale the mesh if you want, but it is not physically possible to get metric scales by just using colmap dataprocessing.

from nerfstudio.

maturk avatar maturk commented on June 24, 2024

If you want metric scaled exports, you need metric scaled poses. To do this, you need to use RGBD SLAM or some other technique that uses depth data when estimating camera poses. If you have a recent iPhone with a depth sensor (time of flight sensor), you can get metric poses using e.g. https://www.spectacularai.com/mapping or other apps like PolyCam

from nerfstudio.

hanjoonwon avatar hanjoonwon commented on June 24, 2024

@hanjoonwon please dont make more issues about this same problem. The problem is that when you just take photos using your camera, there is no way to know the real scale of the scene from only RGB images. The scale ambiguity is a fundamental characteristic of perspective projection (i.e. how 3D world makes 2D images), and it means that the reconstructed scene can be scaled uniformly without changing the projected image, which means it is impossible to get the metric scale of the 3D world from just 2D images without any other prior information about the scene. You can manually rescale the mesh if you want, but it is not physically possible to get metric scales by just using colmap dataprocessing.

I'm sorry, I think I misused issues due to my lack of basic knowledge. Thank you for your kind reply.
I guess it was a coincidence or mistake that I thought the Instanr ngp mesh was life-size.

from nerfstudio.

maturk avatar maturk commented on June 24, 2024

@hanjoonwon please dont make more issues about this same problem. The problem is that when you just take photos using your camera, there is no way to know the real scale of the scene from only RGB images. The scale ambiguity is a fundamental characteristic of perspective projection (i.e. how 3D world makes 2D images), and it means that the reconstructed scene can be scaled uniformly without changing the projected image, which means it is impossible to get the metric scale of the 3D world from just 2D images without any other prior information about the scene. You can manually rescale the mesh if you want, but it is not physically possible to get metric scales by just using colmap dataprocessing.

I'm sorry, I think I misused issues due to my lack of basic knowledge. Thank you for your kind reply. I guess it was a coincidence or mistake that I thought the Instanr ngp mesh was life-size.

It is most likely just a coincidence that the poses in instant-ngp happened to line up with the real world poses. Colmap outputs arbitrary scaled poses so it is possible that they closely line up sometimes, but this is not generally the case.

from nerfstudio.

smart4654154 avatar smart4654154 commented on June 24, 2024

Thank you very much for your work. My question seems to be related to this job. What is the meaning of the crop scale value in the new version of viewer? I found that the value of the crop scale cannot match the coordinate values of the world coordinate system. For example, when the crop scale is set to 4, 4, 4, it is approximately equivalent to a square with a side length of 40 in the world coordinate system
image
What are the meanings of "crash max" and "crash min" in Viewer_legacy?
image

from nerfstudio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.