目錄
一.【3DGS環境配置】
1.1 克隆3DGS倉庫
1.2 安裝Visual Studio 2022
1.2.1 下載Visual Studio 2022
1.2.2 更改環境變量?
1.3 創建環境
1.3.1 創建python環境?
1.3.2 離線安裝torch包
1.3.3 安裝依賴包
1.3.4安裝子模塊
(1)報錯解決(vs2022降級到vs2019)
(2)再次安裝子模塊
二、【初步訓練&可視化測試】
2.1 官方數據集訓練與可視化
2.2 報錯解決(顯卡驅動升級至12.7)
2.2.1 錯誤嘗試?
2.2.2 正確操作
2.3 可視化測試
三、【訓練自己的數據集】
3.1 下載Colmap
3.2 下載Ffmpge
3.3 數據集制作
3.3.1 拍攝一段視頻
3.3.2?視頻轉連續圖片
3.3.3 連續圖片轉點云
3.4 訓練數據集
3.5 可視化三維重建效果
四、【更多信息】
4.1?自己的數據集全場景
4.2 最終三維重建效果視頻
4.3 參考鏈接
最終效果:
基于3D_Gaussian_splatting的“小王”三維場景重建
------------------------全文6614字88圖一步一步完成大約耗時5h------------------------
所需軟件以及環境:?
顯卡:NVIDA RTX 3050
Nvidia顯卡驅動:566.36
CUDA version:12.7
運行CUDA11.7&pytorch2.0.0
一.【3DGS環境配置】
1.1 克隆3DGS倉庫
【指令】git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
輸入指令克隆倉庫
克隆到本地文件夾里哦~
可以看到在本地文件目錄是這樣的
1.2 安裝Visual Studio 2022
后面會遇到關于vs2022的報錯哦, 這里裝2022會與cuda11.7版本不適配哈,需要降級到vs2019,請參考1.3.4安裝子模塊報錯解決章節
1.2.1 下載Visual Studio 2022
https://visualstudio.microsoft.com/zh-hans/vs/
去到官網下載Visual Studio,然后安裝
選擇使用C++的桌面開發:
然后更改安裝路徑:
指定一下安裝路徑:
然后點擊右下角安裝
耐心等待即可,大概5min
完成~
1.2.2 更改環境變量?
然后需要更改一下Path路徑
在自己電腦目錄下找到cl.exe文件:
【我的路徑】E:\Akaxi_Microsoft_Visual_Studio_build_tools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
然后打開【系統屬性-高級-環境變量】
在環境變量中找到【系統變量】-【Path】點擊它,然后點【新建】
將剛剛在目錄下找到的cl.exe路徑,如:
E:\Akaxi_Microsoft_Visual_Studio_build_tools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
添加到系統變量Path路徑里面即可
然后新建終端,輸入命令【cl】測試是否有以上輸出,有的話說明配置成功嚕
1.3 創建環境
1.3.1 創建python環境?
在文件目錄的environment.yml中可以看到對環境的要求,這里要求cuda11.6(我用的是cuda11.7),python至少3.8(我的是python3.8),然后pytorch至少是1.12.1 (我的是pytorch2.0.0),滿足要求哦
查看自己用的cuda版本,輸入指令
【指令】ncvv --version
?(出現cuda11.7即可)
然后開始創建一個python3.8.20的環境,我們使用的是anaconda工具對環境進行創建,關于anaconda的安裝和使用參考Windows下的Anaconda詳細安裝教程_windows安裝anaconda-CSDN博客
使用conda指令創建環境:?
【指令】conda create -n 3dgs python=3.8.20
激活環境,看到里面有python3.8.20啦
【指令】conda activate 3dgs
【指令】conda list
繼續下載:
【命令】conda install -c conda-forge vs2022_win-64
完成后可以看到:
1.3.2 離線安裝torch包
因為環境是CUDA11.7,那我們pytorch選擇2.0.0版本
我們最重要的是安裝這個:pytorch-2.0.0-py3.8_cuda11.7_cudnn8_0.tar.bz2
去清華鏡像網站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
找到【pytorch-2.0.0-py3.8_cuda11.7_cudnn8_0.tar.bz2】,點擊下載到本地離線安裝
【指令】pip install "E:\AAA_download\torch-2.0.0+cu117-cp38-cp38-win_amd64.whl"
注意這里的指令install后面需要接上你剛剛自己下載torch包的安裝路徑哦
成功
然后再裝一些依賴:
【指令】pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117
成功啦:
1.3.3 安裝依賴包
可以看到我們需要安裝一些依賴包:
裝一下plyfile
【指令】pip install plyfile
然后裝一下tqdm
【指令】pip install tqdm
同理裝一下opencv-python和joblib
【指令】pip install opencv-python
【指令】pip install joblib
當前conda環境如下
1.3.4安裝子模塊
進入目錄繼續下載子目錄下的內容
【指令】pip install submodules/diff-gaussian-rasterization
(1)報錯解決(vs2022降級到vs2019)
報錯遇到
原因:?
可能是vs2022的問題,vs2022與我的cuda11.7沖突,降低一下版本
卸載vs2022,準備安裝vs2019
注意:官網已經不再提供vs2019的版本啦,需要自己去找vs2019的下載包哦
下載完成后重復1.2.1和1.2.2的步驟
同理需要設置環境變量,找到cl.exe文件的路徑哦:
降級成功~
(2)再次安裝子模塊
降級后再次嘗試:
【指令】pip install submodules/diff-gaussian-rasterization
~~~~~~~~~成功啦~~~~~~~~~
原因總結,cuda11.7和vs2019適配,故前面裝的2022不行哈
同理下載其他兩個子模塊:
【指令】pip install submodules/simple-knn
【指令】pip install submodules/fused-ssin
最終環境是這樣的:
環境配置成功啦~~~~~~~~~~~~~~~~
二、【初步訓練&可視化測試】
2.1 官方數據集訓練與可視化
去到github官網下載 T&T+DB COLMAP (650MB) 4個場景的圖片:
【github官網】https://github.com/graphdeco-inria/gaussian-splatting
補充:
這一排的鏈接分別是:
T&T+DB COLMAP (650MB) :包含了4個場景的圖片,并已經通過convert.py進行colmap轉換。可以直接用來做train.py訓練測試。Pre-trained Models (14 GB):論文中提到的各種場景的預訓練模型。可以通過viewer查看效果
Viewers for Windows (60MB):作者已經編譯好的SIBR點云查看工具,不需要按照教程再編譯。
Evaluation Images (7 GB) :這是項目訓練過程中,同一批數據在不同的算法之下訓練出來的場景數據對比圖片。
colmap下載(如需使用自己的圖片訓練):可以從照片集合中進行三維重建,可以識別運動結構 (Structure-from-Motion, SfM)、也可以進行多視圖立體 (Multi-View Stereo, MVS)構建。
ImageMagick下載(如需針對自己的圖片進行裁剪)
下載T&T+DB COLMAP (650MB),下載完成后輸入指令(注意自己的路徑):
【命令】
python train.py -s E:\AAA_3D_Gaussian-splatting\gaussian-splatting\my_download_data\tandt_db\db\playroom --iterations 6000
報錯了,應該是cuda內存不足
這里在指令后面加上【--resolution 2】讓分辨率減少一半試一試,指令:
【指令】
python train.py -s E:\AAA_3D_Gaussian-splatting\gaussian-splatting\my_download_data\tandt_db\db\playroom --iterations 6000 --resolution 2
然后這邊在訓練的過程中,新建一個終端,在目錄下E:\AAA_3D_Gaussian-splatting\gaussian-splatting\viewers\bin執行命令進行可視化
【命令】.\SIBR_remoteGaussian_app.exe
可以看到:
【期間又是因為內存不足導致提前中斷】
試一試再低一點:
【指令】
python train.py -s E:\AAA_3D_Gaussian-splatting\gaussian-splatting\my_download_data\tandt_db\db\playroom --iterations 6000 --resolution 4 --percent_dense 0.3
含義
--resolution 4 降低分辨率
--percent_dense 0.3 控制點云密度為 30%
【訓練完成】
2.2 報錯解決(顯卡驅動升級至12.7)
2.2.1 錯誤嘗試?
~~~~~~~~~~~以下皆是錯誤嘗試哈~~~~~~~~~~~
但是又遇到報錯,找不到cudart64_12.dll:?
好像是conda里面的cudatoolkit沒有裝(不是,是CUDA驅動和版本的問題應該是)
【命令】conda search cudatoolkit --info
找到對應版本的cudatoolkit并且找到url,點擊手動下載(不使用命令的原因是因為網速太慢了)
下載完成后手動安裝:
【命令】conda install --use-local E:\AAA_download\cudatoolkit-11.8.0-hd77b12b_0.conda
成功,但是還是沒有用,這里手動將cudart64_12.dll放在目錄下的話可以運行,但是會報兼容問題的錯誤
在網站可以找到cudart64_12.dll下載文件
網址:https://www.dllme.com/dll/files/cudart64_12
后面還是運行沖突了
2.2.2 正確操作
更新了Nvidia顯卡驅動至版本566.36,且cuda version更新至12.7:
【并且將CUDART64_12.DLL文件復制到gaussian-splatting\viewers\bin目錄下】
CUDART64_12.DLL文件下載網址:https://www.dllme.com/dll/files/cudart64_12
2.3 可視化測試
再次運行可視化成功:
【指令】.\SIBR_gaussianViewer_app -m E:\AAA_3D_Gaussian-splatting\gaussian-splatting\output\e4ad78d4-b
【結論】cuda version>=12.X;cuda-toolkit11.7; torch2.0.0+cu117;可行
三、【訓練自己的數據集】
3.1 下載Colmap
Colmap:三維重建查看器?
【github網址】https://github.com/colmap/colmap/releases/tag/3.8
下載到文件夾下(新建一個tools文件夾)
然后將文件路徑添加到環境變量
然后新建終端輸入【命令】COLMAP即可打開軟件
3.2 下載Ffmpeg
Ffmpeg:視頻->連續圖片工具
【官網】https://www.gyan.dev/ffmpeg/builds/
下載后解壓到tools文件夾下
同樣把bin目錄添加到Path環境變量中
輸入【ffmpeg –version】
安裝成功~
3.3 數據集制作
3.3.1 拍攝一段視頻
用手機圍繞自己喜歡的物體拍攝一段視頻吧,作為自己的數據集~
3.3.2?視頻轉連續圖片
輸入指令開始將拍到的視頻轉圖片:
【指令】ffmpeg -i my_create_data/cake.mp4 my_create_input/input_%04d.png
?根據視頻拍攝時長大小轉換時間也會不同,我大概花了20min,視頻轉連續圖片幀完成
在my_create_input文件中可以看到,這是我制作的一個蛋糕數據集
注意:這里目錄結構要一致,不能取別名
3.3.3 連續圖片轉點云
連續圖片幀轉點云(耗時,大約2h左右)
【命令】python convert.py -s data
點云轉換成功,準備開始訓練
3.4 訓練數據集
在PS E:\AAA_3D_Gaussian-splatting\gaussian-splatting>目錄下開始訓練
【指令】python train.py -s data -m data/output --resolution 2
?訓練時間1.5h左右
3.5 可視化三維重建效果
迭代7000次,效果已經很不錯了,進行可視化:
四、【更多信息】
4.1?自己的數據集全場景
視頻轉圖片幀
【指令】ffmpeg -i my_data/input_1.mp4 my_data/input/input_%04d.png
一共生成1264張圖片
然后圖片轉點云:
【指令】python convert.py -s my_data
特征點匹配(這一步很耗時)這里就是要進行26x26=676次
使用COLMAP查看:
訓練后可視化:
效果蠻好,成功撒花~~~~~~~~~~~~~
4.2 最終三維重建效果視頻
基于3D
4.3 參考鏈接
?【github官網】https://github.com/graphdeco-inria/gaussian-splatting
【Youtube教程】https://www.youtube.com/watch?v=UXtuigy_wYc
【github教程】https://github.com/jonstephens85/gaussian-splatting-Windows
【csdn博客】https://blog.csdn.net/weixin_48400654/article/details/139456202?spm=1001.2014.3001.5506
----------------------------------------------------------------------------------------------------
相信讀到這里的朋友,一定是堅持且優秀的
給博主一個免費的贊👍吧
掃描二維碼進博主交流群,問題交流 | 吹吹水 | 一起變得更加優秀
2025.3.16
兩江重大卓工院