[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mihaidusmanu--d2-net":3,"tool-mihaidusmanu--d2-net":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":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":10,"env_os":104,"env_gpu":105,"env_ram":104,"env_deps":106,"category_tags":120,"github_topics":121,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":126,"updated_at":127,"faqs":128,"releases":160},3061,"mihaidusmanu\u002Fd2-net","d2-net","D2-Net: A Trainable CNN for Joint Description and Detection of Local Features","d2-net 是一款基于深度学习的开源工具，专为计算机视觉任务中的局部特征检测与描述而设计。它源自 CVPR 2019 的研究论文，核心能力在于通过一个可训练的卷积神经网络（CNN），同步完成图像关键点的位置定位及其特征向量的提取。\n\n在传统流程中，特征检测与描述往往分步进行，容易导致信息割裂。d2-net 创新性地采用联合学习架构，让网络在端到端的训练中同时优化这两个环节，从而显著提升了特征匹配的鲁棒性，特别是在光照变化剧烈或视角差异较大的复杂场景中表现优异。其输出包含关键点坐标、置信度评分以及高维描述子，可直接对接 COLMAP 等主流三维重建系统。\n\n该工具主要面向计算机视觉领域的研究人员与开发者，尤其适合从事 SLAM、三维重建、图像检索及视觉定位工作的技术团队。虽然需要一定的 Python 和 PyTorch 基础来部署运行，但其提供了预训练模型和清晰的脚本接口，支持单尺度与多尺度特征提取，并能无缝集成 Kapture 数据格式，大大降低了复现前沿算法的门槛。对于希望探索深度学习如何提升传统几何视觉性能的专业用户而言，d2-net 是一个极具参考价值的实践方案。","# D2-Net: A Trainable CNN for Joint Detection and Description of Local Features\n\nThis repository contains the implementation of the following paper:\n\n```text\n\"D2-Net: A Trainable CNN for Joint Detection and Description of Local Features\".\nM. Dusmanu, I. Rocco, T. Pajdla, M. Pollefeys, J. Sivic, A. Torii, and T. Sattler. CVPR 2019.\n```\n\n[Paper on arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.03561), [Project page](https:\u002F\u002Fdusmanu.com\u002Fpublications\u002Fd2-net.html)\n    \n## Getting started\n\nPython 3.6+ is recommended for running our code. [Conda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002F) can be used to install the required packages:\n\n```bash\nconda install pytorch torchvision cudatoolkit=10.0 -c pytorch\nconda install h5py imageio imagesize matplotlib numpy scipy tqdm\n```\n\n## Downloading the models\n\nThe off-the-shelf **Caffe VGG16** weights and their tuned counterpart can be downloaded by running:\n\n```bash\nmkdir models\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_ots.pth -O models\u002Fd2_ots.pth\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_tf.pth -O models\u002Fd2_tf.pth\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_tf_no_phototourism.pth -O models\u002Fd2_tf_no_phototourism.pth\n```\n\n**Update - 23 May 2019** We have added a new set of weights trained on MegaDepth without the PhotoTourism scenes (sagrada_familia - 0019, lincoln_memorial_statue - 0021, british_museum - 0024, london_bridge - 0025, us_capitol - 0078, mount_rushmore - 1589). Our initial results show similar performance. In order to use these weights at test time, you should add `--model_file models\u002Fd2_tf_no_phototourism.pth`.\n\n## Feature extraction\n\n`extract_features.py` can be used to extract D2 features for a given list of images. The singlescale features require less than 6GB of VRAM for 1200x1600 images. The `--multiscale` flag can be used to extract multiscale features - for this, we recommend at least 12GB of VRAM. \n\nThe output format can be either [`npz`](https:\u002F\u002Fdocs.scipy.org\u002Fdoc\u002Fnumpy\u002Freference\u002Fgenerated\u002Fnumpy.savez.html) or `mat`. In either case, the feature files encapsulate three arrays: \n\n- `keypoints` [`N x 3`] array containing the positions of keypoints `x, y` and the scales `s`. The positions follow the COLMAP format, with the `X` axis pointing to the right and the `Y` axis to the bottom.\n- `scores` [`N`] array containing the activations of keypoints (higher is better).\n- `descriptors` [`N x 512`] array containing the L2 normalized descriptors.\n\n```bash\npython extract_features.py --image_list_file images.txt (--multiscale)\n```\n\n# Feature extraction with kapture datasets\n\nKapture is a pivot file format, based on text and binary files, used to describe SFM (Structure From Motion) and more generally sensor-acquired data.\n\nIt is available at https:\u002F\u002Fgithub.com\u002Fnaver\u002Fkapture.\nIt contains conversion tools for popular formats and several popular datasets are directly available in kapture.\n\nIt can be installed with:\n```bash\npip install kapture\n```\n\nDatasets can be downloaded with:\n```bash\nkapture_download_dataset.py update\nkapture_download_dataset.py list\n# e.g.: install mapping and query of Extended-CMU-Seasons_slice22\nkapture_download_dataset.py install \"Extended-CMU-Seasons_slice22_*\"\n```\nIf you want to convert your own dataset into kapture, please find some examples [here](https:\u002F\u002Fgithub.com\u002Fnaver\u002Fkapture\u002Fblob\u002Fmaster\u002Fdoc\u002Fdatasets.adoc).\n\nOnce installed, you can extract keypoints for your kapture dataset with:\n```bash\npython extract_kapture.py --kapture-root pathto\u002Fyourkapturedataset (--multiscale)\n```\n\nRun `python extract_kapture.py --help` for more information on the extraction parameters. \n\n## Tuning on MegaDepth\n\nThe training pipeline provided here is a PyTorch implementation of the TensorFlow code that was used to train the model available to download above.\n\n**Update - 05 June 2019** We have fixed a bug in the dataset preprocessing - retraining now yields similar results to the original TensorFlow implementation.\n\n**Update - 07 August 2019** We have released an updated, more accurate version of the training dataset - training is more stable and significantly faster for equal performance.\n\n### Downloading and preprocessing the MegaDepth dataset\n\nFor this part, [COLMAP](https:\u002F\u002Fcolmap.github.io\u002F) should be installed. Please refer to the official website for installation instructions.\n\nAfter downloading the entire [MegaDepth](http:\u002F\u002Fwww.cs.cornell.edu\u002Fprojects\u002Fmegadepth\u002F) dataset (including SfM models), the first step is generating the undistorted reconstructions. This can be done by calling `undistort_reconstructions.py` as follows:\n\n```bash\npython undistort_reconstructions.py --colmap_path \u002Fpath\u002Fto\u002Fcolmap\u002Fexecutable --base_path \u002Fpath\u002Fto\u002Fmegadepth\n```\n\nNext, `preprocess_megadepth.sh` can be used to retrieve the camera parameters and compute the overlap between images for all scenes. \n\n```bash\nbash preprocess_undistorted_megadepth.sh \u002Fpath\u002Fto\u002Fmegadepth \u002Fpath\u002Fto\u002Foutput\u002Ffolder\n```\n\n### Training\n\nAfter downloading and preprocessing MegaDepth, the training can be started right away:\n\n```bash\npython train.py --use_validation --dataset_path \u002Fpath\u002Fto\u002Fmegadepth --scene_info_path \u002Fpath\u002Fto\u002Fpreprocessing\u002Foutput\n```\n\n## BibTeX\n\nIf you use this code in your project, please cite the following paper:\n\n```bibtex\n@InProceedings{Dusmanu2019CVPR,\n    author = {Dusmanu, Mihai and Rocco, Ignacio and Pajdla, Tomas and Pollefeys, Marc and Sivic, Josef and Torii, Akihiko and Sattler, Torsten},\n    title = {{D2-Net: A Trainable CNN for Joint Detection and Description of Local Features}},\n    booktitle = {Proceedings of the 2019 IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition},\n    year = {2019},\n}\n```\n","# D2-Net：用于局部特征联合检测与描述的可训练 CNN\n\n本仓库包含以下论文的实现：\n\n```text\n“D2-Net：用于局部特征联合检测与描述的可训练 CNN”。\nM. Dusmanu、I. Rocco、T. Pajdla、M. Pollefeys、J. Sivic、A. Torii 和 T. Sattler。CVPR 2019。\n```\n\n[论文 arXiv 链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.03561)，[项目页面](https:\u002F\u002Fdusmanu.com\u002Fpublications\u002Fd2-net.html)\n\n## 快速入门\n\n建议使用 Python 3.6 及以上版本运行我们的代码。可以使用 [Conda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002F) 安装所需的软件包：\n\n```bash\nconda install pytorch torchvision cudatoolkit=10.0 -c pytorch\nconda install h5py imageio imagesize matplotlib numpy scipy tqdm\n```\n\n## 下载模型\n\n现成的 **Caffe VGG16** 权重及其调优版本可以通过以下命令下载：\n\n```bash\nmkdir models\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_ots.pth -O models\u002Fd2_ots.pth\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_tf.pth -O models\u002Fd2_tf.pth\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_tf_no_phototourism.pth -O models\u002Fd2_tf_no_phototourism.pth\n```\n\n**更新 - 2019年5月23日** 我们新增了一组在 MegaDepth 数据集上训练的权重，该数据集去除了 PhotoTourism 场景（sagrada_familia - 0019、lincoln_memorial_statue - 0021、british_museum - 0024、london_bridge - 0025、us_capitol - 0078、mount_rushmore - 1589）。初步结果表明性能相近。要在测试时使用这些权重，需添加 `--model_file models\u002Fd2_tf_no_phototourism.pth`。\n\n## 特征提取\n\n`extract_features.py` 可用于从给定的图像列表中提取 D2 特征。单尺度特征处理 1200×1600 分辨率的图像时所需显存不到 6GB。使用 `--multiscale` 标志可提取多尺度特征；此时建议至少配备 12GB 显存。\n\n输出格式可以是 [`npz`](https:\u002F\u002Fdocs.scipy.org\u002Fdoc\u002Fnumpy\u002Freference\u002Fgenerated\u002Fnumpy.savez.html) 或 `mat`。无论哪种格式，特征文件都包含三个数组：\n\n- `keypoints` [`N x 3`] 数组，存储关键点的位置 `x, y` 和尺度 `s`。位置遵循 COLMAP 格式，其中 `X` 轴指向右侧，`Y` 轴指向下方。\n- `scores` [`N`] 数组，存储关键点的激活值（值越高越好）。\n- `descriptors` [`N x 512`] 数组，存储 L2 归一化的描述子。\n\n```bash\npython extract_features.py --image_list_file images.txt (--multiscale)\n```\n\n# 使用 kapture 数据集进行特征提取\n\nKapture 是一种基于文本和二进制文件的枢纽文件格式，用于描述 SFM（运动恢复结构）以及更广泛的传感器采集数据。\n\n其 GitHub 地址为：https:\u002F\u002Fgithub.com\u002Fnaver\u002Fkapture。该库包含常用格式的转换工具，并且多个流行的数据集可以直接以 kapture 格式提供。\n\n可通过以下命令安装：\n\n```bash\npip install kapture\n```\n\n数据集可按如下方式下载：\n\n```bash\nkapture_download_dataset.py update\nkapture_download_dataset.py list\n# 例如：安装 Extended-CMU-Seasons_slice22 的映射和查询数据\nkapture_download_dataset.py install \"Extended-CMU-Seasons_slice22_*\"\n```\n\n若要将您自己的数据集转换为 kapture 格式，请参阅 [此处](https:\u002F\u002Fgithub.com\u002Fnaver\u002Fkapture\u002Fblob\u002Fmaster\u002Fdoc\u002Fdatasets.adoc) 的示例。\n\n安装完成后，您可以使用以下命令为 kapture 数据集提取关键点：\n\n```bash\npython extract_kapture.py --kapture-root pathto\u002Fyourkapturedataset (--multiscale)\n```\n\n运行 `python extract_kapture.py --help` 以获取更多关于提取参数的信息。\n\n## 在 MegaDepth 上调优\n\n此处提供的训练流程是 TensorFlow 代码的 PyTorch 实现，该 TensorFlow 代码曾用于训练并可在此处下载的模型。\n\n**更新 - 2019年6月5日** 我们修复了数据预处理中的一个错误；重新训练现在能得到与原始 TensorFlow 实现相似的结果。\n\n**更新 - 2019年8月7日** 我们发布了更新且更精确的训练数据集版本；在达到相同性能的情况下，训练更加稳定且速度显著提升。\n\n### 下载并预处理 MegaDepth 数据集\n\n为此部分，应先安装 [COLMAP](https:\u002F\u002Fcolmap.github.io\u002F)。请参考其官方网站获取安装说明。\n\n下载完整的 [MegaDepth](http:\u002F\u002Fwww.cs.cornell.edu\u002Fprojects\u002Fmegadepth\u002F) 数据集（包括 SfM 模型）后，第一步是生成去畸变后的重建结果。这可以通过调用 `undistort_reconstructions.py` 来完成：\n\n```bash\npython undistort_reconstructions.py --colmap_path \u002Fpath\u002Fto\u002Fcolmap\u002Fexecutable --base_path \u002Fpath\u002Fto\u002Fmegadepth\n```\n\n接下来，可以使用 `preprocess_megadepth.sh` 获取相机参数，并计算所有场景中图像之间的重叠区域。\n\n```bash\nbash preprocess_undistorted_megadepth.sh \u002Fpath\u002Fto\u002Fmegadepth \u002Fpath\u002Fto\u002Foutput\u002Ffolder\n```\n\n### 训练\n\n在下载并预处理 MegaDepth 数据集后，即可立即开始训练：\n\n```bash\npython train.py --use_validation --dataset_path \u002Fpath\u002Fto\u002Fmegadepth --scene_info_path \u002Fpath\u002Fto\u002Fpreprocessing\u002Foutput\n```\n\n## BibTeX\n\n如果您在项目中使用此代码，请引用以下论文：\n\n```bibtex\n@InProceedings{Dusmanu2019CVPR,\n    author = {Dusmanu, Mihai and Rocco, Ignacio and Pajdla, Tomas and Pollefeys, Marc and Sivic, Josef and Torii, Akihiko and Sattler, Torsten},\n    title = {{D2-Net: A Trainable CNN for Joint Detection and Description of Local Features}},\n    booktitle = {2019 IEEE\u002FCVF 计算机视觉与模式识别会议论文集},\n    year = {2019},\n}\n```","# D2-Net 快速上手指南\n\nD2-Net 是一个可训练的卷积神经网络（CNN），用于联合检测和描述局部特征。本指南将帮助你快速配置环境、下载模型并提取图像特征。\n\n## 1. 环境准备\n\n*   **操作系统**：Linux \u002F macOS (Windows 需自行配置 CUDA 环境)\n*   **Python 版本**：推荐 Python 3.6 及以上\n*   **硬件要求**：\n    *   **单尺度特征提取**：显存至少 6GB (针对 1200x1600 分辨率图像)\n    *   **多尺度特征提取**：推荐显存 12GB 及以上\n*   **前置依赖**：PyTorch, CUDA Toolkit\n\n## 2. 安装步骤\n\n### 2.1 创建 Conda 环境并安装依赖\n推荐使用 [Conda](https:\u002F\u002Fdocs.conda.io\u002F) 管理环境。以下命令将安装 PyTorch 及项目所需的所有 Python 包。\n\n> **提示**：国内用户建议使用清华或中科大镜像源加速下载。\n\n```bash\n# 创建新环境 (可选)\nconda create -n d2net python=3.8\nconda activate d2net\n\n# 安装 PyTorch 和 CUDA 工具包 (根据实际 CUDA 版本调整，此处以原文 10.0 为例)\n# 国内加速示例 (清华源):\nconda install pytorch torchvision cudatoolkit=10.0 -c pytorch -c https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Fmain\u002F\n\n# 安装其他依赖包\nconda install h5py imageio imagesize matplotlib numpy scipy tqdm\n# 若 conda 安装慢，也可使用 pip + 国内源:\n# pip install h5py imageio imagesize matplotlib numpy scipy tqdm -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2.2 下载预训练模型\n创建模型目录并下载官方提供的权重文件（包含 Caffe VGG16 基础权重及微调后的权重）。\n\n```bash\nmkdir models\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_ots.pth -O models\u002Fd2_ots.pth\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_tf.pth -O models\u002Fd2_tf.pth\nwget https:\u002F\u002Fdusmanu.com\u002Ffiles\u002Fd2-net\u002Fd2_tf_no_phototourism.pth -O models\u002Fd2_tf_no_phototourism.pth\n```\n> **注**：`d2_tf_no_phototourism.pth` 是在 MegaDepth 数据集上训练且排除了 PhotoTourism 场景的权重，通常在测试时表现更佳。\n\n## 3. 基本使用\n\n### 3.1 准备图像列表\n首先，创建一个文本文件（例如 `images.txt`），每行包含一张待处理图像的绝对路径或相对路径。\n\n```text\n\u002Fpath\u002Fto\u002Fimage1.jpg\n\u002Fpath\u002Fto\u002Fimage2.jpg\n```\n\n### 3.2 提取特征\n运行 `extract_features.py` 脚本提取特征。默认输出为单尺度特征，若需更高精度可添加 `--multiscale` 参数（需更大显存）。\n\n**单尺度提取（推荐入门）：**\n```bash\npython extract_features.py --image_list_file images.txt\n```\n\n**多尺度提取（高精度，需 >=12GB 显存）：**\n```bash\npython extract_features.py --image_list_file images.txt --multiscale\n```\n\n### 3.3 输出结果说明\n脚本执行完成后，将生成 `.npz` 或 `.mat` 格式的特征文件。每个文件包含以下三个数组：\n*   `keypoints`: `[N x 3]` 数组，包含关键点坐标 `x, y` 和尺度 `s`（遵循 COLMAP 格式，X 轴向右，Y 轴向下）。\n*   `scores`: `[N]` 数组，关键点的激活分数（值越高越好）。\n*   `descriptors`: `[N x 512]` 数组，L2 归一化后的特征描述子。\n\n---\n*如需处理 Kapture 格式数据集，请先安装 `pip install kapture`，然后使用 `python extract_kapture.py --kapture-root \u003C数据集路径>` 进行提取。*","某自动驾驶团队正在构建高精地图，需要利用车载摄像头采集的连续街景图像进行大规模视觉定位与三维重建。\n\n### 没有 d2-net 时\n- 传统特征提取算法（如 SIFT 或 ORB）在光照剧烈变化或视角大幅偏移时，难以检测到足够数量的稳定关键点，导致图像匹配频繁失败。\n- 检测与描述步骤分离，无法通过端到端训练优化整体性能，使得在纹理重复或弱纹理区域（如白墙、天空）的特征区分度极低。\n- 为了弥补特征质量不足，工程师不得不投入大量时间手动调整多尺度参数和后处理阈值，严重拖慢了数据处理流水线的效率。\n- 最终生成的稀疏点云存在大量空洞和误匹配，导致后续的定位模块在城市峡谷等复杂环境中漂移严重，无法满足安全需求。\n\n### 使用 d2-net 后\n- d2-net 利用联合检测与描述的卷积神经网络，在极端光照和大视角变化下仍能提取出高重复性的关键点，显著提升了图像配对成功率。\n- 通过在 MegaDepth 等大规模数据集上的端到端训练，d2-net 自动学习到更具判别力的特征描述子，有效解决了弱纹理区域的匹配难题。\n- 团队直接调用预训练模型即可获取高质量的多尺度特征，无需繁琐的人工调参，将特征提取流程的部署时间从数天缩短至几小时。\n- 基于更精准的特征匹配，三维重建出的点云密度更高且几何结构准确，大幅增强了自动驾驶车辆在复杂城市场景中的定位鲁棒性。\n\nd2-net 通过深度学习实现了特征检测与描述的协同优化，从根本上解决了传统算法在复杂现实场景中稳定性差的核心痛点。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmihaidusmanu_d2-net_2d3cdda2.png","mihaidusmanu","Mihai Dusmanu","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmihaidusmanu_897798e9.jpg","Computer Vision & Deep Learning.",null,"Zurich, Switzerland","https:\u002F\u002Fdusmanu.com","https:\u002F\u002Fgithub.com\u002Fmihaidusmanu",[84,88,92,96],{"name":85,"color":86,"percentage":87},"Jupyter Notebook","#DA5B0B",90,{"name":89,"color":90,"percentage":91},"Python","#3572A5",8.9,{"name":93,"color":94,"percentage":95},"MATLAB","#e16737",0.9,{"name":97,"color":98,"percentage":99},"Shell","#89e051",0.2,847,170,"2026-03-26T06:12:21","NOASSERTION","未说明","需要 NVIDIA GPU。单尺度特征提取需至少 6GB 显存（处理 1200x1600 图像）；多尺度特征提取推荐至少 12GB 显存。指定 CUDA 版本为 10.0。",{"notes":107,"python":108,"dependencies":109},"建议使用 Conda 管理环境。训练流程依赖 COLMAP 进行数据集预处理。支持 Kapture 格式数据集，需额外安装 kapture 包。提供多种预训练权重文件供下载。","3.6+",[110,111,112,113,114,115,116,117,118,119],"pytorch","torchvision","cudatoolkit=10.0","h5py","imageio","imagesize","matplotlib","numpy","scipy","tqdm",[14,13],[122,123,124,125,110],"cvpr2019","local-features","visual-localization","cnn","2026-03-27T02:49:30.150509","2026-04-06T07:05:47.902250",[129,134,139,144,148,152,156],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},14093,"不同特征描述符的维度不同（如 DELF 为 40D，D2-Net 为 512D），这是否会影响实验结果？是否有相同维度下的对比数据？","所有实验均使用完整描述符进行。为了公平比较，作者尝试调整检测阈值以获得与之前相似的特征数量。对于 DELF，可以通过修改配置文件中的 `pca_dim` 参数来调整维度。作者已上传了包含前 2000 个特征的缓存结果供参考（HPatches Sequences 数据集），结果显示新模型在该任务上表现未变。具体结果文件可查看：HPatches Sequences Mutual NN Matching Results 及限制特征数量后的版本。","https:\u002F\u002Fgithub.com\u002Fmihaidusmanu\u002Fd2-net\u002Fissues\u002F1",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},14094,"在自定义数据集上训练 D2-Net 时，损失函数卡在边际值（margin），且正负样本距离随每个输入迅速下降，原因是什么？","这通常是由于标注格式不正确导致的。D2-Net 使用下采样至 1\u002F8 分辨率的网格点，因此对应关系应关联到左图的网格点，而不是随机像素点。在 MegaDepth 数据集中，只需对作为 warping 函数输入的 pos1 位置进行变换，而不能使用随机点。请确保生成的 ground truth 对应关系符合网格点格式，参考代码中 `lib\u002Floss.py` 第 60-69 行的实现逻辑。修正标注格式后，训练即可恢复正常。","https:\u002F\u002Fgithub.com\u002Fmihaidusmanu\u002Fd2-net\u002Fissues\u002F73",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},14095,"在 Aachen Day-Night 数据集上进行定位评估时，结果偏低，可能的原因有哪些？","主要原因可能是未正确使用相机内参。在 Aachen 定位流程中，数据库图像和查询图像的内参都应固定为参考值（参考 visuallocalizationbenchmark 仓库中 `reconstruction_pipeline.py` 的第 240-242 行和第 254-256 行）。如果脚本中未强制使用这些固定内参，而是沿用了 `database.db` 中的原始内参（其可能与官方提供的 `database_intrinsics.txt` 不一致），会导致性能显著下降。建议检查并修改脚本，确保所有图像均使用统一的参考内参进行重建。","https:\u002F\u002Fgithub.com\u002Fmihaidusmanu\u002Fd2-net\u002Fissues\u002F62",{"id":145,"question_zh":146,"answer_zh":147,"source_url":143},14096,"Aachen 数据集中的 `database.db` 文件内的内参与官方提供的 `database_intrinsics.txt` 不一致，这对定位性能有影响吗？","是的，会有显著影响。虽然数据库内参的差异本身可能不会造成致命问题，但在标准的 Aachen 评估流程中，所有图像（包括数据库和查询图像）的内参都被强制设定为统一的参考值。如果直接使用 `database.db` 中的内参而不进行覆盖，会导致几何约束不一致，从而降低定位精度。建议在预处理阶段显式加载 `database_intrinsics.txt` 中的参数，并在构建数据库时覆盖原有内参，以确保与基准测试流程一致。",{"id":149,"question_zh":150,"answer_zh":151,"source_url":138},14097,"如何在 PhotoTourism 数据集上手动生成用于训练的真值对应关系（ground truth correspondences）？","手动生成对应关系时，不能随意选取像素点。必须基于网络使用的下采样网格（通常为原图的 1\u002F8）来选取有效点。具体做法是：获取网格上有效点的行主序索引（row-major index）作为位置 ID，然后对这些网格点进行变换（warping），而不是对随机点进行变换。如果图像对是通过小角度旋转（0-2 度）生成的，需确保对应点严格遵循网格结构，否则会导致损失函数坍塌。参考 Issue #72 中关于网格点索引的讨论。",{"id":153,"question_zh":154,"answer_zh":155,"source_url":133},14098,"DELF 特征在不同维度（如 40, 128, 256, 512）下在 Illumination 和 Viewpoint 数据集上的表现如何？","作者已在 HPatches Sequences 数据集上提供了相关实验数据。对于该任务，更换新的 DELF 模型并未改变结果。所有实验均基于完整描述符运行，并通过调整检测阈值来控制特征数量以保持一致性。虽然未直接列出 40\u002F128\u002F256\u002F512 各维度在 Illumination\u002FViewpoint 子集的具体数值，但作者提供了限制特征数量（\u003C2000）后的详细匹配结果 PDF 文件，用户可从中分析不同设置下的性能趋势。建议下载附件 `hseq-top.pdf` 查看具体数据。",{"id":157,"question_zh":158,"answer_zh":159,"source_url":133},14099,"为什么 LF-Net 和 D2-Net 多尺度版本没有提供前 2000 个特征的缓存结果？","这是因为这两种方法在选取大量特征时存在特定限制。对于 LF-Net，选取超过 500 个关键点会导致结果变差；而对于 D2-Net 多尺度版本，由于特征图求和的特性，基于激活值选取前 2000 个特征无法正常工作。因此，作者仅对其他方法提供了前 2000 个特征的缓存结果，而这两种方法保留了其最佳实践下的特征数量设置。",[]]