[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-WeijingShi--Point-GNN":3,"tool-WeijingShi--Point-GNN":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":74,"owner_company":74,"owner_location":74,"owner_email":74,"owner_twitter":74,"owner_website":74,"owner_url":76,"languages":77,"stars":82,"forks":83,"last_commit_at":84,"license":85,"difficulty_score":86,"env_os":87,"env_gpu":88,"env_ram":87,"env_deps":89,"category_tags":99,"github_topics":74,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":101,"updated_at":102,"faqs":103,"releases":142},6227,"WeijingShi\u002FPoint-GNN","Point-GNN","Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud, CVPR 2020.","Point-GNN 是一款专为点云数据设计的三维目标检测开源工具，由 CVPR 2020 论文提出。它主要解决自动驾驶、机器人导航等场景中，如何从激光雷达采集的稀疏、无序点云中精准识别车辆、行人等物体位置的难题。\n\n与传统方法不同，Point-GNN 的核心亮点在于巧妙结合了图神经网络（GNN）与点云处理技术。它将点云构建为图结构，让每个点都能与其邻近点交换信息，从而更有效地捕捉物体的局部几何特征和空间关系，显著提升了检测精度，尤其在处理遮挡和复杂背景时表现优异。\n\n这款工具非常适合从事计算机视觉研究的学者、自动驾驶算法工程师以及深度学习开发者使用。由于官方实现基于 TensorFlow 1.15 并提供了完整的训练与推理代码，使用者需要具备一定的编程基础和深度学习框架操作经验。虽然配置环境（如 CUDA、KITTI 数据集处理）有一定门槛，但其清晰的文档和模块化设计为复现前沿算法提供了便利，是探索三维感知领域的有力参考实现。","# Point-GNN\n\nThis repository contains a reference implementation of our [Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_CVPR_2020\u002Fpapers\u002FShi_Point-GNN_Graph_Neural_Network_for_3D_Object_Detection_in_a_CVPR_2020_paper.pdf), CVPR 2020. \n\nIf you find this code useful in your research, please consider citing our work:\n```\n@InProceedings{Point-GNN,\nauthor = {Shi, Weijing and Rajkumar, Ragunathan (Raj)},\ntitle = {Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud},\nbooktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\nmonth = {June},\nyear = {2020}\n}\n```\n\n## Getting Started\n\n### Prerequisites\n\nWe use Tensorflow 1.15 for this implementation. Please [install CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-10.0-download-archive) if you want GPU support.   \n```\npip3 install --user tensorflow-gpu==1.15.0\n```\n\nTo install other dependencies: \n```\npip3 install --user opencv-python\npip3 install --user open3d-python==0.7.0.0\npip3 install --user scikit-learn\npip3 install --user tqdm\npip3 install --user shapely\n```\n\n### KITTI Dataset\n\nWe use the KITTI 3D Object Detection dataset. Please download the dataset from the KITTI website and also download the 3DOP train\u002Fval split [here](https:\u002F\u002Fxiaozhichen.github.io\u002Ffiles\u002Fmv3d\u002Fimagesets.tar.gz). We provide extra split files for seperated classes in [splits\u002F](splits). We recommand the following file structure:\n\n    DATASET_ROOT_DIR\n    ├── image                    #  Left color images\n    │   ├── training\n    |   |   └── image_2            \n    │   └── testing\n    |       └── image_2 \n    ├── velodyne                 # Velodyne point cloud files\n    │   ├── training\n    |   |   └── velodyne            \n    │   └── testing\n    |       └── velodyne \n    ├── calib                    # Calibration files\n    │   ├── training\n    |   |   └──calib            \n    │   └── testing\n    |       └── calib \n    ├── labels                   # Training labels\n    │   └── training\n    |       └── label_2\n    └── 3DOP_splits              # split files.\n        ├── train.txt\n        ├── train_car.txt\n        └── ...\n\n### Download Point-GNN\n\nClone the repository recursively:\n```\ngit clone https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN.git --recursive\n```\n\n## Inference\n### Run a checkpoint\nTest on the validation split:\n```\npython3 run.py checkpoints\u002Fcar_auto_T3_train\u002F --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS\n```\nTest on the test dataset:\n```\npython3 run.py checkpoints\u002Fcar_auto_T3_trainval\u002F --test --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS\n```\n\n```\nusage: run.py [-h] [-l LEVEL] [--test] [--no-box-merge] [--no-box-score]\n              [--dataset_root_dir DATASET_ROOT_DIR]\n              [--dataset_split_file DATASET_SPLIT_FILE]\n              [--output_dir OUTPUT_DIR]\n              checkpoint_path\n\nPoint-GNN inference on KITTI\n\npositional arguments:\n  checkpoint_path       Path to checkpoint\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -l LEVEL, --level LEVEL\n                        Visualization level, 0 to disable,1 to nonblocking\n                        visualization, 2 to block.Default=0\n  --test                Enable test model\n  --no-box-merge        Disable box merge.\n  --no-box-score        Disable box score.\n  --dataset_root_dir DATASET_ROOT_DIR\n                        Path to KITTI dataset. Default=\"..\u002Fdataset\u002Fkitti\u002F\"\n  --dataset_split_file DATASET_SPLIT_FILE\n                        Path to KITTI dataset split\n                        file.Default=\"DATASET_ROOT_DIR\u002F3DOP_splits\u002Fval.txt\"\n  --output_dir OUTPUT_DIR\n                        Path to save the detection\n                        resultsDefault=\"CHECKPOINT_PATH\u002Feval\u002F\"\n```\n### Performance\nInstall kitti_native_evaluation offline evaluation:\n```\ncd kitti_native_evaluation\ncmake .\u002F\nmake\n```\nEvaluate output results on the validation split:\n```\nevaluate_object_offline DATASET_ROOT_DIR\u002Flabels\u002Ftraining\u002Flabel_2\u002F DIR_TO_SAVE_RESULTS\n```\n\n## Training\nWe put training parameters in a train_config file. To start training, we need both the train_config and config.\n```\nusage: train.py [-h] [--dataset_root_dir DATASET_ROOT_DIR]\n                [--dataset_split_file DATASET_SPLIT_FILE]\n                train_config_path config_path\n\nTraining of PointGNN\n\npositional arguments:\n  train_config_path     Path to train_config\n  config_path           Path to config\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --dataset_root_dir DATASET_ROOT_DIR\n                        Path to KITTI dataset. Default=\"..\u002Fdataset\u002Fkitti\u002F\"\n  --dataset_split_file DATASET_SPLIT_FILE\n                        Path to KITTI dataset split file.Default=\"DATASET_ROOT\n                        _DIR\u002F3DOP_splits\u002Ftrain_config[\"train_dataset\"]\"\n```\nFor example:\n```\npython3 train.py configs\u002Fcar_auto_T3_train_train_config configs\u002Fcar_auto_T3_train_config\n```\nWe strongly recommand readers to view the train_config before starting the training. \nSome common parameters which you might want to change first:\n```\ntrain_dir     The directory where checkpoints and logs are stored.\ntrain_dataset The dataset split file for training. \nNUM_GPU       The number of GPUs to use. We used two GPUs for the reference model. \n              If you want to use a single GPU, you might also need to reduce the batch size by half to save GPU memory.\n              Similarly, you might want to increase the batch size if you want to utilize more GPUs. \n              Check the train.py for details.               \n```\nWe also provide an evaluation script to evaluate the checkpoints periodically. For example:\n```\npython3 eval.py configs\u002Fcar_auto_T3_train_eval_config \n```\nYou can use tensorboard to view the training and evaluation status. \n```\ntensorboard --logdir=.\u002Ftrain_dir\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n\n","# Point-GNN\n\n本仓库包含我们论文 [Point-GNN: 用于点云中3D目标检测的图神经网络](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_CVPR_2020\u002Fpapers\u002FShi_Point-GNN_Graph_Neural_Network_for_3D_Object_Detection_in_a_CVPR_2020_paper.pdf) 的参考实现，该论文发表于CVPR 2020。\n\n如果您在研究中使用了此代码，请考虑引用我们的工作：\n```\n@InProceedings{Point-GNN,\nauthor = {Shi, Weijing and Rajkumar, Ragunathan (Raj)},\ntitle = {Point-GNN: 图神经网络用于点云中的3D目标检测},\nbooktitle = {IEEE计算机视觉与模式识别会议（CVPR）},\nmonth = {6月},\nyear = {2020}\n}\n```\n\n## 快速入门\n\n### 前置条件\n\n我们在此实现中使用TensorFlow 1.15。如果您需要GPU支持，请先[安装CUDA](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-10.0-download-archive)。\n```\npip3 install --user tensorflow-gpu==1.15.0\n```\n\n安装其他依赖项：\n```\npip3 install --user opencv-python\npip3 install --user open3d-python==0.7.0.0\npip3 install --user scikit-learn\npip3 install --user tqdm\npip3 install --user shapely\n```\n\n### KITTI数据集\n\n我们使用KITTI 3D目标检测数据集。请从KITTI官网下载数据集，并同时下载3DOP训练\u002F验证划分文件[这里](https:\u002F\u002Fxiaozhichen.github.io\u002Ffiles\u002Fmv3d\u002Fimagesets.tar.gz)。我们在[splits\u002F](splits)目录下提供了按类别划分的额外文件。建议采用以下文件结构：\n\n    DATASET_ROOT_DIR\n    ├── image                    # 左侧彩色图像\n    │   ├── training\n    |   |   └── image_2            \n    │   └── testing\n    |       └── image_2 \n    ├── velodyne                 # Velodyne点云文件\n    │   ├── training\n    |   |   └── velodyne            \n    │   └── testing\n    |       └── velodyne \n    ├── calib                    # 校准文件\n    │   ├── training\n    |   |   └──calib            \n    │   └── testing\n    |       └── calib \n    ├── labels                   # 训练标签\n    │   └── training\n    |       └── label_2\n    └── 3DOP_splits              # 划分文件。\n        ├── train.txt\n        ├── train_car.txt\n        └── ...\n\n### 下载Point-GNN\n\n递归克隆仓库：\n```\ngit clone https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN.git --recursive\n```\n\n## 推理\n### 运行检查点\n在验证集上测试：\n```\npython3 run.py checkpoints\u002Fcar_auto_T3_train\u002F --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS\n```\n在测试集上测试：\n```\npython3 run.py checkpoints\u002Fcar_auto_T3_trainval\u002F --test --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS\n```\n\n```\nusage: run.py [-h] [-l LEVEL] [--test] [--no-box-merge] [--no-box-score]\n              [--dataset_root_dir DATASET_ROOT_DIR]\n              [--dataset_split_file DATASET_SPLIT_FILE]\n              [--output_dir OUTPUT_DIR]\n              checkpoint_path\n\nPoint-GNN 在 KITTI 数据集上的推理\n\n位置参数:\n  checkpoint_path       检查点路径\n\n可选参数:\n  -h, --help            显示帮助信息并退出\n  -l LEVEL, --level LEVEL\n                        可视化级别，0表示禁用，1表示非阻塞可视化，2表示阻塞。默认=0\n  --test                启用测试模型\n  --no-box-merge        禁用边界框合并\n  --no-box-score        禁用边界框得分\n  --dataset_root_dir DATASET_ROOT_DIR\n                        KITTI 数据集路径。默认=\"..\u002Fdataset\u002Fkitti\u002F\"\n  --dataset_split_file DATASET_SPLIT_FILE\n                        KITTI 数据集划分文件路径。默认=\"DATASET_ROOT_DIR\u002F3DOP_splits\u002Fval.txt\"\n  --output_dir OUTPUT_DIR\n                        保存检测结果的路径。默认=\"CHECKPOINT_PATH\u002Feval\u002F\"\n```\n\n### 性能\n安装Kitti原生离线评估工具：\n```\ncd kitti_native_evaluation\ncmake .\u002F\nmake\n```\n在验证集上评估输出结果：\n```\nevaluate_object_offline DATASET_ROOT_DIR\u002Flabels\u002Ftraining\u002Flabel_2\u002F DIR_TO_SAVE_RESULTS\n```\n\n## 训练\n我们将训练参数放在一个train_config文件中。要开始训练，我们需要train_config和config文件。\n```\nusage: train.py [-h] [--dataset_root_dir DATASET_ROOT_DIR]\n                [--dataset_split_file DATASET_SPLIT_FILE]\n                train_config_path config_path\n\nPointGNN 的训练\n\n位置参数:\n  train_config_path     训练配置文件路径\n  config_path           配置文件路径\n\n可选参数:\n  -h, --help            显示帮助信息并退出\n  --dataset_root_dir DATASET_ROOT_DIR\n                        KITTI 数据集路径。默认=\"..\u002Fdataset\u002Fkitti\u002F\"\n  --dataset_split_file DATASET_SPLIT_FILE\n                        KITTI 数据集划分文件路径。默认=\"DATASET_ROOT_DIR\u002F3DOP_splits\u002Ftrain_config[\"train_dataset\"]\"\n```\n\n例如：\n```\npython3 train.py configs\u002Fcar_auto_T3_train_train_config configs\u002Fcar_auto_T3_train_config\n```\n\n我们强烈建议读者在开始训练前查看train_config文件。一些您可能需要首先调整的常见参数如下：\n```\ntrain_dir     存储检查点和日志的目录。\ntrain_dataset 用于训练的数据集划分文件。\nNUM_GPU       使用的GPU数量。我们在参考模型中使用了两块GPU。\n              如果您只想使用单块GPU，可能还需要将批量大小减半以节省显存。\n              同样地，如果您希望利用更多GPU，可以适当增加批量大小。\n              具体细节请参阅train.py文件。\n```\n\n我们还提供了一个评估脚本，用于定期评估检查点。例如：\n```\npython3 eval.py configs\u002Fcar_auto_T3_train_eval_config \n```\n\n您可以使用TensorBoard查看训练和评估状态：\n```\ntensorboard --logdir=.\u002Ftrain_dir\n```\n\n## 许可证\n\n本项目采用MIT许可证授权 - 详情请参阅[LICENSE](LICENSE)文件。","# Point-GNN 快速上手指南\n\nPoint-GNN 是一个基于图神经网络（Graph Neural Network）的 3D 点云目标检测模型，发表于 CVPR 2020。本指南帮助中国开发者快速完成环境配置、安装及基础推理与训练。\n\n## 环境准备\n\n本项目基于 **TensorFlow 1.15** 开发，需确保系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 16.04\u002F18.04)\n*   **Python**: Python 3.x\n*   **GPU 支持**: 如需使用 GPU 加速，请预先安装 **CUDA 10.0** 及对应的 cuDNN。\n    *   CUDA 下载：[NVIDIA CUDA Toolkit Archive](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-10.0-download-archive)\n*   **编译工具**: 训练评估脚本需要 `cmake` 和 `make`。\n\n## 安装步骤\n\n### 1. 克隆项目\n递归克隆仓库以获取所有子模块：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN.git --recursive\ncd Point-GNN\n```\n\n### 2. 安装 Python 依赖\n建议先配置国内 pip 源（如清华源）以加速下载：\n```bash\npip3 install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --user tensorflow-gpu==1.15.0\npip3 install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --user opencv-python\npip3 install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --user open3d-python==0.7.0.0\npip3 install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --user scikit-learn\npip3 install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --user tqdm\npip3 install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --user shapely\n```\n\n### 3. 准备数据集 (KITTI)\n本项目使用 KITTI 3D 目标检测数据集。请下载原始数据及 3DOP 划分文件，并按以下结构组织目录：\n\n```text\nDATASET_ROOT_DIR\n├── image                    # 左侧彩色图像\n│   ├── training\u002Fimage_2            \n│   └── testing\u002Fimage_2 \n├── velodyne                 # Velodyne 点云文件\n│   ├── training\u002Fvelodyne            \n│   └── testing\u002Fvelodyne \n├── calib                    # 标定文件\n│   ├── training\u002Fcalib            \n│   └── testing\u002Fcalib \n├── labels                   # 训练标签\n│   └── training\u002Flabel_2\n└── 3DOP_splits              # 数据集划分文件 (train.txt, val.txt 等)\n    ├── train.txt\n    ├── train_car.txt\n    └── ...\n```\n*   数据集下载：[KITTI Official Website](http:\u002F\u002Fwww.cvlibs.net\u002Fdatasets\u002Fkitti\u002F)\n*   3DOP 划分文件下载：[imagesets.tar.gz](https:\u002F\u002Fxiaozhichen.github.io\u002Ffiles\u002Fmv3d\u002Fimagesets.tar.gz)\n\n### 4. 编译评估工具 (可选)\n如需进行离线精度评估，需编译原生评估代码：\n```bash\ncd kitti_native_evaluation\ncmake .\u002F\nmake\ncd ..\n```\n\n## 基本使用\n\n### 推理 (Inference)\n使用预训练权重在验证集或测试集上运行检测。\n\n**在验证集上测试：**\n```bash\npython3 run.py checkpoints\u002Fcar_auto_T3_train\u002F --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS\n```\n\n**在测试集上测试：**\n```bash\npython3 run.py checkpoints\u002Fcar_auto_T3_trainval\u002F --test --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS\n```\n*注：请将 `DATASET_ROOT_DIR` 替换为你的数据集根目录路径，`DIR_TO_SAVE_RESULTS` 替换为结果保存路径。*\n\n### 训练 (Training)\n启动训练需要指定训练配置文件 (`train_config`) 和模型配置文件 (`config`)。\n\n**开始训练示例：**\n```bash\npython3 train.py configs\u002Fcar_auto_T3_train_train_config configs\u002Fcar_auto_T3_train_config\n```\n\n**关键参数调整建议：**\n在修改配置文件前，请注意以下参数：\n*   `train_dir`: 检查点和日志的保存目录。\n*   `NUM_GPU`: 使用的 GPU 数量。参考模型使用了 2 张 GPU。\n    *   若仅使用 **单张 GPU**，建议将 `batch size` 减半以避免显存溢出。\n    *   若使用更多 GPU，可相应增加 `batch size`。\n\n**监控训练过程：**\n使用 TensorBoard 查看训练状态和评估指标：\n```bash\ntensorboard --logdir=.\u002Ftrain_dir\n```\n\n**定期评估检查点：**\n```bash\npython3 eval.py configs\u002Fcar_auto_T3_train_eval_config \n```","某自动驾驶初创团队正在开发城市道路感知系统，急需从激光雷达点云数据中精准识别车辆与行人以规划行驶路径。\n\n### 没有 Point-GNN 时\n- 传统体素化方法在处理稀疏点云时丢失大量细节，导致远处小目标（如行人）漏检率高达 30%。\n- 基于固定网格的算法难以适应不同密度和形状的物体，对遮挡严重或姿态倾斜的车辆检测框偏差较大。\n- 后处理阶段依赖繁琐的人工规则进行边界框合并与评分，不仅调参耗时，还常因规则冲突产生重复检测。\n- 模型无法有效捕捉点与点之间的长距离拓扑关系，在复杂路口场景下误将路边护栏识别为障碍物。\n\n### 使用 Point-GNN 后\n- 利用图神经网络直接在原始点云上构建局部邻域图，保留了细微几何特征，将远处行人的召回率提升至 85% 以上。\n- 通过自适应的图结构聚合信息，模型能灵活应对各种形状和遮挡情况，对倾斜车辆的定位精度显著提高。\n- 内置的自动边界框合并与评分机制替代了人工规则，大幅简化了部署流程，同时消除了重复检测问题。\n- 强大的全局上下文建模能力让系统能准确区分动态车辆与静态背景设施，在复杂路口场景下的误报率降低了 40%。\n\nPoint-GNN 通过将点云转化为图结构进行深度学习，从根本上解决了稀疏数据下的特征丢失难题，为自动驾驶提供了更可靠的环境感知基石。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FWeijingShi_Point-GNN_2379c249.png","WeijingShi",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FWeijingShi_2b031ec9.png","https:\u002F\u002Fgithub.com\u002FWeijingShi",[78],{"name":79,"color":80,"percentage":81},"Python","#3572A5",100,585,116,"2026-04-02T13:12:39","MIT",4,"未说明","需要 NVIDIA GPU 以支持 GPU 加速（可选但推荐），需安装 CUDA 10.0，具体显存大小未说明（文中提到使用双卡训练，单卡需减半 batch size 以节省显存）",{"notes":90,"python":91,"dependencies":92},"该项目基于 TensorFlow 1.15 版本，需递归克隆仓库。数据集需使用 KITTI 3D 物体检测数据集及特定的 3DOP 划分文件。训练时默认配置使用 2 块 GPU，若使用单块 GPU 建议将 batch size 减半以防显存溢出。评估部分需要编译 C++ 代码（kitti_native_evaluation）。","3.x (通过 pip3 安装)",[93,94,95,96,97,98],"tensorflow-gpu==1.15.0","opencv-python","open3d-python==0.7.0.0","scikit-learn","tqdm","shapely",[15,100],"其他","2026-03-27T02:49:30.150509","2026-04-10T20:34:14.753300",[104,109,114,118,123,128,133,138],{"id":105,"question_zh":106,"answer_zh":107,"source_url":108},28178,"代码中 3D 边界框角点计算的坐标系定义是什么？","在 `box3d_to_cam_points` 函数中定义的角点坐标是基于物体坐标系的。具体的坐标系定义为：\n- x 轴：向右 (right)\n- y 轴：向上 (up)\n- z 轴：向前 (forward)\n\n代码中通过 `r_corners = corners.dot(np.transpose(R))` 将这些局部物体坐标旋转到了相机坐标系或其他目标坐标系中。","https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fissues\u002F61",{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},28171,"在 pedestrian-cycle 训练中，类别 0 到 5 分别代表什么含义？","在 pedestrian-cycle 数据集中，类别定义如下：\n- ID 0: 背景 (Background)\n- ID 1: 正面视角的行人 (front view Pedestrian)\n- ID 2: 侧面视角的行人 (side view Pedestrian)\n- ID 3: 正面视角的骑行者 (front view Cyclist)\n- ID 4: 侧面视角的骑行者 (side view Cyclist)\n- ID 5: 其他对象 (others)\n\n注意：背景类（ID 0）的点数远多于其他类别，因此其分类指标通常较高。","https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fissues\u002F83",{"id":115,"question_zh":116,"answer_zh":117,"source_url":113},28172,"为什么自定义数据集训练时，背景类 (class_0) 的 mAP 为 1，而其他类别为 0？","这通常由以下两个原因导致：\n1. 数据集中背景点的数量远超物体点，导致网络分类严重不平衡。可以尝试给物体点增加权重等平衡方法来解决。\n2. 部分样本中完全没有任何物体点。如果 mAP 仅在这些样本上计算，默认结果即为 0。",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},28173,"如何在同一张点云上同时检测车辆和行人？预训练权重是分开保存的。","有两种方法可以实现：\n1. **简单方法**：独立运行两个模型（一个用于车，一个用于人）处理相同的输入，然后将它们的检测结果合并。\n2. **更好的方法**：将所有类别整合到一个网络中并重新训练。\n目前提供的预训练权重是将车和人的参数分开保存的，加载时需分别加载或采用上述第一种策略。","https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fissues\u002F58",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},28174,"为什么网络输出的旋转角度 (yaw) 总是正值，很少输出负值？如何获得正确的方向？","预训练模型输出的角度范围是 [-0.25π, 0.75π]（即半个周期），这是为了简化网络结构。因为计算 mAP 时基于边界框的重叠面积，将 yaw 角改变 π (yaw-pi) 不会影响重叠计算，所以网络只使用了两个头而不是四个。\n\n如果你需要正确的方向（即 [0, 2π] 范围内的完整角度），你需要修改网络结构：将预测头 (predict header) 的数量加倍并重新训练网络，使其能够输出全范围的角度值。","https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fissues\u002F37",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},28175,"是否可以在当前代码库中以金字塔风格 (U-Net 风格) 堆叠 GNN 层？","当前的 `models.py` 是顺序添加层的，不支持跳跃连接 (skip connections)。若要实现 U-Net 风格的金字塔结构，你需要手动修改 `models.py` 文件。\n你可以参考此处代码逻辑进行修改：https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fblob\u002F48f3d79d5b101d3a4b8439ba74c92fcad4f7cab0\u002Fmodels\u002Fmodels.py#L119\n通常需要使用 MLP 来拼接特征以实现跳跃连接。","https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fissues\u002F68",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},28176,"是否可以在每一层动态地创建图 (Graph)，而不是预先构建好？","图的生成方法是一个设计选择，完全可以动态创建。例如，可以使用前一层 GNN 的点特征之间的余弦距离来计算新的半径邻居图，或使用点坐标加预测偏移量来构建新图。\n\n关键是要使用 TensorFlow 1.x 的 API 编写，以便自动处理梯度。作者提供了两种 TF1.0 下的半径邻居图生成方法供参考：\n\n1. 暴力搜索法 (`tf_brute_rnn`):\n```python\ndef tf_brute_rnn(points_xyz, centers_xyz, r):\n    points_xyz_norm = tf.linalg.norm(points_xyz, axis=-1) ** 2\n    points_xyz_norm_expand = tf.expand_dims(points_xyz_norm, axis=1)\n    centers_xyz_norm = tf.linalg.norm(centers_xyz, axis=-1) ** 2\n    distance = centers_xyz_norm - 2 * tf.matmul(points_xyz, tf.transpose(centers_xyz)) + points_xyz_norm_expand\n    neighbors = tf.where(distance \u003C= r ** 2)\n    return neighbors\n```\n\n2. 网格加速法 (`tf_rnn`):\n利用网格分配加速半径最近邻搜索（具体实现需查看源码中 `tf_rnn` 函数）。","https:\u002F\u002Fgithub.com\u002FWeijingShi\u002FPoint-GNN\u002Fissues\u002F60",{"id":139,"question_zh":140,"answer_zh":141,"source_url":108},28177,"train_config 中的 'expend_factor' 参数是什么意思？","`expend_factor` 参数主要用于数据增强和类别标签分配过程中。在 `box3d_to_cam_points` 函数中，它用于扩展 3D 边界框的尺寸以生成角点。\n例如，当计算角点坐标时，高度方向会考虑 `delta_h` 和 `expend_factor` 的影响，以确保生成的点云覆盖范围足够大，便于后续的特征聚合或标签分配。默认值为 `(1.0, 1.0, 1.0)` 表示不扩展。",[]]