NVlabs / BundleSDF

[CVPR 2023] BundleSDF: Neural 6-DoF Tracking and 3D Reconstruction of Unknown Objects
https://bundlesdf.github.io/
Other
992 stars 109 forks source link

error running run_custom.py on milk dataset. #151

Open zahid990170 opened 4 months ago

zahid990170 commented 4 months ago

I made a first test using the milk dataset and issue the following command. I am running this remotely on a GPU based machine.

python run_custom.py --mode run_video --video_dir 2022-11-18-15-10-24_milk --out_folder bundlesdf_2022-11-18-15-10-24_milk --use_segmenter 1 --use_gui 0 --debug_level 2

what kind of output shall we get? do we also receive the pose information?

after running for a while, the program terminates with this error:

image

There are further optional commands to see further information.

python run_custom.py --mode draw_pose --out_folder bundlesdf_2022-11-18-15-10-24_milk

questions:

Does "draw_pose" expects that first command was already executed. I received the following error upon executing this:

ValueError: string is not a file: bundlesdf__2022-11-18-15-10-24_milk/textured_mesh.obj

Any input or pointers?

thanks,

athnzc commented 4 months ago

You are using the RTX 2070 super to run the code? 8 GB VRAM? I'm also trying to figure out how to run the code, on an RTX 3070, and I have stumbled upon the same error as you. As for the output, I think from the code, it seems that it should be the reconstructed mesh, which needs postprocessing, and a text file with the pose.

wenbowen123 commented 4 months ago
  1. Do you have GPU on the machine?
  2. If so, did you install nvidia-docker? https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
zahid990170 commented 4 months ago

@wenbowen123

image

image

docker info | grep -i nvidia
 Runtimes: io.containerd.runc.v2 nvidia runc

I will run the command again to see how it works.

thanks your inputs.

athnzc commented 4 months ago

@zahid990170 Did you run the build.sh script inside the container?

zahid990170 commented 4 months ago

@athnzc I had missed this step. I did this, and then the program was running. The program runs for a good while but then it terminates with the message that I put in my first post.

connection reset by peer

On the gui, I can see this kind of output

ss

So, it seems that it did not complete.

In the output folder, there is a lot of data / sub-folders that are generated.

1668813025164826994 ... ... ... color_segmented color_viz depth depth_filtered mask normal ...

I am trying to make a sense of it. Also, I cannot run the other command where --mode draw_pose

zahid990170 commented 4 months ago

some updates:

I just issued the second command

python run_custom.py --mode global_refine

and passing the arguments, in particular

video_dir
out_folder

--out_folder is the one output by the first command.

and, see if it works (out_folder probably is not complete). It worked ok !!

When I issued the last command python run_custom.py --mode draw_pose

pose_visfolder contains the images with bounding boxes drawn around the milk box.

some comments and questions:

wenbowen123 commented 4 months ago
  1. The first command is most critical and yes it will be used by second and third, which are optional.
  2. It will automatically correct the intermediate error later on
  3. The pose results will be saved to the out_folder.
  4. The first frame's pose is identity (translation maybe the center of the mesh), the subsequent poses will be relative to the first timestamp.