当前位置: 首页 > news >正文

EGSTalker踩坑日记第一弹

本文只针对25.4.30版本的EGSTalker仓库

一、环境配置

因为一直习惯于把项目zip拉下来上传服务器所以遇到了第一个问题,在服务器上没有办法执行这条指令(本地执行了也没效果不知道为啥)

gitsubmodule update --init --recursive

解决方法:

#在github上找到.gitmodules文件,自行下载到指定位置就可以了[submodule"submodules/custom-bg-depth-diff-gaussian-rasterization"]path=submodules/custom-bg-depth-diff-gaussian-rasterization url=https://github.com/joungbinlee/custom-bg-depth-diff-gaussian-rasterization.git[submodule"submodules/simple-knn"]path=submodules/simple-knn url=https://github.com/camenduru/simple-knn.git

下载后执行即可

pipinstall-e submodules/custom-gaussian-rasterization pipinstall-e submodules/simple-knn

二、数据预处理

原本的数据处理代码process.py的第六部分

ifopt.task==-1 or opt.task==6: extract_torso_and_gt(base_dir, ori_imgs_dir)

在保存之前缺少了文件夹创建步骤,而且这里不会报错!!!

#创建文件夹folder_path=os.path.dirname(image_path.replace('ori_imgs','torso_imgs').replace('.jpg','.png'))os.makedirs(folder_path,exist_ok=True)#在这段代码之前增加上述代码cv2.imwrite(image_path.replace('ori_imgs','torso_imgs').replace('.jpg','.png'),np.concatenate([torso_image,torso_alpha],axis=-1))

三、Train部分

本人python基础比较差因此很少在__init__.py里面做动作,但在这个项目里__init__.py包含了较多操作,这导致本人在运行时,默认执行地址会被改成

/home/xxx/miniconda3/envs/egstalker/lib/python3.9/site-packages/ikan

因此使用相对路径索引时,比如模型存储位置我写成model时,实际的绝对路径会变成

/home/xxx/miniconda3/envs/egstalker/lib/python3.9/site-packages/ikan/model

这导致了在运行过程中出现很多找不到文件的程序错误和找不到输出在哪的人类错误。解决方案如下:

#在train.py的main的最开始更改路径if__name__=="__main__":os.chdir(sys.path[0])

但还是会零星报一些找不到文件的错误,只需要在相应位置之前写入上述更改路径代码即可。
这里我觉得应该有一劳永逸的方法,但正如我最开始所说的,本人python基础不好,外加时间有限,干脆蠢蛋做法。

四、Inference with Custom Audio

Readme里面的示例代码给的是,如果按照示例跑的训练,iteration那里要删一个0

python render.py -s${YOUR_DATASET_DIR}/${DATASET_NAME}\--model_path${YOUR_MODEL_DIR}\--configs configs/egstalker_default.py\--iteration10000\# 训练的示例给的是1000,这里多一个零,如果是按训练跑的要删掉--batch16\--custom_aud<custom_aud>.npy\--custom_wav<custom_aud>.wav\--skip_train\--skip_test

另外就是render.py执行到这里会报一个索引越界的错误

ifname!='custom':model_name=model_path.split("/")[-2]iflen(model_path.split("/"))>=2else"/root/autodl-tmp/GaussianTalker/trained_model"print("model_path:", model_path)cmd=f'ffmpeg -loglevel quiet -y -i {gts_path}/gt.mp4 -i {inf_audio_dir} -c:v copy -c:a aac {gts_path}/{model_path.split("/")[-2]}_{name}_{iteration}iter_gt.mov'os.system(cmd)cmd=f'ffmpeg -loglevel quiet -y -i {render_path}/renders.mp4 -i {inf_audio_dir} -c:v copy -c:a aac {render_path}/{model_path.split("/")[-2]}_{name}_{iteration}iter_renders.mov'os.system(cmd)ifname!='custom':os.remove(f"{gts_path}/gt.mp4")os.remove(f"{render_path}/renders.mp4")

报错内容

Traceback(most recent call last): File"/home/xxx/xxx/EGSTalker-main/render.py", line231,in<module>render_sets(model.extract(args), hyperparam.extract(args), args.iteration, pipeline.extract(args), args)File"/home/xxx/xxx/EGSTalker-main/render.py", line163,inrender_sets render_set(dataset.model_path,"custom", scene.loaded_iter, scene.getCustomCameras(), gaussians, pipeline, audio_dir, batch_size)File"/home/xxx/xxx/EGSTalker-main/render.py", line134,inrender_set write_frames_to_video(tensor_to_image(image_tensor),render_path+'/renders', use_imageio=True)IndexError: list index out of range

这非常的玄学,盲猜是自己服务器的问题和项目无关,每次超出索引的代码位置还不一样,感觉像是程序执行过程中内存访址的问题,这里插个眼以后有空深研究一下。目前为了程序顺利执行,直接在这段之前return了,然后自行拼的音频。

http://www.jsqmd.com/news/89311/

相关文章:

  • 图文详述:MySQL的下载、安装、部署、使用
  • 第14章:项目沟通管理【章节重点】
  • C#+VisionMaster联合开发(六)_控制器
  • Pelco KBD300A 模拟器:05.校验算法终极对比 + 完整 100+ 指令封装 + KBD300A 所有隐藏功能函数化
  • AI 如何从配置历史与变更日志中推理出“变更引发的故障”——自动化根因分析的因果推理引擎
  • 题目集4~5以及课堂测验的总结性Blog
  • 234回文链表
  • 练题100天——DAY26:汇总区间+丢失的数字+数组交集
  • 2025动漫剧本推荐,无需成本轻松创作
  • 22、正则表达式全解析:从基础到高级应用
  • 推荐一种并发线程中资源同步常用方法
  • 24、文本处理工具的使用与技巧
  • C#+VisionMaster联合开发(七)_通讯管理
  • Flutter 2025:从架构革命到商业落地,全面解析跨平台开发的“黄金时代”
  • 狮子老虎图像识别分类基于YOLO11-FasterNet实现含Python源码_268期
  • 2025 年 12 月胰岛素泵厂家最新推荐,如意泵,贴敷式与便携式二合一,全年龄段贴敷泵胰岛素泵公司选择指南 - 品牌鉴赏师
  • Claude vs ChatGPT vs Gemini: 기능 비교, 사용 경험, 적합 인군
  • 20、文件搜索、压缩与归档操作指南
  • 当AI芯片不再性感:博通的高增长,为何成了催命符?
  • 21、数据存档、备份与正则表达式应用全解析
  • JoyAgent-JDGenie项目业务逻辑梳理
  • 图论入门:从存储结构到DFS/BFS遍历,零基础也能看懂的实战教程
  • ASUS路由器更新Merlin固件
  • 图论入门:从存储结构到DFS/BFS遍历,零基础也能看懂的实战教程 接上文
  • 当传统水塔遇上PLC自动化:博途仿真实战
  • 房地产公司组织结构图在线设计 项目开发团队层级
  • Vibe Coding:AI驱动的编程新范式
  • 直接开整!咱今天唠唠怎么用维纳过程预测设备寿命,手把手带代码那种。准备好你的Python环境,咱们从数据生成一路干到参数更新
  • WebRTC架构详解:实现浏览器实时通信的技术核心
  • 贾子智慧商业化——现代创业致胜完整框架 | Kucius Wisdom Commercialization— A Complete Framework for Modern Entrepreneure