[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-3DOM-FBK--deep-image-matching":3,"tool-3DOM-FBK--deep-image-matching":61},[4,18,26,36,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},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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"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,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},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",[14,35],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":76,"owner_email":74,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":112,"forks":113,"last_commit_at":114,"license":115,"difficulty_score":10,"env_os":116,"env_gpu":117,"env_ram":118,"env_deps":119,"category_tags":128,"github_topics":130,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":150,"updated_at":151,"faqs":152,"releases":181},4300,"3DOM-FBK\u002Fdeep-image-matching","deep-image-matching","Multiview matching with deep-learning and hand-crafted local features for COLMAP and other SfM software. Supports high-resolution formats and images with rotations. Both CLI and GUI are supported.","deep-image-matching 是一款专为多视图几何重建设计的开源匹配工具，旨在为 COLMAP、OpenMVG、MicMac 及 Agisoft Metashape 等摄影测量软件提供高精度的图像特征点与匹配对。它有效解决了传统算法在处理高分辨率图像、大角度旋转或弱纹理场景时匹配成功率低的问题，显著提升了三维重建的鲁棒性。\n\n该工具非常适合计算机视觉研究人员、测绘工程师以及需要构建高质量三维模型的开发者使用。其核心亮点在于灵活融合了前沿的深度学习模型（如 XFeat、DeDoDe、RIPE 等）与传统手工特征（如 SIFT），用户可根据硬件条件（支持 GPU 加速）和场景需求自由选择算法组合。此外，deep-image-matching 不仅支持命令行和图形界面两种操作模式，还内置了基于深度学习的图像检索与图聚类功能，甚至能直接调用后端引擎完成完整的运动恢复结构（SfM）流程。需要注意的是，目前该项目仍处于活跃开发与实验阶段，适合愿意尝试新技术并参与反馈的专业用户。","\u003Cdiv align=\"center\">\n\n[![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMatches_for-COLMAP-red)](https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap) [![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMatches_for-OpenMVG-red)](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG) [![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMatches_for-MICMAC-red)](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac) ![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMatches_for-Metashape-red)\n\n[![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPowered_by-Kornia-green)](https:\u002F\u002Fgithub.com\u002Fkornia\u002Fkornia) [![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPowered_by-hloc-green)](https:\u002F\u002Fgithub.com\u002Fkornia\u002Fkornia) [![GitHub Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002F3DOM-FBK\u002Fdeep-image-matching)](https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Freleases) [![Static Badge](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-DeepImageMatcher-blue)](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F)\n\n\u003C\u002Fdiv>\n\n# DEEP-IMAGE-MATCHING\n\n| SIFT                                                  | DISK                                                    | IMAGES ORIENTATION                                        | DENSE WITH ROMA                                     |\n| ----------------------------------------------------- | ------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------- |\n| \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_82ed7dfda5d8.gif' height=\"100\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_cc0dec0f67aa.gif' height=\"100\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_8132626686f3.gif' height=\"100\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_63659adbcee7.gif' height=\"100\"> |\n\n| SIFT                                                  | SUPERGLUE                                                 |\n| ----------------------------------------------------- | --------------------------------------------------------- |\n| \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_ddd82a13d20d.gif' height=\"165\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_96080062765a.gif' height=\"165\"> |\n\nMultivew matcher for SfM software. Support both deep-learning based and hand-crafted local features and matchers and export keypoints and matches directly in a COLMAP database or to Agisoft Metashape by importing the reconstruction in Bundler format. Now, it supports both OpenMVG and MicMac. Feel free to collaborate!\n\nFor how to use DIM, check the \u003Ca href=\"https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F\">Documentation\u003C\u002Fa> (updated for the master branch).\n\n**Please, note that `deep-image-matching` is under active development** and it is still in an experimental stage. If you find any bug, please open an issue. **For the licence of individual local features and matchers please refer to the authors' original projects**.\n\nKey features:\n\n- Multiview\n- Large format images\n- SOTA deep-learning and hand-crafted features\n- Support for image rotations\n- Compatibility with several SfM software\n- Support image retrieval with deep-learning local features\n- Graph-based clustering\n- Run SfM directly in DIM (pycolmap, openmvg, etc)\n\n### Supported Extractors\n\n| Algorithm       | Year | Paper link   | Github link | Notes |\n| ---------       | ---- | -----------   | ---------- | ----- |\n| RIPE            | 2025 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.04839) | [link](https:\u002F\u002Fgithub.com\u002Ffraunhoferhhi\u002FRIPE) | supported |\n| RDD sparse      | 2025 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.08013) | [link](https:\u002F\u002Fgithub.com\u002Fxtcpete\u002Frdd) | supported |\n| LiftFeat        | 2025 | [link](https:\u002F\u002Fwww.arxiv.org\u002Fabs\u002F2505.03422) | [link](https:\u002F\u002Fgithub.com\u002Flyp-deeplearning\u002FLiftFeat) | supported |\n| XFeat           | 2024 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.19174) | [link](https:\u002F\u002Fgithub.com\u002Fverlab\u002Faccelerated_features) | supported |\n| DeDoDe          | 2024 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2308.08479) | [link](https:\u002F\u002Fgithub.com\u002FParskatt\u002FDeDoDe) | only GPU  |\n| ALIKED          | 2023 | [link](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2304.03608) | [link](https:\u002F\u002Fgithub.com\u002FShiaoming\u002FALIKED) | supported |\n| SRIF            | 2023 | [link](https:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fabs\u002Fpii\u002FS0924271623002277) | [link](https:\u002F\u002Fgithub.com\u002FLJY-RS\u002FSRIF) | supported |\n| DISK            | 2020 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.13566) | [link](https:\u002F\u002Fgithub.com\u002Fcvlab-epfl\u002Fdisk) | supported |\n| KeyNet          | 2019 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F1904.00889) | [link](https:\u002F\u002Fgithub.com\u002FaxelBarroso\u002FKey.Net) | supported |\n| SuperPoint      | 2018 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F1712.07629) | [link](https:\u002F\u002Fgithub.com\u002Fmagicleap\u002FSuperPointPretrainedNetwork) | supported |\n| Superpoint open | 2018 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F1712.07629) | [link](https:\u002F\u002Fgithub.com\u002Frpautrat\u002FSuperPoint) | supported |\n| HardNet      | 2017 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.10872) | [link](https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet) | supported |\n| ORB             | 2011 | [link](https:\u002F\u002Fdocs.opencv.org\u002F3.4\u002Fd1\u002Fd89\u002Ftutorial_py_orb.html) | [link](https:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F6126544) | from OpenCV |\n| SIFT            | 2004 | [link](https:\u002F\u002Fdocs.opencv.org\u002F4.x\u002Fda\u002Fdf5\u002Ftutorial_py_sift_intro.html) | [link](https:\u002F\u002Fwww.cs.ubc.ca\u002F~lsigal\u002F425_2024W1\u002Fijcv04.pdf) | from OpenCV |\n\n\n### Supported Matchers\n\n| Algorithm | Year | Paper link | Github link | Notes |\n| --------- | ---- | ----------- | ---------- | ----- |\n| LightGlue | 2023 | [link](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2306.13643) | [link](https:\u002F\u002Fgithub.com\u002Fcvg\u002FLightGlue) | with SuperPoint, DISK, and ALIKED |\n| LighterGlue | 2023 | [link](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2306.13643) | [link](https:\u002F\u002Fgithub.com\u002Fcvg\u002FLightGlue) | with XFeat |\n| RoMa | 2023 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.15404) | [link](https:\u002F\u002Fgithub.com\u002FParskatt\u002FRoMa) | supported |\n| SE2-LoFTR | 2022 | [link](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FCVPR2022W\u002FIMW\u002Fpapers\u002FBokman_A_Case_for_Using_Rotation_Invariant_Features_in_State_of_CVPRW_2022_paper.pdf) | [link](https:\u002F\u002Fgithub.com\u002Fgeorg-bn\u002Fse2-loftr) | no tiling and only GPU |\n| LoFTR | 2021 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.00680) | [link](https:\u002F\u002Fgithub.com\u002Fzju3dv\u002FLoFTR) | only GPU |\n| SuperGlue | 2020 | [link](https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.11763) | [link](https:\u002F\u002Fgithub.com\u002Fmagicleap\u002FSuperGluePretrainedNetwork) | with SuperPoint |\n| Nearest Neighbor | - | - | - | from KORNIA |\n\n### Supported SfM software  \n\n| &check; [COLMAP](https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap)                                |\n| &check; [OpenMVG](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG)                               |\n| &check; [MICMAC](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac)                                |\n| &check; [Agisoft Metashape](https:\u002F\u002Fwww.agisoft.com\u002F)                     |\n| &check; Software that supports bundler format |\n\n## Colab demo and notebooks\n\nWant to run on a sample dataset? ➡️ [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fcolab_run_from_bash_example.ipynb)\n\nWant to run on your images? ➡️ [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fcolab_run_from_bash_custom_images.ipynb)\n\nDIM can also be utilized as a library instead of being executed through the Command Line Interface (refer to the `Usage Instructions`).\n\nFor quick examples, see:\n\n- `demo.py` - Simple script demonstrating the basic workflow\n- `demo.ipynb` - Interactive notebook version of the demo\n- `notebooks\u002Fsfm_pipeline.ipynb` - Complete SfM pipeline with detailed explanations\n\n## Local Installation\n\nFor installing deep-image-matching, we recommend using [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) for fast and reliable package management:\n\n```bash\n# Install uv if you haven't already\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n\n# Create and activate a virtual environment\nuv venv --python 3.9\nsource .venv\u002Fbin\u002Factivate  # On Windows: .venv\\Scripts\\activate\n```\n\nThen, you can install deep-image-matching using uv:\n\n```bash\nuv pip install -e .\n```\n\nThis command will install the package in editable mode, allowing you to modify the source code and see changes immediately without needing to reinstall. If you want to use deep-image-matching as a non-editable library, you can also install it without the `-e` flag.\n\nThis will also install `pycolmap` as a dependency, which is required for running the 3D reconstruction.\nIf you have any issues with `pycolmap`, you can manually install it following the official instructions [here](https:\u002F\u002Fcolmap.github.io\u002Fpycolmap\u002Findex.html).\n\nTo verify that deep-image-matching is correctly installed, you can try to import the package in a Python shell:\n\n```python\nimport deep_image_matching as dim\n```\n\nTo test most of the functionality, run the tests to check if deep-image-matching is correctly installed, run:\n\n```bash\nuv run pytests\n```\n\nFor more information, check the [documentation](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002Finstallation\u002F).\n\n### Why uv?\n\nThis project has migrated from conda\u002Fpip to [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) for dependency management. Benefits include:\n\n- Faster installation: uv is significantly faster than pip for dependency resolution and installation\n- Better dependency resolution: More reliable resolution of complex dependency trees\n- Lockfile support: `uv.lock` ensures reproducible installations across different environments\n- Integrated tooling: Built-in support for virtual environments, Python version management, and project building\n- Cross-platform consistency: Better support for different operating systems and architectures\n\n### Conda\u002Fpip installation\n\nIf you have any issue with uv, you prefer to have a global installation of DIM, or you have any other problem with the installation, you can use conda\u002Fmanba to create an environment and install DIM from source using pip:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching.git\ncd deep-image-matching\n\nconda create -n deep-image-matching python=3.9\nconda activate deep-image-matching\npip install -e .\n```\n\n### Docker Installation\n\nFor Docker installation, see the [Docker Installation](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002Finstallation#using-docker\u002F) section in the documentation.\n\n## Usage instructions\n\n### Quick start with the demo\n\nFor a quick start, check out the `demo.py` script or `demo.ipynb` notebook that demonstrate basic usage with the example dataset:\n\n```bash\npython demo.py --dir assets\u002Fexample_cyprus --pipeline superpoint+lightglue\n```\n\nThe demo runs the complete pipeline from feature extraction to 3D reconstruction using the provided example dataset.\n\nA similar demo example is also available as a notebook in `demo.ipynb`.\n\n### Command Line Interface\n\nUse the following command to see all the available options from the CLI:\n\n```bash\npython -m deep_image_matching --help\n```\n\nFor example, to run the matching with SuperPoint and LightGlue on the example_cyprus dataset:\n\n```bash\npython -m deep_image_matching --dir assets\u002Fexample_cyprus --pipeline superpoint+lightglue\n```\n\nThe `--dir` parameter defines the processing directory, where all the results will be saved. This directory must contain a subfolder named **images** with all the images to be processed.\n\n### Library usage\n\nDeep-image-matching can also be used as a Python library. For a comprehensive example showing the complete SfM pipeline, see `notebooks\u002Fsfm_pipeline.ipynb`.\n\nFor detailed usage instructions and configurations, refer to the [documentation](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002Fgetting_started).\n\n\u003C!-- To run the GUI, you can use the following command:\n\n```bash\npython main.py --gui\n``` -->\n\n## Advanced usage\n\nFor advanced usage, please refer to the [documentation](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F) and\u002For check the `scripts` directory.\n\n### Merging databases with different local features\n\nTo run the matching with different local features and\u002For matchers and marging together the results, you can use scripts in the `.\u002Fscripts` directory for merging the COLMAP databases.\n\n```bash\npython .\u002Fjoin_databases.py --help\npython .\u002Fjoin_databases.py --input path\u002Fto\u002Fdir\u002Fwith\u002Fdatabases --output path\u002Fto\u002Foutput\u002Fdir\n```\n\n### Exporting the solution to Metashape\n\nSuggested solution:\n* It is now possible to run SfM directly in Metashape using 2D observations extracted in DIM. You can use the script `export_to_bundler.py` from the scripts folder. It will create a fake bundler file. Then in Metashape import all the images you need, import camera poses using the bundler file, select all images and reset the alignment. Finally right click, align selected cameras (see [issue](https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fissues\u002F94)).\n\n\nOther solutions:\n* To export the solution to Metashape, you can export the COLMAP database to Bundler format and then import it into Metashape. This can be done from Metashape GUI, by first importing the images and then use the function `Import Cameras` (File -> Import -> Import Cameras) to select Bundler file (e.g., bundler.out) and the image list file (e.g., bundler_list.txt).\n\n* Alternatevely, you can use the `export_to_metashape.py` script to automatically create a Metashape project from a reconstruction saved in Bundler format. The script `export_to_metashape.py` takes as input the solution in Bundler format and the images and it exports the solution to Metashape. It requires to install Metashape as a Python module in your environment and to have a valid license. Please, refer to the instructions at [https:\u002F\u002Fgithub.com\u002Ffranioli\u002Fmetashape](https:\u002F\u002Fgithub.com\u002Ffranioli\u002Fmetashape).\n\n## How to contribute\n\nAny contribution to this repo is really welcome!\nIf you want to contribute to the project, please, check the [contributing guidelines](.\u002FCONTRIBUTING.md).\n\n## To Do List\n\nSee the [TODO list](notes.md) for the list of features and improvements that are planned for the future.\n\n## References\n\nIf you find the repository useful for your work consider citing the papers:\n\n```bibtex\n@article{morelli2024_deep_image_matching,\n  AUTHOR = {Morelli, L. and Ioli, F. and Maiwald, F. and Mazzacca, G. and Menna, F. and Remondino, F.},\n  TITLE = {DEEP-IMAGE-MATCHING: A TOOLBOX FOR MULTIVIEW IMAGE MATCHING OF COMPLEX SCENARIOS},\n  JOURNAL = {The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences},\n  VOLUME = {XLVIII-2\u002FW4-2024},\n  YEAR = {2024},\n  PAGES = {309--316},\n  DOI = {10.5194\u002Fisprs-archives-XLVIII-2-W4-2024-309-2024}\n}\n```\n\n```bibtex\n@article{morelli2022photogrammetry,\n  title={PHOTOGRAMMETRY NOW AND THEN--FROM HAND-CRAFTED TO DEEP-LEARNING TIE POINTS--},\n  author={Morelli, Luca and Bellavia, Fabio and Menna, Fabio and Remondino, Fabio},\n  journal={The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences},\n  volume={48},\n  pages={163--170},\n  year={2022},\n  publisher={Copernicus GmbH}\n}\n```\n\n```bibtex\n@article{ioli2024,\n  title={Deep Learning Low-cost Photogrammetry for 4D Short-term Glacier\nDynamics Monitoring},\n  author={Ioli, Francesco and Dematteis, Nicolò and Giordan, Daniele and Nex, Francesco and Pinto Livio},\n  journal={PFG – Journal of Photogrammetry, Remote Sensing and Geoinformation Science},\n  year={2024},\n  DOI = {10.1007\u002Fs41064-023-00272-w}\n}\n```\n\nDepending on the options used, consider citing the corresponding work of:\n\n- [KORNIA](https:\u002F\u002Fgithub.com\u002Fkornia\u002Fkornia)\n- [HLOC](https:\u002F\u002Fgithub.com\u002Fcvg\u002FHierarchical-Localization)\n- [COLMAP](https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap)\n- [OpenMVG](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG)\n- [MICMAC](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac)\n- used local features and matchers\n","\u003Cdiv align=\"center\">\n\n[![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F匹配用于-COLMAP-红色)](https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap) [![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F匹配用于-OpenMVG-红色)](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG) [![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F匹配用于-MICMAC-红色)](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac) ![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F匹配用于-Metashape-红色)\n\n[![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F由-Kornia驱动-绿色)](https:\u002F\u002Fgithub.com\u002Fkornia\u002Fkornia) [![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F由-hloc驱动-绿色)](https:\u002F\u002Fgithub.com\u002Fkornia\u002Fkornia) [![GitHub发布](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002F3DOM-FBK\u002Fdeep-image-matching)](https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Freleases) [![静态徽章](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-DeepImageMatcher-蓝色)](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F)\n\n\u003C\u002Fdiv>\n\n# DEEP-IMAGE-MATCHING\n\n| SIFT                                                  | DISK                                                    | 图像定向                                        | 密集重建与ROMA                                     |\n| ----------------------------------------------------- | ------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------- |\n| \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_82ed7dfda5d8.gif' height=\"100\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_cc0dec0f67aa.gif' height=\"100\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_8132626686f3.gif' height=\"100\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_63659adbcee7.gif' height=\"100\"> |\n\n| SIFT                                                  | SUPERGLUE                                                 |\n| ----------------------------------------------------- | --------------------------------------------------------- |\n| \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_ddd82a13d20d.gif' height=\"165\"> | \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_readme_96080062765a.gif' height=\"165\"> |\n\n用于SfM软件的多视图匹配器。支持基于深度学习和手工设计的局部特征及匹配算法，并可将关键点和匹配直接导出到COLMAP数据库或通过导入Bundler格式的重建文件导出至Agisoft Metashape。目前，它同时支持OpenMVG和MicMac。欢迎合作！\n\n有关如何使用DIM，请查看\u003Ca href=\"https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F\">文档\u003C\u002Fa>（已更新至主分支）。\n\n**请注意，`deep-image-matching`正处于积极开发中**，目前仍处于实验阶段。如果您发现任何错误，请提交问题。**关于各个局部特征和匹配算法的许可信息，请参阅其原作者的项目**。\n\n主要特性：\n\n- 多视图\n- 支持大尺寸图像\n- 当前最先进（SOTA）的深度学习和手工设计特征\n- 支持图像旋转\n- 与多种SfM软件兼容\n- 支持基于深度学习局部特征的图像检索\n- 基于图的聚类\n- 可在DIM中直接运行SfM（pycolmap、openmvg等）\n\n### 支持的特征提取器\n\n| 算法       | 年份 | 论文链接   | Github链接 | 备注 |\n| ---------       | ---- | -----------   | ---------- | ----- |\n| RIPE            | 2025 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.04839) | [链接](https:\u002F\u002Fgithub.com\u002Ffraunhoferhhi\u002FRIPE) | 支持 |\n| RDD sparse      | 2025 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.08013) | [链接](https:\u002F\u002Fgithub.com\u002Fxtcpete\u002Frdd) | 支持 |\n| LiftFeat        | 2025 | [链接](https:\u002F\u002Fwww.arxiv.org\u002Fabs\u002F2505.03422) | [链接](https:\u002F\u002Fgithub.com\u002Flyp-deeplearning\u002FLiftFeat) | 支持 |\n| XFeat           | 2024 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.19174) | [链接](https:\u002F\u002Fgithub.com\u002Fverlab\u002Faccelerated_features) | 支持 |\n| DeDoDe          | 2024 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2308.08479) | [链接](https:\u002F\u002Fgithub.com\u002FParskatt\u002FDeDoDe) | 仅GPU支持 |\n| ALIKED          | 2023 | [链接](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2304.03608) | [链接](https:\u002F\u002Fgithub.com\u002FShiaoming\u002FALIKED) | 支持 |\n| SRIF            | 2023 | [链接](https:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fabs\u002Fpii\u002FS0924271623002277) | [链接](https:\u002F\u002Fgithub.com\u002FLJY-RS\u002FSRIF) | 支持 |\n| DISK            | 2020 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.13566) | [链接](https:\u002F\u002Fgithub.com\u002Fcvlab-epfl\u002Fdisk) | 支持 |\n| KeyNet          | 2019 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1904.00889) | [链接](https:\u002F\u002Fgithub.com\u002FaxelBarroso\u002FKey.Net) | 支持 |\n| SuperPoint      | 2018 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1712.07629) | [链接](https:\u002F\u002Fgithub.com\u002Fmagicleap\u002FSuperPointPretrainedNetwork) | 支持 |\n| Superpoint open | 2018 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1712.07629) | [链接](https:\u002F\u002Fgithub.com\u002Frpautrat\u002FSuperPoint) | 支持 |\n| HardNet      | 2017 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.10872) | [链接](https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet) | 支持 |\n| ORB             | 2011 | [链接](https:\u002F\u002Fdocs.opencv.org\u002F3.4\u002Fd1\u002Fd89\u002Ftutorial_py_orb.html) | [链接](https:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F6126544) | 来自OpenCV |\n| SIFT            | 2004 | [链接](https:\u002F\u002Fdocs.opencv.org\u002F4.x\u002Fda\u002Fdf5\u002Ftutorial_py_sift_intro.html) | [链接](https:\u002F\u002Fwww.cs.ubc.ca\u002F~lsigal\u002F425_2024W1\u002Fijcv04.pdf) | 来自OpenCV |\n\n\n### 支持的匹配算法\n\n| 算法 | 年份 | 论文链接 | Github链接 | 备注 |\n| --------- | ---- | ----------- | ---------- | ----- |\n| LightGlue | 2023 | [链接](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2306.13643) | [链接](https:\u002F\u002Fgithub.com\u002Fcvg\u002FLightGlue) | 与SuperPoint、DISK和ALIKED配合使用 |\n| LighterGlue | 2023 | [链接](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2306.13643) | [链接](https:\u002F\u002Fgithub.com\u002Fcvg\u002FLightGlue) | 与XFeat配合使用 |\n| RoMa | 2023 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.15404) | [链接](https:\u002F\u002Fgithub.com\u002FParskatt\u002FRoMa) | 支持 |\n| SE2-LoFTR | 2022 | [链接](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FCVPR2022W\u002FIMW\u002Fpapers\u002FBokman_A_Case_for_Using_Rotation_Invariant_Features_in_State_of_CVPRW_2022_paper.pdf) | [链接](https:\u002F\u002Fgithub.com\u002Fgeorg-bn\u002Fse2-loftr) | 不支持分块处理且仅限GPU |\n| LoFTR | 2021 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.00680) | [链接](https:\u002F\u002Fgithub.com\u002Fzju3dv\u002FLoFTR) | 仅限GPU |\n| SuperGlue | 2020 | [链接](https:\u002F\u002Farxiv.org\u002Fabs\u002F1911.11763) | [链接](https:\u002F\u002Fgithub.com\u002Fmagicleap\u002FSuperGluePretrainedNetwork) | 与SuperPoint配合使用 |\n| 最近邻 | - | - | - | 来自KORNIA |\n\n### 支持的SfM软件  \n\n| &check; [COLMAP](https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap)                                |\n| &check; [OpenMVG](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG)                               |\n| &check; [MICMAC](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac)                                |\n| &check; [Agisoft Metashape](https:\u002F\u002Fwww.agisoft.com\u002F)                     |\n| &check; 支持Bundler格式的软件 |\n\n## Colab 演示和笔记本\n\n想在示例数据集上运行吗？➡️ [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fcolab_run_from_bash_example.ipynb)\n\n想在自己的图像上运行吗？➡️ [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fblob\u002Fmaster\u002Fnotebooks\u002Fcolab_run_from_bash_custom_images.ipynb)\n\nDIM 也可以作为库来使用，而不需要通过命令行界面执行（请参阅“使用说明”）。\n\n快速示例请参见：\n\n- `demo.py` - 简单脚本，演示基本工作流程\n- `demo.ipynb` - 演示的交互式笔记本版本\n- `notebooks\u002Fsfm_pipeline.ipynb` - 包含详细说明的完整 SfM 流程\n\n## 本地安装\n\n为了安装 deep-image-matching，我们推荐使用 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) 进行快速可靠的包管理：\n\n```bash\n# 如果尚未安装 uv，请先安装\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n\n# 创建并激活虚拟环境\nuv venv --python 3.9\nsource .venv\u002Fbin\u002Factivate  # 在 Windows 上：.venv\\Scripts\\activate\n```\n\n然后，您可以使用 uv 安装 deep-image-matching：\n\n```bash\nuv pip install -e .\n```\n\n此命令将以可编辑模式安装该包，允许您修改源代码并立即看到更改，而无需重新安装。如果您希望将 deep-image-matching 用作不可编辑的库，也可以不带 `-e` 标志进行安装。\n\n这还将安装 `pycolmap` 作为依赖项，这是运行 3D 重建所必需的。如果在使用 `pycolmap` 时遇到任何问题，您可以按照官方说明[此处](https:\u002F\u002Fcolmap.github.io\u002Fpycolmap\u002Findex.html)手动安装它。\n\n要验证 deep-image-matching 是否正确安装，您可以在 Python shell 中尝试导入该包：\n\n```python\nimport deep_image_matching as dim\n```\n\n要测试大部分功能，可以运行测试以检查 deep-image-matching 是否正确安装：\n\n```bash\nuv run pytests\n```\n\n更多信息请参阅[文档](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002Finstallation\u002F)。\n\n### 为什么选择 uv？\n\n该项目已从 conda\u002Fpip 迁移到 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) 进行依赖管理。其优势包括：\n\n- 更快的安装速度：uv 在依赖解析和安装方面明显快于 pip\n- 更好的依赖解析：更可靠地解决复杂的依赖树\n- 锁文件支持：`uv.lock` 可确保在不同环境中实现可重复的安装\n- 集成工具链：内置对虚拟环境、Python 版本管理和项目构建的支持\n- 跨平台一致性：更好地支持不同的操作系统和架构\n\n### Conda\u002Fpip 安装\n\n如果您在使用 uv 时遇到问题、更倾向于全局安装 DIM，或者在安装过程中遇到其他问题，可以使用 conda\u002Fmanba 创建环境，并使用 pip 从源代码安装 DIM：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching.git\ncd deep-image-matching\n\nconda create -n deep-image-matching python=3.9\nconda activate deep-image-matching\npip install -e .\n```\n\n### Docker 安装\n\n有关 Docker 安装的信息，请参阅文档中的[Docker 安装](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002Finstallation#using-docker\u002F)部分。\n\n## 使用说明\n\n### 快速入门演示\n\n要快速入门，请查看 `demo.py` 脚本或 `demo.ipynb` 笔记本，它们使用示例数据集演示了基本用法：\n\n```bash\npython demo.py --dir assets\u002Fexample_cyprus --pipeline superpoint+lightglue\n```\n\n该演示使用提供的示例数据集运行从特征提取到 3D 重建的完整流程。\n类似的演示示例也以笔记本形式提供在 `demo.ipynb` 中。\n\n### 命令行界面\n\n使用以下命令可查看 CLI 的所有可用选项：\n\n```bash\npython -m deep_image_matching --help\n```\n\n例如，要在 example_cyprus 数据集上使用 SuperPoint 和 LightGlue 运行匹配：\n\n```bash\npython -m deep_image_matching --dir assets\u002Fexample_cyprus --pipeline superpoint+lightglue\n```\n\n`--dir` 参数定义了处理目录，所有结果都将保存在此目录中。该目录必须包含一个名为 **images** 的子文件夹，其中存放所有待处理的图像。\n\n### 库的使用\n\nDeep-image-matching 也可以作为 Python 库使用。有关展示完整 SfM 流程的综合示例，请参阅 `notebooks\u002Fsfm_pipeline.ipynb`。\n\n详细的使用说明和配置请参阅[文档](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002Fgetting_started)。\n\n\u003C!-- 要运行 GUI，可以使用以下命令：\n\n```bash\npython main.py --gui\n``` -->\n\n## 高级用法\n\n有关高级用法，请参阅[文档](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F)和\u002F或查看 `scripts` 目录。\n\n### 合并具有不同局部特征的数据库\n\n要使用不同的局部特征和\u002F或匹配器进行匹配，并将结果合并在一起，可以使用 `.\u002Fscripts` 目录中的脚本合并 COLMAP 数据库。\n\n```bash\npython .\u002Fjoin_databases.py --help\npython .\u002Fjoin_databases.py --input path\u002Fto\u002Fdir\u002Fwith\u002Fdatabases --output path\u002Fto\u002Foutput\u002Fdir\n```\n\n### 将解决方案导出到 Metashape\n\n建议的解决方案：\n* 现在可以直接在 Metashape 中运行 SfM，使用在 DIM 中提取的 2D 观测值。您可以使用 scripts 文件夹中的 `export_to_bundler.py` 脚本，它会创建一个假的 Bundler 文件。然后在 Metashape 中导入所需的所有图像，使用 Bundler 文件导入相机姿态，选择所有图像并重置对齐。最后右键点击，对齐选定的相机（参见[问题](https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fissues\u002F94))。\n\n其他解决方案：\n* 若要将解决方案导出到 Metashape，可以将 COLMAP 数据库导出为 Bundler 格式，然后再导入 Metashape。这可以通过 Metashape 的图形界面完成：首先导入图像，然后使用“导入相机”功能（文件 -> 导入 -> 导入相机），选择 Bundler 文件（例如 bundler.out）和图像列表文件（例如 bundler_list.txt）。\n\n* 或者，您也可以使用 `export_to_metashape.py` 脚本，自动从以 Bundler 格式保存的重建结果中创建 Metashape 项目。该脚本以 Bundler 格式的解决方案和图像作为输入，将其导出到 Metashape。它需要在您的环境中安装 Metashape 作为 Python 模块，并持有有效许可证。请参阅[https:\u002F\u002Fgithub.com\u002Ffranioli\u002Fmetashape](https:\u002F\u002Fgithub.com\u002Ffranioli\u002Fmetashape)上的说明。\n\n## 如何贡献\n\n欢迎对本仓库的任何贡献！\n如果您想为项目做出贡献，请查看[贡献指南](.\u002FCONTRIBUTING.md)。\n\n## 待办事项列表\n\n有关未来计划的功能和改进，请参阅[待办事项列表](notes.md)。\n\n## 参考文献\n\n如果您觉得本仓库对您的工作有所帮助，请引用以下论文：\n\n```bibtex\n@article{morelli2024_deep_image_matching,\n  AUTHOR = {Morelli, L. and Ioli, F. and Maiwald, F. and Mazzacca, G. and Menna, F. and Remondino, F.},\n  TITLE = {DEEP-IMAGE-MATCHING: 复杂场景多视图影像匹配工具箱},\n  JOURNAL = {国际摄影测量、遥感与空间信息科学档案},\n  VOLUME = {XLVIII-2\u002FW4-2024},\n  YEAR = {2024},\n  PAGES = {309--316},\n  DOI = {10.5194\u002Fisprs-archives-XLVIII-2-W4-2024-309-2024}\n}\n```\n\n```bibtex\n@article{morelli2022photogrammetry,\n  title={摄影测量：过去与现在——从手工制作到深度学习连接点},\n  author={Morelli, Luca and Bellavia, Fabio and Menna, Fabio and Remondino, Fabio},\n  journal={国际摄影测量、遥感与空间信息科学档案},\n  volume={48},\n  pages={163--170},\n  year={2022},\n  publisher={Copernicus GmbH}\n}\n```\n\n```bibtex\n@article{ioli2024,\n  title={基于深度学习的低成本摄影测量技术在冰川四维短期动态监测中的应用},\n  author={Ioli, Francesco and Dematteis, Nicolò and Giordan, Daniele and Nex, Francesco and Pinto Livio},\n  journal={PFG——摄影测量、遥感与地理信息科学期刊},\n  year={2024},\n  DOI = {10.1007\u002Fs41064-023-00272-w}\n}\n```\n\n根据所使用的具体选项，还请参考以下相关工作的引用：\n\n- [KORNIA](https:\u002F\u002Fgithub.com\u002Fkornia\u002Fkornia)\n- [HLOC](https:\u002F\u002Fgithub.com\u002Fcvg\u002FHierarchical-Localization)\n- [COLMAP](https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap)\n- [OpenMVG](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG)\n- [MICMAC](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac)\n- 所使用的局部特征和匹配算法","# deep-image-matching 快速上手指南\n\n`deep-image-matching` (DIM) 是一个用于运动恢复结构（SfM）软件的多视图特征匹配工具。它支持基于深度学习和手工设计的局部特征及匹配器，可直接将关键点和匹配结果导出到 COLMAP 数据库、OpenMVG、MicMac 或 Agisoft Metashape。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Python 版本**: 推荐 **Python 3.9** (部分新特性依赖此版本)\n*   **硬件加速**: 若使用深度学习模型（如 DeDoDe, LoFTR, SuperGlue 等），强烈建议配备 **NVIDIA GPU** 并安装对应的 CUDA 驱动。\n*   **前置依赖**:\n    *   Git (用于克隆代码)\n    *   构建工具 (如 `build-essential` on Linux, Xcode Command Line Tools on macOS)\n\n> **注意**：本项目推荐使用 `uv` 进行包管理，以获得更快的安装速度和更可靠的依赖解析。\n\n## 2. 安装步骤\n\n### 方法一：使用 uv 安装（推荐）\n\n`uv` 是一个极速的 Python 包管理器。\n\n1.  **安装 uv** (如果尚未安装):\n    ```bash\n    curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n    ```\n\n2.  **创建并激活虚拟环境**:\n    ```bash\n    uv venv --python 3.9\n    source .venv\u002Fbin\u002Factivate  # Windows 用户请使用: .venv\\Scripts\\activate\n    ```\n\n3.  **安装 deep-image-matching**:\n    克隆仓库并进入目录（如果尚未克隆）：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching.git\n    cd deep-image-matching\n    ```\n    \n    执行安装命令（`-e` 表示可编辑模式，方便修改源码）：\n    ```bash\n    uv pip install -e .\n    ```\n    *该命令会自动安装 `pycolmap` 等必要依赖以支持 3D 重建。*\n\n4.  **验证安装**:\n    在 Python 中尝试导入：\n    ```python\n    import deep_image_matching as dim\n    ```\n    或运行测试套件：\n    ```bash\n    uv run pytests\n    ```\n\n### 方法二：使用 Conda\u002FPip 安装（备选）\n\n如果您习惯使用 Conda 或遇到 `uv` 兼容性问题：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching.git\ncd deep-image-matching\n\nconda create -n deep-image-matching python=3.9\nconda activate deep-image-matching\npip install -e .\n```\n\n## 3. 基本使用\n\n### 准备工作\n确保你的工作目录下有一个名为 `images` 的子文件夹，并将所有待处理图片放入其中。例如：\n```text\nmy_project\u002F\n└── images\u002F\n    ├── img1.jpg\n    ├── img2.jpg\n    └── ...\n```\n\n### 命令行快速启动 (CLI)\n\n最简单的用法是运行内置的演示脚本或直接调用模块。以下示例使用 **SuperPoint** 提取特征并结合 **LightGlue** 进行匹配，对示例数据集进行处理：\n\n```bash\npython demo.py --dir assets\u002Fexample_cyprus --pipeline superpoint+lightglue\n```\n\n若要处理你自己的图片目录（假设目录名为 `my_project`）：\n\n```bash\npython -m deep_image_matching --dir my_project --pipeline superpoint+lightglue\n```\n\n**参数说明：**\n*   `--dir`: 指定处理目录（必须包含 `images` 子文件夹）。\n*   `--pipeline`: 指定“特征提取器 + 匹配器”组合。常用组合包括：\n    *   `superpoint+lightglue` (经典高效)\n    *   `disk+lightglue`\n    *   `xfeat+lighterglue`\n    *   `sift+nearest_neighbor` (传统算法)\n\n### 作为 Python 库使用\n\n你也可以在 Python 脚本或 Jupyter Notebook 中直接调用 DIM 作为库。完整的 SfM 流程示例请参考项目中的 `notebooks\u002Fsfm_pipeline.ipynb`。\n\n基础导入方式：\n```python\nimport deep_image_matching as dim\n\n# 具体 API 调用请参考官方文档或 notebooks 示例\n```\n\n---\n*提示：更多高级用法（如合并不同特征的数据库、自定义配置）请参阅项目的 [官方文档](https:\u002F\u002F3dom-fbk.github.io\u002Fdeep-image-matching\u002F)。*","某文化遗产保护团队正在对一座拥有复杂浮雕和重复纹理的古建筑进行高精度三维重建，需处理数百张不同光照和角度拍摄的高分辨率照片。\n\n### 没有 deep-image-matching 时\n- **特征匹配失败率高**：面对建筑表面大量重复的砖石纹理，传统 SIFT 算法容易产生错误匹配，导致后续建模出现重影或断裂。\n- **大尺寸图像处理困难**：原始照片均为亿级像素的大画幅格式，常规工具内存溢出频繁，被迫降采样处理从而丢失细节。\n- **旋转视角支持不足**：由于拍摄角度包含大量非水平旋转图像，旧流程无法有效对齐，需要人工预旋转图片，耗时费力。\n- **软件兼容性割裂**：团队需要在不同软件间手动转换数据格式才能将匹配结果导入 COLMAP 或 Metashape，工作流繁琐且易出错。\n\n### 使用 deep-image-matching 后\n- **精准捕捉复杂纹理**：利用 XFeat 或 DeDoDe 等深度学习特征提取器，即使在重复纹理区域也能实现鲁棒匹配，显著提升了点云密度和准确性。\n- **原生支持高分辨率**：直接处理全分辨率大图而无需降采样，完整保留了古建筑表面的微小雕刻细节，同时通过图聚类优化了计算效率。\n- **自动适应任意旋转**：内置的旋转不变性机制让团队无需预处理即可直接输入任意角度的照片，自动化程度大幅提高。\n- **无缝对接主流管线**：一键将匹配结果导出为 COLMAP 数据库或 Bundler 格式，直接打通从特征匹配到稀疏重建的全流程，兼容 OpenMVG 等多种后端。\n\ndeep-image-matching 通过融合前沿深度学习算法与传统几何约束，彻底解决了复杂场景下高保真三维重建的匹配瓶颈。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002F3DOM-FBK_deep-image-matching_82ed7dfd.gif","3DOM-FBK","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002F3DOM-FBK_b8d24b4a.jpg",null,"Bruno Kessler Foundation (FBK)","Trento, Italy","3DOMFBK","http:\u002F\u002F3dom.fbk.eu","https:\u002F\u002Fgithub.com\u002F3DOM-FBK",[81,85,89,93,97,101,105,108],{"name":82,"color":83,"percentage":84},"Python","#3572A5",85.4,{"name":86,"color":87,"percentage":88},"Jupyter Notebook","#DA5B0B",11.7,{"name":90,"color":91,"percentage":92},"JavaScript","#f1e05a",1.5,{"name":94,"color":95,"percentage":96},"HTML","#e34c26",0.8,{"name":98,"color":99,"percentage":100},"CSS","#663399",0.3,{"name":102,"color":103,"percentage":104},"Shell","#89e051",0.1,{"name":106,"color":107,"percentage":104},"Dockerfile","#384d54",{"name":109,"color":110,"percentage":111},"Batchfile","#C1F12E",0,529,74,"2026-03-30T18:20:30","NOASSERTION","Linux, macOS, Windows","部分算法必需（如 DeDoDe, SE2-LoFTR, LoFTR 仅支持 GPU），其他算法可选。具体显存和 CUDA 版本未说明，需根据所选深度学习模型（如 SuperPoint, LightGlue 等）自行配置 PyTorch 环境。","未说明（处理大格式图像和多视图数据通常建议 16GB+）",{"notes":120,"python":121,"dependencies":122},"推荐使用 uv 进行依赖管理（比 pip\u002Fconda 更快），也支持 conda\u002Fmamba。部分特征提取器（如 SIFT, ORB）来自 OpenCV，部分匹配器（如 LightGlue, SuperGlue）需要预训练模型。若使用 pycolmap 进行三维重建，需确保其正确安装。项目处于实验阶段，不同算法的许可证需参考原作者项目。","3.9+",[123,124,125,126,127],"torch","kornia","pycolmap","opencv-python","numpy",[14,15,52,129],"其他",[131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149],"colmap","deep-learning","image-matching","keypoint-matching","keypoints","local-feature-matching","multiview","slam","structure-from-motion","high-resolution-image","historical-images","lightglue","loftr","photogrammetry","rotations","superglue","aerial-photogrammetry","terrestrial-photogrammetry","image-retrieval","2026-03-27T02:49:30.150509","2026-04-06T17:24:43.393853",[153,158,163,168,172,176],{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},19578,"在 Windows 上运行时报错崩溃（涉及 pycolmap 和 torch），如何解决？","这是因为 PyTorch 在 PyColmap 之前导入导致的兼容性问题。解决方法是修改 `src\u002Fdeep_image_matching\u002Fimage_matching.py` 文件，将 `import pycolmap` 移动到 `import torch` 之前。具体代码顺序应调整为：\n```python\nimport h5py\nimport numpy as np\nimport pycolmap   # 必须在导入 torch 之前导入 pycolmap 以避免兼容性问题\nimport torch\nfrom tqdm import tqdm\n```\n这样可以解决 Windows 下的崩溃问题。","https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fissues\u002F35",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},19579,"处理大分辨率图像（如 4K）时匹配结果不准确或关键点分布不均怎么办？","大分辨率图像纹理更丰富，默认的关键点数量可能不足以覆盖主要物体，导致关键点集中在背景。解决方案有两个：\n1. 增加提取器的 `max_keypoints` 参数。例如，对于 4K 图像，将其设置为 32000（默认通常为 8000），可以获得与 2K 图像相当的效果。\n2. 使用分块（tiling）预处理功能，通过设置 `tile_size` 并启用 `try_match_full_images`，可以让关键点分布更均匀。","https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fissues\u002F39",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},19580,"如何配置多相机（Rig）系统以进行联合捆绑调整（Bundle Adjustment）？","最简单的方法是将每个相机的图像放入单独的子文件夹中，然后创建一个 JSON 配置文件传递给 `rig_bundle_adjuster`。配置示例如下：\n```json\n[\n    {\n      \"ref_camera_id\": 1,\n      \"cameras\": [\n        {\n            \"camera_id\": 1,\n            \"image_prefix\": \"cam0\",\n            \"cam_from_rig_rotation\": [1, 0, 0, 0],\n            \"cam_from_rig_translation\": [0, 0, 0]\n        },\n        {\n            \"camera_id\": 2,\n            \"image_prefix\": \"cam1\",\n            \"cam_from_rig_rotation\": [1, 0, 0, 0],\n            \"cam_from_rig_translation\": [0.120, 0, 0]\n        }\n      ]\n    }\n]\n```\n其中 `image_prefix` 对应子文件夹名称。`cam_from_rig_rotation` 和 `cam_from_rig_translation` 是可选的，如果不提供，COLMAP 会尝试估计相对姿态。","https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fissues\u002F78",{"id":169,"question_zh":170,"answer_zh":171,"source_url":162},19581,"如何查看或调试特征匹配的结果？","可以使用项目根目录下的 `show_matches.py` 脚本来可视化匹配结果。如果运行时报错 `ModuleNotFoundError: No module named 'cv2'`，即使已安装 opencv-python，可能是环境路径问题。请确保在当前激活的 conda 环境中重新安装：`pip install opencv-python`。此外，匹配后的特征对数据通常保存在 `results_\u003Cextractor>+\u003Cmatcher>_matching_lowres_quality_high\u002Fdebug` 文件夹中供进一步分析。",{"id":173,"question_zh":174,"answer_zh":175,"source_url":167},19582,"如何将图像与其对应的相机模型关联起来？","推荐的方式是创建一个 YAML 或 JSON 配置文件来定义相机参数和图像前缀。另一种简单的方法是采用目录结构区分：为每个相机创建一个独立的子文件夹，并在配置文件中通过 `image_prefix` 指定该文件夹名称。这样程序会自动将文件夹内的图像关联到对应的相机 ID。",{"id":177,"question_zh":178,"answer_zh":179,"source_url":180},19583,"升级到 2.0.0 版本后，使用分块（tiling）预筛选时程序运行极慢或卡住是什么原因？","这通常发生在多相机配置下启用分块预筛选时。虽然具体原因可能因数据而异，但建议检查以下几点：\n1. 确认 `camera_options` 配置文件格式正确，特别是 `single_camera` 是否设为 `false`。\n2. 尝试在不使用 `--tiling` 参数的情况下运行，看是否正常，以隔离是否为分块算法本身的问题。\n3. 如果问题依旧，可能是默认设置在大数据量下效率较低，建议手动调整分块大小或暂时回退到旧版本直到官方修复。维护者表示难以复现该问题，若持续存在需提供具体日志以便排查。","https:\u002F\u002Fgithub.com\u002F3DOM-FBK\u002Fdeep-image-matching\u002Fissues\u002F102",[182,187,192,197,202,207],{"id":183,"version":184,"summary_zh":185,"released_at":186},117648,"2.0.0","# 发布说明—重大变更（1.3.0 -> 2.0.0）\n\n经过相当长的一段时间，我们终于将 `dev` 分支合并到 `master`，以引入（若干）新更新。\n在更新 DIM 时请务必小心，因为此次更新包含许多重大（且可能破坏现有功能的）变化：\n\n- **环境与依赖管理**\n  - 默认的环境管理工具已从 pip\u002Fconda 切换为 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F)。请参阅文档获取具体操作指南。\n    - 使用 `uv sync`（或 `uv sync --dev`）进行项目初始化。\n    - 旧版安装方式（`conda` + `pip install -e .`）仍受支持。\n\n- **入口点与脚本**\n  - 移除了项目根目录下的 `main.py`。\n    - 主入口现为 `src\u002Fdeep_image_matching\u002F__main__.py`。安装 DIM 后，您可以在任何位置运行完整流程，无需再位于 DIM 仓库目录中：\n      `python -m deep_image_matching --dir \u003Cimages> --pipeline \u003Cpipeline>`\n  - 新增了 `demo.py` 和 `demo.ipynb`，用于展示 DIM 的主要功能；用户应根据自定义工作流编写自己的脚本。\n  - 您可以使用 [sfm_pipeline.ipynb](notebooks\u002Fsfm_pipeline.ipynb) 笔记本来详细了解 DIM 的工作流程。\n\n- **依赖项**\n  - 将 `pycolmap` 更新至 3.12 版本（API 发生重大变化，请检查您的脚本）。\n  - 从依赖列表中移除了 `pandas` 和 `xformers`。\n  - 新增了 `ruff` 用于代码风格检查（替代 flake8\u002Fblack）。\n  - 更新并清理了 `pyproject.toml` 中的依赖项。\n\n- **功能与特性**\n  - 新增了三角测量模块和稠密三角测量笔记本。\n  - 改进了几何验证，并添加了相关测试。\n  - 增加了对旋转图像的关键点正确位置导出的支持。\n  - 改进了对图像方向 EXIF 数据的处理。\n  - 支持 rasterio 格式及热成像数据。\n  - 引入了基于全局描述符和 k-means 的关键帧选择功能。\n  - 新增了可选择 LightGlue 或 ROMA 进行预选配的功能。\n  - 改进了可视化选项（图、最小生成树、社区结构等）。\n  - 新增了图像归一化和关键点分布评估的脚本。\n\n- **代码库重构**\n  - 重构了导入语句：所有导入现均为包内部引用。\n  - 重构了匹配器和提取器类中的配置管理。\n  - 更新了 ROMA 和 LightGlue 的默认参数及配置暴露方式。\n  - 清理并模块化了 `reconstruction.py` 及三角测量相关模块。\n  - 将图模板目录移至 `utils` 目录下。\n  - 将 HLOC 移至 `thirdparty` 目录。\n\n- **其他显著变化**\n  - 废弃了 pycolmap 重建中的 Bundler 导出功能。\n  - 改进了输出文件夹的处理逻辑（覆盖前会提示用户确认）。\n  - 为 `python -m deep_image_matching` 添加了主入口点。\n  - 更新了文档，以适应新的安装和使用方式。\n  - 对代码库进行了多项修复和小幅优化。\n\n**注意：**\n部分变更可能会导致现有工作流或脚本无法正常运行。请仔细阅读更新后的文档。","2025-08-20T14:45:57",{"id":188,"version":189,"summary_zh":190,"released_at":191},117649,"1.3.0","这是预发布版本。\n我们很快将发布 2.0 版本，该版本将整合当前 `dev` 分支的所有更新，","2025-07-04T18:14:52",{"id":193,"version":194,"summary_zh":195,"released_at":196},117650,"0.0.1","深度图像匹配 v0.\n这是一个较旧且简单的 DIM 版本，但仍然可用，仅供内部使用。\n**除非您有充分的理由必须使用此版本，否则请使用更近的 DIM 版本。**","2024-05-02T16:50:46",{"id":198,"version":199,"summary_zh":200,"released_at":201},117651,"1.2.4","- 首次发布于 [PyPi](https:\u002F\u002Fpypi.org\u002Fproject\u002Fdeep-image-matching\u002F)\n- 更新了 DIM 内所有模块的导入语句\n- 优化配置管理，支持在 Jupyter 笔记本中运行 DIM\n- 更新了 export_to_db 和 export_to_openmvg 函数，使其在函数内部读取相机配置文件（注意，函数参数已更改，现在传递的是文件路径，而非配置字典）\n- 添加了示例笔记本\n- 添加了根据已知相机位姿进行稠密匹配和三角测量的笔记本\n- 添加了基于 GCP 对稠密重建进行地理参考的笔记本（实验性功能）\n- 使用 RoMa 改进了稠密匹配\n- 增加了基于 RoMa 的图像块预选功能\n- 更新了测试：现在运行测试不再需要 main.py 脚本\n- 更新了 COLMAPdatabase 类，新增了用于读取数据库内数据及使用上下文管理器的方法\n- 各种小改进","2024-04-13T16:38:31",{"id":203,"version":204,"summary_zh":205,"released_at":206},117652,"1.0.0","新功能：\n\n- 发布 1.0.0 版本\n- 将解决方案导出至 [**OpenMVG**](https:\u002F\u002Fgithub.com\u002FopenMVG\u002FopenMVG)\n- 将解决方案导出至 [**MICMAC**](https:\u002F\u002Fgithub.com\u002FmicmacIGN\u002Fmicmac)\n- 可在 YAML 文件中为所有图像或部分图像定义不同的 **相机模型**\n- 图形可视化（感谢 @gperda）\n- Docker 安装（感谢 @kauevestena）\n- 扩展文档，新增“DIM 使用说明”章节、示例及模块 API 文档。\n- 重新实现 Se2-LOFTR，用于完整图像处理（而非基于图块的匹配）。\n- 更新命令行解析器\n- 在调试模式下（CLI 中的 -V 选项）添加了带有关键点和匹配结果的图像导出功能。\n- 模型权重会自动从原始仓库下载。\n- 添加了用于高级处理的脚本\n- 更新了单元测试和 GitHub Actions\n- 多处修复 bug 并进行小幅改进\n\n首次贡献者：\n- @gperda\n- @kauevestena\n- @nneilsutherland\n- @elliestath","2024-03-19T11:30:23",{"id":208,"version":209,"summary_zh":210,"released_at":211},117653,"0.1.0","这是深度图像匹配的第一个稳定版本。","2024-01-24T14:24:30"]