[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-tjiiv-cprg--EPro-PnP":3,"tool-tjiiv-cprg--EPro-PnP":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 真正成长为懂上",158594,2,"2026-04-16T23:34:05",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":77,"languages":78,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":95,"env_os":75,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":101,"github_topics":103,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":113,"updated_at":114,"faqs":115,"releases":145},8274,"tjiiv-cprg\u002FEPro-PnP","EPro-PnP","[CVPR 2022 Best Student Paper] EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estimation","EPro-PnP 是一款专为单目物体 6 自由度姿态估计设计的概率化神经网络层，曾荣获 CVPR 2022 最佳学生论文奖。在传统方法中，利用透视 n 点（PnP）算法求解物体姿态时，由于内部包含不可微的优化步骤，导致神经网络难以通过反向传播端到端地训练所有组件，常引发收敛困难。EPro-PnP 巧妙地将这一过程转化为连续的概率分布输出，本质上可视为常用 Softmax 层的连续推广版本。它不再直接搜索单一的最优姿态，而是计算姿态的后验概率密度，从而实现了完全的可微性，让网络能够顺畅地学习 3D 坐标、2D 投影及权重等所有输入要素。\n\n这一创新不仅解决了传统 PnP 求解器在深度学习框架中“断链”的难题，还显著提升了姿态估计的精度与鲁棒性。由于其理论具有通用性，该方法也可扩展至其他涉及嵌套优化问题的学习模型中。EPro-PnP 非常适合计算机视觉领域的研究人员、算法工程师以及正在开发高精度物体姿态估计系统的开发者使用。无论是希望复现前沿学术成果，还是需要在实际项目中部署可靠的单目姿态估算方案，EPro-PnP 都提供了一个理论扎实且工程友好的高效选择。","# EPro-PnP\n\n📢 **NEWS:** We have released [EPro-PnP-v2](https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP-v2). A new updated preprint can be found on [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.12787).\n\n**EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estimation**\n\u003Cbr>\nIn CVPR 2022 (Oral, **Best Student Paper**). [[paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2203.13254.pdf)][[video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=TonBodQ6EUU)]\n\u003Cbr>\n[Hansheng Chen](https:\u002F\u002Flakonik.github.io\u002F)\\*\u003Csup>1,2\u003C\u002Fsup>, [Pichao Wang](https:\u002F\u002Fwangpichao.github.io\u002F)†\u003Csup>2\u003C\u002Fsup>, [Fan Wang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=WCRGTHsAAAAJ&hl=en)\u003Csup>2\u003C\u002Fsup>, [Wei Tian](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=aYKQn88AAAAJ&hl=en)†\u003Csup>1\u003C\u002Fsup>, [Lu Xiong](https:\u002F\u002Fwww.researchgate.net\u002Fscientific-contributions\u002FLu-Xiong-71708073)\u003Csup>1\u003C\u002Fsup>, [Hao Li](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=pHN-QIwAAAAJ&hl=zh-CN)\u003Csup>2\u003C\u002Fsup>\n\n\u003Csup>1\u003C\u002Fsup>Tongji University, \u003Csup>2\u003C\u002Fsup>Alibaba Group\n\u003Cbr>\n\\*Part of work done during an internship at Alibaba Group.\n\u003Cbr>\n†Corresponding Authors: Pichao Wang, Wei Tian.\n\n## Introduction\n\nEPro-PnP is a probabilistic Perspective-n-Points (PnP) layer for end-to-end 6DoF pose estimation networks. Broadly speaking, it is essentially a continuous counterpart of the widely used categorical Softmax layer, and is theoretically generalizable to other learning models with nested \u003C!-- $\\mathrm{arg\\,min}$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_9e70475363b0.png\"> optimization.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_84b21641d9b2.png\" width=\"500\"  alt=\"\"\u002F>\n\nGiven the layer input: an \u003C!-- $N$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_56ffdd748145.png\">-point correspondence set \u003C!-- $X = \\left\\{x^\\text{3D}_i,x^\\text{2D}_i,w^\\text{2D}_i\\,\\middle|\\,i=1\\cdots N\\right\\}$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_cc7eac8be715.png\"> consisting of 3D object coordinates \u003C!-- $x^\\text{3D}_i \\in \\mathbb{R}^3$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_2156661e6287.png\">, 2D image coordinates \u003C!-- $x^\\text{2D}_i \\in \\mathbb{R}^2$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_625f3b969d49.png\">, and 2D weights \u003C!-- $w^\\text{2D}_i \\in \\mathbb{R}^2_+ $ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_96a53d73838c.png\">, a conventional PnP solver searches for an optimal pose \u003C!-- $y^\\ast$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_bafd8d594730.png\"> (rigid transformation in SE(3)) that minimizes the weighted reprojection error. Previous work tries to backpropagate through the PnP operation, yet \u003C!-- $y^\\ast$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_bafd8d594730.png\"> is inherently non-differentiable due to the inner \u003C!-- $\\mathrm{arg\\,min}$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_9e70475363b0.png\"> operation. This leads to convergence issue if all the components in \u003C!-- $X$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_cf2ca0a97f0a.png\"> must be learned by the network.\n\nIn contrast, our probabilistic PnP layer outputs a posterior distribution of pose, whose probability density \u003C!-- $p(y|X)$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_703560af4611.png\"> can be derived for proper backpropagation. The distribution is approximated via Monte Carlo sampling. With EPro-PnP, the correspondences \u003C!-- $X$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_cf2ca0a97f0a.png\"> can be learned from scratch altogether by minimizing the KL divergence between the predicted and target\npose distribution.\n\n## Models\n\n### V1 models in this repository\n\n#### **[EPro-PnP-6DoF](EPro-PnP-6DoF) for 6DoF pose estimation**\u003Cbr>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_305b0d785966.gif\" width=\"500\" alt=\"\"\u002F>\n\n#### **[EPro-PnP-Det](EPro-PnP-Det) for 3D object detection**\n\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_2087c0374812.gif\" width=\"500\" alt=\"\"\u002F>\n\n### New V2 models\n\n#### **[EPro-PnP-Det v2](https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP-v2\u002Ftree\u002Fmain\u002FEPro-PnP-Det_v2): state-of-the-art monocular 3D object detector**\n\nMain differences to [v1b](EPro-PnP-Det):\n\n- Use GaussianMixtureNLLLoss as auxiliary coordinate regression loss\n- Add auxiliary depth and bbox losses\n  \nAt the time of submission (Aug 30, 2022), EPro-PnP-Det v2 **ranks 1st** among all camera-based single-frame object detection models on the [official nuScenes benchmark](https:\u002F\u002Fwww.nuscenes.org\u002Fobject-detection?externalData=no&mapData=no&modalities=Camera) (test split, without extra data).\n\n| Method                                                   | TTA | Backbone |    NDS    |    mAP    |   mATE    |   mASE    |   mAOE    |   mAVE    |   mAAE    | Schedule |\n|:---------------------------------------------------------|:---:|:---------|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:--------:|\n| EPro-PnP-Det v2 (ours)                                   |  Y  | R101     | **0.490** |   0.423   |   0.547   | **0.236** | **0.302** |   1.071   |   0.123   |  12 ep   |\n| [PETR](https:\u002F\u002Fgithub.com\u002Fmegvii-research\u002Fpetr)          |  N  | Swin-B   |   0.483   | **0.445** |   0.627   |   0.249   |   0.449   |   0.927   |   0.141   |  24 ep   |\n| [BEVDet-Base](https:\u002F\u002Fgithub.com\u002FHuangJunJie2017\u002FBEVDet) |  Y  | Swin-B   |   0.482   |   0.422   | **0.529** | **0.236** |   0.395   |   0.979   |   0.152   |  20 ep   |\n| EPro-PnP-Det v2 (ours)                                   |  N  | R101     |   0.481   |   0.409   |   0.559   |   0.239   |   0.325   |   1.090   | **0.115** |  12 ep   |\n| [PolarFormer](https:\u002F\u002Fgithub.com\u002Ffudan-zvg\u002FPolarFormer)  |  N  | R101     |   0.470   |   0.415   |   0.657   |   0.263   |   0.405   | **0.911** |   0.139   |  24 ep   |\n| [BEVFormer-S](https:\u002F\u002Fgithub.com\u002Fzhiqi-li\u002FBEVFormer)     |  N  | R101     |   0.462   |   0.409   |   0.650   |   0.261   |   0.439   |   0.925   |   0.147   |  24 ep   |\n| [PETR](https:\u002F\u002Fgithub.com\u002Fmegvii-research\u002Fpetr)          |  N  | R101     |   0.455   |   0.391   |   0.647   |   0.251   |   0.433   |   0.933   |   0.143   |  24 ep   |\n| [EPro-PnP-Det v1](EPro-PnP-Det_v2)                       |  Y  | R101     |   0.453   |   0.373   |   0.605   |   0.243   |   0.359   |   1.067   |   0.124   |  12 ep   | \n| [PGD](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmdetection3d)       |  Y  | R101     |   0.448   |   0.386   |   0.626   |   0.245   |   0.451   |   1.509   |   0.127   | 24+24 ep |\n| [FCOS3D](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmdetection3d)    |  Y  | R101     |   0.428   |   0.358   |   0.690   |   0.249   |   0.452   |   1.434   |   0.124   |    -     |\n\n#### **[EPro-PnP-6DoF v2](https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP-v2\u002Ftree\u002Fmain\u002FEPro-PnP-6DoF_v2) for 6DoF pose estimation**\u003Cbr>\n\nMain differences to [v1b](EPro-PnP-6DoF):\n\n- Fix w2d scale handling **(very important)**\n- Improve network initialization\n- Adjust loss weights\n\nWith these updates the v2 model can be trained **without 3D models** to achieve better performance (ADD 0.1d = 93.83) than [GDRNet](https:\u002F\u002Fgithub.com\u002FTHU-DA-6D-Pose-Group\u002FGDR-Net) (ADD 0.1d = 93.6), unleashing the full potential of simple end-to-end training.\n\n## Use EPro-PnP in Your Own Model\n\nWe provide a [demo](demo\u002Ffit_identity.ipynb) on the usage of the EPro-PnP layer.\n\n## Citation\n\nIf you find this project useful in your research, please consider citing:\n\n```\n@inproceedings{epropnp, \n  author = {Hansheng Chen and Pichao Wang and Fan Wang and Wei Tian and Lu Xiong and Hao Li, \n  title = {EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estimation}, \n  booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, \n  year = {2022}\n}\n\n@article{epropnpv2,\n  author={Chen, Hansheng and Tian, Wei and Wang, Pichao and Wang, Fan and Xiong, Lu and Li, Hao},\n  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, \n  title={EPro-PnP: Generalized End-to-End Probabilistic Perspective-N-Points for Monocular Object Pose Estimation}, \n  year={2024},\n  doi={10.1109\u002FTPAMI.2024.3354997}\n}\n```\n","# EPro-PnP\n\n📢 **新闻:** 我们发布了 [EPro-PnP-v2](https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP-v2)。新的更新预印本可在 [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.12787) 上找到。\n\n**EPro-PnP：用于单目物体位姿估计的广义端到端概率视角n点法**\n\u003Cbr>\n发表于 CVPR 2022（口头报告，**最佳学生论文**）。[[论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2203.13254.pdf)][[视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=TonBodQ6EUU)]\n\u003Cbr>\n[Hansheng Chen](https:\u002F\u002Flakonik.github.io\u002F)\\*\u003Csup>1,2\u003C\u002Fsup>, [Pichao Wang](https:\u002F\u002Fwangpichao.github.io\u002F)†\u003Csup>2\u003C\u002Fsup>, [Fan Wang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=WCRGTHsAAAAJ&hl=en)\u003Csup>2\u003C\u002Fsup>, [Wei Tian](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=aYKQn88AAAAJ&hl=en)†\u003Csup>1\u003C\u002Fsup>, [Lu Xiong](https:\u002F\u002Fwww.researchgate.net\u002Fscientific-contributions\u002FLu-Xiong-71708073)\u003Csup>1\u003C\u002Fsup>, [Hao Li](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=pHN-QIwAAAAJ&hl=zh-CN)\u003Csup>2\u003C\u002Fsup>\n\n\u003Csup>1\u003C\u002Fsup>同济大学，\u003Csup>2\u003C\u002Fsup>阿里巴巴集团\n\u003Cbr>\n\\*部分工作在阿里巴巴集团实习期间完成。\n\u003Cbr>\n†通讯作者：Pichao Wang, Wei Tian。\n\n## 引言\n\nEPro-PnP 是一种用于端到端 6DoF 位姿估计网络的概率视角n点法（PnP）层。广义上讲，它本质上是广泛使用的分类 Softmax 层的连续对应物，并且在理论上可以推广到其他具有嵌套 \u003C!-- $\\mathrm{arg\\,min}$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_9e70475363b0.png\"> 优化的学习模型中。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_84b21641d9b2.png\" width=\"500\"  alt=\"\"\u002F>\n\n给定该层的输入：一个 \u003C!-- $N$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_56ffdd748145.png\"> 点对应集 \u003C!-- $X = \\left\\{x^\\text{3D}_i,x^\\text{2D}_i,w^\\text{2D}_i\\,\\middle|\\,i=1\\cdots N\\right\\}$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_cc7eac8be715.png\">，由 3D 物体坐标 \u003C!-- $x^\\text{3D}_i \\in \\mathbb{R}^3$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_2156661e6287.png\">、2D 图像坐标 \u003C!-- $x^\\text{2D}_i \\in \\mathbb{R}^2$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_625f3b969d49.png\">，以及 2D 权重 \u003C!-- $w^\\text{2D}_i \\in \\mathbb{R}^2_+ $ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_96a53d73838c.png\"> 组成。传统的 PnP 求解器会寻找一个最优位姿 \u003C!-- $y^\\ast$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_bafd8d594730.png\">（SE(3) 中的刚性变换），以使加权重投影误差最小化。以往的工作试图对 PnP 操作进行反向传播，然而 \u003C!-- $y^\\ast$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_bafd8d594730.png\"> 由于内部的 \u003C!-- $\\mathrm{arg\\,min}$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_9e70475363b0.png\"> 操作而本质上不可微分。这会导致当 \u003C!-- $X$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_cf2ca0a97f0a.png\"> 中的所有组件都需要由网络学习时出现收敛问题。\n\n相比之下，我们的概率 PnP 层输出位姿的后验分布，其概率密度 \u003C!-- $p(y|X)$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_703560af4611.png\"> 可以推导出来以便进行适当的反向传播。该分布通过蒙特卡洛采样来近似。借助 EPro-PnP，对应关系 \u003C!-- $X$ --> \u003Cimg style=\"transform: translateY(0.1em); background: white;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_cf2ca0a97f0a.png\"> 可以从头开始全部学习，方法是通过最小化预测与目标位姿分布之间的 KL 散度。\n\n## 模型\n\n### 本仓库中的 V1 模型\n\n#### **[EPro-PnP-6DoF] 用于 6DoF 位姿估计**\u003Cbr>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_305b0d785966.gif\" width=\"500\" alt=\"\"\u002F>\n\n#### **[EPro-PnP-Det] 用于 3D 物体检测**\n\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_readme_2087c0374812.gif\" width=\"500\" alt=\"\"\u002F>\n\n### 新的 V2 模型\n\n#### **[EPro-PnP-Det v2](https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP-v2\u002Ftree\u002Fmain\u002FEPro-PnP-Det_v2)：最先进的单目 3D 目标检测器**\n\n与 [v1b](EPro-PnP-Det) 的主要区别：\n\n- 使用 GaussianMixtureNLLLoss 作为辅助坐标回归损失\n- 增加了深度和边界框的辅助损失\n\n在提交时（2022年8月30日），EPro-PnP-Det v2 在 [nuScenes 官方基准测试](https:\u002F\u002Fwww.nuscenes.org\u002Fobject-detection?externalData=no&mapData=no&modalities=Camera) 上的所有基于相机的单帧目标检测模型中 **排名第一**（测试集，不使用额外数据）。\n\n| 方法                                                   | TTA | 主干网络 |    NDS    |    mAP    |   mATE    |   mASE    |   mAOE    |   mAVE    |   mAAE    | 训练轮数 |\n|:---------------------------------------------------------|:---:|:---------|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:--------:|\n| EPro-PnP-Det v2 (我们的方法)                                   |  Y  | R101     | **0.490** |   0.423   |   0.547   | **0.236** | **0.302** |   1.071   |   0.123   |  12 轮   |\n| [PETR](https:\u002F\u002Fgithub.com\u002Fmegvii-research\u002Fpetr)          |  N  | Swin-B   |   0.483   | **0.445** |   0.627   |   0.249   |   0.449   |   0.927   |   0.141   |  24 轮   |\n| [BEVDet-Base](https:\u002F\u002Fgithub.com\u002FHuangJunJie2017\u002FBEVDet) |  Y  | Swin-B   |   0.482   |   0.422   | **0.529** | **0.236** |   0.395   |   0.979   |   0.152   |  20 轮   |\n| EPro-PnP-Det v2 (我们的方法)                                   |  N  | R101     |   0.481   |   0.409   |   0.559   |   0.239   |   0.325   |   1.090   | **0.115** |  12 轮   |\n| [PolarFormer](https:\u002F\u002Fgithub.com\u002Ffudan-zvg\u002FPolarFormer)  |  N  | R101     |   0.470   |   0.415   |   0.657   |   0.263   |   0.405   | **0.911** |   0.139   |  24 轮   |\n| [BEVFormer-S](https:\u002F\u002Fgithub.com\u002Fzhiqi-li\u002FBEVFormer)     |  N  | R101     |   0.462   |   0.409   |   0.650   |   0.261   |   0.439   |   0.925   |   0.147   |  24 轮   |\n| [PETR](https:\u002F\u002Fgithub.com\u002Fmegvii-research\u002Fpetr)          |  N  | R101     |   0.455   |   0.391   |   0.647   |   0.251   |   0.433   |   0.933   |   0.143   |  24 轮   |\n| [EPro-PnP-Det v1](EPro-PnP-Det_v2)                       |  Y  | R101     |   0.453   |   0.373   |   0.605   |   0.243   |   0.359   |   1.067   |   0.124   |  12 轮   |\n| [PGD](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmdetection3d)       |  Y  | R101     |   0.448   |   0.386   |   0.626   |   0.245   |   0.451   |   1.509   |   0.127   | 24+24 轮 |\n| [FCOS3D](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmdetection3d)    |  Y  | R101     |   0.428   |   0.358   |   0.690   |   0.249   |   0.452   |   1.434   |   0.124   |    -     |\n\n#### **[EPro-PnP-6DoF v2](https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP-v2\u002Ftree\u002Fmain\u002FEPro-PnP-6DoF_v2) 用于 6DoF 姿态估计**\u003Cbr>\n\n与 [v1b](EPro-PnP-6DoF) 的主要区别：\n\n- 修复 w2d 缩放处理 **(非常重要)**\n- 改进网络初始化\n- 调整损失权重\n\n通过这些改进，v2 模型可以在 **无需 3D 模型** 的情况下进行训练，并取得比 [GDRNet](https:\u002F\u002Fgithub.com\u002FTHU-DA-6D-Pose-Group\u002FGDR-Net) 更好的性能（ADD 0.1d = 93.83），从而充分发挥简单端到端训练的潜力。\n\n## 在您自己的模型中使用 EPro-PnP\n\n我们提供了一个关于如何使用 EPro-PnP 层的 [示例](demo\u002Ffit_identity.ipynb)。\n\n## 引用\n\n如果您在研究中发现本项目有用，请考虑引用以下内容：\n\n```\n@inproceedings{epropnp, \n  author = {Hansheng Chen and Pichao Wang and Fan Wang and Wei Tian and Lu Xiong and Hao Li, \n  title = {EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estimation}, \n  booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, \n  year = {2022}\n}\n\n@article{epropnpv2,\n  author={Chen, Hansheng and Tian, Wei and Wang, Pichao and Wang, Fan and Xiong, Lu and Li, Hao},\n  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, \n  title={EPro-PnP: Generalized End-to-End Probabilistic Perspective-N-Points for Monocular Object Pose Estimation}, \n  year={2024},\n  doi={10.1109\u002FTPAMI.2024.3354997}\n}\n```","# EPro-PnP 快速上手指南\n\nEPro-PnP 是一个用于端到端 6DoF 姿态估计网络的概率 Perspective-n-Points (PnP) 层。它解决了传统 PnP 求解器不可微的问题，允许网络从头学习 3D-2D 对应关系，广泛应用于单目物体姿态估计和 3D 目标检测任务。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04)\n*   **Python**: 3.7 或更高版本\n*   **深度学习框架**: PyTorch 1.8+ (需包含 CUDA 支持)\n*   **硬件**: NVIDIA GPU (建议显存 8GB 以上，具体取决于模型版本和数据集)\n*   **编译器**: GCC\u002FG++ (用于编译自定义 CUDA 算子)\n\n**前置依赖安装：**\n建议使用 `conda` 创建独立环境，并优先使用国内镜像源加速依赖下载。\n\n```bash\n# 创建虚拟环境\nconda create -n epro_pnp python=3.8 -y\nconda activate epro_pnp\n\n# 安装 PyTorch (以 CUDA 11.3 为例，可根据实际显卡版本调整，使用清华源)\npip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu113\n\n# 安装基础依赖\npip install numpy opencv-python scipy tqdm matplotlib -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 安装步骤\n\n本项目包含自定义 CUDA 算子，需要从源码进行安装。\n\n1.  **克隆代码仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP.git\n    cd EPro-PnP\n    ```\n    *(注：如需体验最新的 SOTA 模型，可参考 README 中的 EPro-PnP-v2 仓库链接)*\n\n2.  **安装核心库**\n    执行以下命令安装 `epro_pnp` 包及其 CUDA 扩展：\n    ```bash\n    pip install -e .\n    ```\n    *如果在编译过程中报错，请确保已安装 `ninja` 构建工具 (`pip install ninja`) 且 CUDA 环境变量配置正确。*\n\n3.  **验证安装**\n    运行官方提供的 Demo 脚本验证层是否可用：\n    ```bash\n    python demo\u002Ffit_identity.py\n    ```\n    若无报错并输出收敛结果，则安装成功。\n\n## 基本使用\n\nEPro-PnP 的核心是作为一个可微层嵌入到神经网络中。以下是将其集成到自定义模型中的最小化示例。\n\n### 1. 导入模块\n```python\nimport torch\nfrom epro_pnp import EProPnP\n```\n\n### 2. 初始化层\n初始化 PnP 层，通常需要指定采样次数（`num_samples`）以通过蒙特卡洛采样近似后验分布。\n```python\n# num_samples: 蒙特卡洛采样点数，越大越精确但速度越慢\npnp_layer = EProPnP(num_samples=100).cuda()\n```\n\n### 3. 前向传播\n假设网络已经输出了对应点集数据，直接调用层进行姿态解算。\n\n**输入数据格式说明：**\n*   `pts_3d`: 3D 物体坐标 $[B, N, 3]$\n*   `pts_2d`: 2D 图像坐标 $[B, N, 2]$\n*   `weights`: 2D 权重 $[B, N, 2]$ (表示置信度)\n\n```python\n# 模拟批量数据 (Batch=2, 点数=50)\nB, N = 2, 50\npts_3d = torch.randn(B, N, 3).cuda()       # 3D 坐标\npts_2d = torch.randn(B, N, 2).cuda()       # 2D 投影坐标\nweights = torch.rand(B, N, 2).cuda() + 0.1 # 权重 (必须为正)\n\n# 执行 PnP 解算\n# 输出 pose_dist 包含姿态的分布参数 (如均值和协方差)，可用于计算损失\npose_dist = pnp_layer(pts_3d, pts_2d, weights)\n\n# 获取姿态均值 (旋转和平移)\npose_mean = pose_dist.mean\nprint(f\"Estimated Pose Shape: {pose_mean.shape}\") \n# 通常输出为 [B, 6] 或 [B, 3, 4]，具体取决于实现细节，代表 SE(3) 变换\n```\n\n### 4. 损失计算\n由于输出是概率分布，通常使用 KL 散度（Kullback-Leibler Divergence）来衡量预测分布与真实姿态分布之间的差异，从而实现端到端训练。\n\n```python\n# 假设 target_dist 是根据 Ground Truth 构建的目标分布\n# loss = torch.distributions.kl_divergence(pose_dist, target_dist).mean()\n# loss.backward()\n```\n\n更多详细用法（如结合检测头、可视化等）请参考仓库中的 `demo\u002Ffit_identity.ipynb` 笔记本及各子模型目录下的训练脚本。","某自动驾驶团队正在开发基于单目摄像头的实时交通标志 6DoF 姿态估计系统，以支持车辆在复杂路况下的精准导航。\n\n### 没有 EPro-PnP 时\n- **梯度断裂导致训练困难**：传统 PnP 求解器内部包含不可微的优化步骤，导致网络无法通过反向传播有效更新特征提取参数，模型收敛缓慢甚至失败。\n- **对噪声极度敏感**：当检测到的 2D-3D 关键点存在遮挡或匹配误差时，确定性算法直接输出单一错误姿态，缺乏对不确定性的建模能力。\n- **多解歧义处理失效**：在对称物体或视角模糊场景下，传统方法难以区分多个可能的合理姿态，往往随机选择一个次优解。\n- **端到端流程割裂**：开发者被迫将关键点检测与姿态解算拆分为两个独立阶段分别优化，无法实现全局最优。\n\n### 使用 EPro-PnP 后\n- **实现真正端到端训练**：EPro-PnP 作为概率层替代传统求解器，输出姿态的后验分布，使梯度能流畅穿过 PnP 操作，显著提升特征学习效率和最终精度。\n- **量化并利用不确定性**：面对噪声数据，EPro-PnP 自动输出带有置信度的姿态分布，下游规划模块可据此规避高风险决策，提升系统鲁棒性。\n- **自然融合多模态假设**：在模糊场景中，该工具能同时保留多个高概率姿态假设，结合时序信息后续筛选，大幅降低误检率。\n- **统一架构简化部署**：关键点回归与姿态解算被整合进单一神经网络，减少了工程链路复杂度，推理延迟降低且更易于维护。\n\nEPro-PnP 通过将几何求解过程概率化与可微化，彻底解决了单目姿态估计中长期存在的梯度阻断与不确定性缺失难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftjiiv-cprg_EPro-PnP_0a773cae.png","tjiiv-cprg"," 同济大学智能汽车研究所综合感知研究组 ( Comprehensive Perception Research Group under Institute of Intelligent Vehicles, School of Automotive Studies, Tongji University)","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftjiiv-cprg_ead2ad2c.png","",null,"https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg",[79,83,87],{"name":80,"color":81,"percentage":82},"Python","#3572A5",97,{"name":84,"color":85,"percentage":86},"Cuda","#3A4E3A",2.1,{"name":88,"color":89,"percentage":90},"C++","#f34b7d",0.9,1173,108,"2026-04-11T04:10:59","Apache-2.0",4,"未说明（项目涉及深度学习和蒙特卡洛采样，通常隐含需要 NVIDIA GPU 和 CUDA 支持，但 README 未明确指定型号、显存或 CUDA 版本）","未说明",{"notes":99,"python":97,"dependencies":100},"README 主要介绍了算法原理、模型版本（V1\u002FV2）及在 nuScenes 数据集上的性能表现，未提供具体的安装指南、环境配置要求或依赖库列表。用户需参考子目录（如 EPro-PnP-6DoF 或 EPro-PnP-Det）中的具体文档或代码来获取运行环境需求。该项目包含可微分的 PnP 层，通常依赖于 PyTorch 等深度学习框架。",[],[15,102,14],"其他",[104,105,106,107,108,109,110,111,112],"pose-estimation","6dof","3d-object-detection","perspective-n-point","pytorch","cvpr","monocular","levenberg-marquardt","gauss-newton","2026-03-27T02:49:30.150509","2026-04-17T08:25:46.806701",[116,121,126,131,136,141],{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},37053,"如何配置批处理大小（batch size）？samples_per_gpu 参数中的“样本”是指单张图像还是 NuScenes 数据集中的一组 6 张图像？","在 EPro-PnP-Det 的语境下，'样本（sample）'指的是单张图像。总批处理大小由指定的 GPU 数量决定。例如，v1 版本使用 4 个 GPU，每个处理 3 张图像；v1b 版本使用 2 个 GPU，每个处理 6 张图像。您可以通过编辑配置文件中的 `samples_per_gpu` 选项来调整每个 GPU 处理的图像数量。需要注意的是，训练过程中没有物体的图像会被忽略（参考代码：datasets\u002Fnuscenes3d_dataset.py 第 141-149 行）。","https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP\u002Fissues\u002F73",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},37054,"能否用 EPro-PnP 替换传统的 EPnP（如 cv2.solvePnPRansac）以加速求解？在存在错误匹配点（outliers）的困难场景下精度下降怎么办？","EPro-PnP 可以用作更快的 PnP 求解器，但在存在大量错误匹配点（outliers）的困难模式下，其表现可能不如带有 RANSAC 的传统 EPnP 鲁棒。这是因为为了实现端到端训练的可微性，EPro-PnP 在最终细化步骤中不会过滤任何异常值。建议的解决方案包括：1. 像 RANSAC 一样通过硬阈值（hard thresholding）手动移除异常值；2. 实现柯西核（Cauchy kernel）进行软阈值处理（推荐前者，更简单高效）。初始化方法本质上是 RANSAC 的泛化，但后续步骤保留了所有点以保持可微。","https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP\u002Fissues\u002F45",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},37055,"训练时随机采样点（包括背景点）是否会干扰物体姿态估计？背景点是如何处理的？","背景点不会干扰姿态估计。在 EPro-PnP 中，坐标回归损失（loss_rot）仅作为引入额外几何监督的辅助损失，甚至可以移除该损失而正常训练。本质上，所有背景点都是通过反向传播蒙特卡洛姿态损失（Monte Carlo pose loss）来处理的。这些点不需要是位于物体表面的物理点。此外，只有前景掩码（mask）内的 x3d 坐标受到监督，掩码外的输出是无意义的。","https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP\u002Fissues\u002F6",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},37056,"对于远距离物体（如超过 80 米），平移预测结果在时间序列上不稳定（帧间跳动），有什么解决方法吗？","这种不稳定性是因为模型输出的采样点是为了近似预测分布，而该分布在时间序列上本身可能不一致。虽然单帧的相对精度可接受，但绝对误差可能波动。推荐的解决方法是使用时序滤波（temporal filtering）：既可以作为后处理步骤，也可以集成到端到端的时序模型中，通过融合相邻帧的分布来获得更平滑、更准确的预测。目前官方尚未提供集成的时序模型，用户可以尝试利用输出的 `pose_samples` 和 `pose_sample_weights` 自行实现滤波或人工选择局部最优姿态。","https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP\u002Fissues\u002F30",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},37057,"代码中 6DoF 模式下的雅可比矩阵（Jacobian matrix）计算逻辑是什么？为什么 `d_x3dcam_d_rot` 中 `x3d_rot` 要乘以 2，且只考虑了旋转部分？","维护者表示具体的数学推导细节已难以回忆，但该计算并不复杂。代码中的实现是为了计算重投影误差关于姿态的导数。如果您对其中的数学推导（特别是为何乘以 2 以及为何只针对旋转部分）感到困惑，建议使用符号数学工具（如 MATLAB 或 SymPy）自行推导验证，而不是完全依赖手动计算。代码逻辑大致为：先计算 2D 点对 3D 相机坐标的导数，再链式法则乘以 3D 相机坐标对旋转参数的导数（此处涉及四元数或旋转表示的具体导数形式）。","https:\u002F\u002Fgithub.com\u002Ftjiiv-cprg\u002FEPro-PnP\u002Fissues\u002F41",{"id":142,"question_zh":143,"answer_zh":144,"source_url":120},37058,"预处理全量 NuScenes 数据集时内存占用激增导致失败，且训练迭代次数与理论图像数量不符，原因是什么？","1. 内存问题：在将标注写入 pickle 文件时内存使用会出现巨大峰值，解决方法是分配更多的交换内存（swap memory）。2. 数量差异：理论计算的图像数量与实际迭代次数不符（约少 3 万张），是因为在预处理或数据加载阶段，那些不包含任何物体的图像被过滤掉了（具体逻辑见 `datasets\u002Fnuscenes3d_dataset.py` 第 141-149 行），这些图像不参与训练。",[]]