[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-vacancy--PreciseRoIPooling":3,"tool-vacancy--PreciseRoIPooling":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":79,"owner_email":80,"owner_twitter":77,"owner_website":81,"owner_url":82,"languages":83,"stars":104,"forks":105,"last_commit_at":106,"license":78,"difficulty_score":107,"env_os":108,"env_gpu":109,"env_ram":110,"env_deps":111,"category_tags":119,"github_topics":120,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":123,"updated_at":124,"faqs":125,"releases":154},6945,"vacancy\u002FPreciseRoIPooling","PreciseRoIPooling","Precise RoI Pooling with coordinate gradient support, proposed in the paper \"Acquisition of Localization Confidence for Accurate Object Detection\" (https:\u002F\u002Farxiv.org\u002Fabs\u002F1807.11590).","PreciseRoIPooling（简称 PrRoI Pooling）是一款专为高精度目标检测设计的开源算法模块，源自 ECCV 2018 的口头报告论文。它主要解决了传统 RoI Pooling 和 RoI Align 在特征提取过程中因量化操作导致的坐标不连续问题。\n\n在目标检测任务中，模型需要精确回归边界框的位置。传统的池化方法由于存在离散量化，导致无法直接对边界框坐标进行梯度反向传播优化。PreciseRoIPooling 创新性地采用基于双线性插值的积分平均池化策略，完全避免了量化步骤，实现了关于边界框坐标的连续梯度。这意味着开发者可以直接通过损失函数对感兴趣区域（RoI）的坐标求导并优化，从而显著提升定位置信度和检测精度。\n\n该工具特别适合从事计算机视觉研究的研究人员以及开发目标检测模型的算法工程师。目前它主要支持 PyTorch 框架（需 CUDA 环境），提供了易于集成的模块化接口。与仅采样固定点的 RoI Align 不同，PreciseRoIPooling 通过全积分计算确保了梯度的平滑性，是追求极致检测性能项目的理想选择。需要注意的是，安装时建议通过 git cl","PreciseRoIPooling（简称 PrRoI Pooling）是一款专为高精度目标检测设计的开源算法模块，源自 ECCV 2018 的口头报告论文。它主要解决了传统 RoI Pooling 和 RoI Align 在特征提取过程中因量化操作导致的坐标不连续问题。\n\n在目标检测任务中，模型需要精确回归边界框的位置。传统的池化方法由于存在离散量化，导致无法直接对边界框坐标进行梯度反向传播优化。PreciseRoIPooling 创新性地采用基于双线性插值的积分平均池化策略，完全避免了量化步骤，实现了关于边界框坐标的连续梯度。这意味着开发者可以直接通过损失函数对感兴趣区域（RoI）的坐标求导并优化，从而显著提升定位置信度和检测精度。\n\n该工具特别适合从事计算机视觉研究的研究人员以及开发目标检测模型的算法工程师。目前它主要支持 PyTorch 框架（需 CUDA 环境），提供了易于集成的模块化接口。与仅采样固定点的 RoI Align 不同，PreciseRoIPooling 通过全积分计算确保了梯度的平滑性，是追求极致检测性能项目的理想选择。需要注意的是，安装时建议通过 git clone 获取源码以保留必要的符号链接，避免直接下载压缩包导致编译错误。","# PreciseRoIPooling\nThis repo implements the **Precise RoI Pooling** (PrRoI Pooling), proposed in the paper **Acquisition of Localization Confidence for Accurate Object Detection** published at ECCV 2018 (Oral Presentation).\n\n**Acquisition of Localization Confidence for Accurate Object Detection**\n\n_Borui Jiang*, Ruixuan Luo*, Jiayuan Mao*, Tete Xiao, Yuning Jiang_ (* indicates equal contribution.)\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1807.11590\n\n**Causion**: To install the library, please `git clone` the repository instead of downloading the zip file, since source files inside the folder `.\u002Fpytorch\u002Fprroi_pool\u002Fsrc\u002F` and `tensorflow\u002Fprroi_pool\u002Fsrc\u002Fkernels\u002Fexternal` are symbol-linked. Downloading the repository as a zip file will break these symbolic links. Also, there are reports indicating that Windows git versions also breaks the symbol links. See [issues\u002F58](https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling\u002Fissues\u002F58).\n\n## Brief\n\nIn short, Precise RoI Pooling is an integration-based (bilinear interpolation) average pooling method for RoI Pooling. It avoids any quantization and has a continuous gradient on bounding box coordinates. It is:\n\n- different from the original RoI Pooling proposed in [Fast R-CNN](https:\u002F\u002Farxiv.org\u002Fabs\u002F1504.08083). PrRoI Pooling uses average pooling instead of max pooling for each bin and has a continuous gradient on bounding box coordinates. That is, one can take the derivatives of some loss function w.r.t the coordinates of each RoI and optimize the RoI coordinates.\n- different from the RoI Align proposed in [Mask R-CNN](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.06870). PrRoI Pooling uses a full integration-based average pooling instead of sampling a constant number of points. This makes the gradient w.r.t. the coordinates continuous.\n\nFor a better illustration, we illustrate RoI Pooling, RoI Align and PrRoI Pooing in the following figure. More details including the gradient computation can be found in our paper.\n\n\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvacancy_PreciseRoIPooling_readme_dd6017aa1442.png\" width=\"80%\">\u003C\u002Fcenter>\n\n## Implementation\n\nPrRoI Pooling was originally implemented by [Tete Xiao](http:\u002F\u002Ftetexiao.com\u002F) based on MegBrain, an (internal) deep learning framework built by Megvii Inc. It was later adapted into open-source deep learning frameworks. Currently, we only support PyTorch. Unfortunately, we don't have any specific plan for the adaptation into other frameworks such as TensorFlow, but any contributions (pull requests) will be more than welcome.\n\n## Usage (PyTorch 1.0)\n\nIn the directory `pytorch\u002F`, we provide a PyTorch-based implementation of PrRoI Pooling. It requires PyTorch 1.0+ and only supports CUDA (CPU mode is not implemented).\nSince we use PyTorch JIT for cxx\u002Fcuda code compilation, to use the module in your code, simply do:\n\n```\nfrom prroi_pool import PrRoIPool2D\n\navg_pool = PrRoIPool2D(window_height, window_width, spatial_scale)\nroi_features = avg_pool(features, rois)\n\n# for those who want to use the \"functional\"\n\nfrom prroi_pool.functional import prroi_pool2d\nroi_features = prroi_pool2d(features, rois, window_height, window_width, spatial_scale)\n```\n\n## Usage (PyTorch 0.4)\n\n**!!! Please first checkout to the branch pytorch0.4.**\n\nIn the directory `pytorch\u002F`, we provide a PyTorch-based implementation of PrRoI Pooling. It requires PyTorch 0.4 and only supports CUDA (CPU mode is not implemented).\nTo use the PrRoI Pooling module, first goto `pytorch\u002Fprroi_pool` and execute `.\u002Ftravis.sh` to compile the essential components (you may need `nvcc` for this step). To use the module in your code, simply do:\n\n```\nfrom prroi_pool import PrRoIPool2D\n\navg_pool = PrRoIPool2D(window_height, window_width, spatial_scale)\nroi_features = avg_pool(features, rois)\n\n# for those who want to use the \"functional\"\n\nfrom prroi_pool.functional import prroi_pool2d\nroi_features = prroi_pool2d(features, rois, window_height, window_width, spatial_scale)\n```\n\nHere,\n\n- RoI is an `m * 5` float tensor of format `(batch_index, x0, y0, x1, y1)`, following the convention in the original Caffe implementation of RoI Pooling, although in some frameworks the batch indices are provided by an integer tensor.\n- `spatial_scale` is multiplied to the RoIs. For example, if your feature maps are down-sampled by a factor of 16 (w.r.t. the input image), you should use a spatial scale of `1\u002F16`.\n- The coordinates for RoI follows the [L, R) convension. That is, `(0, 0, 4, 4)` denotes a box of size `4x4`.\n\n## Usage (TensorFlow)\nIn the directory `tensorflow\u002F`, we provide a TensorFlow-based implementation of PrRoI Pooling. It tested TensorFlow 2.2 and only supports CUDA (CPU mode is not implemented).\nTo compile the essential components, follow the instruction below\n\nTo use the PrRoI Pooling module, to compile the essential components (you may need `nvcc` for this step). To use the module in your code, simply do:\n### Requirements\n* CUDA compiler(NVCC)\n* Tensorflow-GPU 2.x\n* CMake\n* Microsoft Visual C++ Build Tools(For Windows Users)\n### Step-by-step instructions\n#### For Ubuntu Users\n##### CMake Configuration\n\n```\nmkdir tensorflow\u002Fprroi_pool\u002Fbuild\ncd tensorflow\u002Fprroi_pool\u002Fbuild\ncmake -DCMAKE_BUILD_TYPE=\"Release\" ..\n```\n#### Build & Test PrRoI Pooling module\n```\nmake\n```\n#### For Windows Users\n\n##### MSVC Configuration\n```\n${MSVC_INSTALL_PATH}\\VC\\Auxiliary\\Build\\vcvars64.bat\n```\n##### CMake Configuration\n\n```\nmkdir tensorflow\u002Fprroi_pool\u002Fbuild\ncd tensorflow\u002Fprroi_pool\u002Fbuild\ncmake -DCMAKE_BUILD_TYPE=\"Release\" -G \"NMake Makefiles\" ..\n```\n##### Build & Test Custom ops\n```\nnmake BUILD=release\n```\n\nTo use the module in your code, simply do:\n```\nfrom prroi_pool import PreciseRoIPooling\n\navg_pool = PreciseRoIPooling(window_height, window_width, spatial_scale, data_format)\nroi_features = avg_pool([features, rois])\n\n```\n\nHere,\n\n- RoI is an `m * 5` float tensor of format `(batch_index, x0, y0, x1, y1)`, following the convention in the original Caffe implementation of RoI Pooling, although in some frameworks the batch indices are provided by an integer tensor.\n- `spatial_scale` is multiplied to the RoIs. For example, if your feature maps are down-sampled by a factor of 16 (w.r.t. the input image), you should use a spatial scale of `1\u002F16`.\n- The coordinates for RoI follows the [L, R) convension. That is, `(0, 0, 4, 4)` denotes a box of size `4x4`.\n","# PreciseRoIPooling\n本仓库实现了在 ECCV 2018 大会上发表的论文《用于精确目标检测的定位置信度获取》中提出的 **精确 RoI 池化**（PrRoI Pooling）（口头报告）。\n\n**用于精确目标检测的定位置信度获取**\n\n_江博睿*、罗瑞轩*、毛嘉源*、Tete Xiao、蒋宇宁_ (* 表示共同第一作者。)\n\nhttps:\u002F\u002Farxiv.org\u002Fabs\u002F1807.11590\n\n**注意**：为正确安装该库，请使用 `git clone` 克隆仓库，而非下载 ZIP 文件。这是因为 `.\u002Fpytorch\u002Fprroi_pool\u002Fsrc\u002F` 和 `tensorflow\u002Fprroi_pool\u002Fsrc\u002Fkernels\u002Fexternal` 文件夹内的源文件采用了符号链接的方式。直接下载 ZIP 文件会导致这些符号链接失效。此外，有报告指出 Windows 版本的 Git 也会破坏符号链接。详情请参阅 [issues\u002F58](https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling\u002Fissues\u002F58)。\n\n## 简介\n\n简而言之，精确 RoI 池化是一种基于积分的平均池化方法，用于 RoI 池化操作。它避免了任何量化，并且对边界框坐标具有连续的梯度。具体来说：\n\n- 它与原始的 RoI 池化（见 [Fast R-CNN](https:\u002F\u002Farxiv.org\u002Fabs\u002F1504.08083)）不同。PrRoI Pooling 对每个 bin 使用平均池化而非最大池化，并且对边界框坐标具有连续的梯度。这意味着可以对某个损失函数关于每个 RoI 坐标的导数进行计算，从而优化 RoI 的位置。\n- 它也不同于 [Mask R-CNN](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.06870) 中提出的 RoI Align。PrRoI Pooling 使用完全基于积分的平均池化，而不是采样固定数量的点。这使得其关于坐标值的梯度是连续的。\n\n为了更好地说明，我们在下图中对比展示了 RoI 池化、RoI Align 和 PrRoI Pooling。更多细节，包括梯度计算方法，可在我们的论文中找到。\n\n\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvacancy_PreciseRoIPooling_readme_dd6017aa1442.png\" width=\"80%\">\u003C\u002Fcenter>\n\n## 实现\nPrRoI Pooling 最初由 [Tete Xiao](http:\u002F\u002Ftetexiao.com\u002F) 基于旷视科技内部开发的深度学习框架 MegBrain 实现。随后被移植到开源深度学习框架中。目前我们仅支持 PyTorch。遗憾的是，我们尚未制定将其实现移植到 TensorFlow 等其他框架的具体计划，但欢迎任何贡献（Pull Requests）。\n\n## 使用方法（PyTorch 1.0）\n在 `pytorch\u002F` 目录下，我们提供了基于 PyTorch 的 PrRoI Pooling 实现。它需要 PyTorch 1.0 及以上版本，并且仅支持 CUDA（未实现 CPU 模式）。\n由于我们使用 PyTorch JIT 编译 C++\u002FCUDA 代码，因此在代码中使用该模块时，只需执行以下操作：\n\n```\nfrom prroi_pool import PrRoIPool2D\n\navg_pool = PrRoIPool2D(window_height, window_width, spatial_scale)\nroi_features = avg_pool(features, rois)\n\n# 对于希望使用函数式接口的用户\n\nfrom prroi_pool.functional import prroi_pool2d\nroi_features = prroi_pool2d(features, rois, window_height, window_width, spatial_scale)\n```\n\n## 使用方法（PyTorch 0.4）\n**!!! 请先切换到 pytorch0.4 分支。**\n\n在 `pytorch\u002F` 目录下，我们提供了基于 PyTorch 的 PrRoI Pooling 实现。它需要 PyTorch 0.4，并且仅支持 CUDA（未实现 CPU 模式）。\n要使用 PrRoI Pooling 模块，首先进入 `pytorch\u002Fprroi_pool` 目录并执行 `.\u002Ftravis.sh` 来编译必要的组件（此步骤可能需要 `nvcc`）。然后在代码中使用该模块时，只需执行以下操作：\n\n```\nfrom prroi_pool import PrRoIPool2D\n\navg_pool = PrRoIPool2D(window_height, window_width, spatial_scale)\nroi_features = avg_pool(features, rois)\n\n# 对于希望使用函数式接口的用户\n\nfrom prroi_pool.functional import prroi_pool2d\nroi_features = prroi_pool2d(features, rois, window_height, window_width, spatial_scale)\n```\n\n其中：\n\n- RoI 是一个形状为 `m * 5` 的浮点张量，格式为 `(batch_index, x0, y0, x1, y1)`，遵循原始 Caffe 实现中 RoI 池化的约定。不过，在某些框架中，批次索引是由整数张量提供的。\n- `spatial_scale` 会乘以 RoI 的坐标。例如，如果您的特征图相对于输入图像进行了 16 倍下采样，则应使用 `1\u002F16` 的空间尺度。\n- RoI 的坐标遵循 [左闭右开] 的约定。即 `(0, 0, 4, 4)` 表示一个大小为 `4x4` 的矩形区域。\n\n## 使用方法（TensorFlow）\n在 `tensorflow\u002F` 目录下，我们提供了基于 TensorFlow 的 PrRoI Pooling 实现。经测试适用于 TensorFlow 2.2，且仅支持 CUDA（未实现 CPU 模式）。\n要编译必要的组件，请按照以下说明操作：\n\n要使用 PrRoI Pooling 模块，需先编译核心组件（此步骤可能需要 `nvcc`）。然后在代码中使用该模块时，只需执行以下操作：\n### 需求\n* CUDA 编译器 (NVCC)\n* TensorFlow-GPU 2.x\n* CMake\n* Microsoft Visual C++ 构建工具（Windows 用户）\n\n### 步骤说明\n#### 对于 Ubuntu 用户\n##### CMake 配置\n\n```\nmkdir tensorflow\u002Fprroi_pool\u002Fbuild\ncd tensorflow\u002Fprroi_pool\u002Fbuild\ncmake -DCMAKE_BUILD_TYPE=\"Release\" ..\n```\n\n#### 编译并测试 PrRoI Pooling 模块\n```\nmake\n```\n\n#### 对于 Windows 用户\n\n##### MSVC 配置\n```\n${MSVC_INSTALL_PATH}\\VC\\Auxiliary\\Build\\vcvars64.bat\n```\n\n##### CMake 配置\n\n```\nmkdir tensorflow\u002Fprroi_pool\u002Fbuild\ncd tensorflow\u002Fprroi_pool\u002Fbuild\ncmake -DCMAKE_BUILD_TYPE=\"Release\" -G \"NMake Makefiles\" ..\n```\n\n##### 编译并测试自定义算子\n```\nnmake BUILD=release\n```\n\n要在代码中使用该模块，只需执行：\n```\nfrom prroi_pool import PreciseRoIPooling\n\navg_pool = PreciseRoIPooling(window_height, window_width, spatial_scale, data_format)\nroi_features = avg_pool([features, rois])\n```\n\n其中：\n\n- RoI 是一个形状为 `m * 5` 的浮点张量，格式为 `(batch_index, x0, y0, x1, y1)`，遵循原始 Caffe 实现中 RoI 池化的约定。不过，在某些框架中，批次索引是由整数张量提供的。\n- `spatial_scale` 会乘以 RoI 的坐标。例如，如果您的特征图相对于输入图像进行了 16 倍下采样，则应使用 `1\u002F16` 的空间尺度。\n- RoI 的坐标遵循 [左闭右开] 的约定。即 `(0, 0, 4, 4)` 表示一个大小为 `4x4` 的矩形区域。","# PreciseRoIPooling 快速上手指南\n\nPreciseRoIPooling (PrRoI Pooling) 是一种基于积分（双线性插值）的平均池化方法，旨在解决目标检测中定位置信度的问题。与传统的 RoI Pooling 和 RoI Align 不同，它避免了量化操作，并对边界框坐标具有连续梯度，支持直接对 RoI 坐标进行优化。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu) 或 Windows\n- **GPU**: 必须拥有 NVIDIA GPU 并安装 CUDA 驱动（本项目不支持 CPU 模式）\n- **编译器**: `nvcc` (CUDA Compiler), `gcc`\u002F`g++` 或 MSVC (Windows)\n\n### 前置依赖\n根据你使用的深度学习框架选择对应环境：\n\n**PyTorch 用户:**\n- PyTorch 1.0+ (推荐) 或 PyTorch 0.4 (需切换分支)\n- `torchvision` (可选，用于可视化)\n\n**TensorFlow 用户:**\n- TensorFlow-GPU 2.x (测试版本 2.2)\n- CMake\n- **Windows 额外需要**: Microsoft Visual C++ Build Tools\n\n### ⚠️ 重要安装提示\n**请勿直接下载 ZIP 压缩包安装！**\n由于源码中包含符号链接（symbolic links），直接下载 ZIP 会破坏链接结构导致编译失败。\n请使用以下命令克隆仓库：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling.git\ncd PreciseRoIPooling\n```\n*注：部分 Windows 版 Git 也可能破坏符号链接，如遇问题请参考官方 Issue #58。*\n\n---\n\n## 安装步骤\n\n### 方案 A：PyTorch 1.0+ (推荐)\nPyTorch 1.0+ 版本利用 JIT 技术自动编译 C++\u002FCUDA 代码，无需手动执行编译脚本，导入即可使用。\n\n1. 确保已安装 PyTorch 1.0+ 且 CUDA 环境正常。\n2. 进入 `pytorch` 目录（或在项目中直接引用该目录）。\n3. 无需额外编译步骤，直接在代码中导入模块即可（见下文“基本使用”）。\n\n### 方案 B：PyTorch 0.4\n如果你必须使用 PyTorch 0.4，请先切换分支并手动编译。\n\n1. 切换到对应分支：\n   ```bash\n   git checkout pytorch0.4\n   ```\n2. 进入目录并执行编译脚本（需要 `nvcc`）：\n   ```bash\n   cd pytorch\u002Fprroi_pool\n   .\u002Ftravis.sh\n   ```\n\n### 方案 C：TensorFlow 2.x\nTensorFlow 版本需要手动编译自定义算子。\n\n#### Ubuntu \u002F Linux 用户\n1. 创建构建目录并配置 CMake：\n   ```bash\n   mkdir tensorflow\u002Fprroi_pool\u002Fbuild\n   cd tensorflow\u002Fprroi_pool\u002Fbuild\n   cmake -DCMAKE_BUILD_TYPE=\"Release\" ..\n   ```\n2. 编译并测试：\n   ```bash\n   make\n   ```\n\n#### Windows 用户\n1. 配置 MSVC 环境变量（路径需根据实际情况调整）：\n   ```bat\n   ${MSVC_INSTALL_PATH}\\VC\\Auxiliary\\Build\\vcvars64.bat\n   ```\n2. 创建构建目录并配置 CMake（使用 NMake）：\n   ```bat\n   mkdir tensorflow\\prroi_pool\\build\n   cd tensorflow\\prroi_pool\\build\n   cmake -DCMAKE_BUILD_TYPE=\"Release\" -G \"NMake Makefiles\" ..\n   ```\n3. 编译自定义算子：\n   ```bat\n   nmake BUILD=release\n   ```\n\n---\n\n## 基本使用\n\n### PyTorch 使用示例\n\nPrRoI Pooling 支持面向对象调用和函数式调用两种风格。\n\n**参数说明：**\n- `rois`: 形状为 `(m, 5)` 的浮点张量，格式为 `(batch_index, x0, y0, x1, y1)`。\n- `spatial_scale`: 空间缩放比例。例如特征图相对于原图下采样了 16 倍，则该值为 `1\u002F16`。\n- 坐标遵循 `[L, R)` 惯例，即 `(0, 0, 4, 4)` 代表大小为 4x4 的框。\n\n**代码示例：**\n\n```python\nimport torch\nfrom prroi_pool import PrRoIPool2D\n\n# 初始化参数\nwindow_height = 7\nwindow_width = 7\nspatial_scale = 1.0 \u002F 16.0\n\n# 创建池化层\navg_pool = PrRoIPool2D(window_height, window_width, spatial_scale)\n\n# 模拟输入数据\n# features: (N, C, H, W)\nfeatures = torch.randn(2, 256, 56, 56).cuda()\n# rois: (m, 5), format: (batch_idx, x0, y0, x1, y1)\nrois = torch.tensor([\n    [0, 10.5, 20.0, 50.0, 60.0],\n    [1, 5.0, 10.0, 30.0, 40.0]\n]).cuda()\n\n# 前向传播\nroi_features = avg_pool(features, rois)\n\n# --- 或者使用函数式接口 ---\nfrom prroi_pool.functional import prroi_pool2d\nroi_features_func = prroi_pool2d(features, rois, window_height, window_width, spatial_scale)\n```\n\n### TensorFlow 使用示例\n\n**代码示例：**\n\n```python\nimport tensorflow as tf\nfrom prroi_pool import PreciseRoIPooling\n\n# 初始化参数\nwindow_height = 7\nwindow_width = 7\nspatial_scale = 1.0 \u002F 16.0\ndata_format = 'NHWC' # 或 'NCHW'\n\n# 创建池化层\navg_pool = PreciseRoIPooling(window_height, window_width, spatial_scale, data_format)\n\n# 模拟输入数据\nfeatures = tf.random.normal([2, 56, 56, 256])\nrois = tf.constant([\n    [0, 10.5, 20.0, 50.0, 60.0],\n    [1, 5.0, 10.0, 30.0, 40.0]\n], dtype=tf.float32)\n\n# 前向传播 (输入为列表 [features, rois])\nroi_features = avg_pool([features, rois])\n```","某自动驾驶团队正在训练高精度车辆检测模型，旨在提升复杂路况下对行人和障碍物的定位准确率。\n\n### 没有 PreciseRoIPooling 时\n- **坐标量化误差大**：传统的 RoI Pooling 将浮点数坐标强制取整，导致特征提取区域发生偏移，小目标检测精度显著下降。\n- **梯度传播断裂**：由于取整操作不可导，模型无法通过反向传播优化边界框（Bounding Box）的坐标参数，限制了定位能力的上限。\n- **采样不均匀**：即便使用 RoI Align 进行双线性插值，其固定点采样方式仍属于近似计算，在极端长宽比或微小区域下特征表达不够平滑。\n- **置信度评估困难**：缺乏连续的坐标梯度支持，难以准确获取模型对定位结果的“置信度”，导致后处理阶段误删正确预测或保留错误框。\n\n### 使用 PreciseRoIPooling 后\n- **消除量化偏差**：PreciseRoIPooling 基于完整的双线性积分进行平均池化，完全避免了坐标取整，确保特征提取区域与真实目标严格对齐。\n- **实现坐标可导**：该方法支持对边界框坐标的连续梯度计算，允许损失函数直接优化 RoI 坐标，显著提升了边框回归的精细度。\n- **特征表达更平滑**：通过数学上的积分运算替代离散点采样，即使在极小目标或非规则形状下，也能获得更稳定、连续的特征表示。\n- **赋能置信度学习**：得益于坐标梯度的连续性，模型能够像论文所述“获取定位置信度”，从而更智能地筛选高质量检测框，降低误报率。\n\nPreciseRoIPooling 通过引入可导的积分池化机制，从根本上解决了目标检测中因坐标量化导致的精度瓶颈，是实现毫米级定位的关键组件。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fvacancy_PreciseRoIPooling_dd6017aa.png","vacancy","Jiayuan Mao","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fvacancy_70cbde1c.jpg",null,"MIT","Cambridge, MA","jiayuanm@mit.edu","jiayuanm.com","https:\u002F\u002Fgithub.com\u002Fvacancy",[84,88,92,96,100],{"name":85,"color":86,"percentage":87},"C++","#f34b7d",30.2,{"name":89,"color":90,"percentage":91},"Cuda","#3A4E3A",29.8,{"name":93,"color":94,"percentage":95},"Python","#3572A5",26.2,{"name":97,"color":98,"percentage":99},"C","#555555",7.5,{"name":101,"color":102,"percentage":103},"CMake","#DA3434",6.3,783,153,"2026-03-29T15:49:48",4,"Linux, Windows","必需 NVIDIA GPU (仅支持 CUDA 模式，不支持 CPU)，需安装 NVCC (CUDA Compiler)。具体显卡型号、显存大小及 CUDA 版本未在文中明确指定，但需匹配所安装的 PyTorch 或 TensorFlow GPU 版本要求。","未说明",{"notes":112,"python":113,"dependencies":114},"1. 必须通过 `git clone` 克隆仓库，严禁下载 ZIP 包，否则会导致源码中的符号链接损坏从而无法编译。2. Windows 用户需注意部分 Git 版本也可能破坏符号链接（参考 issue #58）。3. 该工具不支持 CPU 模式，必须在配备 CUDA 环境的 GPU 上运行。4. TensorFlow 版本在 Windows 下构建需配置 MSVC 环境并使用 NMake。","未说明 (需配合 PyTorch 1.0+\u002F0.4 或 TensorFlow 2.2 使用)",[115,116,117,101,118],"PyTorch >= 1.0 (或 PyTorch 0.4 需切换分支)","TensorFlow-GPU 2.2 (可选)","CUDA Toolkit (含 nvcc)","Microsoft Visual C++ Build Tools (仅限 Windows)",[15],[121,122],"object-detection","computer-vision","2026-03-27T02:49:30.150509","2026-04-13T04:12:27.121217",[126,131,136,141,145,149],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},31295,"编译时出现 'expected a declaration' 或 'state undeclared' 等错误怎么办？","请使用 `git clone` 命令克隆仓库，不要直接下载 ZIP 压缩包。直接下载会导致符号链接（symbolic links）失效（例如 `.cuh` 文件内容变成相对路径字符串而非实际代码），从而引发编译错误。执行命令：`git clone https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling.git`。","https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling\u002Fissues\u002F25",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},31296,"运行时报错 'RuntimeError: Error building extension '_prroi_pooling'' 或 'ninja returned non-zero exit status 1' 如何解决？","这通常是因为使用了 GitHub 的 \"Download ZIP\" 功能下载代码，导致项目中的符号链接被破坏。请删除当前目录，使用 `git clone` 重新完整克隆仓库。维护者明确指出：\"Please fully clone the repo. Do NOT use the github zip feature. It will break symbol links.\"（请完整克隆仓库，切勿使用 GitHub 的 ZIP 下载功能，这会破坏符号链接）。","https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling\u002Fissues\u002F47",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},31297,"IoU-Net 分支在训练时的目标值（target）是什么？","训练时的目标是预测的 RoI 与真实框（Ground Truth）之间的 IoU 值。根据论文，会移除 IoU 小于 0.5 的候选框，因此剩余候选框的 IoU 范围在 [0.5, 1] 之间。为了进行归一化，使用的公式是 `(iou - 0.5) * 2`，将值映射到 [0, 1] 区间。","https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling\u002Fissues\u002F5",{"id":142,"question_zh":143,"answer_zh":144,"source_url":140},31298,"训练 IoU-Net 时提到的“增强真实框（augmenting the groundtruth）”具体指什么操作？","这里的“增强”并非指对图像进行翻转或旋转等常规数据增强，而是指通过抖动（jittering）真实框来生成用于训练 IoU-Net 的样本。具体做法是基于 Ground Truth 生成一系列具有不同 IoU 值的边界框作为输入，并将它们对应的真实 IoU 值作为训练标签，而不是直接使用 RPN 生成的提议框（proposals）。",{"id":146,"question_zh":147,"answer_zh":148,"source_url":140},31299,"在推理阶段使用边界框细化算法（Algorithm 2）时，既然没有标签，如何计算梯度来更新检测框？","在推理阶段，该算法通过将目标值（target）设定为 1 来驱动优化过程。目的是通过梯度上升最大化预测框与隐含的真实对象之间的 IoU，从而使检测框更加精确。虽然没有真实的 GT 标签，但假设当前检测框可以通过向 IoU=1 的方向调整来变得更精准。",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},31300,"Windows 用户遇到编译问题是否有特殊注意事项？","Windows 用户需特别注意 Git 版本及配置，确保符号链接能正确处理。维护者已在 README 中更新了相关说明。核心解决方案依然是避免使用 ZIP 下载，必须使用 `git clone`。如果问题依旧，请检查 Windows 上的 Git 是否启用了符号链接支持（可能需要管理员权限运行 `git config core.symlinks true` 或使用较新版本的 Git for Windows）。","https:\u002F\u002Fgithub.com\u002Fvacancy\u002FPreciseRoIPooling\u002Fissues\u002F59",[]]