沈阳装修公司网站建设,三亚网站制,重庆建网站推广公司,自己做外贸 建一个网站本文只针对25.4.30版本的EGSTalker仓库
一、环境配置
因为一直习惯于把项目zip拉下来上传服务器所以遇到了第一个问题#xff0c;在服务器上没有办法执行这条指令#xff08;本地执行了也没效果不知道为啥#xff09;
git submodule update --init --recursive解决方法…本文只针对25.4.30版本的EGSTalker仓库一、环境配置因为一直习惯于把项目zip拉下来上传服务器所以遇到了第一个问题在服务器上没有办法执行这条指令本地执行了也没效果不知道为啥gitsubmodule update --init --recursive解决方法#在github上找到.gitmodules文件自行下载到指定位置就可以了[submodulesubmodules/custom-bg-depth-diff-gaussian-rasterization]pathsubmodules/custom-bg-depth-diff-gaussian-rasterization urlhttps://github.com/joungbinlee/custom-bg-depth-diff-gaussian-rasterization.git[submodulesubmodules/simple-knn]pathsubmodules/simple-knn urlhttps://github.com/camenduru/simple-knn.git下载后执行即可pipinstall-e submodules/custom-gaussian-rasterization pipinstall-e submodules/simple-knn二、数据预处理原本的数据处理代码process.py的第六部分ifopt.task-1 or opt.task6: extract_torso_and_gt(base_dir, ori_imgs_dir)在保存之前缺少了文件夹创建步骤而且这里不会报错#创建文件夹folder_pathos.path.dirname(image_path.replace(ori_imgs,torso_imgs).replace(.jpg,.png))os.makedirs(folder_path,exist_okTrue)#在这段代码之前增加上述代码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 AudioReadme里面的示例代码给的是如果按照示例跑的训练iteration那里要删一个0python render.py -s${YOUR_DATASET_DIR}/${DATASET_NAME}\--model_path${YOUR_MODEL_DIR}\--configs configs/egstalker_default.py\--iteration10000\# 训练的示例给的是1000这里多一个零如果是按训练跑的要删掉--batch16\--custom_audcustom_aud.npy\--custom_wavcustom_aud.wav\--skip_train\--skip_test另外就是render.py执行到这里会报一个索引越界的错误ifname!custom:model_namemodel_path.split(/)[-2]iflen(model_path.split(/))2else/root/autodl-tmp/GaussianTalker/trained_modelprint(model_path:, model_path)cmdfffmpeg -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.movos.system(cmd)cmdfffmpeg -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.movos.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,inmodulerender_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_imageioTrue)IndexError: list index out of range这非常的玄学盲猜是自己服务器的问题和项目无关每次超出索引的代码位置还不一样感觉像是程序执行过程中内存访址的问题这里插个眼以后有空深研究一下。目前为了程序顺利执行直接在这段之前return了然后自行拼的音频。