Skip to content

Conversation

@ApdowJN
Copy link
Contributor

@ApdowJN ApdowJN commented Oct 13, 2025

Summary

This merge request adds support for fused point cloud initialization .


Features Added

  • Fused Point Cloud Initialization
    Introduced a new initialization method, fused_point_cloud, enabling initialization of 3D Gaussians from a point cloud (.ply file).

  • cuSFM Output Adaptation
    Modified the line parsing logic in function read_colmap_extrinsics_text to handle cuSFM’s images.txt format, where some images contain only the line
    IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
    and do not include the POINTS2D[] line (which normally contains (X, Y, POINT3D_ID)).

    # Original
    lines = (line for line in lines if line and not line.startswith("#"))
    
    # Updated
    lines = (line for line in lines if line == "" or not line.startswith("#"))

Config Files Using Accumulated Point Cloud Initialization

  • Added configs/apps/cusfm_3dgut_mcmc.yaml — configuration for accumulated point cloud–based training.

  • Added configs/initialization/accumulated_point_cloud.yaml — defines parameters for point cloud initialization:

    • observation_scale_factor: 0.01
    • use_observation_points: true
    • accumulated_point_cloud_path: configurable path to the input .ply file

Commands to train 3DGRUT using a given point cloud for initialization

  python train.py \
    --config-name apps/cusfm_3dgut_mcmc.yaml \
    path=<path_to_cuSFM> \
    out_dir=<path_to_out> \  
    initialization.accumulated_point_cloud_path=<path_to_nvblox_dir>/nvblox_mesh.ply \
    experiment_name=3dgut_mcmc \
    export_usdz.enabled=true \
    export_usdz.apply_normalizing_transform=true

@ApdowJN ApdowJN changed the title Adapt cusfm format for training Allow passing accumulated point cloud in the training Oct 13, 2025
lines = (line.strip() for line in fid)
lines = (line for line in lines if line and not line.startswith("#"))
# lines = (line for line in lines if line and not line.startswith("#"))
lines = (line for line in lines if line == "" or not line.startswith("#"))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious, what does this line fix?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @wilsonCernWq, Thank you for your review.
This update handles cases in images.txt where no 2D points are associated with an image.
In such cases, some entries contain only:
IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
and do not include the usual POINTS2D[] line (which normally lists (X, Y, POINT3D_ID)).
A line was added to properly handle these cases during file reading.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this case, would we remove line 517 (the comment) and add actual comments to it to explain a bit? Sorry for the trouble! Thank you!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, will do that. Thanks.

Copy link
Contributor Author

@ApdowJN ApdowJN Oct 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @wilsonCernWq I updated the following:

  1. Replaced “accumulated” with “fused” to avoid ambiguity.
  2. Added comments to clarify line 518.

Could you please take a look? Thank you! If everything looks good, could you help me merge it?

@ApdowJN ApdowJN force-pushed the wwh/adapt_cusfm_format branch from 84cfa10 to f2e0f7a Compare October 20, 2025 19:47
@ApdowJN ApdowJN changed the title Allow passing accumulated point cloud in the training Allow passing fused point cloud in the training Oct 20, 2025
@ApdowJN ApdowJN force-pushed the wwh/adapt_cusfm_format branch from f2e0f7a to 49280b7 Compare October 20, 2025 20:29
Copy link
Collaborator

@wilsonCernWq wilsonCernWq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks for accommodating the change request

@wilsonCernWq wilsonCernWq merged commit 16b7b19 into nv-tlabs:main Oct 20, 2025
1 check passed
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

Successfully merging this pull request may close these issues.

3 participants