基于stella-slam的三维重建部署

📅 2026/8/4 18:42:15
基于stella-slam的三维重建部署
基于stella-slam三维重建建议使用docker避开复杂的c依赖等问题。为了避免GitHub下载过程中容易断开等问题需要修改部分docker文件。修改后的记录如下# syntaxdocker/dockerfile:1ARGCUDA12.9.1 ARGUBUNTU24.04FROM nvidia/cuda:${CUDA}-devel-ubuntu${UBUNTU}AS base# install dependencies# ---- 第一层系统包apt 缓存可复用----RUNrm-f/etc/apt/apt.conf.d/docker-clean\echoBinary::apt::APT::Keep-Downloaded-Packages true;\/etc/apt/apt.conf.d/keep-cache\exportDEBIAN_FRONTENDnoninteractive\apt-getupdate--yes\apt-getupgrade--yes--no-install-recommends\apt-getinstall--yes--no-install-recommends\gitcurlcmake ninja-build clang pkg-config\libatlas-base-dev libsuitesparse-dev\binutils-dev libomp-dev libopencv-dev libeigen3-dev\libyaml-cpp-dev libsqlite3-dev\python3 python3-pip python3-opencv python3-msgpack\python3-numpy python3-scipy python3-dev pybind11-dev\rm-rf/var/lib/apt/lists/*# ---- 第二层Python 包单独一层加镜像源----ENVPIP_INDEX_URLhttps://pypi.tuna.tsinghua.edu.cn/simple ENVPIP_TRUSTED_HOSTpypi.tuna.tsinghua.edu.cn RUN pipinstall--no-cache-dir --break-system-packages\pybind11-stubgen numbaviser1.0.24# compile settingsENVCclangCXXclang ARGNUM_THREADS0WORKDIR /tmp# g2oARGG2O_VERSION20241228_git RUNgitconfig--globalurl.https://ghfast.top/https://github.com/.insteadOfhttps://github.com/\gitclone https://github.com/RainerKuemmerle/g2o.git--branch${G2O_VERSION}--depth1\cdg2o\cmake-Bbuild-GNinja\-DCMAKE_BUILD_TYPERelease\-DBUILD_SHARED_LIBSON\-DBUILD_UNITTESTSOFF\-DG2O_USE_CHOLMODOFF\-DG2O_USE_CSPARSEON\-DG2O_USE_OPENGLOFF\-DG2O_USE_OPENMPOFF\-DG2O_BUILD_APPSOFF\-DG2O_BUILD_EXAMPLESOFF\-DG2O_BUILD_LINKED_APPSOFF\\cmake--buildbuild--parallel$(test${NUM_THREADS}-eq0nproc||(printf ${NUM_THREADS}))\cmake--installbuild\rm-rf/tmp/g2o# backward-cppARGBACKWARD_CPP_COMMIT5ffb2c879ebdbea3bdb8477c671e32b1c984beaa RUNgitclone https://github.com/bombela/backward-cpp.git\cdbackward-cpp\gitcheckout${BACKWARD_CPP_COMMIT}\cmake-Bbuild-GNinja-DCMAKE_BUILD_TYPERelease\cmake--buildbuild--parallel$(test${NUM_THREADS}-eq0nproc||(printf ${NUM_THREADS}))\cmake--installbuild\rm-rf/tmp/backward-cpp FROM base AS build# stellaCOPY./stella RUNrm-rf/stella/tools /stella/example# 补全缺失的 submodulesCOPY./stella RUNrm-rf/stella/tools /stella/example# 补全所有缺失的 submodule用代理加速RUNexportGIT_TERMINAL_PROMPT0\gitconfig--globalurl.https://ghfast.top/https://github.com/.insteadOfhttps://github.com/\if[!-f/stella/3rd/FBoW/CMakeLists.txt];then\gitclone https://github.com/stella-cv/FBoW.git /stella/3rd/FBoW;\fi\if[!-f/stella/3rd/patch_match_dense/CMakeLists.txt];then\gitclone https://github.com/RoblabWh/patch_match_dense.git /stella/3rd/patch_match_dense;\fi\if[!-f/stella/3rd/tinycolormap/CMakeLists.txt][!-f/stella/3rd/tinycolormap/include/tinycolormap.hpp];then\gitclone https://github.com/yuki-koyama/tinycolormap.git /stella/3rd/tinycolormap;\fi\if[!-d/stella/3rd/spdlog/include/spdlog];then\gitclone https://github.com/gabime/spdlog.git /stella/3rd/spdlog;\fi\if[!-d/stella/3rd/json/include/nlohmann];then\gitclone https://github.com/nlohmann/json.git /stella/3rd/json;\fiRUNcd/stella\exportPYTHONPATH/stella/build/lib\cmake-Bbuild-GNinja-DCMAKE_BUILD_TYPERelease\cmake--buildbuild--parallel$(test${NUM_THREADS}-eq0nproc||(printf ${NUM_THREADS}))\cmake--installbuild\rm-rfbuild FROM base AS devel# install dev dependenciesRUNexportDEBIAN_FRONTENDnoninteractive\apt-getupdate--yes\apt-getinstall--yes--no-install-recommends\# dev toolsclang-tidy\clang-format\clangd\# cli toolssqlite3\# sudo setupsudo\echoubuntu ALL(ALL) NOPASSWD:ALL|install-m0440 /dev/stdin /etc/sudoers.d/ubuntu FROM nvidia/cuda:${CUDA}-runtime-ubuntu${UBUNTU}AS runtime# install runtime dependenciesRUNrm-f/etc/apt/apt.conf.d/docker-clean\echoBinary::apt::APT::Keep-Downloaded-Packages true;\/etc/apt/apt.conf.d/keep-cache\exportDEBIAN_FRONTENDnoninteractive\apt-getupdate--yes\apt-getupgrade--yes--no-install-recommends\apt-getinstall--yes--no-install-recommends\# shared librarieslibatlas3-base\libcxsparse4\libyaml-cpp0.8\libamd3\libcamd3\libcolamd3\libccolamd3\libomp5\# python packagespython3\python3-opencv\python3-msgpack\python3-numpy\python3-scipy# copy build artifactsCOPY--frombuild /usr/local/lib /usr/local/lib/ RUNrm-rf/usr/local/lib/cmake /usr/local/lib/pybind11* RUN ldconfig# setup runtime environmentCOPY tools /stella/tools COPY example /stella/example WORKDIR /stella/toolsUSERubuntu EXPOSE8080/tcp CMD[/bin/bash,-c,echo Available StellaVSLAM tools:; find . -maxdepth 1 -type f -executable -printf %p\\n | sort; exec /bin/bash]