Jianxff / droid_metric

run DROID-SLAM with Metric3D to improve monocular performance
BSD 3-Clause "New" or "Revised" License
100 stars 7 forks source link

Import issue: ModuleNotFoundError: No module named 'droid_backends' #11

Closed liuyq055 closed 1 month ago

liuyq055 commented 2 months ago

I have followed the installation instructions provided in the repository, and I am not sure what might be causing this issue. Could you please advise on how to resolve this issue? Is there any additional setup or installation step that I might have missed?

Jianxff commented 2 months ago

Hi, The problem seems from wrong installation for DROID-SLAM. You can check the following:

You can copy and upload the whole installation logs from the console if the error still exists.

liuyq055 commented 2 months ago

Thank you for your excellent work. Following your advice, I successfully ran the code and validated it on the ADVIO-Seq15 dataset. However, the results were not as expected. I also visualized the depth map, and the predictions and Ground truth trajectories, why are the results poor? Is there something I set wrong? This is the final generated mesh file visualization: image Here's a comparison of the trajectories: Figure_1 Here's a depth chart from a different viewpoint: 2024-09-09_11-23 2024-09-09_11-22

Jianxff commented 2 months ago

Hi,

Sorry for that, I have no idea for the problem by now. You can check if all data for input is correct including intrinsics and console args.

You can copy your execution command so that I can get more infomation.

BTW, the GT data structure for ADVIO is a little bit strange, you may have to look into the coordinate for the GT pose and the quarternion format for Rotation data.

liuyq055 commented 2 months ago

Thank you for your reply, my execution command is mainly: python depth.py --rgb data/advio-15/iphone/frames --intr data/advio-15/iphone/intrinsics.txt python run.py --rgb data/advio-15/iphone/frames --depth depth --intr data/advio-15/iphone/intrinsics.txt --save_poses poses python mesh.py --rgb data/advio-15/iphone/frames --depth depth --poses poses/ --intr data/advio-15/iphone/intrinsics.txt --save mesh/ply

Described in your readme ## droid-slam python run.py --rgb path/to/rgb/dir --depth /path/to/depth/dir --intr /path/to/intrinsic/file --viz This command only saves the raw_trajectory , it doesn't convert it to a pose, so I looked at the code and added a new save path for save_poses.

I'd like to add that when I'm running pyhon run.py --viz, it feels pretty good, but I don't know why mesh.py turns out so poorly. image

Jianxff commented 2 months ago

That's strange, it's not supposed to be like this.

Have you ever check mesh_raw.ply ? The unsimplified mesh will be saved under the same dir of input args --save. I'm not sure if it is caused by RGBD fusion or mesh simplify.

liuyq055 commented 1 month ago

Sorry for the delayed reply, I finished my opening report a while ago and went. As you suggested I checked the mesh file and the results are still poor. I haven't found what the problem is yet, thinking if there is something wrong with the saved pose? Do you have any suggestions? 2024-09-25_19-25

Jianxff commented 1 month ago

Hi, I have re-tested the seq on my machine, everything works well.

Something may be wrong with the intrinsic file, which supports only 4 elements arranged in fx, fy, cx, cy. Please check it. The following is the intrinsic file for seq15:

1082.4
1084.4
364.68
643.31

I haven't found other possible problems. So if you're still having trouble, I can upload the poses file as a reference.

Here are my commands:

python depth.py --rgb ../seq15/rgb/ --intr ../seq15/calib.txt --out ../seq15/depth
python run.py --rgb ../seq15/rgb/ --depth ../seq15/depth/ --intr ../seq15/calib.txt --save_poses ../seq15/poses --viz --viz-save ../seq15/viz
python mesh.py --rgb ../seq15/rgb/ --depth ../seq15/depth/ --intr ../seq15/calib.txt --poses ../seq15/poses/ --save ../seq15/mesh.ply
liuyq055 commented 1 month ago

I have tested again according to the command you provided and checked the intrinsics file. There are no errors displayed in depth.py and run.py, but the results in mesh.py are still not satisfactory, and I don't know where the problem lies. If it's convenient for you, could you please upload the poses file generated in the second step for my reference? Thank you very much.

Jianxff commented 1 month ago

poses.zip

That's it.

liuyq055 commented 1 month ago

It's really strange that even with the pose file you provided, I still can't generate a mesh. This is the output from the third step of the operation. python mesh.py --rgb data/advio-15/iphone/frames/ --depth data/advio-15/iphone/depth/ --intr data/advio-15/iphone/intrinsics.txt --poses data/advio-15/iphone/poses1/ --save data/advio-15/iphone/mesh.ply --viz True [TSDF] running RGBD TSDF integrating [memory] 13.55/63 GB: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 311/311 [00:05<00:00, 53.39it/s] [TSDF] extracting mesh [TSDF] simplifying mesh [Open3D WARNING] Write Ply clamped color value to valid range

To add, the point cloud and trajectory point cloud generated in the second step are both normal. image image

liuyq055 commented 1 month ago

Additionally, I was wondering if it would be convenient for you to share the mesh file generated in the third step for my reference. Thank you very much for your excellent work.

Jianxff commented 1 month ago

mesh_raw.zip

This is the file of the raw mesh without simplification. I have no idea what's happening. You may compare your code about mesh generation with the latest on the repo.

liuyq055 commented 1 month ago

I have re-downloaded the latest repo, and it worked!! Thank you so much!!

Jianxff commented 1 month ago

Good to hear that.