dust3r部署踩坑全记录

目前dust3r是三维重建最新最好的技术,运用了ViT编码器、Transformer、注意力机制、回归等技术,无需相机参数标定。

但是我部署过程中有很多坑,记录一下。

1.OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.

我之前装好了cuda和cudnn,最开始是完全按照readme.md里面的方式部署,用了conda,新建一个环境,环境装了Python3.11。但是安装到

复制代码
python setup.py build_ext --inplace

这一步时就会报错。我查了一下,说是Anaconda安装的cudatoolkit不完整,需要下载完整的Nvidia CUDA Toolkit。似乎要在虚拟环境再装一个cudatoolkit。但是网上找的解决方案并不能解决问题。

后来我考虑到虚拟环境装不了,试试不用Anaconda,于是在另一台电脑上,没有装Anaconda,直接装的Python3.8,然后直接装,这一步居然没报错,过去了。Python3.8后面会有报错,但是有办法解决。而我又装了Python3.12和Python3.11,还是会报这个错。还有就是Python3.8没有能装起来pytorch和pytorch-cuda,报错好像是说没有找到满足条件的库,但是不影响后面运行。

2.ImportError: cannot import name 'cache' from 'functools' (D:\Python38\lib\functo
ols.py)

这就是前面说的Python3.8的报错,查了一下Python3.8及以前的版本没有这个,用Python3.9就没问题。但是我装了Python3.12和Python3.11又有了第一个报错。Python3.8及以前的版本用的不是cache,而是叫lru_cache的,名字变了一下而已。于是我就用Python3.8,把报错的dust3r\dust3r\cloud_opt\init_im_poses.py里面的cache 全部改成lru_cache(共两处),然后就可以run了。

3.TypeError: 'int' object is not subscriptable

网上查了一下,说是int型不可以被引用。因为报错的地方是assert(dust3r\dust3r\model.py),于是我直接把这句话注释掉了,就可以run了。

4.File "demo.py", line 294, in <module>
model = AsymmetricCroCo3DStereo.from_pretrained(weights_path).to(args.device)

因为之前按readme下载了DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth在新建的checkpoints文件夹里面,而demo.py读取的地方是

复制代码
weights_path = "naver/" + args.model_name
复制代码
args.model_name就是DUSt3R_ViTLarge_BaseDecoder_512_dpt。
故weights_path应为checkpoints/DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth。
解决方案:将这一行改为
复制代码
weights_path = "checkpoints/" + args.model_name + ".pth"
复制代码
然后就可以run了。

展示一下效果:

相关推荐
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
想会飞的蒲公英2 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
我叫洋洋3 小时前
C ++ [ hello world ]
c语言·c++·算法
SeaTunnel3 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记3 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名4 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
奋发向前wcx4 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
Marst Code4 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook4 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
水豚老师5 小时前
基于会话变量与行快照的跨数据库双向增量同步系统设计与实现 - TriggerAsyn v2:从状态机防循环到事件溯源回放的全面重构
重构·触发器·状态机·异构数据库·多数据库同步