EndoSfM3D: Learning to 3D Reconstruct Any Endoscopic Surgery Scene using Self-supervised Foundation Model

Changhao Zhang, Matthew J. Clarkson, Mobarak I. Hoque
10/25/2025
cs.CV

Official code: MOYF-beta/EndoSfM3D (7 stars, last commit 2026-01-30).

Abstract

3D reconstruction of endoscopic surgery scenes plays a vital role in enhancing scene perception, enabling AR visualization, and supporting context-aware decision-making in image-guided surgery. A critical yet challenging step in this process is the accurate estimation of the endoscope's intrinsic parameters. In real surgical settings, intrinsic calibration is hindered by sterility constraints and the use of specialized endoscopes with continuous zoom and telescope rotation. Most existing methods for endoscopic 3D reconstruction do not estimate intrinsic parameters, limiting their effectiveness for accurate and reliable reconstruction. In this paper, we integrate intrinsic parameter estimation into a self-supervised monocular depth estimation framework by adapting the Depth Anything V2 (DA2) model for joint depth, pose, and intrinsics prediction. We introduce an attention-based pose network and a Weight-Decomposed Low-Rank Adaptation (DoRA) strategy for efficient fine-tuning of DA2. Our method is validated on the SCARED and C3VD public datasets, demonstrating superior performance compared to recent state-of-the-art approaches in self-supervised monocular depth estimation and 3D reconstruction. Code and model weights can be found in project repository: https://github.com/MOYF-beta/EndoSfM3D.

View on arXivView PDF

Code Implementations(1)

implementation of paper EndoSfM3D: Learning to 3D Reconstruct Any Endoscopic Surgery Scene using Self-supervised Foundation Model

71PythonJul 3, 20258 months ago

Cite this paper

@article{zhang2025endosfmd,
  title  = {EndoSfM3D: Learning to 3D Reconstruct Any Endoscopic Surgery Scene using Self-supervised Foundation Model},
  author = {Changhao Zhang and Matthew J. Clarkson and Mobarak I. Hoque},
  year   = {2025},
  eprint = {2510.22359},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2510.22359v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2510.22359.svg)](https://codeofpaper.com/paper/2510.22359)

Discussion