Giter Site home page Giter Site logo

ventusff / neurecon Goto Github PK

View Code? Open in Web Editor NEW
845.0 25.0 81.0 4.18 MB

Multi-view 3D reconstruction using neural rendering. Unofficial implementation of UNISURF, VolSDF, NeuS and more.

License: MIT License

Python 99.93% Shell 0.07%
3d-reconstruction neural-rendering nerf sdf implicit-surfaces

neurecon's Introduction

Our conquest is the sea of stars.

neurecon's People

Contributors

ventusff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neurecon's Issues

Surface area / Volume calculation of the 3D object

Hi,

Thanks for the implementations. I'm currently interested in virtually measuring volume / surface area of the 3D reconstructed object. I also want to train these models on my own set of 2D images. Can you give me some guidance regarding this ?.

Thanks.

Why init beta needs sqrt?

Hi,

Thx for your excellent repo. In volsdf rendering part, I find you add extra sqrt when initializing beta which does not show in volsdf paper's equation. Could you pls tell me why you use sqrt here?

How to run on inside-out data?

Hi! Thank you for the excellent project!
I am going to run VolSDF on inside-out data such as indoor scenes.
Could you give me some advice on how to setup the parameters?

Positional encoding in `RadianceNet`

Hi, and thanks a lot for the implementation!

embed_multires: -1
embed_multires_view: -1

I was wondering why we are not using positional encoding and instead are feeding raw 3D coordinates and view directions here? Especially because IDR is not doing so and the defaults are 6 and 4... 🤔

I tried changing these from -1 to 6 and/or 4, and training collapses or at least goes much slower... To me, this seems extremely weird!

Normalization for BlendedMVS dataset unclear

Hi, Thank you for the detailed and well-documented implementations.

The camera normalization method required for working with the BlendedMVS dataset is unclear to me. Could you please elaborate on how the folder cams_normalized/ is generated from cams/ folder of the original BlendedMVS dataset?

Thank you.

Slight loss of detail compared with official implementation

First off, thanks for this useful implementation. So with specific regard to your NeuS implementation, there is a slight drop in the level of detail in the final mesh compared with the official implementation, when using the same hyperparameters and marching cubes settings.

Is this something that should be solvable by tweaking the marching cubes algorithm?

Coordinate System

Hi thanks for your great work! I am try to apply your codebase to some offical dataset, but I got some problem in get_rays function. Is camera extriniscs the world coordinate system to the camera coordinate system? or is camera coordinate system to world coordinate system?

The implementation principle of rend_util.sample_pdf() and sample_cdf()?

Thank you for your work and summary. I have learned a lot, but due to the limitations of knowledge, I still have some doubts. I sincerely hope you can help me solve my doubts.

Q1:Although the functions of sample_pdf() and sample_cdf() can be known according to the functions of the code, I still can't understand the specific internal details of sample_pdf() and sample_cdf(). If you are free, I hope you can answer or recommend relevant knowledge materials.

Thank you very much!
Look forward to your reply.

why set alpha=1/beat and sigma=alpha * psi?

It's really a great job! iq(≧▽≦q)。
But i have a question about the parameter alpha. I saw you set alpha = 1/beta and sigma=alpha * psi in your code, that means sigma/density will >1 when beta < 1. Why not set sigma = psi, that will keep sigma <= 1?

Using skip connection with use_siren

Hi,
I am trying to adopt SIREN into NeuS framework.
When I tried the original architecture of the neus_nomask with use_siren=True, I found that you intentionally blocked it by using assertion. In my earlier trial of using network configuration of volsdf_siren.yaml, the result was a bad surface shape with overfitted radiance network. So I want to try the original architecture of neus_nomask.yaml with use_siren=True for both surface and radiance networks. Is there any reason to block using skip connection for using SIREN?

Bug report: the sequential render results will jitter with spiral camera path

Hi, I come across the problem when I render sequential images with the following configurations:

  • DTU data from official NeuS repository
  • use NeuS model trained on neurecon repository
  • render 45/90 images with downscale factor as 2
  • trajectory is generated by spiral camera path

I find both the generated video and sequential rendered images will jitter with render_view.py. The phenomenon occurs in the whole DTU sequence.
The generated jitter video of dtu_scan63 are as follows:

dtu_scan63_splitval_rgb_600x800_45_spiral.mp4

After checking the code carefully, I find the jitter will disappear when I replace the following code when rendering images:

bugreport_neurecon

But I think both of the implementations are correct and check that the angle difference of the 2 implementations is about 1e-3 degrees. So I can not find the exact reason for the problem.

With modification, the results are as follows :

dtu_scan63_splitval_rgb_600x800_45_spiral.mp4

Update:
I find when I set pixel_points_cam, p, as double , the jitter also will disappear

Quantitative comparison with official NeuS repo?

Hi, thanks for releasing this awesome project!

From the todo list I saw that you have done "Compare with NeuS official repo". Is this done quantitatively? Could this implementation achieve similar quantitative results on DTU compared with the official one? It would be very appreciated if you could share this information.

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.