[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-nianticlabs--manydepth":3,"tool-nianticlabs--manydepth":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":10,"env_os":92,"env_gpu":93,"env_ram":94,"env_deps":95,"category_tags":100,"github_topics":101,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":114,"updated_at":115,"faqs":116,"releases":147},3708,"nianticlabs\u002Fmanydepth","manydepth","[CVPR 2021] Self-supervised depth estimation from short sequences","ManyDepth 是一款发表于 CVPR 2021 的开源深度学习工具，专注于从单目视频序列中进行自监督稠密深度估计。它主要解决了传统多帧深度估计方法难以在无真实深度标签（自监督）条件下有效训练，以及无法灵活适应测试时序列长度变化的难题。\n\n该工具的核心亮点在于其“自适应成本体（Adaptive Cost Volume）”机制。与依赖固定帧数的传统方法不同，ManyDepth 能够智能地利用测试时可用的短时序信息：当输入仅为单张图像时，它能提供可靠的深度预测；而当提供连续视频帧时，它能自动聚合时序特征，显著提升深度图的精度和细节表现。此外，它还通过特定的数据增强策略，有效处理了静态相机场景、序列起始帧以及动态物体干扰等常见挑战，且在推理阶段仅需一次前向传播，无需耗时的优化过程，运行高效。\n\nManyDepth 非常适合计算机视觉领域的研究人员、算法工程师及自动驾驶开发者使用。对于希望在不依赖昂贵激光雷达标注数据的前提下，利用普通单目摄像头获取高质量三维环境感知的团队，这是一个极具价值的基准模型和开发工具。目前在 KITTI 和 CityScapes 等主流数据集上，其自监督单目训练效","ManyDepth 是一款发表于 CVPR 2021 的开源深度学习工具，专注于从单目视频序列中进行自监督稠密深度估计。它主要解决了传统多帧深度估计方法难以在无真实深度标签（自监督）条件下有效训练，以及无法灵活适应测试时序列长度变化的难题。\n\n该工具的核心亮点在于其“自适应成本体（Adaptive Cost Volume）”机制。与依赖固定帧数的传统方法不同，ManyDepth 能够智能地利用测试时可用的短时序信息：当输入仅为单张图像时，它能提供可靠的深度预测；而当提供连续视频帧时，它能自动聚合时序特征，显著提升深度图的精度和细节表现。此外，它还通过特定的数据增强策略，有效处理了静态相机场景、序列起始帧以及动态物体干扰等常见挑战，且在推理阶段仅需一次前向传播，无需耗时的优化过程，运行高效。\n\nManyDepth 非常适合计算机视觉领域的研究人员、算法工程师及自动驾驶开发者使用。对于希望在不依赖昂贵激光雷达标注数据的前提下，利用普通单目摄像头获取高质量三维环境感知的团队，这是一个极具价值的基准模型和开发工具。目前在 KITTI 和 CityScapes 等主流数据集上，其自监督单目训练效果已达到行业领先水平。","# The Temporal Opportunist: Self-Supervised Multi-Frame Monocular Depth\n\n[Jamie Watson](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=5pC7fw8AAAAJ&hl=en),\n[Oisin Mac Aodha](https:\u002F\u002Fhomepages.inf.ed.ac.uk\u002Fomacaod\u002F),\n[Victor Prisacariu](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~victor\u002F),\n[Gabriel J. Brostow](http:\u002F\u002Fwww0.cs.ucl.ac.uk\u002Fstaff\u002Fg.brostow\u002F) and\n[Michael Firman](http:\u002F\u002Fwww.michaelfirman.co.uk) – **CVPR 2021**\n\n[[Link to paper]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14540)\n\nWe introduce ***ManyDepth***, an adaptive approach to dense depth estimation that can make use of sequence information at test time, when it is available.\n\n* ✅ **Self-supervised**: We train from monocular video only. No depths or poses are needed at training or test time.\n* ✅ Good depths from single frames; even better depths from **short sequences**.\n* ✅ **Efficient**: Only one forward pass at test time. No test-time optimization needed.\n* ✅ **State-of-the-art** self-supervised monocular-trained depth estimation on KITTI and CityScapes.\n\n\n\u003Cp align=\"center\">\n  \u003Ca\nhref=\"https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmanydepth_cvpr_cc.mp4\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_bb318cb0ae22.png\" alt=\"5 minute CVPR presentation video link\" width=\"400\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\n## Overview\n\nCost volumes are commonly used for estimating depths from multiple input views:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_278a9e1bba4b.jpg\" alt=\"Cost volume used for aggreagting sequences of frames\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\nHowever, cost volumes do not easily work with self-supervised training.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_e7c09539b23a.gif\" alt=\"Baseline: Depth from cost volume input without our contributions\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\nIn our paper, we:\n\n* Introduce an adaptive cost volume to deal with unknown scene scales\n* Fix problems with moving objects\n* Introduce augmentations to deal with static cameras and start-of-sequence frames\n\nThese contributions enable cost volumes to work with self-supervised training:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_f0fdc9d86609.gif\" alt=\"ManyDepth: Depth from cost volume input with our contributions\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\nWith our contributions, short test-time sequences give better predictions than methods which predict depth from just a single frame.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_3c2d942b38e3.jpg\" alt=\"ManyDepth vs Monodepth2 depths and error maps\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n## ✏️ 📄 Citation\n\nIf you find our work useful or interesting, please cite our paper:\n\n```latex\n@inproceedings{watson2021temporal,\n    author = {Jamie Watson and\n              Oisin Mac Aodha and\n              Victor Prisacariu and\n              Gabriel Brostow and\n              Michael Firman},\n    title = {{The Temporal Opportunist: Self-Supervised Multi-Frame Monocular Depth}},\n    booktitle = {Computer Vision and Pattern Recognition (CVPR)},\n    year = {2021}\n}\n```\n\n## 📈 Results\n\nOur **ManyDepth** method outperforms all previous methods in all subsections across most metrics, whether or not the baselines use multiple frames at test time.\nSee our paper for full details.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_a9b4c0c88a38.png\" alt=\"KITTI results table\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n## 👀 Reproducing Paper Results\n\nTo recreate the results from our paper, run:\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.train \\\n    --data_path \u003Cyour_KITTI_path> \\\n    --log_dir \u003Cyour_save_path>  \\\n    --model_name \u003Cyour_model_name>\n```\n\nDepending on the size of your GPU, you may need to set `--batch_size` to be lower than 12. Additionally you can train\na high resolution model by adding `--height 320 --width 1024`.\n\nFor instructions on downloading the KITTI dataset, see [Monodepth2](https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmonodepth2)\n\nTo train a CityScapes model, run:\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.train \\\n    --data_path \u003Cyour_preprocessed_cityscapes_path> \\\n    --log_dir \u003Cyour_save_path>  \\\n    --model_name \u003Cyour_model_name> \\\n    --dataset cityscapes_preprocessed \\\n    --split cityscapes_preprocessed \\\n    --freeze_teacher_epoch 5 \\\n    --height 192 --width 512\n```\n\nNote here the `--freeze_teacher_epoch 5` command - we found this to be important for Cityscapes models, due to the large number of images in the training set. \n\nThis assumes you have already preprocessed the CityScapes dataset using SfMLearner's [prepare_train_data.py](https:\u002F\u002Fgithub.com\u002Ftinghuiz\u002FSfMLearner\u002Fblob\u002Fmaster\u002Fdata\u002Fprepare_train_data.py) script.\nWe used the following command:\n\n```bash\npython prepare_train_data.py \\\n    --img_height 512 \\\n    --img_width 1024 \\\n    --dataset_dir \u003Cpath_to_downloaded_cityscapes_data> \\\n    --dataset_name cityscapes \\\n    --dump_root \u003Cyour_preprocessed_cityscapes_path> \\\n    --seq_length 3 \\\n    --num_threads 8\n```\n\nNote that while we use the `--img_height 512` flag, the `prepare_train_data.py` script will save images which are `1024x384` as it also crops off the bottom portion of the image.\nYou could probably save disk space without a loss of accuracy by preprocessing with `--img_height 256 --img_width 512` (to create `512x192` images), but this isn't what we did for our experiments.\n\n## 💾 Pretrained weights and evaluation\n\nYou can download weights for some pretrained models here:\n\n* [KITTI MR (640x192)](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FKITTI_MR.zip)\n* [KITTI HR (1024x320)](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FKITTI_HR.zip)\n* [CityScapes (512x192)](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FCityScapes_MR.zip)\n\nTo evaluate a model on KITTI, run:\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.evaluate_depth \\\n    --data_path \u003Cyour_KITTI_path> \\\n    --load_weights_folder \u003Cyour_model_path>\n    --eval_mono\n```\n\nMake sure you have first run `export_gt_depth.py` to extract ground truth files.\n\nAnd to evaluate a model on Cityscapes, run:\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.evaluate_depth \\\n    --data_path \u003Cyour_cityscapes_path> \\\n    --load_weights_folder \u003Cyour_model_path>\n    --eval_mono \\\n    --eval_split cityscapes\n```\n\nDuring evaluation, we crop and evaluate on the middle 50% of the images.\n\nWe provide ground truth depth files [HERE](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fgt_depths_cityscapes.zip),\nwhich were converted from pixel disparities using intrinsics and the known baseline. Download this and unzip into `splits\u002Fcityscapes`.\n\n\nIf you want to evaluate a teacher network (i.e. the monocular network used for consistency loss), then add the flag `--eval_teacher`. This will \nload the weights of `mono_encoder.pth` and `mono_depth.pth`, which are provided for our KITTI models. \n\n## 🖼 Running on your own images\n\nWe provide some sample code in `test_simple.py` which demonstrates multi-frame inference.\nThis predicts depth for a sequence of two images cropped from a [dashcam video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sF0wXxZwISw).\nPrediction also requires an estimate of the intrinsics matrix, in json format.\nFor the provided test images, we have estimated the intrinsics to be equivalent to those of the KITTI dataset.\nNote that the intrinsics provided in the json file are expected to be in [normalised coordinates](https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmonodepth2\u002Fissues\u002F6#issuecomment-494407590).\n\nDownload and unzip model weights from one of the links above, and then run the following command:\n\n```bash\npython -m manydepth.test_simple \\\n    --target_image_path assets\u002Ftest_sequence_target.jpg \\\n    --source_image_path assets\u002Ftest_sequence_source.jpg \\\n    --intrinsics_json_path assets\u002Ftest_sequence_intrinsics.json \\\n    --model_path path\u002Fto\u002Fweights\n```\n\nA predicted depth map rendering will be saved to `assets\u002Ftest_sequence_target_disp.jpeg`.\n\n## 👩‍⚖️ License\n\nCopyright © Niantic, Inc. 2021. Patent Pending.\nAll rights reserved.\nPlease see the [license file](LICENSE) for terms.\n","# 时间机会主义者：自监督多帧单目深度\n\n[杰米·沃森](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=5pC7fw8AAAAJ&hl=en)、\n[奥辛·麦克阿达](https:\u002F\u002Fhomepages.inf.ed.ac.uk\u002Fomacaod\u002F)、\n[维克托·普里萨卡里乌](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~victor\u002F)、\n[加布里埃尔·J·布罗斯托](http:\u002F\u002Fwww0.cs.ucl.ac.uk\u002Fstaff\u002Fg.brostow\u002F) 以及\n[迈克尔·菲尔曼](http:\u002F\u002Fwww.michaelfirman.co.uk) – **CVPR 2021**\n\n[[论文链接]](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.14540)\n\n我们提出了 ***ManyDepth***，这是一种自适应的稠密深度估计方法，在测试时若存在序列信息，它可以加以利用。\n\n* ✅ **自监督**：我们仅使用单目视频进行训练。训练和测试阶段均无需深度或位姿标注。\n* ✅ 单帧即可获得良好的深度结果；而使用**短序列**则能进一步提升精度。\n* ✅ **高效**：测试时仅需一次前向传播，无需进行任何测试时优化。\n* ✅ 在 KITTI 和 CityScapes 数据集上，该方法实现了自监督单目训练深度估计的最先进水平。\n\n\n\u003Cp align=\"center\">\n  \u003Ca\nhref=\"https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmanydepth_cvpr_cc.mp4\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_bb318cb0ae22.png\" alt=\"5分钟CVPR演示视频链接\" width=\"400\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\n## 概述\n\n代价体积通常用于从多视角输入中估计深度：\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_278a9e1bba4b.jpg\" alt=\"用于聚合多帧序列的代价体积\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n然而，代价体积并不容易与自监督训练结合使用。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_e7c09539b23a.gif\" alt=\"基线：未采用我们改进的代价体积输入深度估计\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n在我们的论文中，我们：\n\n* 提出了自适应代价体积，以应对未知的场景尺度；\n* 解决了运动物体带来的问题；\n* 引入了数据增强技术，以处理静态相机和序列起始帧的情况。\n\n这些改进使得代价体积能够与自监督训练兼容：\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_f0fdc9d86609.gif\" alt=\"ManyDepth：采用我们改进后的代价体积输入深度估计\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n借助我们的改进，测试时使用短序列能够比仅基于单帧预测深度的方法获得更优的结果。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_3c2d942b38e3.jpg\" alt=\"ManyDepth与Monodepth2的深度及误差图对比\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n## ✏️ 📄 引用\n\n如果您认为我们的工作有用或有趣，请引用我们的论文：\n\n```latex\n@inproceedings{watson2021temporal,\n    author = {Jamie Watson and\n              Oisin Mac Aodha and\n              Victor Prisacariu and\n              Gabriel Brostow and\n              Michael Firman},\n    title = {{The Temporal Opportunist: Self-Supervised Multi-Frame Monocular Depth}},\n    booktitle = {Computer Vision and Pattern Recognition (CVPR)},\n    year = {2021}\n}\n```\n\n## 📈 结果\n\n我们的 **ManyDepth** 方法在大多数指标的所有子类别中均优于先前的所有方法，无论基线方法在测试时是否使用多帧输入。详细信息请参阅我们的论文。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_readme_a9b4c0c88a38.png\" alt=\"KITTI结果表格\" width=\"700\" \u002F>\n\u003C\u002Fp>\n\n## 👀 复现论文结果\n\n要复现我们论文中的结果，请运行以下命令：\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.train \\\n    --data_path \u003Cyour_KITTI_path> \\\n    --log_dir \u003Cyour_save_path>  \\\n    --model_name \u003Cyour_model_name>\n```\n\n根据您的 GPU 规格，可能需要将 `--batch_size` 设置为低于 12。此外，您还可以通过添加 `--height 320 --width 1024` 来训练高分辨率模型。\n\n有关下载 KITTI 数据集的说明，请参阅 [Monodepth2](https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmonodepth2)。\n\n要训练 CityScapes 模型，请运行以下命令：\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.train \\\n    --data_path \u003Cyour_preprocessed_cityscapes_path> \\\n    --log_dir \u003Cyour_save_path>  \\\n    --model_name \u003Cyour_model_name> \\\n    --dataset cityscapes_preprocessed \\\n    --split cityscapes_preprocessed \\\n    --freeze_teacher_epoch 5 \\\n    --height 192 --width 512\n```\n\n请注意这里的 `--freeze_teacher_epoch 5` 命令——我们发现这对于 CityScapes 模型非常重要，因为其训练集包含大量图像。\n\n这假定您已使用 SfMLearner 的 [prepare_train_data.py](https:\u002F\u002Fgithub.com\u002Ftinghuiz\u002FSfMLearner\u002Fblob\u002Fmaster\u002Fdata\u002Fprepare_train_data.py) 脚本对 CityScapes 数据集进行了预处理。我们使用的命令如下：\n\n```bash\npython prepare_train_data.py \\\n    --img_height 512 \\\n    --img_width 1024 \\\n    --dataset_dir \u003Cpath_to_downloaded_cityscapes_data> \\\n    --dataset_name cityscapes \\\n    --dump_root \u003Cyour_preprocessed_cityscapes_path> \\\n    --seq_length 3 \\\n    --num_threads 8\n```\n\n需要注意的是，尽管我们使用了 `--img_height 512` 标志，但 `prepare_train_data.py` 脚本会保存尺寸为 `1024x384` 的图像，因为它还会裁剪掉图像底部的部分。理论上，使用 `--img_height 256 --img_width 512`（生成 `512x192` 图像）可以在不损失精度的情况下节省磁盘空间，但这并非我们在实验中采用的方式。\n\n## 💾 预训练权重与评估\n\n您可以在此处下载部分预训练模型的权重：\n\n* [KITTI MR（640x192）](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FKITTI_MR.zip)\n* [KITTI HR（1024x320）](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FKITTI_HR.zip)\n* [CityScapes（512x192）](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FCityScapes_MR.zip)\n\n要在 KITTI 上评估模型，请运行以下命令：\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.evaluate_depth \\\n    --data_path \u003Cyour_KITTI_path> \\\n    --load_weights_folder \u003Cyour_model_path>\n    --eval_mono\n```\n\n请确保您已先运行 `export_gt_depth.py` 以提取真实深度标签文件。\n\n要在 CityScapes 上评估模型，请运行以下命令：\n\n```bash\nCUDA_VISIBLE_DEVICES=\u003Cyour_desired_GPU> \\\npython -m manydepth.evaluate_depth \\\n    --data_path \u003Cyour_cityscapes_path> \\\n    --load_weights_folder \u003Cyour_model_path>\n    --eval_mono \\\n    --eval_split cityscapes\n```\n\n在评估过程中，我们会裁剪并仅对中间 50% 的图像进行评估。\n\n我们提供了真实深度标签文件 [HERE](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fgt_depths_cityscapes.zip)，这些文件是根据内参和已知基线从像素视差转换而来的。请下载并解压到 `splits\u002Fcityscapes` 目录下。\n\n如果您想评估教师网络（即用于一致性损失的单目网络），则可以添加 `--eval_teacher` 标志。这将加载为我们 KITTI 模型提供的 `mono_encoder.pth` 和 `mono_depth.pth` 权重。\n\n## 🖼 在您自己的图像上运行\n\n我们在 `test_simple.py` 中提供了一些示例代码，演示了多帧推理。该示例对从一段 [行车记录仪视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sF0wXxZwISw) 中裁剪出的两幅图像序列进行深度预测。预测还需要一个以 JSON 格式提供的相机内参矩阵估计值。对于提供的测试图像，我们估计其内参与 KITTI 数据集的内参等效。请注意，JSON 文件中提供的内参应采用 [归一化坐标](https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmonodepth2\u002Fissues\u002F6#issuecomment-494407590)。\n\n请从上述链接之一下载并解压模型权重，然后运行以下命令：\n\n```bash\npython -m manydepth.test_simple \\\n    --target_image_path assets\u002Ftest_sequence_target.jpg \\\n    --source_image_path assets\u002Ftest_sequence_source.jpg \\\n    --intrinsics_json_path assets\u002Ftest_sequence_intrinsics.json \\\n    --model_path path\u002Fto\u002Fweights\n```\n\n预测的深度图渲染结果将保存到 `assets\u002Ftest_sequence_target_disp.jpeg`。\n\n## 👩‍⚖️ 许可证\n\n版权所有 © Niantic, Inc. 2021。专利申请中。\n保留所有权利。\n有关条款，请参阅 [许可证文件](LICENSE)。","# ManyDepth 快速上手指南\n\nManyDepth 是一种自适应的密集深度估计方法，仅需单目视频即可进行自监督训练。它支持在测试时利用短序列信息生成更高质量的深度图，且无需测试时优化，推理效率高。\n\n## 环境准备\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04+)\n*   **硬件要求**: NVIDIA GPU (支持 CUDA)，显存建议 8GB 以上（高分辨率模型需更大显存）\n*   **软件依赖**:\n    *   Python 3.6+\n    *   PyTorch 1.7+\n    *   CUDA Toolkit (版本需与 PyTorch 匹配)\n    *   OpenCV, NumPy, Pillow 等常用视觉库\n\n> **提示**: 国内用户安装 PyTorch 时，推荐使用清华或中科大镜像源加速：\n> `pip install torch torchvision -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth.git\n    cd manydepth\n    ```\n\n2.  **安装依赖**\n    项目通常依赖标准的 PyTorch 生态。如果根目录有 `requirements.txt`，请运行：\n    ```bash\n    pip install -r requirements.txt\n    ```\n    若无该文件，请确保已安装基础视觉库：\n    ```bash\n    pip install opencv-python numpy pillow scipy\n    ```\n\n3.  **下载预训练权重 (可选)**\n    若仅需推理或评估，可跳过训练直接下载官方权重：\n    *   [KITTI MR (640x192)](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FKITTI_MR.zip)\n    *   [KITTI HR (1024x320)](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FKITTI_HR.zip)\n    *   [CityScapes (512x192)](https:\u002F\u002Fstorage.googleapis.com\u002Fniantic-lon-static\u002Fresearch\u002Fmanydepth\u002Fmodels\u002FCityScapes_MR.zip)\n\n    下载后解压到指定文件夹。\n\n## 基本使用\n\n### 1. 快速推理（测试自有图片）\n\n这是最简单的使用方式，利用预训练模型对两张连续帧（目标帧和源帧）进行深度预测。\n\n**准备文件**：\n*   目标图像 (`target_image`)\n*   源图像 (`source_image`, 通常为前一帧或后一帧)\n*   相机内参文件 (`intrinsics.json`, 格式需为归一化坐标)\n\n**运行命令**：\n```bash\npython -m manydepth.test_simple \\\n    --target_image_path assets\u002Ftest_sequence_target.jpg \\\n    --source_image_path assets\u002Ftest_sequence_source.jpg \\\n    --intrinsics_json_path assets\u002Ftest_sequence_intrinsics.json \\\n    --model_path path\u002Fto\u002Fweights\n```\n*注：请将 `path\u002Fto\u002Fweights` 替换为你下载的权重文件夹路径。输出结果将保存为 `assets\u002Ftest_sequence_target_disp.jpeg`。*\n\n### 2. 模型评估（以 KITTI 数据集为例）\n\n如果你已准备好 KITTI 数据集并提取了真值文件，可使用以下命令评估预训练模型：\n\n```bash\nCUDA_VISIBLE_DEVICES=0 \\\npython -m manydepth.evaluate_depth \\\n    --data_path \u003Cyour_KITTI_path> \\\n    --load_weights_folder \u003Cyour_model_path> \\\n    --eval_mono\n```\n*注意：运行前需先执行 `export_gt_depth.py` 脚本提取真值深度文件。*\n\n### 3. 开始训练（复现论文结果）\n\n若要从头训练模型（以 KITTI 为例）：\n\n```bash\nCUDA_VISIBLE_DEVICES=0 \\\npython -m manydepth.train \\\n    --data_path \u003Cyour_KITTI_path> \\\n    --log_dir \u003Cyour_save_path>  \\\n    --model_name \u003Cyour_model_name>\n```\n*提示：若显存不足，可添加 `--batch_size` 参数调小批次大小；若需训练高分辨率模型，可添加 `--height 320 --width 1024`。*","某自动驾驶初创团队正在开发城市道路感知系统，需要利用车载单目摄像头实时估算前方车辆与障碍物的精确距离，但受限于硬件成本无法部署昂贵的激光雷达。\n\n### 没有 manydepth 时\n- **深度信息模糊**：仅靠单帧图像估算深度时，在纹理缺失区域（如白色墙面、平滑路面）极易产生噪点，导致障碍物轮廓断裂。\n- **动态物体误判**：当旁边车道有车辆快速驶过时，传统自监督算法常将移动物体误认为背景深度变化，引发错误的刹车指令。\n- **数据标注昂贵**：若追求高精度，往往需要采集带有激光雷达真值的数据进行有监督训练，数据采集与标注成本极高。\n- **时序信息浪费**：行车记录仪产生的连续视频帧中蕴含的运动视差信息被忽略，无法利用多帧互补来提升当前帧的预测质量。\n\n### 使用 manydepth 后\n- **细节重建清晰**：manydepth 引入自适应代价体机制，即使在短序列输入下，也能在低纹理区域生成连续且边缘锐利的深度图。\n- **动态场景鲁棒**：其特有的运动物体处理模块有效分离了前景动态目标与静态背景，显著降低了因旁车经过导致的深度跳变。\n- **纯视频自监督**：仅需普通的单目行车视频即可训练，无需任何深度真值或位姿标签，大幅降低了数据准备门槛。\n- **实时性能优异**：推理阶段只需一次前向传播即可融合多帧信息，无需耗时的测试时优化，完美满足车载嵌入式设备的实时性要求。\n\nmanydepth 让低成本单目摄像头具备了接近多传感器融合的深度感知能力，以极低的算力代价实现了更安全的自动驾驶决策。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fnianticlabs_manydepth_f0fdc9d8.gif","nianticlabs","Niantic Labs","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fnianticlabs_edeead43.png","Building technologies and ideas that move us",null,"https:\u002F\u002Fwww.nianticlabs.com","https:\u002F\u002Fgithub.com\u002Fnianticlabs",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,658,84,"2026-03-16T18:33:29","NOASSERTION","Linux","必需 NVIDIA GPU (通过 CUDA_VISIBLE_DEVICES 环境变量指定)，显存需求取决于批次大小，默认 batch_size=12 可能需要较大显存，高分辨率训练需更多显存","未说明",{"notes":96,"python":94,"dependencies":97},"1. 训练 KITTI 数据集时，若显存不足需降低 --batch_size (默认 12)。2. 训练 CityScapes 模型需先使用 SfMLearner 的脚本预处理数据。3. 评估前需运行脚本提取地面真值深度文件。4. 推理时需要提供相机内参矩阵 (JSON 格式)。5. 代码结构基于 monodepth2，可能依赖其相关环境配置。",[98,99],"torch (隐含)","cuda (隐含)",[13,14],[102,103,104,105,106,107,108,109,110,111,112,113],"kitti","cityscapes","depths","monodepth","depth-estimation","pytorch","cvpr2021","cvpr","self-supervised-learning","self-supervised","cost-volumes","estimating-depths","2026-03-27T02:49:30.150509","2026-04-06T05:37:24.678109",[117,122,127,132,137,142],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},16999,"如何在自定义数据集（如 Lyft）上训练模型？是否可以使用不同方向的摄像头图像？","可以使用来自不同方向摄像头的图像来增加样本数量，但需要注意：1. 如果使用多方向图像，模型可能不如仅使用前向摄像头训练的效果好；2. 裁剪图像时通常需要修改内参矩阵；3. 移动物体（如汽车）可能会被错误地检测为远距离，这是单目视频训练中的常见现象（称为“打孔”行为），可以参考 monodepth2 论文中的'Auto-Masking Stationary Pixels'部分或使用语义分割结合启发式方法来解决。","https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth\u002Fissues\u002F13",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},17000,"为什么在查找图像（lookup images）的特征提取过程中禁用了梯度？如果不禁用会有什么影响？","禁用梯度主要是为了节省显存。如果不禁用梯度（即移除 `with torch.no_grad():` 块），梯度会流向查找图像，但这不一定会提升结果，甚至可能导致性能略微下降。用户可以尝试修改代码进行测试，但官方默认设置是禁用的以优化内存使用。","https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth\u002Fissues\u002F17",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},17001,"测试时细化（Test-Time Refinement, TTR）的具体实现参数和步骤是什么？","测试时细化遵循 McCraith 等人的工作，具体配置如下：1. 仅训练深度和姿态编码器（冻结其他部分）；2. 学习率（LR）设置为 0.025；3. 训练步数为 50 步。关于 BatchNorm 层，通常在细化过程中会更新统计信息，具体动量值可参考原论文或默认 SGD 设置。","https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth\u002Fissues\u002F27",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},17002,"使用较小的批量大小（如 batch size 8）导致性能下降（abs rel 0.130），如何解决？","性能下降很可能是由于环境配置问题而非批量大小本身。有用户反馈在重建环境后，即使使用 batch size 12 也能获得正确结果。建议检查并重新配置运行环境（特别是依赖库版本），确保与 monodepth2 或其他相关项目的环境隔离，避免冲突。","https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth\u002Fissues\u002F18",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},17003,"是否提供了单目深度网络（教师网络）的预训练权重？如何评估它们？","是的，教师网络的权重已包含在预训练模型中，其性能通常与 monodepth2 相当。用户可以通过在 `evaluate_depth.py` 脚本中添加 `--eval_teacher` 标志来单独评估这些教师网络。此外，代码库已更新以支持直接评估教师网络的性能。","https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth\u002Fissues\u002F15",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},17004,"使用 KITTI 数据集时，如何将输出的视差图转换为具有正确度量尺度的深度图？","ManyDepth 输出的原始视差图尺度与 monodepth2 不同，因此不能直接使用默认的 `disp_to_depth` 转换公式（即 `depth = 5.4 \u002F (0.01+9.99*disparity)`）。虽然代码复用了 monodepth2 的转换逻辑，但 ManyDepth 模型的输出分布不同，导致深度值尺度差异巨大。目前代码中未明确提供特定的缩放因子，用户可能需要根据验证集的真值深度进行线性缩放校准，或者参考官方后续更新以获取具体的缩放参数。","https:\u002F\u002Fgithub.com\u002Fnianticlabs\u002Fmanydepth\u002Fissues\u002F11",[]]