[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ErlerPhilipp--points2surf":3,"tool-ErlerPhilipp--points2surf":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 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"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",[35,15,13,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":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":10,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":105,"github_topics":106,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":142},5067,"ErlerPhilipp\u002Fpoints2surf","points2surf","Learning Implicit Surfaces from Point Clouds (ECCV 2020)","Points2Surf 是一款基于深度学习的开源工具，旨在从稀疏或含噪的点云数据中重建高质量的三维隐式曲面。它通过神经网络估算符号距离函数（SDF），并利用移动立方体算法将其转化为网格模型，有效解决了传统方法在处理复杂几何形状时细节丢失或拓扑错误的问题。\n\n该工具特别适合计算机图形学研究人员、3D 视觉开发者以及需要高精度三维重建的专业人士使用。与 DeepSDF 或 AtlasNet 等依赖特定物体类别的方法不同，Points2Surf 采用了独特的“基于补丁”（patch-based）架构。这一设计使其不局限于特定物体类别，具备极强的泛化能力，能够更准确地还原任意形状的细节，甚至在多数场景下优于经典的屏幕泊松表面重建算法。作为 ECCV 2020 的亮点论文成果，Points2Surf 为学术界和工业界提供了一套高效、通用的点云至网格解决方案，帮助用户轻松获得比现有主流技术更优的重建效果。","# Points2Surf: Learning Implicit Surfaces from Point Clouds (ECCV 2020 Spotlight)\n\nPlease see our follow-up work [PPSurf](https:\u002F\u002Fgithub.com\u002Fcg-tuwien\u002Fppsurf). It's easier to use, much faster and better.\n\nThis is our implementation of [Points2Surf](https:\u002F\u002Fwww.cg.tuwien.ac.at\u002Fresearch\u002Fpublications\u002F2020\u002Ferler-2020-p2s\u002F),\na network that estimates a signed distance function from point clouds. This SDF is turned into a mesh with Marching Cubes. For more details, please watch the [short video](https:\u002F\u002Fwww.cg.tuwien.ac.at\u002Fresearch\u002Fpublications\u002F2020\u002Ferler-2020-p2s\u002Ferler-2020-p2s-short%20video.mp4) and [long video](https:\u002F\u002Fwww.cg.tuwien.ac.at\u002Fresearch\u002Fpublications\u002F2020\u002Ferler-2020-p2s\u002Ferler-2020-p2s-long%20video.mp4).\n\n![Points2Surf reconstructs objects from arbitrary points clouds more accurately than DeepSDF, AtlasNet and Screened Poisson Surface Reconstruction.](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FErlerPhilipp_points2surf_readme_da9f4e6bbb03.png)\n\nThe architecture is similar to [PCPNet](https:\u002F\u002Fgithub.com\u002Fpaulguerrero\u002Fpcpnet\u002F). In contrast to other ML-based surface reconstruction methods, e.g. [DeepSDF](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002FDeepSDF) and [AtlasNet](https:\u002F\u002Fgithub.com\u002FThibaultGROUEIX\u002FAtlasNet), Points2Surf is patch-based and therefore independent from classes. The strongly improved generalization leads to much better results, even better than [Screened Poisson Surface Reconstruction](http:\u002F\u002Fhhoppe.com\u002Fproj\u002Fscreenedpoisson\u002F) in most cases.\n\nThis code was mostly written by [Philipp Erler](https:\u002F\u002Fphilipperler.net\u002F) and [Paul Guerrero](https:\u002F\u002Fpaulguerrero.github.io).\nThis work was published at [ECCV 2020](https:\u002F\u002Feccv2020.eu\u002F).\n\n\n## Prerequisites\n* Python >= 3.7\n* PyTorch >= 1.6\n* CUDA and CuDNN if using GPU\n* BlenSor 1.0.18 RC 10 for dataset generation\n\n\n## Quick Start\n\nTo get a minimal working example for training and reconstruction, follow these steps. We recommend using [Anaconda](https:\u002F\u002Fanaconda.org\u002F) to manage the Python environment. Otherwise, you can install the required packages with Pip as defined in the requirements.txt.\n\n``` bash\n# clone this repo\n# a minimal dataset is included (2 shapes for training, 1 for evaluation)\ngit clone https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf.git\n\n# go into the cloned dir\ncd points2surf\n\n# create a conda environment with the required packages\nconda env create --file p2s.yml\n\n# activate the new conda environment\nconda activate p2s\n\n# train and evaluate the vanilla model with default settings\npython full_run.py\n```\n\n\n## Reconstruct Surfaces from our Point Clouds\n\nReconstruct meshes from a point clouds to replicate our results:\n``` bash\n# download the test datasets\npython datasets\u002Fdownload_datasets_abc.py\npython datasets\u002Fdownload_datasets_famous.py\npython datasets\u002Fdownload_datasets_thingi10k.py\npython datasets\u002Fdownload_datasets_real_world.py\n\n# download the pre-trained models\npython models\u002Fdownload_models_vanilla.py\npython models\u002Fdownload_models_ablation.py\npython models\u002Fdownload_models_max.py\n\n# start the evaluation for each model\n# Points2Surf main model, trained for 150 epochs\nbash experiments\u002Feval_p2s_vanilla.sh\n\n# ablation models, trained to for 50 epochs\nbash experiments\u002Feval_p2s_small_radius.sh\nbash experiments\u002Feval_p2s_medium_radius.sh\nbash experiments\u002Feval_p2s_large_radius.sh\nbash experiments\u002Feval_p2s_small_kNN.sh\nbash experiments\u002Feval_p2s_large_kNN.sh\nbash experiments\u002Feval_p2s_shared_transformer.sh\nbash experiments\u002Feval_p2s_no_qstn.sh\nbash experiments\u002Feval_p2s_uniform.sh\nbash experiments\u002Feval_p2s_vanilla_ablation.sh\n\n# additional ablation models, trained for 50 epochs\nbash experiments\u002Feval_p2s_regression.sh\nbash experiments\u002Feval_p2s_shared_encoder.sh\n\n# best model based on the ablation results, trained for 250 epochs\nbash experiments\u002Feval_p2s_max.sh\n```\n\nEach eval script reconstructs all test sets using the specified model. Running one evaluation takes around one day on a normal PC with e.g. a 1070 GTX and grid resolution = 256.\n\nTo get the best results, take the Max model. It's 15% smaller and produces 4% better results (mean Chamfer distance over all test sets) than the Vanilla model. It avoids the QSTN and uses uniform sub-sampling.\n\n\n## Training with our Dataset\n\nTo train the P2S models from the paper with our training set:\n``` bash\n# download the ABC training and validation set\npython datasets\u002Fdownload_datasets_abc_training.py\n\n# start the evaluation for each model\n# Points2Surf main model, train for 150 epochs\nbash experiments\u002Ftrain_p2s_vanilla.sh\n\n# ablation models, train to for 50 epochs\nbash experiments\u002Ftrain_p2s_small_radius.sh\nbash experiments\u002Ftrain_p2s_medium_radius.sh\nbash experiments\u002Ftrain_p2s_large_radius.sh\nbash experiments\u002Ftrain_p2s_small_kNN.sh\nbash experiments\u002Ftrain_p2s_large_kNN.sh\nbash experiments\u002Ftrain_p2s_shared_transformer.sh\nbash experiments\u002Ftrain_p2s_no_qstn.sh\nbash experiments\u002Ftrain_p2s_uniform.sh\nbash experiments\u002Ftrain_p2s_vanilla_ablation.sh\n\n# additional ablation models, train for 50 epochs\nbash experiments\u002Ftrain_p2s_regression.sh\nbash experiments\u002Ftrain_p2s_shared_encoder.sh\n\n# best model based on the ablation results, train for 250 epochs\nbash experiments\u002Ftrain_p2s_max.sh\n```\n\nWith 4 RTX 2080Ti, we trained around 5 days to 150 epochs. Full convergence is at 200-250 epochs but the Chamfer distance doesn't change much. The topological noise might be reduced, though.\n\nLogging of loss (absolute distance, sign logits and both) with Tensorboard is done by default. Additionally, we log the accuracy, recall and F1 score for the sign prediction. You can start a Tensorboard server with: \n``` bash\nbash start_tensorboard.sh\n```\n\n## Make your own Datasets\n\nThe point clouds are stored as [NumPy](https:\u002F\u002Fnumpy.org\u002F) arrays of type np.float32 with ending `.npy` where each line contains the 3 coordinates of a point. The point clouds need to be normalized to the (-1..+1)-range.\n\nA dataset is given by a text file containing the file name (without extension) of one point cloud per line. The file name is given relative to the location of the text file.\n\n\n### Dataset from Meshes for Training and Reconstruction\n\nTo make your own dataset from meshes, place your ground-truth meshes in `.\u002Fdatasets\u002F(DATASET_NAME)\u002F00_base_meshes\u002F`. Meshes must be of a type that [Trimesh](https:\u002F\u002Ftrimsh.org\u002F) can load, e.g. `.ply`, `.stl`, `.obj` or `.off`. Because we need to compute signed distances for the training set, these input meshes must represent solids, i.e be manifold and watertight. Triangulated CAD objects like in the [ABC-Dataset](https:\u002F\u002Farchive.nyu.edu\u002Fhandle\u002F2451\u002F43778) work in most cases. Next, create the text file `.\u002Fdatasets\u002F(DATASET_NAME)\u002Fsettings.ini` with the following settings:\n``` ini\n[general]\nonly_for_evaluation = 0\ngrid_resolution = 256\nepsilon = 5\nnum_scans_per_mesh_min = 5\nnum_scans_per_mesh_max = 30\nscanner_noise_sigma_min = 0.0\nscanner_noise_sigma_max = 0.05\n```\nWhen you set `only_for_evaluation = 1`, the dataset preparation script skips most processing steps and produces only the text file for the test set.\n\nFor the point-cloud sampling, we used [BlenSor 1.0.18 RC 10](https:\u002F\u002Fwww.blensor.org\u002F). Windows users need to fix [a bug in the BlenSor code](https:\u002F\u002Fgithub.com\u002Fmgschwan\u002Fblensor\u002Fissues\u002F30). Make sure that the `blensor_bin` variable in `make_dataset.py` points to your BlenSor binary, e.g. `blensor_bin = \"bin\u002FBlensor-x64.AppImage\"`.\n\nYou may need to change other paths or the number of worker processes and run: \n```\npython make_dataset.py\n```\n\nThe ABC var-noise dataset with about 5k shapes takes around 8 hours using 15 worker processes on a Ryzen 7. Most computation time is required for the sampling and the GT signed distances.\n\n\n### Dataset from Point Clouds for Reconstruction\n\nIf you only want to reconstruct your own point clouds, place them in `.\u002Fdatasets\u002F(DATASET_NAME)\u002F00_base_pc\u002F`. The accepted file types are the same as for meshes.\n\nYou need to change some settings like the dataset name and the number of worker processes in `make_pc_dataset.py` and then run it with:\n```\npython make_pc_dataset.py\n```\n\n\n### Manually Created Dataset for Reconstruction\n\nIn case you already have your point clouds as Numpy files, you can create a dataset manually. Put the *.npy files in the `(DATASET_NAME)\u002F04_pts\u002F` directory. Then, you need to list the names (without extensions, one per line) in a textfile `(DATASET_NAME)\u002Ftestset.txt`.\n\n\n## Related Work\n\n### [Kazhdan, Michael, and Hugues Hoppe. \"Screened poisson surface reconstruction.\" ACM Transactions on Graphics (ToG) 32.3 (2013): 1-13.](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F2487228.2487237)\n\nThis work is the most important baseline for surface reconstruction. It fits a surface into a point cloud.\n\n\n### [Groueix, Thibault, et al. \"A papier-mâché approach to learning 3d surface generation.\" Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2018\u002Fhtml\u002FGroueix_A_Papier-Mache_Approach_CVPR_2018_paper.html)\n\nThis is one of the first data-driven methods for surface reconstruction. It learns to approximate objects with 'patches', deformed and subdivided rectangles.\n\n\n### [Park, Jeong Joon, et al. \"Deepsdf: Learning continuous signed distance functions for shape representation.\" Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_CVPR_2019\u002Fhtml\u002FPark_DeepSDF_Learning_Continuous_Signed_Distance_Functions_for_Shape_Representation_CVPR_2019_paper.html)\n\nThis is one of the first data-driven methods for surface reconstruction. It learns to approximate a signed distance function from points.\n\n\n### [Chabra, Rohan, et al. \"Deep Local Shapes: Learning Local SDF Priors for Detailed 3D Reconstruction.\" arXiv preprint arXiv:2003.10983 (2020).](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.10983)\n\nThis concurrent work uses a similar approach as ours. It produces smooth surfaces but requires point normals.\n\n\n## News\n\n2025-08-02: Add scanner poses and surface normals to dataset generation. See `make_dataset.py` for an example for how to extract and use the information.\n\n\n## Citation\nIf you use our work, please cite our paper:\n```\n@InProceedings{ErlerEtAl:Points2Surf:ECCV:2020,\n  title   = {{Points2Surf}: Learning Implicit Surfaces from Point Clouds}, \n  author=\"Erler, Philipp\n    and Guerrero, Paul\n    and Ohrhallinger, Stefan\n    and Mitra, Niloy J.\n    and Wimmer, Michael\",\n  editor=\"Vedaldi, Andrea\n    and Bischof, Horst\n    and Brox, Thomas\n    and Frahm, Jan-Michael\",\n  year    = {2020},\n  booktitle=\"Computer Vision -- ECCV 2020\",\n  publisher=\"Springer International Publishing\",\n  address=\"Cham\",\n  pages=\"108--124\",\n  abstract=\"A key step in any scanning-based asset creation workflow is to convert unordered point clouds to a surface. Classical methods (e.g., Poisson reconstruction) start to degrade in the presence of noisy and partial scans. Hence, deep learning based methods have recently been proposed to produce complete surfaces, even from partial scans. However, such data-driven methods struggle to generalize to new shapes with large geometric and topological variations. We present Points2Surf, a novel patch-based learning framework that produces accurate surfaces directly from raw scans without normals. Learning a prior over a combination of detailed local patches and coarse global information improves generalization performance and reconstruction accuracy. Our extensive comparison on both synthetic and real data demonstrates a clear advantage of our method over state-of-the-art alternatives on previously unseen classes (on average, Points2Surf brings down reconstruction error by 30{\\%} over SPR and by 270{\\%}+ over deep learning based SotA methods) at the cost of longer computation times and a slight increase in small-scale topological noise in some cases. Our source code, pre-trained model, and dataset are available at: https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf.\",\n  isbn=\"978-3-030-58558-7\"\n  doi = {10.1007\u002F978-3-030-58558-7_7},\n}\n```\n","# Points2Surf: 从点云中学习隐式曲面（ECCV 2020 Spotlight）\n\n请参阅我们的后续工作 [PPSurf](https:\u002F\u002Fgithub.com\u002Fcg-tuwien\u002Fppsurf)。它使用起来更简单、速度更快，效果也更好。\n\n这是我们对 [Points2Surf](https:\u002F\u002Fwww.cg.tuwien.ac.at\u002Fresearch\u002Fpublications\u002F2020\u002Ferler-2020-p2s\u002F) 的实现，该网络能够从点云中估计有符号距离函数。此 SDF 通过 Marching Cubes 算法转换为网格。更多详情，请观看 [短视频](https:\u002F\u002Fwww.cg.tuwien.ac.at\u002Fresearch\u002Fpublications\u002F2020\u002Ferler-2020-p2s\u002Ferler-2020-p2s-short%20video.mp4) 和 [长视频](https:\u002F\u002Fwww.cg.tuwien.ac.at\u002Fresearch\u002Fpublications\u002F2020\u002Ferler-2020-p2s\u002Ferler-2020-p2s-long%20video.mp4)。\n\n![Points2Surf 能够从任意点云中重建物体，其精度优于 DeepSDF、AtlasNet 和 Screened Poisson Surface Reconstruction。](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FErlerPhilipp_points2surf_readme_da9f4e6bbb03.png)\n\n该架构与 [PCPNet](https:\u002F\u002Fgithub.com\u002Fpaulguerrero\u002Fpcpnet\u002F) 类似。与其他基于机器学习的曲面重建方法不同，例如 [DeepSDF](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002FDeepSDF) 和 [AtlasNet](https:\u002F\u002Fgithub.com\u002FThibaultGROUEIX\u002FAtlasNet)，Points2Surf 是基于补丁的方法，因此不依赖于特定类别。其显著增强的泛化能力带来了更好的结果，在大多数情况下甚至优于 [Screened Poisson Surface Reconstruction](http:\u002F\u002Fhhoppe.com\u002Fproj\u002Fscreenedpoisson\u002F)。\n\n这段代码主要由 [Philipp Erler](https:\u002F\u002Fphilipperler.net\u002F) 和 [Paul Guerrero](https:\u002F\u002Fpaulguerrero.github.io) 编写。本研究发表于 [ECCV 2020](https:\u002F\u002Feccv2020.eu\u002F)。\n\n## 前置条件\n* Python >= 3.7\n* PyTorch >= 1.6\n* 如果使用 GPU，则需要 CUDA 和 CuDNN\n* BlenSor 1.0.18 RC 10 用于数据集生成\n\n## 快速入门\n\n要获得一个用于训练和重建的最小示例，请按照以下步骤操作。我们建议使用 [Anaconda](https:\u002F\u002Fanaconda.org\u002F) 来管理 Python 环境。否则，您可以使用 Pip 按照 requirements.txt 中的说明安装所需的包。\n\n``` bash\n# 克隆此仓库\n# 其中包含一个最小数据集（2 个形状用于训练，1 个用于评估）\ngit clone https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf.git\n\n# 进入克隆后的目录\ncd points2surf\n\n# 创建一个包含所需包的 conda 环境\nconda env create --file p2s.yml\n\n# 激活新的 conda 环境\nconda activate p2s\n\n# 使用默认设置训练并评估原始模型\npython full_run.py\n```\n\n## 从我们的点云中重建曲面\n\n从点云中重建网格以复现我们的结果：\n``` bash\n# 下载测试数据集\npython datasets\u002Fdownload_datasets_abc.py\npython datasets\u002Fdownload_datasets_famous.py\npython datasets\u002Fdownload_datasets_thingi10k.py\npython datasets\u002Fdownload_datasets_real_world.py\n\n# 下载预训练模型\npython models\u002Fdownload_models_vanilla.py\npython models\u002Fdownload_models_ablation.py\npython models\u002Fdownload_models_max.py\n\n# 启动每个模型的评估\n# Points2Surf 主模型，训练 150 个 epoch\nbash experiments\u002Feval_p2s_vanilla.sh\n\n# 消融实验模型，训练 50 个 epoch\nbash experiments\u002Feval_p2s_small_radius.sh\nbash experiments\u002Feval_p2s_medium_radius.sh\nbash experiments\u002Feval_p2s_large_radius.sh\nbash experiments\u002Feval_p2s_small_kNN.sh\nbash experiments\u002Feval_p2s_large_kNN.sh\nbash experiments\u002Feval_p2s_shared_transformer.sh\nbash experiments\u002Feval_p2s_no_qstn.sh\nbash experiments\u002Feval_p2s_uniform.sh\nbash experiments\u002Feval_p2s_vanilla_ablation.sh\n\n# 额外的消融实验模型，训练 50 个 epoch\nbash experiments\u002Feval_p2s_regression.sh\nbash experiments\u002Feval_p2s_shared_encoder.sh\n\n# 基于消融实验结果的最佳模型，训练 250 个 epoch\nbash experiments\u002Feval_p2s_max.sh\n```\n\n每个评估脚本都会使用指定的模型重建所有测试集。在一台配备 1070 GTX 显卡且网格分辨率为 256 的普通 PC 上，运行一次评估大约需要一天时间。\n\n为了获得最佳效果，请使用 Max 模型。它比 Vanilla 模型小 15%，并且在所有测试集上的平均 Chamfer 距离上提高了 4%。该模型避免了 QSTN，并采用了均匀的子采样。\n\n## 使用我们的数据集进行训练\n\n要使用我们的训练集训练论文中的 P2S 模型：\n``` bash\n# 下载 ABC 训练和验证数据集\npython datasets\u002Fdownload_datasets_abc_training.py\n\n# 启动每个模型的训练\n# Points2Surf 主模型，训练 150 个 epoch\nbash experiments\u002Ftrain_p2s_vanilla.sh\n\n# 消融实验模型，训练 50 个 epoch\nbash experiments\u002Ftrain_p2s_small_radius.sh\nbash experiments\u002Ftrain_p2s_medium_radius.sh\nbash experiments\u002Ftrain_p2s_large_radius.sh\nbash experiments\u002Ftrain_p2s_small_kNN.sh\nbash experiments\u002Ftrain_p2s_large_kNN.sh\nbash experiments\u002Ftrain_p2s_shared_transformer.sh\nbash experiments\u002Ftrain_p2s_no_qstn.sh\nbash experiments\u002Ftrain_p2s_uniform.sh\nbash experiments\u002Ftrain_p2s_vanilla_ablation.sh\n\n# 额外的消融实验模型，训练 50 个 epoch\nbash experiments\u002Ftrain_p2s_regression.sh\nbash experiments\u002Ftrain_p2s_shared_encoder.sh\n\n# 基于消融实验结果的最佳模型，训练 250 个 epoch\nbash experiments\u002Ftrain_p2s_max.sh\n```\n\n我们使用 4 张 RTX 2080Ti 显卡，大约用了 5 天时间训练到 150 个 epoch。完全收敛通常需要 200 到 250 个 epoch，但此时 Chamfer 距离的变化已经不大了。不过，拓扑噪声可能会有所减少。\n\n默认会使用 TensorBoard 记录损失（绝对距离、符号 logits 以及两者）。此外，我们还会记录符号预测的准确率、召回率和 F1 分数。您可以通过以下命令启动 TensorBoard 服务器：\n``` bash\nbash start_tensorboard.sh\n```\n\n## 制作您自己的数据集\n\n点云以 np.float32 类型的 NumPy 数组形式存储，文件扩展名为 .npy，每行包含一个点的 3 个坐标。点云需要归一化到 (-1..+1) 范围内。\n\n数据集由一个文本文件组成，每行包含一个点云文件的名称（不含扩展名）。文件名是相对于文本文件所在位置给出的。\n\n### 用于训练与重建的网格数据集\n\n要从网格创建自己的数据集，请将真值网格放置在 `.\u002Fdatasets\u002F(DATASET_NAME)\u002F00_base_meshes\u002F` 目录下。网格必须是 [Trimesh](https:\u002F\u002Ftrimsh.org\u002F) 可加载的格式，例如 `.ply`、`.stl`、`.obj` 或 `.off`。由于我们需要为训练集计算有符号距离，这些输入网格必须表示实体模型，即必须是流形且无漏水的。像 [ABC 数据集](https:\u002F\u002Farchive.nyu.edu\u002Fhandle\u002F2451\u002F43778) 中那样的三角化 CAD 对象在大多数情况下都可以使用。接下来，在 `.\u002Fdatasets\u002F(DATASET_NAME)\u002Fsettings.ini` 文件中创建以下设置：\n``` ini\n[general]\nonly_for_evaluation = 0\ngrid_resolution = 256\nepsilon = 5\nnum_scans_per_mesh_min = 5\nnum_scans_per_mesh_max = 30\nscanner_noise_sigma_min = 0.0\nscanner_noise_sigma_max = 0.05\n```\n当您将 `only_for_evaluation = 1` 时，数据集准备脚本会跳过大部分处理步骤，仅生成测试集的文本文件。\n\n对于点云采样，我们使用了 [BlenSor 1.0.18 RC 10](https:\u002F\u002Fwww.blensor.org\u002F)。Windows 用户需要修复 [BlenSor 代码中的一个错误](https:\u002F\u002Fgithub.com\u002Fmgschwan\u002Fblensor\u002Fissues\u002F30)。请确保 `make_dataset.py` 中的 `blensor_bin` 变量指向您的 BlenSor 可执行文件，例如 `blensor_bin = \"bin\u002FBlensor-x64.AppImage\"`。\n\n您可能需要更改其他路径或工作进程的数量，然后运行：\n```\npython make_dataset.py\n```\n\n包含约 5,000 个形状的 ABC 变噪声数据集，在 Ryzen 7 处理器上使用 15 个工作进程大约需要 8 小时。大部分计算时间都花在采样和真值有符号距离的计算上。\n\n### 用于重建的点云数据集\n\n如果您只想重建自己的点云，请将其放置在 `.\u002Fdatasets\u002F(DATASET_NAME)\u002F00_base_pc\u002F` 目录下。支持的文件类型与网格相同。\n\n您需要在 `make_pc_dataset.py` 中更改一些设置，例如数据集名称和工作进程数量，然后运行：\n```\npython make_pc_dataset.py\n```\n\n\n### 手动创建的重建数据集\n\n如果您已经拥有 Numpy 格式的点云文件，可以手动创建数据集。将 *.npy 文件放入 `(DATASET_NAME)\u002F04_pts\u002F` 目录中。然后，将文件名（不带扩展名，每行一个）列在一个文本文件 `(DATASET_NAME)\u002Ftestset.txt` 中。\n\n\n## 相关工作\n\n### [Kazhdan, Michael, and Hugues Hoppe. \"Screened poisson surface reconstruction.\" ACM Transactions on Graphics (ToG) 32.3 (2013): 1-13.](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F2487228.2487237)\n\n这项工作是表面重建领域最重要的基准方法。它通过拟合曲面来处理点云数据。\n\n\n### [Groueix, Thibault, et al. \"A papier-mâché approach to learning 3d surface generation.\" Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2018\u002Fhtml\u002FGroueix_A_Papier-Mache_Approach_CVPR_2018_paper.html)\n\n这是最早的数据驱动型表面重建方法之一。它通过学习用“补丁”——变形并细分的矩形——来近似物体。\n\n\n### [Park, Jeong Joon, et al. \"Deepsdf: Learning continuous signed distance functions for shape representation.\" Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_CVPR_2019\u002Fhtml\u002FPark_DeepSDF_Learning_Continuous_Signed_Distance_Functions_for_Shape_Representation_CVPR_2019_paper.html)\n\n这也是早期的数据驱动型表面重建方法之一。它通过学习从点数据中近似有符号距离函数来实现重建。\n\n\n### [Chabra, Rohan, et al. \"Deep Local Shapes: Learning Local SDF Priors for Detailed 3D Reconstruction.\" arXiv preprint arXiv:2003.10983 (2020).](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.10983)\n\n这项同期研究采用了与我们类似的方法。它能够生成平滑的表面，但需要点法线信息。\n\n\n## 最新消息\n\n2025-08-02：在数据集生成中添加扫描仪位姿和曲面法线。请参阅 `make_dataset.py`，了解如何提取和使用这些信息的示例。\n\n\n## 引用\n如果您使用我们的工作，请引用我们的论文：\n```\n@InProceedings{ErlerEtAl:Points2Surf:ECCV:2020,\n  title   = {{Points2Surf}: 从点云中学习隐式曲面}, \n  author=\"Erler, Philipp\n    and Guerrero, Paul\n    and Ohrhallinger, Stefan\n    and Mitra, Niloy J.\n    and Wimmer, Michael\",\n  editor=\"Vedaldi, Andrea\n    and Bischof, Horst\n    and Brox, Thomas\n    and Frahm, Jan-Michael\",\n  year    = {2020},\n  booktitle=\"计算机视觉 -- ECCV 2020\",\n  publisher=\"Springer International Publishing\",\n  address=\"Cham\",\n  pages=\"108--124\",\n  abstract=\"任何基于扫描的资产创建流程中，关键一步都是将无序点云转换为曲面。传统方法（如泊松重建）在面对噪声大或不完整的扫描数据时性能会下降。因此，近年来出现了基于深度学习的方法，即使在部分扫描的情况下也能生成完整的曲面。然而，这类数据驱动方法往往难以推广到具有较大几何和拓扑差异的新形状。我们提出了 Points2Surf，这是一种新颖的基于补丁的学习框架，可以直接从原始扫描数据中生成精确的曲面，而无需点法线信息。通过对详细局部补丁和粗略全局信息的组合进行先验学习，可以显著提升泛化能力和重建精度。我们在合成数据和真实数据上的广泛对比表明，与现有最先进方法相比，我们的方法在未见过的类别上具有明显优势（平均而言，Points2Surf 比 SPR 的重建误差低 30%，比基于深度学习的最先进方法低 270% 以上），尽管计算时间较长，并且在某些情况下可能会出现少量的拓扑噪声。我们的源代码、预训练模型和数据集可在以下网址获取：https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf。\",\n  isbn=\"978-3-030-58558-7\"\n  doi = {10.1007\u002F978-3-030-58558-7_7},\n}\n```","# Points2Surf 快速上手指南\n\nPoints2Surf 是一个基于深度学习的隐式曲面重建工具，能够直接从点云数据中估算有符号距离函数（SDF），并通过 Marching Cubes 算法生成网格模型。该方法基于补丁（patch-based）架构，不依赖特定物体类别，在泛化能力和重建精度上表现优异。\n\n> **注意**：作者已发布后续改进版本 [PPSurf](https:\u002F\u002Fgithub.com\u002Fcg-tuwien\u002Fppsurf)，其使用更简便、速度更快且效果更好，建议新项目优先评估 PPSurf。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 Windows\n*   **Python**: >= 3.7\n*   **深度学习框架**: PyTorch >= 1.6\n*   **GPU 支持**: 如需使用 GPU 加速，需安装对应的 CUDA 和 CuDNN\n*   **数据集生成工具**: BlenSor 1.0.18 RC 10 (仅当需要自定义生成训练数据集时需要)\n\n## 安装步骤\n\n推荐使用 Conda 管理环境以确保依赖兼容性。国内用户可使用清华或中科大镜像源加速下载。\n\n```bash\n# 1. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf.git\ncd points2surf\n\n# 2. 创建并激活 Conda 环境\n# 国内用户建议添加镜像源加速包下载，例如使用清华源：\nconda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Fmain\u002F\nconda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Ffree\u002F\nconda config --set show_channel_urls yes\n\nconda env create --file p2s.yml\nconda activate p2s\n```\n\n如果不想使用 Conda，也可以直接使用 Pip 安装 `requirements.txt` 中列出的依赖包。\n\n## 基本使用\n\n以下是最小化的运行示例，包含使用内置微型数据集进行模型训练和评估重建。\n\n### 1. 快速训练与评估\n\n仓库自带了一个极简数据集（2 个形状用于训练，1 个用于评估），可直接运行脚本验证环境是否正常。\n\n```bash\n# 运行默认设置的训练和评估流程\npython full_run.py\n```\n\n### 2. 使用预训练模型重建曲面\n\n如果您只想复现论文结果或对标准测试集进行重建，请下载测试数据集和预训练模型，然后运行评估脚本。\n\n**下载数据与模型：**\n```bash\n# 下载测试数据集\npython datasets\u002Fdownload_datasets_abc.py\npython datasets\u002Fdownload_datasets_famous.py\npython datasets\u002Fdownload_datasets_thingi10k.py\npython datasets\u002Fdownload_datasets_real_world.py\n\n# 下载预训练模型\npython models\u002Fdownload_models_vanilla.py\npython models\u002Fdownload_models_max.py\n# 其他消融实验模型可根据需要下载\n```\n\n**执行重建评估：**\n```bash\n# 运行主模型评估 (Vanilla 模型，训练 150 epoch)\nbash experiments\u002Feval_p2s_vanilla.sh\n\n# 运行最佳模型评估 (Max 模型，训练 250 epoch，推荐用于获取最佳结果)\n# 该模型比 Vanilla 小 15%，且在所有测试集上的平均 Chamfer 距离优化了 4%\nbash experiments\u002Feval_p2s_max.sh\n```\n\n> **提示**: 在普通 PC（如 GTX 1070）上，以网格分辨率 256 运行一次完整评估大约需要一天时间。\n\n### 3. 自定义数据重建\n\n如果您有自己的点云数据想要重建：\n\n1.  将点云文件转换为 `.npy` 格式 (NumPy float32 数组，每行包含点的 3 个坐标)，并将坐标归一化到 (-1, +1) 范围。\n2.  将文件放入 `.\u002Fdatasets\u002F(YOUR_DATASET_NAME)\u002F04_pts\u002F` 目录。\n3.  创建文本文件 `.\u002Fdatasets\u002F(YOUR_DATASET_NAME)\u002Ftestset.txt`，每行写入一个文件名（不含扩展名）。\n4.  修改相应的配置后运行评估脚本即可。","某工业逆向工程团队正试图将老旧机械零件的激光扫描点云数据转化为可用于 CAD 修改的高精度网格模型。\n\n### 没有 points2surf 时\n- **泛化能力差**：传统深度学习模型（如 DeepSDF）严重依赖特定物体类别训练，面对从未见过的复杂机械零件时，重建效果急剧下降。\n- **细节丢失严重**：基于泊松重建等传统算法在处理稀疏或含噪点云时，容易抹平锐利边缘和微小几何特征，导致零件无法精确装配。\n- **流程繁琐低效**：工程师需要针对不同形状的零件手动调整重建参数或混合使用多种软件，耗时数小时仍难以获得封闭、水密的网格。\n\n### 使用 points2surf 后\n- **类别无关的高精度重建**：points2surf 采用基于补丁（patch-based）的学习架构，无需针对特定零件类别重新训练，即可直接从任意点云推断出精确的符号距离场（SDF）。\n- **完美保留几何特征**：即使在点云存在噪声或缺失的情况下，points2surf 也能通过 Marching Cubes 算法生成拓扑正确且边缘锐利的网格，还原零件的真实细节。\n- **自动化工作流**：只需运行预训练模型脚本，即可在标准显卡上自动完成从原始点云到高质量网格的全流程，将单件处理时间从数小时缩短至分钟级。\n\npoints2surf 通过其卓越的泛化能力和对隐式表面的精准学习，彻底解决了非标准工业零件从扫描数据到可用网格模型的自动化重建难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FErlerPhilipp_points2surf_da9f4e6b.png","ErlerPhilipp","Philipp Erler","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FErlerPhilipp_163a6247.png","Researcher at TU Wien in the field of surface reconstruction with deep learning","TU Wien","Vienna",null,"https:\u002F\u002Fphilipperler.net\u002F","https:\u002F\u002Fgithub.com\u002FErlerPhilipp",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",92.1,{"name":87,"color":88,"percentage":89},"Shell","#89e051",7.9,508,51,"2026-03-11T01:10:26","MIT","Linux, Windows","如果使用 GPU 则需要 NVIDIA GPU 及 CUDA 和 CuDNN。文中测试示例提到使用 GTX 1070 (8GB) 或 RTX 2080Ti。具体显存大小未明确说明，但需支持 PyTorch 运行。","未说明",{"notes":98,"python":99,"dependencies":100},"1. 数据集生成依赖 BlenSor 1.0.18 RC 10，Windows 用户需修复 BlenSor 代码中的一个已知 bug。2. 输入网格必须是流形且水密的（watertight）实体才能计算有符号距离。3. 建议使用 Anaconda 管理环境，可通过提供的 p2s.yml 文件创建。4. 单次评估在普通 PC（如 GTX 1070）上耗时约一天。5. 训练完整模型（150 epochs）在 4 张 RTX 2080Ti 上约需 5 天。",">=3.7",[101,102,103,104],"PyTorch>=1.6","NumPy","Trimesh","BlenSor 1.0.18 RC 10",[15,14],[107,108,109],"deep-learning","point-cloud","surface-reconstruction","2026-03-27T02:49:30.150509","2026-04-07T22:50:56.060521",[113,118,123,128,133,138],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},23047,"如何使用预训练模型（如 max_model）重建自己的点云数据？","不要直接调用 points_to_surf_eval.py，因为其默认参数（如 query_grid_resolution = None）会导致错误。有三种解决方案：\n1. 最干净的方法：运行 experiments\u002Feval_p2s_max.sh 或类似的 shell 脚本，并根据需要更新设置。\n2. 将这些 shell 脚本中的参数提取出来，设置为 points_to_surf_eval.py 中 parse_arguments 的默认值。\n3. 使用 full_run.py 并在 train_params、eval_params 和 recon_params 中更新参数。\n注意：参数必须与模型训练时的参数完全匹配（例如 points_per_patch, shared_transformer, use_point_stn, net_size 等），否则无法正常工作。","https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf\u002Fissues\u002F24",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},23048,"重建后的 .ply 文件打开显示\"The model contains no faces\"（模型不包含面）怎么办？","这通常是因为点云未正确归一化导致模型空间与体积空间转换失败。请确保点云已归一化到 [-0.5, +0.5] 或 [-1, +1] 范围内，并建议保留约 5% 的填充（padding），避免点云触及边界。请使用 README 中提供的点云预处理脚本（point cloud preparation）来处理数据，该脚本会自动处理这些归一化问题。","https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf\u002Fissues\u002F30",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},23049,"如何将自己的点云数据集转换为项目可用的格式并进行重建？","如果您的数据集中只有点云而没有真实网格（ground-truth meshes），则无法进行监督训练（因为需要计算有符号距离），但可以忽略评估部分（如 Chamfer 距离表格）。重建结果通常保存在类似 results\u002Fmax_model\u002Fown 的文件夹中。对于自定义点云（如 .ply 格式），请参考 README 中\"Dataset from point clouds for reconstruction\"部分，使用 make_pc_dataset.py 生成数据集，然后运行修改后的评估脚本进行重建。","https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf\u002Fissues\u002F28",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},23050,"应该从头训练模型还是在预训练模型基础上进行微调（fine-tuning）？","这取决于您的目标。如果对当前重建质量满意，不建议浪费时间微调，因为 P2S、PPSurf 等方法设计为直接使用。如果需要更高质量：\n1. PPSurf 在所有方面都优于 P2S。\n2. 如果有充足算力，建议使用 NeuS 衍生方法（如 Neuralangelo 或 SDFStudio\u002FNerFStudio）以获得最佳结果。\n3. 如果需要极速处理，可尝试 Shape-as-points 或 SLAM 变体。\n4. 若点云噪声大或缺失区域多，可考虑 Point2CAD 或 NeurCADRecon 等参数化表面重建方法，或将 CAD 模型转换为 SDF。","https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf\u002Fissues\u002F35",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},23051,"如何获取带有不同噪声级别（var, med, max）的数据集？","训练阶段必须提供真实网格（ground-truth meshes）以计算有符号距离进行监督学习。如果您是指使用最终生成模型进行重建，请选择一个预训练模型（如 max-model），创建一个新的点云数据集，并运行修改后的评估脚本。不同噪声级别的数据集通常对应不同的预训练模型，下载相应模型即可适配不同噪声水平的数据。","https:\u002F\u002Fgithub.com\u002FErlerPhilipp\u002Fpoints2surf\u002Fissues\u002F26",{"id":139,"question_zh":140,"answer_zh":141,"source_url":122},23052,"运行 full_eval.py 时出现\"IndexError: index 128 is out of bounds\"错误如何解决？","该错误源于点云坐标超出体素网格范围，通常是因为点云未正确归一化或未使用预处理脚本。请确保点云已归一化到指定范围（如 [-0.5, +0.5]），并添加适当填充（如 5%）。务必使用项目提供的点云准备流程（见 README），它会自动处理坐标变换和边界问题，避免索引越界。",[]]