透過 WSL2 在 Windows 執行 WebODM
前言
近期接獲友人求救使用航拍影像建立 3D 模型相關事宜,搜尋之後發現 WebODM 這套工具可以導入航拍影像,並產製為正射影像、點雲、高程檔及 3D 模型等:
在官網可以看到安裝 WebODM 有兩種途徑
- 付費途徑:購買官方網站提供的 WebODM Installer
- 免費途徑:手動安裝
這篇文章將記錄手動在 Windows 11 作業系統安裝 WSL2、Docker Engine、下載 WebODM、執行與關閉 WebODM 的詳細過程。
您可以透過目錄快速前往各步驟。
步驟一:啟動 Windows 子系統 Linux 版並安裝發行版
滑鼠右鍵點擊工具列上的「Windows 圖標」,再點擊「終端機」。
輸入以下指令,Windows 會自動開始安裝 WSL2 及預設的 Ubuntu 發行版。
若彈出視窗詢問「您是否要允許此 App 變更您的裝置?」,請點擊「是」。
wsl --install
關於發行版
wsl --install
指令預設會安裝 Ubuntu,
若想改用其他發行版,需輸入wsl --install -d <發行版名稱>
。
等待終端機顯示安裝成功:
若終端機要求您重新開機,請按照指示操作:
重新啟動後稍待片刻,終端機應會自動跳出視窗,並繼續完成安裝程序。
當出現「Enter new UNIX username」時,請隨意設定使用者名稱,不必與 Windows 使用者名稱相符:
接著設定密碼(請務必牢記密碼):
執行完上述步驟後,代表您已完成 WSL2 環境設定:
步驟二:安裝 Docker Engine
新增 Docker 的官方 GPG 金鑰:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
新增 Docker 套件庫至 Apt 來源清單:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
執行指令後您會被要求輸入密碼(您在步驟一設定的密碼):
安裝 Docker 及相關套件:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
輸入 Y 確認安裝:
測試安裝是否成功:
sudo docker run hello-world
將自己加入 docker 使用者群組,如此一來以後執行 docker 相關指令,就不必在指令前方加上 sudo:
sudo usermod -aG docker $USER
newgrp docker
實際測試不加 sudo 執行 docker 指令:
docker run hello-world
步驟三(非必要):安裝 NVIDIA Container Toolkit
WebODM 支援 GPU 加速,若您的電腦有配備 NVIDIA 顯示卡,執行此步驟有助於提升執行效率。
首先新增 NVIDIA Container Toolkit 的 GPG 金鑰,並新增套件庫至 Apt 來源清單:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
安裝 NVIDIA Container Toolkit:
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
設定 Docker Runtime:
sudo nvidia-ctk runtime configure --runtime=docker
重新啟動 Docker 服務:
sudo systemctl restart docker
執行範例負載,測試 NVIDIA Container Toolkit 是否安裝成功:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
若有成功安裝,您會看到類似下方螢幕截圖的畫面,輸出顯示卡相關資訊:
步驟四:下載 WebODM 至本機儲存空間
安裝 Git(通常已預先安裝):
sudo apt install git
輸入以下指令,將 WebODM 下載至本機儲存空間:
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input --depth 1
下載完成後,切換工作目錄至 WebODM:
cd WebODM
步驟五:啟動並初始化 WebODM
請確保您目前的工作目錄為 WebODM,若不是,請先在終端機輸入「cd WebODM/
」進行切換。
輸入指令以啟動 WebODM:
./webdom.sh start --gpu
注意
若您沒有安裝 NVIDIA Container Toolkit,請刪除 --gpu 參數,否則 WebODM 將無法正常啟動。
啟動腳本會自動開始下載相關容器,請稍待片刻:
完成後會顯示「 Congratulations! └@(・◡・)@┐」,如下圖所示:
請開啟瀏覽器並造訪「http://localhost:8000/」,即可顯示 WebODM 初始頁面:
設定帳號與密碼後,點擊「Create Account」,就可以開始使用 WebODM 了:
WebODM 基本操作
匯入影像並製作模型
在步驟五建立完帳號密碼後,就可以開始建立模型了。
在 WebODM 首頁會看到畫面中有已經預先建立好的專案「First Project」,請點擊右方的「選擇影像和GCP」:
此時會跳出視窗,選取所有您需要使用的航拍影像,並點擊「開啟」:
開啟影像後,WebODM 會自動分析定位資訊並呈現在地圖上。您可以依照任務需求調整各選項,接著按「再檢視」、「開始處理」:
WebODM 會上傳您的航拍影像並開始處理:
WebODM 是在您電腦上的 WSL2 環境中執行,此處的「上傳」您可以理解為將已選擇的航拍影像「複製」一份到 WSL2 中,實際上不會被上傳到任何網際網路上的第三方伺服器。
處理時間受檔案多寡、選項設定而有所不同。執行時可以開啟「任務輸出」檢視進度:
處理完成後,可直接在瀏覽器內預覽 3D 模型:
建議將「材質貼附模型」選項內的「顯示模型」勾選,並將「Appearance」內的「Splat Quality」調整為 High Quality,會有比較好的預覽效果:
也可以下載處理好的模型,匯入到其他軟體進行後續編輯及利用:
正確地關閉 WebODM
若任務結束您想關閉 WebODM,請使用下列方法:
- 方法一:在終端機視窗輸入
Ctrl + C
,Docker 會關閉 WebODM 的各項元件,請稍待進度完成。 - 方法二:在終端機視窗輸入以下指令:
./webodm.sh down
當所有容器皆顯示「Stopped」或「Removed」代表已關閉完成。
再次執行 WebODM
只需在終端機輸入步驟五的啟動指令即可再次啟動 WebODM。
請確保您的執行環境為 WSL2 的 Ubuntu,而非 Windows PowerShell,且工作目錄為 ~/WebODM/
。
參考文件
-
如何透過 WSL 在 Windows 安裝 Linux
How to install Linux on Windows with WSL
https://learn.microsoft.com/en-us/windows/wsl/install -
在 Ubuntu 安裝 Docker Engine
Install Docker Engine on Ubuntu
https://docs.docker.com/engine/install/ubuntu/ -
在 Linux 安裝完 Docker Engine 的後續設定步驟
Linux post-installation steps for Docker Engine
https://docs.docker.com/engine/install/linux-postinstall/ -
WebODM:使用者友善、商用等級的航拍影像處理軟體
GitHub - OpenDroneMap/WebODM: User-friendly, commercial-grade software for processing aerial imagery. 🛩
https://github.com/OpenDroneMap/WebODM?tab=readme-ov-file -
安裝 NVIDIA Container Toolkit
Installing the NVIDIA Container Toolkit
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
- ← 上一篇文章
特富野古道手作步道工作假期紀錄