Skip to content

Correct Procedure for Voxel Visualization? #20

Open
@jamesheatonrdm

Description

@jamesheatonrdm

I am struggling to create a feature field which looks like the one provided in the README.

I get the following visualisation, which looks nothing like the example image:

1_feature_field

These are the commands I ran to produce this feature field using scene 1:

Step 1: Train model according to step 2 in the documentation:

python train_emernerf.py \
--config_file configs/default_config.yaml \
--output_root output \
--project test_dino \
--run_name 1_flow \
data.pixel_source.load_features=True \
data.pixel_source.feature_model_type=dinov2_vitb14 \
data.pixel_source.skip_feature_extraction=False \
nerf.model.head.enable_feature_head=True \
nerf.model.head.enable_learnable_pe=True \
data.scene_idx=1 \
data.start_timestep=2 \
data.end_timestep=3 \
logging.saveckpt_freq=8000 \
optim.num_iters=8000

This gives the following metrics:

I20240327 12:56:14 root video_utils.py:93] Eval over 6 images:
I20240327 12:56:14 root video_utils.py:94]      PSNR: 36.4330
I20240327 12:56:14 root video_utils.py:95]      SSIM: 0.9412
I20240327 12:56:14 root video_utils.py:96]      Feature PSNR: 24.9425
I20240327 12:56:14 root video_utils.py:97]      Masked PSNR: 34.0290
I20240327 12:56:14 root video_utils.py:98]      Masked SSIM: 0.9251
I20240327 12:56:14 root video_utils.py:99]      Masked Feature PSNR: 23.2345

The generated rgbs and dino_features are the following:

step_8000_rgbs
step_8000_dino_feats

Step 2: Add the --visualize_voxel and resume_from flags and remove the iterations and save checkpoint frequency (since I don't want to train again):

python train_emernerf.py \
--config_file configs/default_config.yaml \
--output_root output \
--project test_dino \
--run_name 1_flow \
--visualize_voxel \
resume_from=output/test_dino/1_flow/checkpoint_08000.pth \
data.pixel_source.load_features=True \
data.pixel_source.feature_model_type=dinov2_vitb14 \
data.pixel_source.skip_feature_extraction=False \
nerf.model.head.enable_feature_head=True \
nerf.model.head.enable_learnable_pe=True \
data.scene_idx=1 \
data.start_timestep=2 \
data.end_timestep=3

This produces the feature field shown above.

Does anyone know what could be causing this issue? I am currently attempting to train with a much longer timestep but other than that I do not see any glaring errors in my procedure.

Any help would be greatly appreciated. I am happy to provide further information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions