[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-autonomousvision--monosdf":3,"tool-autonomousvision--monosdf":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":76,"languages":77,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":102,"env_os":103,"env_gpu":104,"env_ram":105,"env_deps":106,"category_tags":115,"github_topics":117,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":125,"updated_at":126,"faqs":127,"releases":161},8998,"autonomousvision\u002Fmonosdf","monosdf","[NeurIPS'22] MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction","MonoSDF 是一款专注于神经隐式表面重建的开源算法，曾发表于 NeurIPS 2022。它主要解决传统方法在仅凭多视角图像进行三维重建时，因缺乏几何约束而导致细节模糊或结构不准确的问题。\n\n其核心亮点在于创新性地引入了单目几何线索，将从单张图像中提取的高精度深度图和法线图作为补充信息，与传统的重建信号相结合。这种融合策略显著提升了模型对物体表面几何结构的理解能力，从而生成更精细、更完整的三维模型。目前，MonoSDF 已集成至 SDFStudio 框架中，支持 UniSurf 和 NeuS 等多种主流架构。\n\n这款工具非常适合计算机视觉领域的研究人员、三维重建算法开发者以及需要高质量几何建模的工程师使用。虽然它提供了完整的训练代码和数据集脚本，但需要用户具备一定的深度学习基础，能够配置 PyTorch 环境并操作命令行进行模型训练。对于希望探索单目提示如何增强神经渲染效果，或需要在 DTU、ScanNet、Replica 等数据集上复现前沿成果的学术与工业界用户来说，MonoSDF 是一个极具价值的参考实现。","\u003Cp align=\"center\">\n\n  \u003Ch1 align=\"center\">MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction\u003C\u002Fh1>\n  \u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fniujinshuchong.github.io\u002F\">Zehao Yu\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fpengsongyou.github.io\u002F\">Songyou Peng\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fm-niemeyer.github.io\u002F\">Michael Niemeyer\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Ftsattler.github.io\u002F\">Torsten Sattler\u003C\u002Fa>\n    ·\n    \u003Ca href=\"http:\u002F\u002Fwww.cvlibs.net\u002F\">Andreas Geiger\u003C\u002Fa>\n\n  \u003C\u002Fp>\n  \u003Ch2 align=\"center\">NeurIPS 2022\u003C\u002Fh2>\n  \u003Ch3 align=\"center\">\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.00665\">Paper\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fniujinshuchong.github.io\u002Fmonosdf\u002F\">Project Page\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fautonomousvision.github.io\u002Fsdfstudio\u002F\">SDFStudio\u003C\u002Fa> \u003C\u002Fh3>\n  \u003Cdiv align=\"center\">\u003C\u002Fdiv>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fautonomousvision_monosdf_readme_74772792aca6.gif\" alt=\"Logo\" width=\"95%\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nWe demonstrate that state-of-the-art depth and normal cues extracted from monocular images are complementary to reconstruction cues and hence significantly improve the performance of implicit surface reconstruction methods. \n\u003C\u002Fp>\n\u003Cbr>\n\n# Update\nMonoSDF is integrated to [SDFStudio](https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fsdfstudio), where monocular depth and normal cues can be applied to [UniSurf](https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Funisurf\u002Ftree\u002Fmain\u002Fmodel) and [NeuS](https:\u002F\u002Fgithub.com\u002FTotoro97\u002FNeuS\u002Ftree\u002Fmain\u002Fmodels). Please check it out.\n\n# Setup\n\n## Installation\nClone the repository and create an anaconda environment called monosdf using\n```\ngit clone git@github.com:autonomousvision\u002Fmonosdf.git\ncd monosdf\n\nconda create -y -n monosdf python=3.8\nconda activate monosdf\n\nconda install pytorch torchvision cudatoolkit=11.3 -c pytorch\nconda install cudatoolkit-dev=11.3 -c conda-forge\n\npip install -r requirements.txt\n```\nThe hash encoder will be compiled on the fly when running the code.\n\n## Dataset\nFor downloading the preprocessed data, run the following script. The data for the DTU, Replica, Tanks and Temples is adapted from [VolSDF](https:\u002F\u002Fgithub.com\u002Flioryariv\u002Fvolsdf), [Nice-SLAM](https:\u002F\u002Fgithub.com\u002Fcvg\u002Fnice-slam), and [Vis-MVSNet](https:\u002F\u002Fgithub.com\u002Fjzhangbs\u002FVis-MVSNet), respectively.\n```\nbash scripts\u002Fdownload_dataset.sh\n```\n# Training\n\nRun the following command to train monosdf:\n```\ncd .\u002Fcode\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf CONFIG  --scan_id SCAN_ID\n```\nwhere CONFIG is the config file in `code\u002Fconfs`, and SCAN_ID is the id of the scene to reconstruct.\n\nWe provide example commands for training DTU, ScanNet, and Replica dataset as follows:\n```\n# DTU scan65\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fdtu_mlp_3views.conf  --scan_id 65\n\n# ScanNet scan 1 (scene_0050_00)\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fscannet_mlp.conf  --scan_id 1\n\n# Replica scan 1 (room0)\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Freplica_mlp.conf  --scan_id 1\n```\n\nWe created individual config file on Tanks and Temples dataset so you don't need to set the scan_id. Run training on the courtroom scene as:\n```\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Ftnt_mlp_1.conf\n```\n\nWe also generated high resolution monocular cues on the courtroom scene and it's better to train with more gpus. First download the dataset\n```\nbash scripts\u002Fdownload_highres_TNT.sh\n```\n\nThen run training with 8 gpus:\n```\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8 python -m torch.distributed.launch --nproc_per_node 8 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Ftnt_highres_grids_courtroom.conf\n```\nOf course, you can also train on all other scenes with multi-gpus.\n\n# Evaluations\n\n## DTU\nFirst, download the ground truth DTU point clouds:\n```\nbash scripts\u002Fdownload_dtu_ground_truth.sh\n```\nthen you can evaluate the quality of extracted meshes (take scan 65 for example):\n```\npython evaluate_single_scene.py --input_mesh scan65_mesh.ply --scan_id 65 --output_dir dtu_scan65\n```\n\nWe also provide script for evaluating all DTU scenes:\n```\npython evaluate.py\n```\nEvaluation results will be saved to ```evaluation\u002FDTU.csv``` by default, please check the script for more details.\n\n## Replica\nEvaluate on one scene (take scan 1 room0 for example)\n```\ncd replica_eval\npython evaluate_single_scene.py --input_mesh replica_scan1_mesh.ply --scan_id 1 --output_dir replica_scan1\n```\n\nWe also provided script for evaluating all Replica scenes:\n```\ncd replica_eval\npython evaluate.py\n```\nplease check the script for more details.\n\n## ScanNet\n```\ncd scannet_eval\npython evaluate.py\n```\nplease check the script for more details.\n\n## Tanks and Temples\nYou need to submit the reconstruction results to the [official evaluation server](https:\u002F\u002Fwww.tanksandtemples.org), please follow their guidance. We also provide an example of our submission [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Cr-UVTaAgDk52qhVd880Dd8uF74CzpcB\u002Fview?usp=sharing) for reference.\n\n# Custom dataset\nWe provide an example of how to train monosdf on custom data (Apartment scene from nice-slam). First, download the dataset and run the script to subsample training images, normalize camera poses, and etc.\n```\nbash scripts\u002Fdownload_apartment.sh \ncd preprocess\npython nice_slam_apartment_to_monosdf.py\n```\n\nThen, we can extract monocular depths and normals (please install [omnidata model](https:\u002F\u002Fgithub.com\u002FEPFL-VILAB\u002Fomnidata) before running the command):\n```\npython extract_monocular_cues.py --task depth --img_path ..\u002Fdata\u002FApartment\u002Fscan1\u002Fimage --output_path ..\u002Fdata\u002FApartment\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\npython extract_monocular_cues.py --task normal --img_path ..\u002Fdata\u002FApartment\u002Fscan1\u002Fimage --output_path ..\u002Fdata\u002FApartment\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\n```\n\nFinally, we train monosdf as\n```\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fnice_slam_grids.conf\n```\n\n# Pretrained Models\nFirst download the pretrained models with\n```\nbash scripts\u002Fdownload_pretrained.sh\n```\nThen you can run inference with (DTU for example)\n```\ncd code\npython evaluation\u002Feval.py --conf confs\u002Fdtu_mlp_3views.conf --checkpoint ..\u002Fpretrained_models\u002Fdtu_3views_mlp\u002Fscan65.pth --scan_id 65 --resolution 512 --eval_rendering --evals_folder ..\u002Fpretrained_results\n```\n\nYou can also run the following script to extract all the meshes:\n```\npython scripts\u002Fextract_all_meshes_from_pretrained_models.py\n```\n\n# High-resolution Cues\nHere we privode script to generate high-resolution cues, and training with high-resolution cues. Please refer to our supplementary for more details.\n\nFirst you need to download the Tanks and Temples dataset from [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1YArOJaX9WVLJh4757uE8AEREYkgszrCo\u002Fview) and unzip it to ```data\u002Ftanksandtemples```. Then you can run the script to create overlapped patches \n```\ncd preprocess\npython generate_high_res_map.py --mode create_patches\n```\n\nand run the Omnidata model to predict monocular cues for each patch \n```\npython extract_monocular_cues.py --task depth --img_path .\u002Fhighres_tmp\u002Fscan1\u002Fimage\u002F --output_path .\u002Fhighres_tmp\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\npython extract_monocular_cues.py --task depth --img_path .\u002Fhighres_tmp\u002Fscan1\u002Fimage\u002F --output_path .\u002Fhighres_tmp\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\n```\nThis step will take a long time (~2 hours) since there are many patches and the model only use a batch size of 1. \n\nThen run the script again to merge the output of Omnidata.\n```\npython generate_high_res_map.py --mode merge_patches\n```\n\nNow you can train the model with\n```\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8 python -m torch.distributed.launch --nproc_per_node 8 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Ftnt_highres_grids_courtroom.conf\n```\n\nPlease note that the script for generating high-resolution cues only works for the Tanks and Temples dataset. You need to adapt it if you want to apply to other dataset.\n\n# Acknowledgements\nThis project is built upon [VolSDF](https:\u002F\u002Fgithub.com\u002Flioryariv\u002Fvolsdf). We use pretrained [Omnidata](https:\u002F\u002Fomnidata.vision) for monocular depth and normal extraction. Cuda implementation of Multi-Resolution hash encoding is based on [torch-ngp](https:\u002F\u002Fgithub.com\u002Fashawkey\u002Ftorch-ngp). Evaluation scripts for DTU, Replica, and ScanNet are taken from [DTUeval-python](https:\u002F\u002Fgithub.com\u002Fjzhangbs\u002FDTUeval-python), [Nice-SLAM](https:\u002F\u002Fgithub.com\u002Fcvg\u002Fnice-slam) and [manhattan-sdf](https:\u002F\u002Fgithub.com\u002Fzju3dv\u002Fmanhattan_sdf) respectively. We thank all the authors for their great work and repos. \n\n\n# Citation\nIf you find our code or paper useful, please cite\n```bibtex\n@article{Yu2022MonoSDF,\n  author    = {Yu, Zehao and Peng, Songyou and Niemeyer, Michael and Sattler, Torsten and Geiger, Andreas},\n  title     = {MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction},\n  journal   = {Advances in Neural Information Processing Systems (NeurIPS)},\n  year      = {2022},\n}\n```\n","\u003Cp align=\"center\">\n\n  \u003Ch1 align=\"center\">MonoSDF：探索单目几何线索用于神经隐式表面重建\u003C\u002Fh1>\n  \u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fniujinshuchong.github.io\u002F\">Zehao Yu\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fpengsongyou.github.io\u002F\">Peng Songyou\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fm-niemeyer.github.io\u002F\">Michael Niemeyer\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Ftsattler.github.io\u002F\">Torsten Sattler\u003C\u002Fa>\n    ·\n    \u003Ca href=\"http:\u002F\u002Fwww.cvlibs.net\u002F\">Andreas Geiger\u003C\u002Fa>\n\n  \u003C\u002Fp>\n  \u003Ch2 align=\"center\">NeurIPS 2022\u003C\u002Fh2>\n  \u003Ch3 align=\"center\">\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.00665\">论文\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fniujinshuchong.github.io\u002Fmonosdf\u002F\">项目主页\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fautonomousvision.github.io\u002Fsdfstudio\u002F\">SDFStudio\u003C\u002Fa> \u003C\u002Fh3>\n  \u003Cdiv align=\"center\">\u003C\u002Fdiv>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fautonomousvision_monosdf_readme_74772792aca6.gif\" alt=\"Logo\" width=\"95%\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n我们证明，从单目图像中提取的最先进深度和法线线索与重建线索是互补的，因此可以显著提升隐式表面重建方法的性能。\n\u003C\u002Fp>\n\u003Cbr>\n\n# 更新\nMonoSDF 已集成到 [SDFStudio](https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fsdfstudio) 中，在那里单目深度和法线线索可以应用于 [UniSurf](https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Funisurf\u002Ftree\u002Fmain\u002Fmodel) 和 [NeuS](https:\u002F\u002Fgithub.com\u002FTotoro97\u002FNeuS\u002Ftree\u002Fmain\u002Fmodels)。欢迎查看。\n\n# 设置\n\n## 安装\n克隆仓库并使用以下命令创建名为 monosdf 的 Anaconda 环境：\n```\ngit clone git@github.com:autonomousvision\u002Fmonosdf.git\ncd monosdf\n\nconda create -y -n monosdf python=3.8\nconda activate monosdf\n\nconda install pytorch torchvision cudatoolkit=11.3 -c pytorch\nconda install cudatoolkit-dev=11.3 -c conda-forge\n\npip install -r requirements.txt\n```\n哈希编码器将在运行代码时动态编译。\n\n## 数据集\n要下载预处理好的数据，请运行以下脚本。DTU、Replica 和 Tanks and Temples 数据分别改编自 [VolSDF](https:\u002F\u002Fgithub.com\u002Flioryariv\u002Fvolsdf)、[Nice-SLAM](https:\u002F\u002Fgithub.com\u002Fcvg\u002Fnice-slam) 和 [Vis-MVSNet](https:\u002F\u002Fgithub.com\u002Fjzhangbs\u002FVis-MVSNet)。\n```\nbash scripts\u002Fdownload_dataset.sh\n```\n\n# 训练\n\n运行以下命令来训练 MonoSDF：\n```\ncd .\u002Fcode\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf CONFIG  --scan_id SCAN_ID\n```\n其中 CONFIG 是 `code\u002Fconfs` 中的配置文件，SCAN_ID 是待重建场景的编号。\n\n我们提供了针对 DTU、ScanNet 和 Replica 数据集的示例命令如下：\n```\n# DTU scan65\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fdtu_mlp_3views.conf  --scan_id 65\n\n# ScanNet scan 1 (scene_0050_00)\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fscannet_mlp.conf  --scan_id 1\n\n# Replica scan 1 (room0)\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Freplica_mlp.conf  --scan_id 1\n```\n\n我们在 Tanks and Temples 数据集上创建了单独的配置文件，因此无需设置 scan_id。在法庭场景上进行训练：\n```\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Ftnt_mlp_1.conf\n```\n\n我们还在法庭场景上生成了高分辨率的单目线索，建议使用更多 GPU 进行训练。首先下载数据集：\n```\nbash scripts\u002Fdownload_highres_TNT.sh\n```\n\n然后使用 8 个 GPU 进行训练：\n```\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8 python -m torch.distributed.launch --nproc_per_node 8 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Ftnt_highres_grids_courtroom.conf\n```\n当然，你也可以用多 GPU 在其他场景上进行训练。\n\n# 评估\n\n## DTU\n首先，下载 DTU 的真实点云：\n```\nbash scripts\u002Fdownload_dtu_ground_truth.sh\n```\n然后你可以评估提取的网格质量（以 scan 65 为例）：\n```\npython evaluate_single_scene.py --input_mesh scan65_mesh.ply --scan_id 65 --output_dir dtu_scan65\n```\n\n我们还提供了评估所有 DTU 场景的脚本：\n```\npython evaluate.py\n```\n评估结果默认会保存到 `evaluation\u002FDTU.csv`，更多细节请查看脚本。\n\n## Replica\n对单个场景进行评估（以 scan 1 room0 为例）：\n```\ncd replica_eval\npython evaluate_single_scene.py --input_mesh replica_scan1_mesh.ply --scan_id 1 --output_dir replica_scan1\n```\n\n我们还提供了评估所有 Replica 场景的脚本：\n```\ncd replica_eval\npython evaluate.py\n```\n更多细节请查看脚本。\n\n## ScanNet\n```\ncd scannet_eval\npython evaluate.py\n```\n更多细节请查看脚本。\n\n## Tanks and Temples\n你需要将重建结果提交到 [官方评估服务器](https:\u002F\u002Fwww.tanksandtemples.org)，请遵循他们的指导。我们也在 [这里](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Cr-UVTaAgDk52qhVd880Dd8uF74CzpcB\u002Fview?usp=sharing) 提供了一个我们的提交示例供参考。\n\n# 自定义数据集\n我们提供了一个如何在自定义数据上训练 MonoSDF 的示例（来自 Nice-SLAM 的 Apartment 场景）。首先下载数据集，并运行脚本对训练图像进行子采样、归一化相机位姿等操作：\n```\nbash scripts\u002Fdownload_apartment.sh \ncd preprocess\npython nice_slam_apartment_to_monosdf.py\n```\n\n然后，我们可以提取单目深度和法线（请在运行命令前安装 [omnidata 模型](https:\u002F\u002Fgithub.com\u002FEPFL-VILAB\u002Fomnidata)）：\n```\npython extract_monocular_cues.py --task depth --img_path ..\u002Fdata\u002FApartment\u002Fscan1\u002Fimage --output_path ..\u002Fdata\u002FApartment\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\npython extract_monocular_cues.py --task normal --img_path ..\u002Fdata\u002FApartment\u002Fscan1\u002Fimage --output_path ..\u002Fdata\u002FApartment\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\n```\n\n最后，我们按照以下方式训练 MonoSDF：\n```\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fnice_slam_grids.conf\n```\n\n# 预训练模型\n首先使用以下脚本下载预训练模型：\n```\nbash scripts\u002Fdownload_pretrained.sh\n```\n然后你可以进行推理（以 DTU 为例）：\n```\ncd code\npython evaluation\u002Feval.py --conf confs\u002Fdtu_mlp_3views.conf --checkpoint ..\u002Fpretrained_models\u002Fdtu_3views_mlp\u002Fscan65.pth --scan_id 65 --resolution 512 --eval_rendering --evals_folder ..\u002Fpretrained_results\n```\n\n你还可以运行以下脚本提取所有网格：\n```\npython scripts\u002Fextract_all_meshes_from_pretrained_models.py\n```\n\n# 高分辨率线索\n我们在此提供生成高分辨率线索的脚本，以及使用高分辨率线索进行训练的方法。更多细节请参阅我们的补充材料。\n\n首先，您需要从[这里](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1YArOJaX9WVLJh4757uE8AEREYkgszrCo\u002Fview)下载 Tanks and Temples 数据集，并将其解压到 ```data\u002Ftanksandtemples``` 目录下。然后，您可以运行脚本来创建重叠的补丁：\n```\ncd preprocess\npython generate_high_res_map.py --mode create_patches\n```\n\n接着，使用 Omnidata 模型为每个补丁预测单目线索：\n```\npython extract_monocular_cues.py --task depth --img_path .\u002Fhighres_tmp\u002Fscan1\u002Fimage\u002F --output_path .\u002Fhighres_tmp\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\npython extract_monocular_cues.py --task depth --img_path .\u002Fhighres_tmp\u002Fscan1\u002Fimage\u002F --output_path .\u002Fhighres_tmp\u002Fscan1 --omnidata_path YOUR_OMNIDATA_PATH --pretrained_models PRETRAINED_MODELS\n```\n\n这一步骤会花费较长时间（约2小时），因为补丁数量较多，而模型每次仅处理一个样本。\n\n随后，再次运行脚本以合并 Omnidata 的输出：\n```\npython generate_high_res_map.py --mode merge_patches\n```\n\n现在，您可以使用以下命令来训练模型：\n```\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8 python -m torch.distributed.launch --nproc_per_node 8 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Ftnt_highres_grids_courtroom.conf\n```\n\n请注意，用于生成高分辨率线索的脚本仅适用于 Tanks and Temples 数据集。如果您希望将其应用于其他数据集，则需要对其进行相应的修改。\n\n# 致谢\n本项目基于 [VolSDF](https:\u002F\u002Fgithub.com\u002Flioryariv\u002Fvolsdf) 构建。我们使用预训练的 [Omnidata](https:\u002F\u002Fomnidata.vision) 模型提取单目深度和法线信息。多分辨率哈希编码的 CUDA 实现则基于 [torch-ngp](https:\u002F\u002Fgithub.com\u002Fashawkey\u002Ftorch-ngp)。针对 DTU、Replica 和 ScanNet 数据集的评估脚本分别取自 [DTUeval-python](https:\u002F\u002Fgithub.com\u002Fjzhangbs\u002FDTUeval-python)、[Nice-SLAM](https:\u002F\u002Fgithub.com\u002Fcvg\u002Fnice-slam) 和 [manhattan-sdf](https:\u002F\u002Fgithub.com\u002Fzju3dv\u002Fmanhattan_sdf)。我们感谢所有作者的杰出工作及开源项目。\n\n# 引用\n如果您认为我们的代码或论文有所帮助，请引用以下文献：\n```bibtex\n@article{Yu2022MonoSDF,\n  author    = {Yu, Zehao and Peng, Songyou and Niemeyer, Michael and Sattler, Torsten and Geiger, Andreas},\n  title     = {MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction},\n  journal   = {神经信息处理系统大会 (NeurIPS)},\n  year      = {2022},\n}\n```","# MonoSDF 快速上手指南\n\nMonoSDF 是一个利用单目深度和法线线索来提升神经隐式表面重建效果的工具。本指南将帮助你快速完成环境配置并运行基础示例。\n\n## 环境准备\n\n*   **操作系统**: Linux (推荐 Ubuntu)\n*   **Python**: 3.8\n*   **CUDA**: 11.3 (需安装 `cudatoolkit` 和 `cudatoolkit-dev`)\n*   **硬件**: 支持 CUDA 的 NVIDIA GPU\n*   **前置依赖**:\n    *   Anaconda 或 Miniconda\n    *   Git\n\n> **注意**：本项目依赖特定的 CUDA 版本（11.3），请确保系统驱动兼容。\n\n## 安装步骤\n\n### 1. 克隆仓库与创建环境\n首先克隆代码库并创建名为 `monosdf` 的 Conda 环境：\n\n```bash\ngit clone git@github.com:autonomousvision\u002Fmonosdf.git\ncd monosdf\n\nconda create -y -n monosdf python=3.8\nconda activate monosdf\n```\n\n### 2. 安装深度学习依赖\n安装 PyTorch 及相关组件（官方源）：\n\n```bash\nconda install pytorch torchvision cudatoolkit=11.3 -c pytorch\nconda install cudatoolkit-dev=11.3 -c conda-forge\n```\n\n> **国内加速建议**：如果下载速度慢，可使用清华源替代上述命令：\n> ```bash\n> conda install pytorch torchvision cudatoolkit=11.3 -c https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fcloud\u002Fpytorch\u002F\n> ```\n\n### 3. 安装项目依赖\n安装 `requirements.txt` 中的其他 Python 包：\n\n```bash\npip install -r requirements.txt\n```\n> **国内加速建议**：使用 pip 国内镜像加速安装：\n> ```bash\n> pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n*注：哈希编码器（hash encoder）将在首次运行代码时自动编译，无需手动操作。*\n\n### 4. 下载数据集（可选）\n如需运行官方示例，可下载预处理好的数据集（DTU, Replica, Tanks and Temples 等）：\n\n```bash\nbash scripts\u002Fdownload_dataset.sh\n```\n\n## 基本使用\n\n以下以 **DTU 数据集** 的 `scan65` 场景为例，演示最基础的训练流程。\n\n### 1. 开始训练\n进入 `code` 目录并执行训练命令。该命令将加载配置文件 `confs\u002Fdtu_mlp_3views.conf` 并开始重建场景 ID 为 `65` 的数据。\n\n```bash\ncd .\u002Fcode\nCUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node 1 --nnodes=1 --node_rank=0 training\u002Fexp_runner.py --conf confs\u002Fdtu_mlp_3views.conf  --scan_id 65\n```\n\n*   `--conf`: 指定配置文件路径（位于 `code\u002Fconfs` 目录下）。\n*   `--scan_id`: 指定要重建的场景编号。\n*   `CUDA_VISIBLE_DEVICES`: 指定使用的 GPU 编号。\n\n### 2. 使用预训练模型推理（可选）\n如果你不想从头训练，可以先下载预训练模型并进行推理测试：\n\n```bash\n# 下载预训练模型\nbash scripts\u002Fdownload_pretrained.sh\n\n# 运行推理 (以 DTU scan65 为例)\ncd code\npython evaluation\u002Feval.py --conf confs\u002Fdtu_mlp_3views.conf --checkpoint ..\u002Fpretrained_models\u002Fdtu_3views_mlp\u002Fscan65.pth --scan_id 65 --resolution 512 --eval_rendering --evals_folder ..\u002Fpretrained_results\n```\n\n### 3. 提取网格 Mesh\n训练完成后或基于预训练模型，你可以提取最终的 3D 网格文件（.ply）。对于预训练模型，可直接运行脚本提取所有场景：\n\n```bash\npython scripts\u002Fextract_all_meshes_from_pretrained_models.py\n```\n\n对于自定义训练出的模型，通常需要在配置文件中设置相应的评估参数后再次运行 `exp_runner.py` 或使用专门的评估脚本来生成 mesh。","某数字孪生团队正利用手持设备拍摄的单目视频，为历史建筑构建高精度的神经隐式 3D 模型，但受限于缺乏多视角立体匹配数据，重建效果始终不理想。\n\n### 没有 monosdf 时\n- **几何细节丢失严重**：仅依赖稀疏的图像重建线索，导致墙面纹理、窗框等细微结构模糊不清，模型表面过于平滑。\n- **深度尺度模糊**：在弱纹理区域（如白墙或阴影处），算法难以判断真实深度，常出现物体漂浮或几何塌陷现象。\n- **法线估计不准**：由于缺乏明确的几何约束，生成的表面法线方向混乱，直接影响后续的光照渲染真实感。\n- **训练收敛缓慢**：模型需要极多的迭代次数才能勉强拟合基础形状，且极易陷入局部最优解，浪费大量算力资源。\n\n### 使用 monosdf 后\n- **细节还原度显著提升**：monosdf 引入的单目深度与法线先验知识，成功补全了缺失的几何信息，使砖石缝隙和装饰线条清晰可见。\n- **空间结构稳定可靠**：利用单目几何线索作为强约束，彻底解决了弱纹理区域的深度歧义问题，模型结构坚实无伪影。\n- **表面质感逼真自然**：精准的法线预测让隐式表面更加平滑连续，大幅提升了最终渲染图的物理真实感。\n- **训练效率成倍提高**：借助高质量的初始几何引导，monosdf 大幅减少了所需训练步数，快速输出高质量的重建结果。\n\nmonosdf 通过巧妙融合单目几何先验，将原本不可行的单视频高精度重建任务变成了现实，极大降低了 3D 数字化的门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fautonomousvision_monosdf_e8bad471.png","autonomousvision","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fautonomousvision_e0fa4bb2.png",null,"https:\u002F\u002Fgithub.com\u002Fautonomousvision",[78,82,86,90,94],{"name":79,"color":80,"percentage":81},"Python","#3572A5",84.8,{"name":83,"color":84,"percentage":85},"Cuda","#3A4E3A",13.9,{"name":87,"color":88,"percentage":89},"Shell","#89e051",0.6,{"name":91,"color":92,"percentage":93},"C","#555555",0.5,{"name":95,"color":96,"percentage":97},"C++","#f34b7d",0.2,624,51,"2026-04-15T13:30:48","MIT",4,"Linux","必需 NVIDIA GPU。基础训练单卡即可 (CUDA_VISIBLE_DEVICES=0)；高分辨率场景推荐 8 卡并行。需安装 cudatoolkit=11.3 和 cudatoolkit-dev=11.3。","未说明",{"notes":107,"python":108,"dependencies":109},"1. 推荐使用 Anaconda 创建名为 'monosdf' 的虚拟环境。\n2. Hash Encoder 会在代码运行时动态编译。\n3. 提取单目深度和法线线索需预先安装 Omnidata 模型。\n4. 高分辨率线索生成脚本默认仅适用于 Tanks and Temples 数据集，用于其他数据集需自行适配。\n5. 部分评估需下载额外的真值点云数据或提交至官方服务器。","3.8",[110,111,112,113,114],"pytorch","torchvision","cudatoolkit=11.3","cudatoolkit-dev=11.3","requirements.txt 中的其他依赖",[116,15],"其他",[118,119,120,121,122,123,124],"3d-reconstruction","implicit-neural-representation","multi-view-reconstruction","scene-representations","sdf","surface-reconstruction","multi-resolution-grids","2026-03-27T02:49:30.150509","2026-04-18T17:04:03.525736",[128,133,138,143,148,153,157],{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},40358,"如何为自定义场景计算 scene_bounding_sphere？","您只需要将原始值乘以缩放比例（scale）即可。","https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fmonosdf\u002Fissues\u002F34",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},40359,"单目深度输出的数值范围很小（0.01-0.04），导致损失值过小，代码中的缩放常数（如 50 和 5）在不同数据集上需要调整吗？","是的，缩放常数 50 是启发式选择的。如果您使用其他数据集或尝试调整深度损失的权重，需要更改这些常数。建议先在带有真值深度监督的预处理数据集上运行成功，然后再针对新数据集进行调整。对于单目系统，深度也是尺度不确定的，此时应使用尺度不变损失（scale-invariant loss）。","https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fmonosdf\u002Fissues\u002F22",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},40360,"训练时遇到构建扩展模块 '_hash_encoder' 失败的错误（RuntimeError: Error building extension），如何解决？","尝试移除编译标志 `THRUST_IGNORE_CUB_VERSION_CHECK`，或者将其修改为 `-DTHRUST_IGNORE_CUB_VERSION_CHECK=1`。如果问题仍然存在，可能需要重新安装环境并检查 CUDA 版本兼容性。","https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fmonosdf\u002Fissues\u002F40",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},40361,"在评估预训练模型时出现 'IndexError: list index out of range' 或哈希编码器构建失败，该如何解决？","这通常是因为缺少合适的编译器。请尝试通过 conda 安装特定版本的 gcc\u002Fg++：\n```bash\nconda install -c conda-forge gcc==9.5.0\nconda install -c conda-forge gxx==9.5.0\n```\n安装完成后，建议删除 `tmp_build` 文件夹并重新运行命令。","https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fmonosdf\u002Fissues\u002F55",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},40362,"MonoSDF 在 Tanks and Temples 数据集上的评估结果如何？为什么效果可能不理想？","在该数据集上的评估结果可能不理想。主要原因推测是生成的网格过于平滑，且单目深度估计算法可能会引入负面影响（例如：即使在同一平面上，纹理或颜色不同的区域估算的深度差异也可能很大）。","https:\u002F\u002Fgithub.com\u002Fautonomousvision\u002Fmonosdf\u002Fissues\u002F2",{"id":154,"question_zh":155,"answer_zh":156,"source_url":132},40363,"如果想使用度量深度（metric depth），应该如何相应地转换深度值？","虽然具体转换公式未在简短回复中给出，但结合上下文，关键在于处理尺度问题。单目深度通常是尺度不确定的（up to scale），如果需要度量深度，通常需要利用已知的场景尺度信息或真值深度来对齐预测深度的尺度和偏移量。在 MonoSDF 中，这涉及到调整深度损失的缩放因子以匹配真实的度量单位。",{"id":158,"question_zh":159,"answer_zh":160,"source_url":137},40364,"代码中计算深度损失时，为什么要用未归一化的射线方向（unnormalized ray direction）乘以深度值？","这是为了正确地将网络预测的深度值转换为实际的几何深度。代码片段 `depth_scale = ray_dirs_tmp[0, :, 2:]` 提取了射线方向的 Z 分量作为缩放因子，`depth_values = depth_scale * depth_values` 则应用了这个缩放。这是因为在透视投影中，深度值与射线方向有关，需要使用未归一化的射线方向来恢复正确的度量深度用于损失计算。",[]]