Giter VIP home page Giter VIP logo

implicit-decoder's People

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

implicit-decoder's Issues

About your loss

hi, it seems that your loss had a weight called wp. is it in your code?

Questions on training

Hi @czq142857 , I have tried the code and its works fine.

1.)The code in IMSVR uses the pre-trained IMAE checkpoints in IMSVR training. Can I get a more detailed explanation of using those checkpoints?

2.) In the IMSVR\data, we have hdf5 files of train, test,only_train,only_train_z.
03001627_hsp_vox_train.hdf5 and 03001627_hsp_vox_test.hdf5 contains
['pixels', 'points_16', 'points_32', 'points_64', 'values_16', 'values_32', 'values_64']. Can you explain from how are these files made?

Thanks!!

Why do we need hierarchical flood fill for .binvox file before sampling points?

Hi,
I'm a CV novice. Thanks for your code, it's really helpful to me. I'm trying to rewrite the code for my own research.I try to rewrite the file "vox2pointvaluepair_from_binvox.py" for sampling points from binvox of 32^3. But I can not understand the function "hierarchicalfloodFill" in the code: Why do we need to do this before sampling points. And another question: In the original function "hierarchicalfloodFill" (sampling points for binvox of 64^3), why do we need to compress voxel of 64^3 to 32^3 first and then restore it to 64^3.

Cheers.

Data Preparation code

Thanks for great work.
I wonder is it possible for you to share the code to prepare the training data?
Currently, I'm having difficulty to detect if the point is inside or outside the object.

Thanks
Luan

how to rot the shape in hdf5

thank you for your excellent work. i have succeed in run it in my own binvox dataset.It is really pretty in Interpolation.

but when i try to rot the 3D shape in hdf5, 1 can't solve the following problem:

  1. the hdf5 structure:
    data_points16 (3,4096,3)
    data_values16(3,4096,1)
    data_points32 =(3,8192,3)
    data_values32 =(3,8192,1)
    data_points64 =(3,32768,3)
    data_values64 =(3,32768,1)
    data_voxels =(3,64.64,64.1)

why the last dim of data_points is 3
why the second dim of data_points32 is 8192,which is 161616*2

  1. rot shape method
    i try to rot shape by numpy.rot90, it work in data_voxels.
    to make sure the data set is all rot, i write the following function:
def visualize_voxels(voxels, thres=0.5, output_dir='voxel_list', filename='out'):
    import mcubes
    """

    :param voxels: ndarray shape like (64,64,64,1) bool value
    :param thres: 
    :param output_dir: 
    :return: 
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    voxels = np.squeeze(voxels)  # (64,64,64,1)->(64,64,64)
    model_float = voxels
    vertices, triangles = mcubes.marching_cubes(model_float, thres)
    mcubes.export_mesh(vertices, triangles, os.path.join(output_dir, filename + ".dae"))
def visualize_voxels_batch(voxels_batch, thres=0.5, output_dir='voxel_list'):
    import mcubes
    """

    :param voxels: ndarray shape like (64,64,64,1) bool value
    :param thres: 
    :param output_dir: 
    :return: 
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    for t in range(voxels_batch.shape[0]):
        model_float = np.squeeze(voxels_batch[t])  # (64,64,64,1)->(64,64,64)
        vertices, triangles = mcubes.marching_cubes(model_float, thres)
        mcubes.export_mesh(vertices, triangles, os.path.join(output_dir, str(t) + ".dae"))

def rot_voxel2zheng(voxel_batch):
    return np.flip(np.rot90(voxel_batch,k=1,axes=(2,3)),axis=2)
def rot_pointorvalue2zheng(points_batch):
    d=round(points_batch.shape[1]**(1/3))
    points_batch = points_batch.reshape([points_batch.shape[0],d,d,d,points_batch.shape[-1]])#(num,d**3,3)->(num,d,d,d,3)
    points_batch = np.flip(np.rot90(points_batch,k=1,axes=(2,3)),axis=2)
    return points_batch.reshape(points_batch.shape[0],d**3,points_batch.shape[-1])

Because i can't understand the problem 1, I have no idea how to adjust the data_points and points and values of 32dims.

  1. other efforts in binvox
    after i find it hard to adjust hdf5 file. i try to adjust binvox.
    i use the tool in https://github.com/dimatura/binvox-rw-py
    but i failed in

UnicodeEncodeError: 'gbk' codec can't encode character '\x80' in position 0: illegal multibyte sequence

i have add my question to related issue

how can I make gif animation from a lot of .dae file?

Hi,sincerely thank you for your great work.
Did you know how can I make gif animation from a lot of .dae file.
I'm using the great work in bionic design related research and I need to use it to produce the Interpolation effect.
I try many dae viewer but they can just view one model one time.
one of author of the research say that he uses 3dmax in one issue and i guess it can be made by using 3dmax to make animation but i haven't taken it. I need more information about this.
thank you!

About Marching Cube

wonderful job!
for MC algorithm, i want to konw whether we render all points that inside the shape?
thanks :-)

quantitative evaluation of 3D shape generation

hi Zhiqin:
Thanks for your great work. And i am doing some works about 3D shape generation recently.I find that you show the results of COV-LFD and MMD-LFD in paper.Do you have the results of COV-CD or MMD-CD ? I would appreciate it if you could reply.

Light Field Descriptor

Hi Zhiqin,

Thanks for the great work.
Where can I find an implementation of the light field descriptor for model evaluation?

Best regards,
Guy

About resolution

Hi, Zhiqin,
It is a good job and I have a naive question about resolution of 3D object. Have you tried to improve the resolution of the shapes? I know that the resolution you used in paper is up to 256. The implicit field is a very good method, so can the resolution of the shape be improved without consuming a lot of memory?

Questions about preparing data

Hi, thank you very much for sharing the code of your great work. I am trying to prepare my own data for training and I use vox2pointvaluepair_from_binvox.py. I also visualize those h5py data using test_vox.py. However, I find that some shapes are good, some are not very satisfactory.
image
image
I use binvox.exe to change the original shape from segmented data of ShapeNetV2 to voxels. I have visualized these binvox data and they look good. The shapes have been normalized to the unit box. I am wondering what causes the result in figure 2. Thanks a lot again!

Naive questions

Dear Zhiqin,

Thanks a lot for sharing your great work!

We have run the script you provide successfully, but we have some naive questions as I'm not familiar with the problem ;)

  1. how should we read the output in the sample folder? Are they just rendering of the marching cube?
  2. what's the input/output in both training and testing stage exactly?
  3. how should we build our own dataset as h5 file?

It would be great if you have time to answer these questions, thanks!

Best,
Shihao

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.