news 2026/4/15 20:32:06

EGSTalker踩坑日记第一弹

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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了,然后自行拼的音频。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:46:57

房地产公司组织结构图在线设计 项目开发团队层级

良功绘图网站 (https://www.lghuitu.com ) 在房地产行业高速发展与市场竞争日益激烈的当下&#xff0c;企业的运营效率、协同能力与决策速度成为核心竞争力的关键要素。房地产项目开发具有周期长、涉及环节多、跨部门协作频繁、资源投入巨大等特点&#xff0c;从土地获取、规划…

作者头像 李华
网站建设 2026/4/16 12:17:57

Spring框架架构详解:从设计理念到企业级应用

1 Spring框架简介Spring框架是一个开源的Java平台&#xff0c;旨在简化企业级应用程序开发。由Rod Johnson于2003年创建&#xff0c;Spring的初衷是为了解决当时Java EE开发中的复杂性问题&#xff0c;特别是EJB&#xff08;Enterprise JavaBeans&#xff09;架构的臃肿和配置繁…

作者头像 李华
网站建设 2026/4/8 13:01:42

AI 质检系统全面替代人工:缺陷率下降 68%,精度远超肉眼

一、引言&#xff1a;传统质检的困局与 AI 破局的必然性2025 年&#xff0c;我国制造业质量竞争力指数已提升至 89.3&#xff0c;接近发达国家水平&#xff0c;这一突破的核心驱动力之一便是 AI 质检技术的规模化应用。长期以来&#xff0c;人工质检始终是制约制造企业提质增效…

作者头像 李华
网站建设 2026/4/15 15:15:30

AI核心知识54——大语言模型之Structured CoT(简洁且通俗易懂版)

结构化提示词 (Structured Prompting) 是将 提示工程 (Prompt Engineering) 从“玄学”变成“工程学”的关键一步。简单来说&#xff0c;结构化提示词就是把你的自然语言&#xff08;人话&#xff09;&#xff0c;按照一定的逻辑框架&#xff0c;组织成类似“代码”或“表单”的…

作者头像 李华
网站建设 2026/4/11 11:38:28

Spring Cloud

一、先搞懂&#xff1a;为什么需要 Spring Cloud&#xff1f;&#xff08;微服务痛点&#xff09;单体应用&#xff08;一个项目包含所有功能&#xff09;的问题&#xff1a;代码臃肿、开发协作难、升级风险高、并发瓶颈明显。微服务就是把单体应用拆成多个独立服务&#xff08…

作者头像 李华