{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":91498,"databundleVersionId":11655853,"sourceType":"competition"}],"dockerImageVersionId":30919,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!apt -y update && apt -y upgrade","metadata":{"trusted":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Dependencies\n\n```\n!dpkg -i --force-depends /kaggle/input/colmap-offline-installer/archives/*.deb >/dev/null 2>&1\n```","metadata":{}},{"cell_type":"code","source":"!apt -y install -d -o=dir::cache=/kaggle/working \\\n    autoconf \\\n    automake \\\n    build-essential \\\n    cmake \\\n    git \\\n    libatlas-base-dev \\\n    libboost-program-options-dev \\\n    libboost-graph-dev \\\n    libboost-system-dev \\\n    libceres-dev \\\n    libcgal-dev \\\n    libeigen3-dev \\\n    libffi-dev \\\n    libflann-dev \\\n    libfreeimage-dev \\\n    libgflags-dev \\\n    libglew-dev \\\n    libgoogle-glog-dev \\\n    libgtest-dev \\\n    libmetis-dev \\\n    libgmock-dev \\\n    libqt5opengl5-dev \\\n    libsqlite3-dev \\\n    libsuitesparse-dev \\\n    libtool \\\n    libx11-dev \\\n    libxext-dev \\\n    ninja-build \\\n    nvidia-cuda-toolkit \\\n    nvidia-cuda-toolkit-gcc \\\n    qtbase5-dev \\\n    x11proto-gl-dev","metadata":{"trusted":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Ceres solver\n\n```\ndef install_ceres_solver():\n    %cd /kaggle/working\n    !cp -r /kaggle/input/colmap-offline-installer/ceres-solver-2.2.0 /kaggle/working\n    !mkdir /kaggle/working/ceres-solver-2.2.0/build\n    %cd /kaggle/working/ceres-solver-2.2.0/build\n    !cmake ..\n    !make -j$(nproc)\n    !make install\n    \n    %cd /kaggle/working\n    !rm -r /kaggle/working/ceres-solver-2.2.0\n\n    print(\"ceres-solver-2.2.0 installed successfully\")\n```","metadata":{}},{"cell_type":"code","source":"%cd /kaggle/working\n!wget -O - http://ceres-solver.org/ceres-solver-2.2.0.tar.gz | tar zxvf - --no-same-owner","metadata":{"trusted":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# libglvnd\n\nhttps://github.com/NVIDIA/libglvnd\n\nhttps://github.com/colmap/colmap/issues/1271#issuecomment-931900582\n\n```\ndef install_libglvnd():\n    %cd /kaggle/working/\n    !cp -r /kaggle/input/colmap-offline-installer/libglvnd /kaggle/working\n    !chmod -R 777 /kaggle/working/libglvnd/\n    %cd /kaggle/working/libglvnd/\n    \n    !./autogen.sh\n    !./configure\n    !make -j$(nproc)\n    !make install\n\n    %cd /kaggle/working\n    !rm -r /kaggle/working/libglvnd\n\n    print(\"libglvnd installed successfully\")\n```","metadata":{}},{"cell_type":"code","source":"%cd /kaggle/working\n!git clone https://github.com/NVIDIA/libglvnd.git\n%cd /kaggle/working/libglvnd\n!git checkout 606f6627cf481ee6dcb32387edc010c502cdf38b","metadata":{"trusted":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# PoseLib\n\nhttps://github.com/PoseLib/PoseLib\n\n```\n    %cd /kaggle/working\n    !cp -r /kaggle/input/colmap-offline-installer/PoseLib /kaggle/working\n    !mkdir /kaggle/working/PoseLib/_build\n    %cd /kaggle/working/PoseLib/_build\n    \n    !cmake -DCMAKE_INSTALL_PREFIX=../_install ..\n    !make -j$(nproc) && make install\n```","metadata":{}},{"cell_type":"code","source":"%cd /kaggle/working\n!git clone --recursive https://github.com/PoseLib/PoseLib.git\n%cd /kaggle/working/PoseLib\n!git checkout 72906d14f9afc05d637277627364bfc61814c2af","metadata":{"trusted":true,"_kg_hide-output":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# COLMAP\n\n```\n    %cd /kaggle/working\n    !cp -r /kaggle/input/colmap-offline-installer/colmap /kaggle/working\n    !mkdir /kaggle/working/colmap/build\n    %cd /kaggle/working/colmap/build\n    \n    !cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES=75 -DDOWNLOAD_ENABLED=OFF -DFETCH_POSELIB=OFF -DPoseLib_DIR=/kaggle/working/PoseLib/_install/lib/cmake/PoseLib\n    !ninja\n    !ninja install\n```","metadata":{}},{"cell_type":"code","source":"%cd /kaggle/working\n!git clone https://github.com/tsattler/colmap.git\n%cd /kaggle/working/colmap/\n!git checkout 602e1eaadb148872000a85c09e3c34c2cb75c308","metadata":{"trusted":true,"_kg_hide-output":true},"outputs":[],"execution_count":null}]}