Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

entropy coding #6

Open
mary-ashk opened this issue Jan 15, 2024 · 7 comments
Open

entropy coding #6

mary-ashk opened this issue Jan 15, 2024 · 7 comments

Comments

@mary-ashk
Copy link

mary-ashk commented Jan 15, 2024

HI , i want to implement the algorithm of the article exactly.
1-How to use .npy for dataset-owlii ? where did you convert the type of dataset ?
2- where did you use G-PCC for lossless compression ? there is nothing of G-PCC in LosslessCompressor() definiotion.
3-why you dont use factorized_entropy_coding() in training?

I'd be grateful for you answering.

@ttlzfhy
Copy link
Owner

ttlzfhy commented Jan 15, 2024

  1. read .ply with open3d and use numpy.array for the transformation into .npy
  2. LosslessCompressor() is used to downsample the 2x downsampled coordinate into 3x downsampled, and generates the latent feature. Then the latent feature is compressed in LosslessCompressor() using factorized entropy model, and 3x downsampled coordinates are losslessly coded by GPCC. The bitrate of GPCC losslessly coding 3x downsampled coordinates is not included in trainer.py because this part of bitrate is a constant having nothing to do with our network. But our test scripts (test_owlii.py and test_time.py) have this part.
  3. The function factorized_entropy_coding() in models/entropy_coding.py practically generate the bitstream and calculate its size as the bitrate. But in training the practical encoding and decoding process will truncate the gradient propagation. That's why we use the network BitEstimator which estimates the bitrate, rather than factorized_entropy_coding() in training. In test_owlii.py we also do this for convenience. But test_time.py has real and separate encoding and decoding process, using functions in models/entropy_coding.py.

@mary-ashk
Copy link
Author

mary-ashk commented Feb 14, 2024

Hi again,
thanks alot for your previous respond.
Was the Owlii enough for training this codec?
Didn't you use some data augmentation algorithms?

@ttlzfhy
Copy link
Owner

ttlzfhy commented Feb 14, 2024

Hi again, thanks alot for your previous respond. Was the Owlii enough for training this codec? Didn't you use some data augmentation algorithms?

Directly train without any augmentation.

@mary-ashk
Copy link
Author

mary-ashk commented Feb 14, 2024

splitting of training and validation was 0.95 , 0.05?
I add just 2conv layer to residual calculation part,
then trained the model with Owlii (0.95, 0.05) and just changed the batch_size to 8, now model is overfitted.
Do you have any idea to solve it?

@ttlzfhy
Copy link
Owner

ttlzfhy commented Feb 15, 2024

splitting of training and validation was 0.95 , 0.05? I add just 2conv layer to residual calculation part, then trained the model with Owlii (0.95, 0.05) and just changed the batch_size to 8, now model is overfitted. Do you have any idea to solve it?

Is the Owlii dataset quantized? In our training the coordinates of Owlii dataset are quantized into 10-bit. The example quantization script is https://github.com/ftyaaa/quantizer.git.

And can you describe the overfitting problem in detail?

@mary-ashk
Copy link
Author

I didn't quantized the data, just changed the scaling factor to 8, to reduce the computations.
I plot the val loss and training loss , for 50 epochs.
The gap between them is 0.5.
And at testing time , the model doesn't return expected bpp.
For example, first model returns 1.13 bpp but trained for 0.02bpp.

@ttlzfhy
Copy link
Owner

ttlzfhy commented Feb 16, 2024

I didn't quantized the data, just changed the scaling factor to 8, to reduce the computations. I plot the val loss and training loss , for 50 epochs. The gap between them is 0.5. And at testing time , the model doesn't return expected bpp. For example, first model returns 1.13 bpp but trained for 0.02bpp.

Can you share the complete project file, the trained model, and the command of running training and testing? Please send e-mail to [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants