[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-chrischoy--FCGF":3,"tool-chrischoy--FCGF":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 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[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":77,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":104,"github_topics":106,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":149},9644,"chrischoy\u002FFCGF","FCGF","Fully Convolutional Geometric Features: Fast and accurate 3D features for registration and correspondence.","FCGF（全卷积几何特征）是一款专为 3D 点云处理设计的高效开源工具，主要用于解决 3D 扫描数据在配准、重建和追踪任务中的特征提取难题。传统方法往往依赖计算缓慢的低级几何签名，或仅能处理局部小块数据，导致感受野受限且效率低下。FCGF 通过创新的 3D 全卷积网络，能够一次性从整个场景中提取紧凑的几何特征，不仅捕捉了更广阔的空间上下文信息，还无需复杂的预处理步骤。\n\n其核心技术亮点在于引入了全新的度量学习损失函数，显著提升了特征匹配的准确率。实验数据显示，FCGF 在保持业界领先精度的同时，运行速度比此前最准确的方法快了约 600 倍，且生成的特征向量极为紧凑（仅 32 维）。该项目基于 MinkowskiEngine 构建，充分利用稀疏张量技术实现了高效的 GPU 加速。\n\nFCGF 非常适合从事计算机视觉、机器人导航、自动驾驶及三维重建领域的研究人员与开发者使用。如果您需要在大规模室内或室外场景中快速实现高精度的点云对齐与对应关系查找，FCGF 将是一个兼具速度与性能的理想选择。","# Fully Convolutional Geometric Features, ICCV, 2019\n\nExtracting geometric features from 3D scans or point clouds is the first step in applications such as registration, reconstruction, and tracking. State-of-the-art methods require computing low-level features as input or extracting patch-based features with limited receptive field. In this work, we present fully-convolutional geometric features, computed in a single pass by a 3D fully-convolutional network. We also present new metric learning losses that dramatically improve performance. Fully-convolutional geometric features are compact, capture broad spatial context, and scale to large scenes. We experimentally validate our approach on both indoor and outdoor datasets. Fully-convolutional geometric features achieve state-of-the-art accuracy without requiring prepossessing, are compact (32 dimensions), and are 600 times faster than the most accurate prior method.\n\n[ICCV'19 Paper](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002Ffcgf.pdf)\n\n## News\n\n- 2020-10-02 Measure the FCGF speedup on v0.5 on [MinkowskiEngineBenchmark](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FMinkowskiEngineBenchmark). The speedup ranges from 2.7x to 7.7x depending on the batch size.\n- 2020-09-04 Updates on ME v0.5 further speed up the inference time from 13.2ms to 11.8ms. As a reference, ME v0.4 takes 37ms.\n- 2020-08-18 Merged the v0.5 to the master with v0.5 installation. You can now use the full GPU support for sparse tensor hi-COO representation for faster training and inference.\n- 2020-08-07 [MinkowskiEngine](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMinkowskiEngine) v0.5 improves the **FCGF inference speed by x2.8** (280% speed-up, feed forward time for ResUNetBN2C on the 3DMatch kitchen point cloud ID-20: 37ms (ME v0.4.3) down to 13.2ms (ME v0.5.0). Measured on TitanXP, Ryzen-3700X).\n- 2020-06-15 [Source code](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FDeepGlobalRegistration) for **Deep Global Registration, CVPR'20 Oral** has been released. Please refer to the repository and the paper for using FCGF for registration.\n\n## 3D Feature Accuracy vs. Speed\n\n|   Comparison Table           | Speed vs. Accuracy |\n|:----------------------------:|:------------------:|\n| ![Table](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_3d600ddda0c2.png)   | ![Accuracy vs. Speed](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_4c0cb724bb88.png) |\n\n*Feature-match recall and speed in log scale on the 3DMatch benchmark. Our approach is the most accurate and the fastest. The gray region shows the Pareto frontier of the prior methods.*\n\n\n### Related Works\n\n3DMatch by Zeng et al. uses a Siamese convolutional network to learn 3D patch descriptors.\nCGF by Khoury et al. maps 3D oriented histograms to a low-dimensional feature space using multi-layer perceptrons. PPFNet and PPF FoldNet by Deng et al. adapts the PointNet architecture for geometric feature description. 3DFeat by Yew and Lee uses a PointNet to extract features in outdoor scenes.\n\nOur work addressed a number of limitations in the prior work. First, all prior approaches extract a small 3D patch or a set of points and map it to a low-dimensional space. This not only limits the receptive field of the network but is also computationally inefficient since all intermediate representations are computed separately even for overlapping 3D regions. Second, using expensive low-level geometric signatures as input can slow down feature computation. Lastly, limiting feature extraction to a subset of interest points results in lower spatial resolution for subsequent matching stages and can thus reduce registration accuracy.\n\n\n### Fully Convolutional Metric Learning, Hardest Contrastive, and Hardest Triplet Loss\n\nTraditional metric learning assumes that the features are independent and identically distributed (i.i.d.) since a batch is constructed by random sampling. However, in fully-convolutional metric learning first proposed in [Universal Correspondence Network, Choy 2016](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002Fopen-ucn), adjacent features are locally correlated and hard-negative mining could find features adjacent to anchors, which are false negatives. Thus, filtering out these false negatives is a crucial step similar to how Universal Correspondence Network used a distance threshold to filter out the false negatives.\n\nAlso, the number of features used in the fully-convolutional setting is orders of magnitude larger than that in standard metric learning algorithms. For instance, FCGF generates ~40k features for a pair of scans (this increases proportionally with the batch size) while a minibatch in traditional metric learning has around 1k features. Thus, it is not feasible to use all pairwise distances within a batch in the standard metric learning.\n\nInstead, we propose the hardest-contrastive loss and the hardest-triplet loss. Visually, these are simple variants that use the hardest negatives for both features within a positive pair.\nOne of the key advantages of the hardest-contrastive loss is that you do not need to save the temporary variables used to find the hardest negatives. This small change allows us to reconstruct the loss from the hardest negatives indices and throw away the intermediate results among a large number of feature. [Here](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002Fopen-ucn\u002Fblob\u002Fmaster\u002Flib\u002Fucn_trainer.py#L435), we used almost 40k features to mine the hardest negative and destroy all intermediate variables once the indices of the hardest negatives are found for each positive feature.\n\n| Contrastive Loss   | Triplet Loss       | Hardest Contrastive | Hardest Triplet    |\n|:------------------:|:------------------:|:-------------------:|:------------------:|\n| ![1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_514c905cd5bd.png) | ![2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_81ed3ddbf6e8.png) | ![3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_4a2bae23bbb5.png)  | ![4](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_83a7d171dbd8.png) |\n\n*Sampling and negative-mining strategy for each method. Blue: positives, Red: Negatives. Traditional contrastive and triplet losses use random sampling. Our hardest-contrastive and hardest-triplet losses use the hardest negatives.*\n\nPlease refer to our [ICCV'19 paper](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002Ffcgf.pdf) for more details.\n\n\n### Visualization of FCGF\n\nWe color-coded FCGF features for pairs of 3D scans that are 10m apart for KITTI and a 3DMatch benchmark pair for indoor scans. FCGF features are mapped to a scalar space using t-SNE and colorized with the Spectral color map.\n\n| KITTI LIDAR Scan 1   | KITTI LIDAR Scan 2   |\n|:--------------------:|:--------------------:|\n| ![0](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_c838a515b449.png) | ![1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_d3b9bf882f79.png) |\n\n| Indoor Scan 1              | Indoor Scan 2              |\n|:--------------------------:|:--------------------------:|\n| ![0](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_25efb6805b18.png) | ![1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_f960d21ecbe9.png) |\n\n#### FCGF Correspondence Visualizations\n\nPlease follow the link [Youtube Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=d0p0eTaB50k) or click the image to view the YouTube video of FCGF visualizations.\n[![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_a0dd63443ead.gif)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=d0p0eTaB50k)\n\n## Requirements\n\n- Ubuntu 14.04 or higher\n- CUDA 11.1 or higher\n- Python v3.7 or higher\n- Pytorch v1.6 or higher\n- [MinkowskiEngine](https:\u002F\u002Fgithub.com\u002Fstanfordvl\u002FMinkowskiEngine) v0.5 or higher\n\n\n## Installation & Dataset Download\n\n\nWe recommend conda for installation. First, create a conda environment with pytorch 1.5 or higher with\n\n```\nconda create -n py3-fcgf python=3.7\nconda activate py3-fcgf\nconda install pytorch -c pytorch\npip install git+https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMinkowskiEngine.git\n```\n\nNext, download FCGF git repository and install the requirement from the FCGF root directory..\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF.git\ncd FCGF\n# Do the following inside the conda environment\npip install -r requirements.txt\n```\n\nFor training, download the preprocessed 3DMatch benchmark dataset.\n\n```\n.\u002Fscripts\u002Fdownload_datasets.sh \u002Fpath\u002Fto\u002Fdataset\u002Fdownload\u002Fdir\n```\n\nFor KITTI training, follow the instruction on [KITTI Odometry website](http:\u002F\u002Fwww.cvlibs.net\u002Fdatasets\u002Fkitti\u002Feval_odometry.php) to download the KITTI odometry training set.\n\n\n## Demo: Extracting and color coding FCGF\n\nAfter installation, you can run the demo script by\n\n```\npython demo.py\n```\n\nThe demo script will first extract FCGF features from a mesh file generated from a kitchen scene. Next, it will color code the features independent of their spatial location.\nAfter the color mapping using TSNE, the demo script will visualize the color coded features by coloring the input point cloud.\n\n![demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_e6b7cce77a7d.png)\n\n*You may have to rotate the scene to get the above visualization.*\n\n\n## Training and running 3DMatch benchmark\n\n```\npython train.py --threed_match_dir \u002Fpath\u002Fto\u002Fthreedmatch\u002F\n```\n\nFor benchmarking the trained weights on 3DMatch, download the 3DMatch Geometric Registration Benchmark dataset from [here](http:\u002F\u002F3dmatch.cs.princeton.edu\u002F) or run\n\n```\nbash .\u002Fscripts\u002Fdownload_3dmatch_test.sh \u002Fpath\u002Fto\u002Fthreedmatch_test\u002F\n```\n\nand follow:\n\n```\npython -m scripts.benchmark_3dmatch.py \\\n    --source \u002Fpath\u002Fto\u002Fthreedmatch \\\n    --target .\u002Ffeatures_tmp\u002F \\\n    --voxel_size 0.025 \\\n    --model ~\u002Foutputs\u002Fcheckpoint.pth \\\n    --extract_features --evaluate_feature_match_recall --with_cuda\n```\n\n\n## Training and testing on KITTI Odometry custom split\n\nFor KITTI training, follow the instruction on [KITTI Odometry website](http:\u002F\u002Fwww.cvlibs.net\u002Fdatasets\u002Fkitti\u002Feval_odometry.php) to download the KITTI odometry training set.\n\n```\nexport KITTI_PATH=\u002Fpath\u002Fto\u002Fkitti\u002F; .\u002Fscripts\u002Ftrain_fcgf_kitti.sh\n```\n\n## Registration Test on 3DMatch\n\n\n\n## Model Zoo\n\n| Model       | Normalized Feature  | Dataset | Voxel Size    | Feature Dimension | Performance                | Link   |\n|:-----------:|:-------------------:|:-------:|:-------------:|:-----------------:|:--------------------------:|:------:|\n| ResUNetBN2C | True                | 3DMatch | 2.5cm (0.025) | 32                | FMR: 0.9578 +- 0.0272      | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-08-19_06-17-41.pth) |\n| ResUNetBN2C | True                | 3DMatch | 2.5cm (0.025) | 16                | FMR: 0.9442 +- 0.0345      | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-09-18_14-15-59.pth) |\n| ResUNetBN2C | True                | 3DMatch | 5cm   (0.05)  | 32                | FMR: 0.9372 +- 0.0332      | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-08-16_19-21-47.pth) |\n| ResUNetBN2C | False               | KITTI   | 20cm  (0.2)   | 32                | RTE: 0.0534m, RRE: 0.1704° | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-07-31_19-30-19.pth) |\n| ResUNetBN2C | False               | KITTI   | 30cm  (0.3)   | 32                | RTE: 0.0607m, RRE: 0.2280° | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-07-31_19-37-00.pth) |\n| ResUNetBN2C | True                | KITTI   | 30cm  (0.3)   | 16                | RTE: 0.0670m, RRE: 0.2295° | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002FKITTI-v0.3-ResUNetBN2C-conv1-5-nout16.pth) |\n| ResUNetBN2C | True                | KITTI   | 30cm  (0.3)   | 32                | RTE: 0.0639m, RRE: 0.2253° | [download](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002FKITTI-v0.3-ResUNetBN2C-conv1-5-nout32.pth) |\n\n\n## Raw Data for FCGF Figure 4\n\n- [Distance threshold data](https:\u002F\u002Fraw.githubusercontent.com\u002Fchrischoy\u002FFCGF\u002Fmaster\u002Fassets\u002Ffig4_dist_thresh.txt)\n- [Inlier threshold data](https:\u002F\u002Fraw.githubusercontent.com\u002Fchrischoy\u002FFCGF\u002Fmaster\u002Fassets\u002Ffig4_inlier_thresh.txt)\n\n\n## Citing FCGF\n\nFCGF will be presented at ICCV'19: Friday, November 1, 2019, 1030–1300 Poster 4.1 (Hall B)\n\n```\n@inproceedings{FCGF2019,\n    author = {Christopher Choy and Jaesik Park and Vladlen Koltun},\n    title = {Fully Convolutional Geometric Features},\n    booktitle = {ICCV},\n    year = {2019},\n}\n```\n\n## Related Projects\n\n- A neural network library for high-dimensional sparse tensors: [Minkowski Engine, CVPR'19](https:\u002F\u002Fgithub.com\u002FStanfordVL\u002FMinkowskiEngine)\n- Semantic segmentation on a high-dimensional sparse tensor: [4D Spatio Temporal ConvNets, CVPR'19](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FSpatioTemporalSegmentation)\n- The first fully convolutional metric learning for correspondences: [Universal Correspondence Network, NIPS'16](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002Fopen-ucn)\n- 3D Registration Network with 6-dimensional ConvNets: [Deep Global Registration, CVPR'20](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FDeepGlobalRegistration)\n\n\n## Projects using FCGF\n\n- Gojcic et al., [Learning multiview 3D point cloud registration, CVPR'20](https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.05119)\n- Choy et al., [Deep Global Registration, CVPR'20 Oral](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.11540)\n\n\n## Acknowledgements\n\nWe want to thank all the ICCV reviewers, especially R2, for suggestions and valuable pointers.\n","# 全卷积几何特征，ICCV 2019\n\n从3D扫描或点云中提取几何特征是配准、重建和跟踪等应用的第一步。当前最先进的方法需要计算低级特征作为输入，或者提取感受野有限的基于补丁的特征。在本工作中，我们提出了全卷积几何特征，这些特征由一个3D全卷积网络一次性计算得出。我们还提出了新的度量学习损失函数，显著提升了性能。全卷积几何特征紧凑、能够捕捉广泛的空间上下文，并且可以扩展到大型场景。我们在室内和室外数据集上对我们的方法进行了实验验证。全卷积几何特征无需预处理即可达到最先进的精度，特征维度仅为32维，且速度比最精确的先前方法快600倍。\n\n[ICCV'19论文](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002Ffcgf.pdf)\n\n## 新闻\n\n- 2020年10月2日：在[MinkowskiEngineBenchmark](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FMinkowskiEngineBenchmark)上测量了v0.5版本下的FCGF加速效果。根据批次大小的不同，加速比范围为2.7倍至7.7倍。\n- 2020年9月4日：ME v0.5版本的更新进一步将推理时间从13.2毫秒缩短至11.8毫秒。作为参考，ME v0.4版本需要37毫秒。\n- 2020年8月18日：v0.5版本已合并到主分支，并支持v0.5版本的安装。现在可以使用完整的GPU支持稀疏张量hi-COO表示，以实现更快的训练和推理。\n- 2020年8月7日：[MinkowskiEngine](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMinkowskiEngine) v0.5版本将**FCGF的推理速度提升了2.8倍**（即280%的加速，ResUNetBN2C在3DMatch厨房点云ID-20上的前向传播时间从ME v0.4.3的37毫秒降至ME v0.5.0的13.2毫秒）。测试环境为TitanXP显卡和Ryzen-3700X处理器。\n- 2020年6月15日：用于**深度全局配准，CVPR'20口头报告**的[源代码](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FDeepGlobalRegistration)已发布。请参考该仓库和论文，了解如何使用FCGF进行配准。\n\n## 3D特征的精度与速度对比\n\n| 对比表           | 速度与精度 |\n|:----------------------------:|:------------------:|\n| ![表格](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_3d600ddda0c2.png)   | ![精度与速度](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_4c0cb724bb88.png) |\n\n*在3DMatch基准测试上，以对数尺度展示特征匹配召回率与速度。我们的方法既是最精确的，也是最快的。灰色区域表示先前方法的帕累托前沿。*\n\n\n### 相关工作\n\nZeng等人提出的3DMatch使用孪生卷积网络来学习3D补丁描述符。\nKhoury等人提出的CGF利用多层感知机将3D方向直方图映射到低维特征空间。Deng等人提出的PPFNet和PPF FoldNet则将PointNet架构应用于几何特征描述。Yew和Lee提出的3DFeat使用PointNet在户外场景中提取特征。\n\n我们的工作解决了先前研究中的若干局限性。首先，所有先前方法都是提取一个小的3D补丁或一组点，然后将其映射到低维空间。这不仅限制了网络的感受野，而且由于即使对于重叠的3D区域也需要分别计算所有中间表示，因此计算效率低下。其次，使用昂贵的低级几何特征作为输入会降低特征计算的速度。最后，将特征提取限制在感兴趣的点子集上会导致后续匹配阶段的空间分辨率降低，从而降低配准精度。\n\n\n### 全卷积度量学习、最难对比损失与最难三元组损失\n\n传统的度量学习假设特征是独立同分布的(i.i.d.)，因为批次是通过随机采样构建的。然而，在首次提出于[通用对应网络，Choy 2016](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002Fopen-ucn)中的全卷积度量学习中，相邻的特征在局部是相关的，而难负样本挖掘可能会找到与锚点相邻的特征，这些实际上是假负样本。因此，过滤掉这些假负样本是一个关键步骤，类似于通用对应网络使用距离阈值来过滤假负样本的方式。\n\n此外，在全卷积设置中使用的特征数量比标准度量学习算法大得多。例如，FCGF为一对扫描生成约4万个特征（这一数字会随着批次大小成比例增加），而传统度量学习中的小批量通常只有约1千个特征。因此，在标准度量学习中使用批次内的所有两两距离是不现实的。\n\n相反，我们提出了最难对比损失和最难三元组损失。从视觉上看，它们只是简单的变体，都使用正样本对中每个特征的最难负样本。\n\n最难对比损失的一个关键优势是不需要保存用于寻找最难负样本的临时变量。这一小小的改动使我们能够仅根据最难负样本的索引重建损失，并在找到每个正样本的最难负样本后丢弃中间结果。[在这里](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002Fopen-ucn\u002Fblob\u002Fmaster\u002Flib\u002Fucn_trainer.py#L435)，我们使用了近4万个特征来挖掘最难负样本，并在找到每个正样本的最难负样本索引后立即销毁所有中间变量。\n\n| 对比损失   | 三元组损失       | 最难对比    | 最难三元组    |\n|:------------------:|:------------------:|:-------------------:|:------------------:|\n| ![1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_514c905cd5bd.png) | ![2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_81ed3ddbf6e8.png) | ![3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_4a2bae23bbb5.png)  | ![4](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_83a7d171dbd8.png) |\n\n*每种方法的采样和负样本挖掘策略。蓝色：正样本，红色：负样本。传统的对比损失和三元组损失采用随机采样，而我们的最难对比损失和最难三元组损失则使用最难负样本。*\n\n更多详细信息请参阅我们的[ICCV'19论文](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002Ffcgf.pdf)。\n\n\n### FCGF可视化\n\n我们为相距10米的KITTI数据集中的两组3D扫描以及3DMatch基准测试中的室内扫描对，使用t-SNE将FCGF特征映射到标量空间，并用光谱颜色映射对其进行着色。\n\n| KITTI LIDAR扫描1   | KITTI LIDAR扫描2   |\n|:--------------------:|:--------------------:|\n| ![0](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_c838a515b449.png) | ![1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_d3b9bf882f79.png) |\n\n| 室内扫描1              | 室内扫描2              |\n|:--------------------------:|:--------------------------:|\n| ![0](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_25efb6805b18.png) | ![1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_f960d21ecbe9.png) |\n\n#### FCGF对应关系可视化\n\n请点击链接[Youtube视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=d0p0eTaB50k)或点击图片观看FCGF可视化的YouTube视频。\n[![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_a0dd63443ead.gif)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=d0p0eTaB50k)\n\n## 需求\n\n- Ubuntu 14.04 或更高版本\n- CUDA 11.1 或更高版本\n- Python v3.7 或更高版本\n- PyTorch v1.6 或更高版本\n- [MinkowskiEngine](https:\u002F\u002Fgithub.com\u002Fstanfordvl\u002FMinkowskiEngine) v0.5 或更高版本\n\n\n## 安装与数据集下载\n\n\n我们推荐使用 conda 进行安装。首先，创建一个包含 PyTorch 1.5 或更高版本的 conda 环境：\n\n```\nconda create -n py3-fcgf python=3.7\nconda activate py3-fcgf\nconda install pytorch -c pytorch\npip install git+https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMinkowskiEngine.git\n```\n\n接下来，克隆 FCGF 的 Git 仓库，并在 FCGF 根目录下安装依赖项：\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF.git\ncd FCGF\n# 在 conda 环境中执行以下命令\npip install -r requirements.txt\n```\n\n训练时，请下载预处理好的 3DMatch 基准数据集：\n\n```\n.\u002Fscripts\u002Fdownload_datasets.sh \u002Fpath\u002Fto\u002Fdataset\u002Fdownload\u002Fdir\n```\n\n对于 KITTI 数据集的训练，请按照 [KITTI Odometry 官网](http:\u002F\u002Fwww.cvlibs.net\u002Fdatasets\u002Fkitti\u002Feval_odometry.php) 的说明下载 KITTI odometry 训练集。\n\n\n## 演示：提取并为 FCGF 特征着色\n\n安装完成后，可以通过以下命令运行演示脚本：\n\n```\npython demo.py\n```\n\n演示脚本首先会从厨房场景生成的网格文件中提取 FCGF 特征，然后根据特征独立于其空间位置进行着色。接着，通过 TSNE 进行颜色映射后，脚本会将这些着色后的特征应用到输入点云上进行可视化。\n\n![demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_readme_e6b7cce77a7d.png)\n\n*您可能需要旋转场景以获得上述可视化效果。*\n\n\n## 3DMatch 基准测试的训练与运行\n\n```\npython train.py --threed_match_dir \u002Fpath\u002Fto\u002Fthreedmatch\u002F\n```\n\n要对 3DMatch 上训练得到的权重进行基准测试，请从 [这里](http:\u002F\u002F3dmatch.cs.princeton.edu\u002F) 下载 3DMatch 几何配准基准数据集，或者运行：\n\n```\nbash .\u002Fscripts\u002Fdownload_3dmatch_test.sh \u002Fpath\u002Fto\u002Fthreedmatch_test\u002F\n```\n\n然后按照以下步骤操作：\n\n```\npython -m scripts.benchmark_3dmatch.py \\\n    --source \u002Fpath\u002Fto\u002Fthreedmatch \\\n    --target .\u002Ffeatures_tmp\u002F \\\n    --voxel_size 0.025 \\\n    --model ~\u002Foutputs\u002Fcheckpoint.pth \\\n    --extract_features --evaluate_feature_match_recall --with_cuda\n```\n\n\n## KITTI Odometry 自定义划分下的训练与测试\n\n对于 KITTI 数据集的训练，按照 [KITTI Odometry 官网](http:\u002F\u002Fwww.cvlibs.net\u002Fdatasets\u002Fkitti\u002Feval_odometry.php) 的说明下载 KITTI odometry 训练集。\n\n```\nexport KITTI_PATH=\u002Fpath\u002Fto\u002Fkitti\u002F; .\u002Fscripts\u002Ftrain_fcgf_kitti.sh\n```\n\n## 3DMatch 上的配准测试\n\n\n\n## 模型库\n\n| 模型       | 归一化特征  | 数据集 | 体素大小    | 特征维度 | 性能                | 链接   |\n|:-----------:|:-------------------:|:-------:|:-------------:|:-----------------:|:--------------------------:|:------:|\n| ResUNetBN2C | 是                | 3DMatch | 2.5cm (0.025) | 32                | FMR: 0.9578 ± 0.0272      | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-08-19_06-17-41.pth) |\n| ResUNetBN2C | 是                | 3DMatch | 2.5cm (0.025) | 16                | FMR: 0.9442 ± 0.0345      | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-09-18_14-15-59.pth) |\n| ResUNetBN2C | 是                | 3DMatch | 5cm   (0.05)  | 32                | FMR: 0.9372 ± 0.0332      | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-08-16_19-21-47.pth) |\n| ResUNetBN2C | 否                | KITTI   | 20cm  (0.2)   | 32                | RTE: 0.0534m, RRE: 0.1704° | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-07-31_19-30-19.pth) |\n| ResUNetBN2C | 否                | KITTI   | 30cm  (0.3)   | 32                | RTE: 0.0607m, RRE: 0.2280° | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-07-31_19-37-00.pth) |\n| ResUNetBN2C | 是                | KITTI   | 30cm  (0.3)   | 16                | RTE: 0.0670m, RRE: 0.2295° | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002FKITTI-v0.3-ResUNetBN2C-conv1-5-nout16.pth) |\n| ResUNetBN2C | 是                | KITTI   | 30cm  (0.3)   | 32                | RTE: 0.0639m, RRE: 0.2253° | [下载](https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002FKITTI-v0.3-ResUNetBN2C-conv1-5-nout32.pth) |\n\n\n## FCGF 图4 的原始数据\n\n- [距离阈值数据](https:\u002F\u002Fraw.githubusercontent.com\u002Fchrischoy\u002FFCGF\u002Fmaster\u002Fassets\u002Ffig4_dist_thresh.txt)\n- [内点阈值数据](https:\u002F\u002Fraw.githubusercontent.com\u002Fchrischoy\u002FFCGF\u002Fmaster\u002Fassets\u002Ffig4_inlier_thresh.txt)\n\n\n## 引用 FCGF\n\nFCGF 将在 ICCV'19 上展示：2019年11月1日星期五，10:30–13:00，海报 4.1（B厅）。\n\n```\n@inproceedings{FCGF2019,\n    author = {Christopher Choy and Jaesik Park and Vladlen Koltun},\n    title = {Fully Convolutional Geometric Features},\n    booktitle = {ICCV},\n    year = {2019},\n}\n```\n\n## 相关项目\n\n- 用于高维稀疏张量的神经网络库：[Minkowski Engine, CVPR'19](https:\u002F\u002Fgithub.com\u002FStanfordVL\u002FMinkowskiEngine)\n- 高维稀疏张量上的语义分割：[4D Spatio Temporal ConvNets, CVPR'19](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FSpatioTemporalSegmentation)\n- 第一个用于对应关系的全卷积度量学习：[Universal Correspondence Network, NIPS'16](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002Fopen-ucn)\n- 使用六维卷积网络的 3D 注册网络：[Deep Global Registration, CVPR'20](https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FDeepGlobalRegistration)\n\n\n## 使用 FCGF 的项目\n\n- Gojcic 等人，[学习多视角 3D 点云配准，CVPR'20](https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.05119)\n- Choy 等人，[Deep Global Registration，CVPR'20 口头报告](https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.11540)\n\n\n## 致谢\n\n我们感谢所有 ICCV 的审稿人，尤其是 R2，感谢他们的建议和宝贵意见。","# FCGF 快速上手指南\n\nFCGF (Fully Convolutional Geometric Features) 是一个用于从 3D 扫描或点云中提取几何特征的高效开源工具。它基于 3D 全卷积网络，能够单次前向传播生成紧凑（32 维）且包含广阔空间上下文信息的特征，广泛应用于配准、重建和跟踪等任务。相比传统方法，FCGF 无需预处理，速度快且精度更高。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Ubuntu 14.04 或更高版本\n*   **GPU 驱动**: CUDA 11.1 或更高版本\n*   **Python**: v3.7 或更高版本\n*   **深度学习框架**: PyTorch v1.6 或更高版本\n*   **核心依赖**: [MinkowskiEngine](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMinkowskiEngine) v0.5 或更高版本（用于处理稀疏张量）\n\n> **注意**：本项目强依赖 GPU 加速，请确保已正确安装 NVIDIA 驱动和 CUDA  toolkit。\n\n## 安装步骤\n\n推荐使用 `conda` 进行环境管理，以避免依赖冲突。\n\n### 1. 创建并激活 Conda 环境\n\n```bash\nconda create -n py3-fcgf python=3.7\nconda activate py3-fcgf\n```\n\n### 2. 安装 PyTorch\n\n根据您的 CUDA 版本安装对应的 PyTorch。以下为通用安装命令（建议访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002F) 获取适合您环境的特定命令，国内用户可使用清华源加速）：\n\n```bash\n# 示例：使用 pip 安装（若网络较慢可添加 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple）\npip install torch torchvision torchaudio\n```\n\n### 3. 安装 MinkowskiEngine\n\nFCGF 依赖 MinkowskiEngine 进行稀疏卷积运算。直接从 GitHub 安装最新兼容版本：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMinkowskiEngine.git\n```\n\n### 4. 克隆 FCGF 仓库并安装依赖\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF.git\ncd FCGF\npip install -r requirements.txt\n```\n\n### 5. 下载数据集（可选，用于训练或测试）\n\n如果您需要运行基准测试或重新训练模型，请下载预处理好的 3DMatch 数据集：\n\n```bash\n.\u002Fscripts\u002Fdownload_datasets.sh \u002Fpath\u002Fto\u002Fdataset\u002Fdownload\u002Fdir\n```\n\n对于 KITTI 数据集，请访问 [KITTI Odometry 官网](http:\u002F\u002Fwww.cvlibs.net\u002Fdatasets\u002Fkitti\u002Feval_odometry.php) 手动下载并放置到指定路径。\n\n## 基本使用\n\n安装完成后，您可以立即运行演示脚本来体验特征提取与可视化功能。\n\n### 运行演示脚本\n\n该脚本将从一个厨房场景的网格文件中提取 FCGF 特征，利用 t-SNE 将高维特征映射到标量空间并进行着色，最后可视化着色后的点云。\n\n```bash\npython demo.py\n```\n\n运行成功后，您将看到一个可视化的点云窗口（可能需要旋转视角以观察最佳效果），不同颜色代表不同的几何特征描述子。\n\n### 提取特征并评估（3DMatch 基准）\n\n如果您已训练好模型或下载了预训练权重，可以使用以下命令在 3DMatch 数据集上提取特征并评估匹配召回率：\n\n```bash\npython -m scripts.benchmark_3dmatch.py \\\n    --source \u002Fpath\u002Fto\u002Fthreedmatch \\\n    --target .\u002Ffeatures_tmp\u002F \\\n    --voxel_size 0.025 \\\n    --model ~\u002Foutputs\u002Fcheckpoint.pth \\\n    --extract_features --evaluate_feature_match_recall --with_cuda\n```\n\n*   `--source`: 3DMatch 数据集路径\n*   `--model`: 预训练模型权重路径（可从下文 Model Zoo 下载）\n*   `--voxel_size`: 体素化大小，通常设为 0.025 (2.5cm)\n\n### 获取预训练模型\n\n您可以从官方提供的 Model Zoo 下载针对不同数据集（3DMatch, KITTI）和体素大小优化的预训练权重，直接用于推理或微调。例如，下载 3DMatch (2.5cm, 32 维) 的模型：\n\n```bash\nwget https:\u002F\u002Fnode1.chrischoy.org\u002Fdata\u002Fpublications\u002Ffcgf\u002F2019-08-19_06-17-41.pth -O checkpoint.pth\n```","某自动驾驶团队正在处理城市街道的海量激光雷达点云数据，需要将不同时间扫描的片段高精度拼接以构建实时地图。\n\n### 没有 FCGF 时\n- **特征提取极慢**：传统方法需对每个局部补丁单独计算特征，即使区域重叠也无法复用中间结果，导致处理大规模场景耗时数分钟。\n- **视野受限导致匹配失败**：基于小补丁的方法感受野有限，在纹理重复或结构相似的街道场景中，难以捕捉全局上下文，容易产生错误匹配。\n- **依赖繁琐预处理**：为了加速计算，必须先人工提取昂贵的低级几何签名作为输入，增加了流水线的复杂度和延迟。\n- **空间分辨率低**：仅能在稀疏的关键点上提取特征，丢失了大量细节信息，最终导致地图拼接出现明显错位。\n\n### 使用 FCGF 后\n- **推理速度提升 600 倍**：FCGF 利用全卷积网络单次前向传播即可为整个场景生成特征，将原本分钟级的处理压缩至毫秒级，实现实时响应。\n- **捕捉广阔空间上下文**：紧凑的 32 维特征能感知大范围的空间结构，显著提升了在复杂街道环境中的匹配准确率，达到业界最先进水平。\n- **无需预处理直接输入**：FCGF 可直接处理原始 3D 扫描数据，省去了手动设计几何特征的步骤，大幅简化了工程链路。\n- **稠密特征提升精度**：能够在所有体素上生成高分辨率特征，保留了丰富的几何细节，使得地图注册和重建的误差降至最低。\n\nFCGF 通过“一次遍历、全局感知”的机制，彻底解决了 3D 点云处理中速度与精度不可兼得的难题，让大规模实时三维重建成为可能。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fchrischoy_FCGF_9cce407c.png","chrischoy","Chris Choy","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fchrischoy_83fbdaf6.png","Sr. Research Scientist @NVIDIA. Previously Ph.D. from Stanford Vision and Learning Lab @StanfordVL (SVL), Stanford AI Lab, SAIL.","NVIDIA",null,"realChrisChoy","http:\u002F\u002Fchrischoy.org","https:\u002F\u002Fgithub.com\u002Fchrischoy",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",96.1,{"name":87,"color":88,"percentage":89},"Shell","#89e051",3.9,723,115,"2026-04-18T15:27:10","MIT",4,"Linux","需要 NVIDIA GPU，支持 CUDA 11.1 或更高版本（文中测试环境提及 TitanXP），具体显存大小未说明","未说明",{"notes":99,"python":100,"dependencies":101},"官方推荐使用 conda 进行环境管理。该工具依赖 MinkowskiEngine 库以支持稀疏张量的高性能计算。训练需下载 3DMatch 或 KITTI 数据集。虽然新闻部分提到了较新的加速版本，但基础要求部分明确指定了 CUDA 11.1+ 和 Pytorch 1.6+。","3.7+",[102,103],"Pytorch>=1.6","MinkowskiEngine>=0.5",[105,14],"其他",[107,108,109,110,111,112,113,114,115],"3d","feature-extraction","correspondence","fully-convolutional","neural-network","registration","pytorch","minkowskiengine","sparse-tensor","2026-03-27T02:49:30.150509","2026-04-20T04:07:09.264858",[119,124,129,134,139,144],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},43309,"预训练模型或数据集的下载链接失效了怎么办？","由于域名服务迁移导致部分链接暂时不可用。维护者已提供 Google Drive 备用下载链接：https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F14S59bgcQS9gwf1y5lvssRJKaS5EUedaP?usp=sharing。如果原链接再次失效，请使用此备用链接获取资源。","https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF\u002Fissues\u002F76",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},43310,"在 3DMatch 数据集上评估时出现 'Mean of empty slice' 或 'nan' 错误如何解决？","该错误通常是由于代码逻辑问题导致无法正确读取轨迹文件。请检查 `scripts\u002Fbenchmark_3dmatch.py` 第 174 行附近的 `read_trajectory()` 函数调用，确保其输入参数是正确的地面真值日志文件（xxxx_gt.log），而不是空值。维护者已修复相关 commit，建议拉取最新代码或手动修正该处逻辑。","https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF\u002Fissues\u002F17",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},43311,"在 KITTI 数据集上进行 RANSAC 配准速度极慢（每帧超过 30 秒）是否正常？如何优化？","默认配置下的 RANSAC 收敛标准（`max_validations` 设为 10000）会导致计算量巨大。可以通过调整 `RANSACConvergenceCriteria` 参数来优化：将最大验证次数（第二个参数）降低至 25 左右，可将注册速度提升至约 1 秒\u002F帧。虽然这可能会使平移误差（RTE）从 5-6cm 略微增加到 11-12cm，但成功率通常保持不变。此外，请确保使用最新的 Open3D 版本，注意旧版 `o3d.registration` 已迁移至 `o3d.pipelines.registration`。","https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF\u002Fissues\u002F12",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},43312,"当点云重叠率较低或存在对称性（如 CAD 模型配准）导致训练不收敛时，有什么建议？","对于具有对称性的模型（如 2 路或 4 路对称），硬负样本挖掘（hardest-negative mining）可能会错误地将对称部分挖掘为负样本，从而破坏训练。解决方案是限制随机旋转增强的范围，以确保对应关系的唯一性。此外，尝试调整体素大小（voxel size）：较大的体素尺寸通常能提供更好的连通性和更大的感受野，从而提升性能；过小的体素会导致稀疏性过高，使卷积退化为无信息的 PointNet。需要在配准分辨率、感受野和稀疏性之间做出权衡。","https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF\u002Fissues\u002F3",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},43313,"FCGF 是否适用于 RGBD 相机捕获的小物体（如杯子）配准？","FCGF 可以应用于小物体，但需要注意数据集的特性。与 3DMatch 和 KITTI 相比，小物体的几何特征较少。如果使用部分点云与完整 CAD 模型进行配准，需特别注意重叠率和对称性问题。建议参考针对低重叠率和对称性场景的优化策略（如限制旋转增强、调整体素大小），并确保输入点云具有足够的表面密度以维持卷积操作的有效性。","https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF\u002Fissues\u002F1",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},43314,"在测试 KITTI 数据集时遇到配置或维度不匹配的错误如何处理？","确保在 `config.json` 中正确设置了数据集类型为 `\"KITTINMPairDataset\"`。同时，检查下载的预训练模型是否与配置匹配（例如：是否使用了归一化特征，维度是否为 32）。如果缺少官方配置文件，可能需要根据模型特性（如 ResUNetBN2C, Normalization=False, 20cm 分辨率等）手动逆向工程构建配置，或直接使用维护者后续更新的评估脚本。","https:\u002F\u002Fgithub.com\u002Fchrischoy\u002FFCGF\u002Fissues\u002F20",[]]