[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-yanx27--Pointnet_Pointnet2_pytorch":3,"tool-yanx27--Pointnet_Pointnet2_pytorch":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":97,"forks":98,"last_commit_at":99,"license":100,"difficulty_score":10,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":110,"github_topics":111,"view_count":23,"oss_zip_url":81,"oss_zip_packed_at":81,"status":16,"created_at":123,"updated_at":124,"faqs":125,"releases":156},3702,"yanx27\u002FPointnet_Pointnet2_pytorch","Pointnet_Pointnet2_pytorch","PointNet and PointNet++ implemented by pytorch (pure python) and on ModelNet, ShapeNet and S3DIS.","Pointnet_Pointnet2_pytorch 是一个基于 PyTorch 框架实现的开源项目，完整复现了深度学习领域经典的 PointNet 和 PointNet++ 算法。它主要致力于解决三维点云数据的处理难题，能够高效完成物体分类、部件分割以及场景语义分割等核心任务，让计算机能够“看懂”由无序点组成的 3D 形状。\n\n该项目特别适合人工智能研究人员、高校学生以及从事 3D 视觉开发的工程师使用。无论是希望深入理解点云网络原理的学习者，还是需要快速搭建基准模型进行对比实验的开发者，都能从中获益。其独特的技术亮点在于提供了纯 Python 实现的友好代码结构，无需复杂的自定义算子编译即可运行；同时支持在 CPU 环境下调试，并内置了离线数据预处理、均匀采样等多种加速训练的策略。项目在 ModelNet、ShapeNet 等权威数据集上表现优异，分类准确率最高可达 92.8%，语义分割 mIoU 达到 53.5%，且配套提供了丰富的预训练模型和可视化测试脚本，极大地降低了 3D 深度学习的研究与开发门槛。","# Pytorch Implementation of PointNet and PointNet++ \n\nThis repo is implementation for [PointNet](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2017\u002Fpapers\u002FQi_PointNet_Deep_Learning_CVPR_2017_paper.pdf) and [PointNet++](http:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F7095-pointnet-deep-hierarchical-feature-learning-on-point-sets-in-a-metric-space.pdf) in pytorch.\n\n## Update\n**2021\u002F03\u002F27:** \n\n(1) Release pre-trained models for semantic segmentation, where PointNet++ can achieve **53.5\\%** mIoU.\n\n(2) Release pre-trained models for classification and part segmentation in `log\u002F`.\n\n**2021\u002F03\u002F20:** Update codes for classification, including:\n\n(1) Add codes for training **ModelNet10** dataset. Using setting of ``--num_category 10``. \n\n(2) Add codes for running on CPU only. Using setting of ``--use_cpu``. \n\n(3) Add codes for offline data preprocessing to accelerate training. Using setting of ``--process_data``. \n\n(4) Add codes for training with uniform sampling. Using setting of ``--use_uniform_sample``. \n\n**2019\u002F11\u002F26:**\n\n(1) Fixed some errors in previous codes and added data augmentation tricks. Now classification by only 1024 points can achieve **92.8\\%**! \n\n(2) Added testing codes, including classification and segmentation, and semantic segmentation with visualization. \n\n(3) Organized all models into `.\u002Fmodels` files for easy using.\n\n## Install\nThe latest codes are tested on Ubuntu 16.04, CUDA10.1, PyTorch 1.6 and Python 3.7:\n```shell\nconda install pytorch==1.6.0 cudatoolkit=10.1 -c pytorch\n```\n\n## Classification (ModelNet10\u002F40)\n### Data Preparation\nDownload alignment **ModelNet** [here](https:\u002F\u002Fshapenet.cs.stanford.edu\u002Fmedia\u002Fmodelnet40_normal_resampled.zip) and save in `data\u002Fmodelnet40_normal_resampled\u002F`.\n\n### Run\nYou can run different modes with following codes. \n* If you want to use offline processing of data, you can use `--process_data` in the first run. You can download pre-processd data [here](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1_fBYbDO3XSdRt3DSbEBe41r5l9YpIGWF?usp=sharing) and save it in `data\u002Fmodelnet40_normal_resampled\u002F`.\n* If you want to train on ModelNet10, you can use `--num_category 10`.\n```shell\n# ModelNet40\n## Select different models in .\u002Fmodels \n\n## e.g., pointnet2_ssg without normal features\npython train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg\npython test_classification.py --log_dir pointnet2_cls_ssg\n\n## e.g., pointnet2_ssg with normal features\npython train_classification.py --model pointnet2_cls_ssg --use_normals --log_dir pointnet2_cls_ssg_normal\npython test_classification.py --use_normals --log_dir pointnet2_cls_ssg_normal\n\n## e.g., pointnet2_ssg with uniform sampling\npython train_classification.py --model pointnet2_cls_ssg --use_uniform_sample --log_dir pointnet2_cls_ssg_fps\npython test_classification.py --use_uniform_sample --log_dir pointnet2_cls_ssg_fps\n\n# ModelNet10\n## Similar setting like ModelNet40, just using --num_category 10\n\n## e.g., pointnet2_ssg without normal features\npython train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg --num_category 10\npython test_classification.py --log_dir pointnet2_cls_ssg --num_category 10\n```\n\n### Performance\n| Model | Accuracy |\n|--|--|\n| PointNet (Official) |  89.2|\n| PointNet2 (Official) | 91.9 |\n| PointNet (Pytorch without normal) |  90.6|\n| PointNet (Pytorch with normal) |  91.4|\n| PointNet2_SSG (Pytorch without normal) |  92.2|\n| PointNet2_SSG (Pytorch with normal) |  92.4|\n| PointNet2_MSG (Pytorch with normal) |  **92.8**|\n\n## Part Segmentation (ShapeNet)\n### Data Preparation\nDownload alignment **ShapeNet** [here](https:\u002F\u002Fshapenet.cs.stanford.edu\u002Fmedia\u002Fshapenetcore_partanno_segmentation_benchmark_v0_normal.zip)  and save in `data\u002Fshapenetcore_partanno_segmentation_benchmark_v0_normal\u002F`.\n### Run\n```\n## Check model in .\u002Fmodels \n## e.g., pointnet2_msg\npython train_partseg.py --model pointnet2_part_seg_msg --normal --log_dir pointnet2_part_seg_msg\npython test_partseg.py --normal --log_dir pointnet2_part_seg_msg\n```\n### Performance\n| Model | Inctance avg IoU| Class avg IoU \n|--|--|--|\n|PointNet (Official)\t|83.7|80.4\t\n|PointNet2 (Official)|85.1\t|81.9\t\n|PointNet (Pytorch)|\t84.3\t|81.1|\t\n|PointNet2_SSG (Pytorch)|\t84.9|\t81.8\t\n|PointNet2_MSG (Pytorch)|\t**85.4**|\t**82.5**\t\n\n\n## Semantic Segmentation (S3DIS)\n### Data Preparation\nDownload 3D indoor parsing dataset (**S3DIS**) [here](http:\u002F\u002Fbuildingparser.stanford.edu\u002Fdataset.html)  and save in `data\u002Fs3dis\u002FStanford3dDataset_v1.2_Aligned_Version\u002F`.\n```\ncd data_utils\npython collect_indoor3d_data.py\n```\nProcessed data will save in `data\u002Fstanford_indoor3d\u002F`.\n### Run\n```\n## Check model in .\u002Fmodels \n## e.g., pointnet2_ssg\npython train_semseg.py --model pointnet2_sem_seg --test_area 5 --log_dir pointnet2_sem_seg\npython test_semseg.py --log_dir pointnet2_sem_seg --test_area 5 --visual\n```\nVisualization results will save in `log\u002Fsem_seg\u002Fpointnet2_sem_seg\u002Fvisual\u002F` and you can visualize these .obj file by [MeshLab](http:\u002F\u002Fwww.meshlab.net\u002F).\n\n### Performance\n|Model  | Overall Acc |Class avg IoU | Checkpoint \n|--|--|--|--|\n| PointNet (Pytorch) | 78.9 | 43.7| [40.7MB](log\u002Fsem_seg\u002Fpointnet_sem_seg) |\n| PointNet2_ssg (Pytorch) | **83.0** | **53.5**| [11.2MB](log\u002Fsem_seg\u002Fpointnet2_sem_seg) |\n\n## Visualization\n### Using show3d_balls.py\n```\n## build C++ code for visualization\ncd visualizer\nbash build.sh \n## run one example \npython show3d_balls.py\n```\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyanx27_Pointnet_Pointnet2_pytorch_readme_1f0f4ba54942.png)\n### Using MeshLab\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyanx27_Pointnet_Pointnet2_pytorch_readme_742f281d24f5.png)\n\n\n## Reference By\n[halimacc\u002Fpointnet3](https:\u002F\u002Fgithub.com\u002Fhalimacc\u002Fpointnet3)\u003Cbr>\n[fxia22\u002Fpointnet.pytorch](https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch)\u003Cbr>\n[charlesq34\u002FPointNet](https:\u002F\u002Fgithub.com\u002Fcharlesq34\u002Fpointnet) \u003Cbr>\n[charlesq34\u002FPointNet++](https:\u002F\u002Fgithub.com\u002Fcharlesq34\u002Fpointnet2)\n\n\n## Citation\nIf you find this repo useful in your research, please consider citing it and our other works:\n```\n@article{Pytorch_Pointnet_Pointnet2,\n      Author = {Xu Yan},\n      Title = {Pointnet\u002FPointnet++ Pytorch},\n      Journal = {https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch},\n      Year = {2019}\n}\n```\n```\n@InProceedings{yan2020pointasnl,\n  title={PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling},\n  author={Yan, Xu and Zheng, Chaoda and Li, Zhen and Wang, Sheng and Cui, Shuguang},\n  journal={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},\n  year={2020}\n}\n```\n```\n@InProceedings{yan2021sparse,\n  title={Sparse Single Sweep LiDAR Point Cloud Segmentation via Learning Contextual Shape Priors from Scene Completion},\n  author={Yan, Xu and Gao, Jiantao and Li, Jie and Zhang, Ruimao, and Li, Zhen and Huang, Rui and Cui, Shuguang},\n  journal={AAAI Conference on Artificial Intelligence ({AAAI})},\n  year={2021}\n}\n```\n```\n@InProceedings{yan20222dpass,\n      title={2DPASS: 2D Priors Assisted Semantic Segmentation on LiDAR Point Clouds}, \n      author={Xu Yan and Jiantao Gao and Chaoda Zheng and Chao Zheng and Ruimao Zhang and Shuguang Cui and Zhen Li},\n      year={2022},\n      journal={ECCV}\n}\n```\n## Selected Projects using This Codebase\n* [PointConv: Deep Convolutional Networks on 3D Point Clouds, CVPR'19](https:\u002F\u002Fgithub.com\u002FYoung98CN\u002Fpointconv_pytorch)\n* [On Isometry Robustness of Deep 3D Point Cloud Models under Adversarial Attacks, CVPR'20](https:\u002F\u002Fgithub.com\u002Fskywalker6174\u002F3d-isometry-robust)\n* [Label-Efficient Learning on Point Clouds using Approximate Convex Decompositions, ECCV'20](https:\u002F\u002Fgithub.com\u002Fmatheusgadelha\u002FPointCloudLearningACD)\n* [PCT: Point Cloud Transformer](https:\u002F\u002Fgithub.com\u002FMenghaoGuo\u002FPCT)\n* [PSNet: Fast Data Structuring for Hierarchical Deep Learning on Point Cloud](https:\u002F\u002Fgithub.com\u002Flly007\u002FPointStructuringNet)\n* [Stratified Transformer for 3D Point Cloud Segmentation, CVPR'22](https:\u002F\u002Fgithub.com\u002Fdvlab-research\u002Fstratified-transformer)\n","# PointNet 和 PointNet++ 的 PyTorch 实现\n\n本仓库是 [PointNet](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2017\u002Fpapers\u002FQi_PointNet_Deep_Learning_CVPR_2017_paper.pdf) 和 [PointNet++](http:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F7095-pointnet-deep-hierarchical-feature-learning-on-point-sets-in-a-metric-space.pdf) 在 PyTorch 中的实现。\n\n## 更新\n**2021年3月27日：**\n\n(1) 发布语义分割的预训练模型，其中 PointNet++ 可以达到 **53.5%** 的 mIoU。\n\n(2) 在 `log\u002F` 目录下发布分类和部件分割的预训练模型。\n\n**2021年3月20日：** 更新分类相关的代码，包括：\n\n(1) 添加了针对 **ModelNet10** 数据集的训练代码。使用参数 `--num_category 10`。\n\n(2) 添加了仅在 CPU 上运行的代码。使用参数 `--use_cpu`。\n\n(3) 添加了离线数据预处理代码以加速训练。使用参数 `--process_data`。\n\n(4) 添加了使用均匀采样进行训练的代码。使用参数 `--use_uniform_sample`。\n\n**2019年11月26日：**\n\n(1) 修复了之前代码中的一些错误，并添加了数据增强技巧。现在仅使用 1024 个点进行分类即可达到 **92.8%**！\n\n(2) 添加了测试代码，包括分类、分割以及带有可视化的语义分割。\n\n(3) 将所有模型整理到 `.\u002Fmodels` 文件中，方便使用。\n\n## 安装\n最新代码已在 Ubuntu 16.04、CUDA10.1、PyTorch 1.6 和 Python 3.7 环境下测试通过：\n```shell\nconda install pytorch==1.6.0 cudatoolkit=10.1 -c pytorch\n```\n\n## 分类 (ModelNet10\u002F40)\n### 数据准备\n从 [这里](https:\u002F\u002Fshapenet.cs.stanford.edu\u002Fmedia\u002Fmodelnet40_normal_resampled.zip) 下载对齐后的 **ModelNet** 数据，并将其保存到 `data\u002Fmodelnet40_normal_resampled\u002F` 目录下。\n\n### 运行\n您可以使用以下命令运行不同的模式。\n* 如果您希望使用离线数据处理，可以在首次运行时使用 `--process_data` 参数。您也可以从 [这里](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1_fBYbDO3XSdRt3DSbEBe41r5l9YpIGWF?usp=sharing) 下载预处理好的数据，并将其保存到 `data\u002Fmodelnet40_normal_resampled\u002F` 目录下。\n* 如果您想在 ModelNet10 上训练，可以使用 `--num_category 10` 参数。\n```shell\n# ModelNet40\n## 在 .\u002Fmodels 中选择不同的模型\n\n## 例如，不使用法向量的 pointnet2_ssg\npython train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg\npython test_classification.py --log_dir pointnet2_cls_ssg\n\n## 例如，使用法向量的 pointnet2_ssg\npython train_classification.py --model pointnet2_cls_ssg --use_normals --log_dir pointnet2_cls_ssg_normal\npython test_classification.py --use_normals --log_dir pointnet2_cls_ssg_normal\n\n## 例如，使用均匀采样的 pointnet2_ssg\npython train_classification.py --model pointnet2_cls_ssg --use_uniform_sample --log_dir pointnet2_cls_ssg_fps\npython test_classification.py --use_uniform_sample --log_dir pointnet2_cls_ssg_fps\n\n# ModelNet10\n## 设置与 ModelNet40 类似，只需使用 --num_category 10\n\n## 例如，不使用法向量的 pointnet2_ssg\npython train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg --num_category 10\npython test_classification.py --log_dir pointnet2_cls_ssg --num_category 10\n```\n\n### 性能\n| 模型 | 准确率 |\n|--|--|\n| PointNet（官方） | 89.2 |\n| PointNet2（官方） | 91.9 |\n| PointNet（PyTorch，不使用法向） | 90.6 |\n| PointNet（PyTorch，使用法向） | 91.4 |\n| PointNet2_SSG（PyTorch，不使用法向） | 92.2 |\n| PointNet2_SSG（PyTorch，使用法向） | 92.4 |\n| PointNet2_MSG（PyTorch，使用法向） | **92.8** |\n\n## 部件分割 (ShapeNet)\n### 数据准备\n从 [这里](https:\u002F\u002Fshapenet.cs.stanford.edu\u002Fmedia\u002Fshapenetcore_partanno_segmentation_benchmark_v0_normal.zip) 下载对齐后的 **ShapeNet** 数据，并将其保存到 `data\u002Fshapenetcore_partanno_segmentation_benchmark_v0_normal\u002F` 目录下。\n### 运行\n```\n## 在 .\u002Fmodels 中查看模型\n## 例如，pointnet2_msg\npython train_partseg.py --model pointnet2_part_seg_msg --normal --log_dir pointnet2_part_seg_msg\npython test_partseg.py --normal --log_dir pointnet2_part_seg_msg\n```\n### 性能\n| 模型 | 实例平均 IoU | 类别平均 IoU |\n|--|--|--|\n| PointNet（官方） | 83.7 | 80.4 |\n| PointNet2（官方） | 85.1 | 81.9 |\n| PointNet（PyTorch） | 84.3 | 81.1 |\n| PointNet2_SSG（PyTorch） | 84.9 | 81.8 |\n| PointNet2_MSG（PyTorch） | **85.4** | **82.5** |\n\n## 语义分割 (S3DIS)\n### 数据准备\n从 [这里](http:\u002F\u002Fbuildingparser.stanford.edu\u002Fdataset.html) 下载室内 3D 解析数据集 (**S3DIS**)，并将其保存到 `data\u002Fs3dis\u002FStanford3dDataset_v1.2_Aligned_Version\u002F` 目录下。\n```shell\ncd data_utils\npython collect_indoor3d_data.py\n```\n处理后的数据将保存到 `data\u002Fstanford_indoor3d\u002F` 目录下。\n### 运行\n```\n## 在 .\u002Fmodels 中查看模型\n## 例如，pointnet2_ssg\npython train_semseg.py --model pointnet2_sem_seg --test_area 5 --log_dir pointnet2_sem_seg\npython test_semseg.py --log_dir pointnet2_sem_seg --test_area 5 --visual\n```\n可视化结果将保存到 `log\u002Fsem_seg\u002Fpointnet2_sem_seg\u002Fvisual\u002F` 目录下，您可以使用 [MeshLab](http:\u002F\u002Fwww.meshlab.net\u002F) 查看这些 .obj 文件。\n\n### 性能\n| 模型 | 总体准确率 | 类别平均 IoU | 检查点 |\n|--|--|--|--|\n| PointNet（PyTorch） | 78.9 | 43.7 | [40.7MB](log\u002Fsem_seg\u002Fpointnet_sem_seg) |\n| PointNet2_ssg（PyTorch） | **83.0** | **53.5** | [11.2MB](log\u002Fsem_seg\u002Fpointnet2_sem_seg) |\n\n## 可视化\n### 使用 show3d_balls.py\n```\n## 编译 C++ 可视化代码\ncd visualizer\nbash build.sh \n## 运行一个示例\npython show3d_balls.py\n```\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyanx27_Pointnet_Pointnet2_pytorch_readme_1f0f4ba54942.png)\n### 使用 MeshLab\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyanx27_Pointnet_Pointnet2_pytorch_readme_742f281d24f5.png)\n\n## 参考项目\n[halimacc\u002Fpointnet3](https:\u002F\u002Fgithub.com\u002Fhalimacc\u002Fpointnet3)\u003Cbr>\n[fxia22\u002Fpointnet.pytorch](https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch)\u003Cbr>\n[charlesq34\u002FPointNet](https:\u002F\u002Fgithub.com\u002Fcharlesq34\u002Fpointnet) \u003Cbr>\n[charlesq34\u002FPointNet++](https:\u002F\u002Fgithub.com\u002Fcharlesq34\u002Fpointnet2)\n\n## 引用\n如果您在研究中使用了本仓库，请考虑引用它以及我们的其他工作：\n```\n@article{Pytorch_Pointnet_Pointnet2,\n      Author = {Xu Yan},\n      Title = {Pointnet\u002FPointnet++ Pytorch},\n      Journal = {https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch},\n      Year = {2019}\n}\n```\n```\n@InProceedings{yan2020pointasnl,\n  title={PointASNL：利用自适应采样的非局部神经网络实现鲁棒的点云处理},\n  author={Yan, Xu and Zheng, Chaoda and Li, Zhen and Wang, Sheng and Cui, Shuguang},\n  journal={IEEE计算机视觉与模式识别会议论文集},\n  year={2020}\n}\n```\n```\n@InProceedings{yan2021sparse,\n  title={基于场景补全学习上下文形状先验的稀疏单次扫描激光雷达点云分割},\n  author={Yan, Xu and Gao, Jiantao and Li, Jie and Zhang, Ruimao, and Li, Zhen and Huang, Rui and Cui, Shuguang},\n  journal={AAAI人工智能会议（AAAI）},\n  year={2021}\n}\n```\n```\n@InProceedings{yan20222dpass,\n      title={2DPASS：基于二维先验辅助的激光雷达点云语义分割}, \n      author={Xu Yan and Jiantao Gao and Chaoda Zheng and Chao Zheng and Ruimao Zhang and Shuguang Cui and Zhen Li},\n      year={2022},\n      journal={ECCV}\n}\n```\n## 使用本代码库的精选项目\n* [PointConv：三维点云上的深度卷积网络，CVPR'19](https:\u002F\u002Fgithub.com\u002FYoung98CN\u002Fpointconv_pytorch)\n* [对抗攻击下深度三维点云模型的等距不变性研究，CVPR'20](https:\u002F\u002Fgithub.com\u002Fskywalker6174\u002F3d-isometry-robust)\n* [利用近似凸分解实现点云上的标签高效学习，ECCV'20](https:\u002F\u002Fgithub.com\u002Fmatheusgadelha\u002FPointCloudLearningACD)\n* [PCT：点云Transformer](https:\u002F\u002Fgithub.com\u002FMenghaoGuo\u002FPCT)\n* [PSNet：面向点云层次化深度学习的快速数据结构化方法](https:\u002F\u002Fgithub.com\u002Flly007\u002FPointStructuringNet)\n* [分层Transformer用于三维点云分割，CVPR'22](https:\u002F\u002Fgithub.com\u002Fdvlab-research\u002Fstratified-transformer)","# PointNet\u002FPointNet++ PyTorch 快速上手指南\n\n本指南基于 `Pointnet_Pointnet2_pytorch` 项目，帮助开发者快速在本地部署并运行 PointNet 和 PointNet++ 模型，支持分类、部件分割及语义分割任务。\n\n## 环境准备\n\n本项目已在以下环境中测试通过，建议优先匹配该配置以避免兼容性问题：\n- **操作系统**: Ubuntu 16.04+ (Linux 推荐，Windows 需自行调整编译环境)\n- **CUDA**: 10.1\n- **PyTorch**: 1.6.0\n- **Python**: 3.7\n\n**前置依赖**:\n- Conda (推荐用于管理环境)\n- C++ 编译器 (用于构建可视化工具，如不需要可视化可忽略)\n\n## 安装步骤\n\n### 1. 创建并激活虚拟环境\n建议使用 Conda 创建独立环境：\n```bash\nconda create -n pointnet python=3.7\nconda activate pointnet\n```\n\n### 2. 安装 PyTorch 及相关依赖\n根据官方推荐配置安装（国内用户可使用清华或中科大镜像加速）：\n```bash\n# 使用 PyTorch 官方源\nconda install pytorch==1.6.0 cudatoolkit=10.1 -c pytorch\n\n# 【推荐】国内用户使用清华镜像加速\nconda install pytorch==1.6.0 cudatoolkit=10.1 -c https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fcloud\u002Fpytorch\u002F\n```\n\n### 3. 克隆项目代码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch.git\ncd Pointnet_Pointnet2_pytorch\n```\n\n### 4. (可选) 编译可视化工具\n如果需要运行 `show3d_balls.py` 进行点云可视化，需编译 C++ 扩展：\n```bash\ncd visualizer\nbash build.sh\ncd ..\n```\n\n## 基本使用\n\n以下以 **ModelNet40 点云分类任务** 为例，展示最简运行流程。\n\n### 1. 数据准备\n下载预处理好的 **ModelNet40** 数据集：\n- 下载地址：[modelnet40_normal_resampled.zip](https:\u002F\u002Fshapenet.cs.stanford.edu\u002Fmedia\u002Fmodelnet40_normal_resampled.zip)\n- 将解压后的文件夹重命名为 `modelnet40_normal_resampled` 并放入项目根目录的 `data\u002F` 文件夹下。\n- 最终路径应为：`data\u002Fmodelnet40_normal_resampled\u002F`\n\n> **提示**：若需加速训练，可开启离线数据处理模式。首次运行时添加 `--process_data` 参数，或直接下载已处理的数据放入对应目录。\n\n### 2. 训练模型\n运行以下命令开始训练（以 PointNet2 SSG 模型为例，不使用法向量特征）：\n```bash\npython train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg\n```\n\n**常用参数说明**：\n- `--num_category 10`: 切换至 ModelNet10 数据集。\n- `--use_normals`: 启用法向量特征输入（提升精度）。\n- `--use_uniform_sample`: 使用均匀采样策略。\n- `--process_data`: 首次运行时进行离线数据预处理。\n\n### 3. 测试与评估\n训练完成后，使用以下命令在测试集上评估模型性能：\n```bash\npython test_classification.py --log_dir pointnet2_cls_ssg\n```\n\n### 其他任务简述\n- **部件分割 (ShapeNet)**: 下载 ShapeNet 数据集至 `data\u002Fshapenetcore_partanno_segmentation_benchmark_v0_normal\u002F`，运行 `train_partseg.py`。\n- **语义分割 (S3DIS)**: 下载 S3DIS 数据集，先运行 `data_utils\u002Fcollect_indoor3d_data.py` 预处理数据，再运行 `train_semseg.py`。\n\n运行结束后，日志和预训练模型将保存在 `log\u002F` 目录下。","某自动驾驶初创公司的感知算法团队，正致力于利用车载激光雷达（LiDAR）采集的原始点云数据，实时识别道路上的车辆、行人及交通设施。\n\n### 没有 Pointnet_Pointnet2_pytorch 时\n- **数据处理门槛高**：团队需从零复现复杂的点云卷积与采样算法，耗费数周时间调试底层数学逻辑，且难以保证数值稳定性。\n- **特征提取能力弱**：传统方法难以直接处理无序、稀疏的 3D 点云，强行体素化会导致细节丢失，导致对远处小目标的识别率低下。\n- **训练效率低下**：缺乏成熟的离线数据预处理和均匀采样策略，模型训练收敛缓慢，严重拖慢算法迭代周期。\n- **基准对比困难**：缺少在 ModelNet 或 ShapeNet 等标准数据集上预训练好的高精度模型，难以快速验证新架构的有效性。\n\n### 使用 Pointnet_Pointnet2_pytorch 后\n- **开箱即用的高效部署**：直接调用库中封装好的 PointNet++ 模型（如 `pointnet2_cls_ssg`），支持 CPU\u002FGPU 灵活切换，一天内即可完成基线模型搭建。\n- **精度显著提升**：利用其特有的层级特征学习机制，直接在原始点云上操作，分类准确率在标准测试中可达 92.8%，有效捕捉细微几何特征。\n- **训练加速与优化**：通过 `--process_data` 和 `--use_uniform_sample` 参数开启离线预处理与均匀采样，大幅减少冗余计算，训练速度提升明显。\n- **丰富的预训练资源**：直接加载官方提供的语义分割预训练权重（mIoU 达 53.5%），在此基础上进行微调，快速适配自动驾驶特定场景。\n\nPointnet_Pointnet2_pytorch 将复杂的 3D 深度学习理论转化为可执行的代码资产，让团队从重复造轮子中解放出来，专注于解决长尾场景下的感知难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyanx27_Pointnet_Pointnet2_pytorch_1f0f4ba5.png","yanx27","Benny","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fyanx27_4ace17f9.jpg","CUHK-SZ, Huawei Noah's Ark Lab.\r\nFocus: 3D CV and AD.","The Chinises University of Hong Kong, Shenzhen","China, Shenzhen",null,"https:\u002F\u002Fyanx27.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fyanx27",[85,89,93],{"name":86,"color":87,"percentage":88},"Python","#3572A5",99.5,{"name":90,"color":91,"percentage":92},"C++","#f34b7d",0.5,{"name":94,"color":95,"percentage":96},"Shell","#89e051",0,4801,1016,"2026-04-04T04:08:29","MIT","Linux","需要 NVIDIA GPU，CUDA 10.1（代码也支持仅 CPU 运行，使用 --use_cpu 参数）","未说明",{"notes":105,"python":106,"dependencies":107},"该仓库已在 Ubuntu 16.04 上测试通过。支持纯 CPU 模式运行。可视化部分需要编译 C++ 代码（在 visualizer 目录下运行 build.sh）。语义分割结果的可视化需要使用 MeshLab 软件查看生成的 .obj 文件。","3.7",[108,109],"pytorch==1.6.0","cudatoolkit=10.1",[14,54,13],[112,113,114,115,116,117,118,119,120,121,122],"pointnet","pointnet2","pointcloud","segmentation","s3dis","modelnet","shapenet","pytorch","classification","visualization","point-cloud","2026-03-27T02:49:30.150509","2026-04-06T06:45:53.849355",[126,131,136,141,146,151],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},16958,"运行代码时提示缺少 eval.tet 文件怎么办？","不要直接运行命令，建议将代码拉取到本地后使用调试模式（debug）运行。通过调试可以查看具体缺少什么文件或配置，然后手动修改代码即可解决。通常是因为路径配置或文件生成逻辑在特定环境下未自动执行导致的。","https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch\u002Fissues\u002F223",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},16959,"如何在自定义数据集上进行训练？数据格式应该是什么样的？","主要需要修改数据加载器（dataloader）函数以适配你的自定义数据集。如果是进行二分类任务，可能还需要调整模型中的特征数量（例如从 4944 改为 4929），具体取决于你的类别标签数量。建议参考其他用户针对自定义数据集修改的 dataloader 脚本实现。","https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch\u002Fissues\u002F112",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},16960,"训练语义分割时出现 'EOFError: Ran out of input' 错误是什么原因？","这通常与数据划分策略有关。该项目的标准设置是：原始场景共有 6 个区域，训练时使用第 1、2、3、4、6 区域，测试时使用第 5 区域。在训练阶段，原始场景会被切割成 1x1 的立方体块；而在测试阶段，则需要对整个场景进行推理。请检查你的数据预处理是否符合此切割和划分逻辑。","https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch\u002Fissues\u002F98",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},16961,"如何使用自己的单类别数据进行部件分割（只分为两部分）？需要修改哪些代码？","需要修改多处代码以适配单类别二部分割：\n1. 在 train_partseg.py 和 ShapeNetDataLoader.py 中，将 seg_classes 设置为自定义标签（如 {'Nut': [0, 1]}），并将 num_classes 设为 1，num_part 设为 2。\n2. 在 pointnet2_part_seg_msg.py 中，调整 PointNetFeaturePropagation 的输入通道数。原公式为 150=128+16+6（128 特征 +16 类别 one-hot+6 坐标法线），自定义单类别时应改为 128+1+6=135。\n3. 同样在该文件中，将 cls_label_one_hot 的重复维度从 16 改为 1（即 view(B,1,1).repeat(...)）。\n4. 确保数据采样时使用了随机选择（np.random.choice），否则分割效果会很差。","https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch\u002Fissues\u002F71",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},16962,"加载预训练模型进行测试时，为什么 mIoU 结果比预期低很多？","最直接的原因是加载模型的方式不对。建议使用相同的 `--log_dir` 参数直接加载模型，这样会自动恢复训练时的优化器状态和学习率衰减策略。如果手动加载模型权重而忽略了学习率调度（learning rate decay）或优化器状态，可能会导致评估结果下降。此外，请确保使用的测试脚本（如 test_partseg.py）与训练配置一致。","https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch\u002Fissues\u002F52",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},16963,"如何可视化部件分割（part segmentation）的预测结果？","可以通过添加 `--visual` 参数来可视化结果。你需要在对应的测试脚本（如 test_partseg.py 或 test_semseg.py）的参数解析部分添加如下代码：`parser.add_argument('--visual', action='store_true', default=False, help='visualize result [default: False]')`。运行测试时加上 `--visual` 标志即可生成带有预测标签的点云可视化文件。","https:\u002F\u002Fgithub.com\u002Fyanx27\u002FPointnet_Pointnet2_pytorch\u002Fissues\u002F117",[]]