WSL2 Docker Open3D - eiichiromomma/CVMLAB GitHub Wiki

(WSL2) DockerでOpen3D

Docker Hubに公式イメージは無い。ただし、dockerのレシピはgithubに配布されているのでそれを使う手段もあるがWSL2+WSLgだとGLXのバージョン問題で強引に動かしても何も表示されない。

rootでシステムのpipを弄るのは推奨されていないので一応仮想環境を作ってからインストールしている。Numpyについては依存関係でまだ不安定な筈のver.2がインストールされる(2024/6)のでバージョンを下げている。

Open3D GPU (手作業)

docker run -it --rm --gpus all \
    --mount type=bind,source=/tmp/.X11-unix,target=/tmp/.X11-unix \
    --mount type=bind,source=/mnt/wslg,target=/mnt/wslg \
    --env DISPLAY=${DISPLAY} --env WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \
    --env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \
    ubuntu:22.04

で、起動したら

mkdir ~/.ssh
echo "Host *" >> ~/.ssh/config
echo "  IPQoS=0x00" >> ~/.ssh/config
apt update; apt install -y mesa-utils git python3-pip python3-venv
cd
git clone https://github.com/isl-org/Open3D.git
cd Open3D
python3 -m venv ENV
source ENV/bin/activate
python3 -m pip install -U pip
python3 -m pip install open3d
python3 -m pip install "numpy<2"
python3 examples/python/visualization/draw.py

でウィンドウが開くデモになる

Open3D 非GPU (手作業)

dockerの起動オプションとopen3d-cpuを指定するところだけ違う

docker run -it --rm \
    --mount type=bind,source=/tmp/.X11-unix,target=/tmp/.X11-unix \
    --mount type=bind,source=/mnt/wslg,target=/mnt/wslg \
    --env DISPLAY=${DISPLAY} --env WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \
    --env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \
    ubuntu:22.04

で、起動したら

mkdir ~/.ssh
echo "Host *" >> ~/.ssh/config
echo "  IPQoS=0x00" >> ~/.ssh/config
apt update; apt install -y mesa-utils git python3-pip python3-venv
cd
git clone https://github.com/isl-org/Open3D.git
cd Open3D
python3 -m venv ENV
source ENV/bin/activate
python3 -m pip install -U pip
python3 -m pip install open3d-cpu
python3 -m pip install "numpy<2"
python3 examples/python/visualization/draw.py

でウィンドウが開くデモになる